coding-friend-cli 1.17.1 → 1.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -92,39 +92,39 @@ Memory subcommands:
92
92
  memory mcp Show MCP server setup instructions`
93
93
  );
94
94
  memory.command("status").description("Show memory system status").action(async () => {
95
- const { memoryStatusCommand } = await import("./memory-RGLM35HC.js");
95
+ const { memoryStatusCommand } = await import("./memory-3M2IY6MR.js");
96
96
  await memoryStatusCommand();
97
97
  });
98
98
  memory.command("search").description("Search memories by query").argument("<query>", "search query").action(async (query) => {
99
- const { memorySearchCommand } = await import("./memory-RGLM35HC.js");
99
+ const { memorySearchCommand } = await import("./memory-3M2IY6MR.js");
100
100
  await memorySearchCommand(query);
101
101
  });
102
102
  memory.command("list").description(
103
103
  "List memories in current project, or all projects with --projects"
104
104
  ).option("--projects", "List all project databases with size and metadata").action(async (opts) => {
105
- const { memoryListCommand } = await import("./memory-RGLM35HC.js");
105
+ const { memoryListCommand } = await import("./memory-3M2IY6MR.js");
106
106
  await memoryListCommand(opts);
107
107
  });
108
108
  memory.command("init").description(
109
109
  "Initialize Tier 1 \u2014 install SQLite deps and import existing memories"
110
110
  ).action(async () => {
111
- const { memoryInitCommand } = await import("./memory-RGLM35HC.js");
111
+ const { memoryInitCommand } = await import("./memory-3M2IY6MR.js");
112
112
  await memoryInitCommand();
113
113
  });
114
114
  memory.command("start").description("Start the memory daemon (Tier 2 \u2014 MiniSearch)").action(async () => {
115
- const { memoryStartCommand } = await import("./memory-RGLM35HC.js");
115
+ const { memoryStartCommand } = await import("./memory-3M2IY6MR.js");
116
116
  await memoryStartCommand();
117
117
  });
118
118
  memory.command("stop").description("Stop the memory daemon").action(async () => {
119
- const { memoryStopCommand } = await import("./memory-RGLM35HC.js");
119
+ const { memoryStopCommand } = await import("./memory-3M2IY6MR.js");
120
120
  await memoryStopCommand();
121
121
  });
122
122
  memory.command("rebuild").description("Rebuild the daemon search index").action(async () => {
123
- const { memoryRebuildCommand } = await import("./memory-RGLM35HC.js");
123
+ const { memoryRebuildCommand } = await import("./memory-3M2IY6MR.js");
124
124
  await memoryRebuildCommand();
125
125
  });
126
126
  memory.command("mcp").description("Show MCP server setup instructions").action(async () => {
127
- const { memoryMcpCommand } = await import("./memory-RGLM35HC.js");
127
+ const { memoryMcpCommand } = await import("./memory-3M2IY6MR.js");
128
128
  await memoryMcpCommand();
129
129
  });
130
130
  memory.command("rm").description("Remove a project database").option("--project-id <id>", "Project ID to remove").option("--all", "Remove all project databases").option(
@@ -132,7 +132,7 @@ memory.command("rm").description("Remove a project database").option("--project-
132
132
  "Remove orphaned projects (source dir missing or 0 memories)"
133
133
  ).action(
134
134
  async (opts) => {
135
- const { memoryRmCommand } = await import("./memory-RGLM35HC.js");
135
+ const { memoryRmCommand } = await import("./memory-3M2IY6MR.js");
136
136
  await memoryRmCommand(opts);
137
137
  }
138
138
  );
@@ -362,6 +362,8 @@ function formatSize(bytes) {
362
362
  return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
363
363
  }
364
364
  function formatDate(raw) {
365
+ if (/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/.test(raw)) return raw;
366
+ if (/^\d{4}-\d{2}-\d{2}$/.test(raw)) return raw;
365
367
  const d = new Date(raw);
366
368
  if (isNaN(d.getTime())) return raw;
367
369
  return d.toISOString().slice(0, 16).replace("T", " ");
@@ -1,5 +1,9 @@
1
1
  # CF Memory Changelog
2
2
 
3
+ ## v0.1.1 (2026-03-17)
4
+
5
+ - Fix `today()` to capture full timestamp (`YYYY-MM-DD HH:MM`) instead of date-only for memory created/updated fields [#31e0824](https://github.com/dinhanhthi/coding-friend/commit/31e0824)
6
+
3
7
  ## v0.1.0 (2026-03-17)
4
8
 
5
9
  - Auto-start daemon from MCP server for file watching — daemon spawns automatically when Tier 1 or 2 is detected, no manual `cf memory start` needed [#2211b84](https://github.com/dinhanhthi/coding-friend/commit/2211b84)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coding-friend-cf-memory",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "bin": {
@@ -57,7 +57,9 @@ function parseFrontmatter(
57
57
  }
58
58
 
59
59
  function today(): string {
60
- return new Date().toISOString().split("T")[0];
60
+ const d = new Date();
61
+ const pad = (n: number) => String(n).padStart(2, "0");
62
+ return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}`;
61
63
  }
62
64
 
63
65
  export class MarkdownBackend implements MemoryBackend {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coding-friend-cli",
3
- "version": "1.17.1",
3
+ "version": "1.17.2",
4
4
  "description": "CLI for coding-friend — host learning docs, setup MCP server, initialize projects",
5
5
  "type": "module",
6
6
  "bin": {