chat-recall 0.5.26 → 0.5.28

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.
@@ -0,0 +1,52 @@
1
+ export interface WalkSnapshot {
2
+ done: number;
3
+ total: number;
4
+ complete: boolean;
5
+ }
6
+ /** A fixed-width bar. Pure, so the rendering is pinned by tests. */
7
+ export declare function renderBar(done: number, total: number, width?: number): string;
8
+ /** `1,240/15,748` — grouped, because five- and six-digit counts are unreadable raw. */
9
+ export declare function renderCount(done: number, total: number): string;
10
+ /**
11
+ * The one line shown while a walk is in flight, or the one line shown when it
12
+ * is handed off / finished. Kept pure and separate from the polling so the exact
13
+ * wording is testable — the whole point of this change is the wording.
14
+ */
15
+ export declare function progressLine(snap: WalkSnapshot | null): string;
16
+ export declare function handOffLine(snap: WalkSnapshot | null): string;
17
+ export interface FirstSyncDeps {
18
+ /** Current walk state, or null when none has been reported yet. */
19
+ readProgress: () => WalkSnapshot | null;
20
+ /** Draw the single line, in place. */
21
+ draw: (text: string) => void;
22
+ /** Start the detached worker. Returns a stop handle for tests. */
23
+ startWorker: () => void;
24
+ now: () => number;
25
+ sleep: (ms: number) => Promise<void>;
26
+ /** How long to watch before handing off. */
27
+ handOffAfterMs?: number;
28
+ pollMs?: number;
29
+ }
30
+ export interface FirstSyncOutcome {
31
+ /** True when the walk reported `complete` before the hand-off deadline. */
32
+ finished: boolean;
33
+ snapshot: WalkSnapshot | null;
34
+ }
35
+ /**
36
+ * Start the sync, watch it on ONE line, and stop watching at the deadline.
37
+ *
38
+ * Never kills the worker — handing off means letting it run, not cancelling it.
39
+ * The caller prints the final line, because only it knows the surrounding
40
+ * layout.
41
+ */
42
+ export declare function watchFirstSync(deps: FirstSyncDeps): Promise<FirstSyncOutcome>;
43
+ /**
44
+ * Spawn `<this cli> sync` fully detached, stdio discarded.
45
+ *
46
+ * `stdio: 'ignore'` is the half that silences the daemon log; `detached` +
47
+ * `unref` is the half that lets a long walk outlive `init`. `argv[1]` rather
48
+ * than a resolved package path, so a dev checkout, a global install and a
49
+ * user-prefix install all re-invoke the binary that is actually running.
50
+ */
51
+ export declare function spawnDetachedSync(extraArgs?: string[]): void;
52
+ //# sourceMappingURL=init-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-progress.d.ts","sourceRoot":"","sources":["../src/init-progress.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,MAAM,CAKzE;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM,CAI9D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM,CAK7D;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,YAAY,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IACxC,sCAAsC;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,kEAAkE;IAClE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAcnF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,MAAM,EAAO,GAAG,IAAI,CAShE"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * ONE LINE for the first sync, and a hand-off when it is long.
3
+ *
4
+ * ── What this replaces ────────────────────────────────────────────────────
5
+ * `init` step 5 was `await syncSessions()`. Two problems, both reported by a
6
+ * user on a 15,748-session machine:
7
+ *
8
+ * 1. It BLOCKED for minutes, while step 6 went on to explain that background
9
+ * sync runs via the MCP anyway — so the wait bought nothing but a wait.
10
+ * 2. It printed the daemon's log to the terminal. `sync-client.ts` has 18
11
+ * `[sync] …` console.error calls written for a log file nobody tails, and
12
+ * onboarding inherited every one of them, including
13
+ * "01758d3f… is 115MB (over the 64MB ceiling)" — true, and none of a new
14
+ * user's business.
15
+ *
16
+ * Running the sync as a DETACHED CHILD fixes both at once: its stdio is
17
+ * discarded, so the log cannot reach the terminal by construction, and it
18
+ * survives `init` exiting, so a long walk continues without holding anyone up.
19
+ *
20
+ * Progress needs no new plumbing. `sync-client.ts` already calls
21
+ * `reportWalkProgress()` into the collector-health file on every walk; this
22
+ * polls that file. So the bar reflects the real walk, not an estimate.
23
+ */
24
+ import { spawn } from 'node:child_process';
25
+ /** A fixed-width bar. Pure, so the rendering is pinned by tests. */
26
+ export function renderBar(done, total, width = 12) {
27
+ if (total <= 0)
28
+ return '░'.repeat(width);
29
+ const ratio = Math.max(0, Math.min(1, done / total));
30
+ const filled = Math.round(ratio * width);
31
+ return '█'.repeat(filled) + '░'.repeat(width - filled);
32
+ }
33
+ /** `1,240/15,748` — grouped, because five- and six-digit counts are unreadable raw. */
34
+ export function renderCount(done, total) {
35
+ const n = (x) => x.toLocaleString('en-US');
36
+ return `${n(done)}/${n(total)}`;
37
+ }
38
+ /**
39
+ * The one line shown while a walk is in flight, or the one line shown when it
40
+ * is handed off / finished. Kept pure and separate from the polling so the exact
41
+ * wording is testable — the whole point of this change is the wording.
42
+ */
43
+ export function progressLine(snap) {
44
+ if (!snap || snap.total <= 0)
45
+ return 'starting…';
46
+ if (snap.complete)
47
+ return `${renderCount(snap.done, snap.total)} indexed`;
48
+ return `${renderBar(snap.done, snap.total)} ${renderCount(snap.done, snap.total)}`;
49
+ }
50
+ export function handOffLine(snap) {
51
+ const where = snap && snap.total > 0
52
+ ? `${renderCount(snap.done, snap.total)} so far`
53
+ : 'started';
54
+ return `${where} — continuing in the background`;
55
+ }
56
+ /**
57
+ * Start the sync, watch it on ONE line, and stop watching at the deadline.
58
+ *
59
+ * Never kills the worker — handing off means letting it run, not cancelling it.
60
+ * The caller prints the final line, because only it knows the surrounding
61
+ * layout.
62
+ */
63
+ export async function watchFirstSync(deps) {
64
+ const handOffAfterMs = deps.handOffAfterMs ?? 20_000;
65
+ const pollMs = deps.pollMs ?? 400;
66
+ const started = deps.now();
67
+ deps.startWorker();
68
+ let snap = null;
69
+ for (;;) {
70
+ snap = deps.readProgress();
71
+ if (snap?.complete)
72
+ return { finished: true, snapshot: snap };
73
+ if (deps.now() - started >= handOffAfterMs)
74
+ return { finished: false, snapshot: snap };
75
+ deps.draw(progressLine(snap));
76
+ await deps.sleep(pollMs);
77
+ }
78
+ }
79
+ /**
80
+ * Spawn `<this cli> sync` fully detached, stdio discarded.
81
+ *
82
+ * `stdio: 'ignore'` is the half that silences the daemon log; `detached` +
83
+ * `unref` is the half that lets a long walk outlive `init`. `argv[1]` rather
84
+ * than a resolved package path, so a dev checkout, a global install and a
85
+ * user-prefix install all re-invoke the binary that is actually running.
86
+ */
87
+ export function spawnDetachedSync(extraArgs = []) {
88
+ const entry = process.argv[1];
89
+ if (!entry)
90
+ return;
91
+ const child = spawn(process.execPath, [entry, 'sync', ...extraArgs], {
92
+ detached: true,
93
+ stdio: 'ignore',
94
+ windowsHide: true,
95
+ });
96
+ child.unref();
97
+ }
98
+ //# sourceMappingURL=init-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-progress.js","sourceRoot":"","sources":["../src/init-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQ3C,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IAC/D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAyB;IACpD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACjD,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1E,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAyB;IACnD,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;QAClC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;QAChD,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,GAAG,KAAK,iCAAiC,CAAC;AACnD,CAAC;AAsBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAmB;IACtD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IAEnB,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,SAAS,CAAC;QACR,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,IAAI,IAAI,EAAE,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,cAAc;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAsB,EAAE;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;QACnE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `init` says two things: installing, then done.
3
+ *
4
+ * ── What it used to say ───────────────────────────────────────────────────
5
+ * Forty lines. A numbered heading per step, then a line per ITEM inside each
6
+ * step — one per AI tool found AND per tool not found, one per MCP client
7
+ * configured, one per skills directory, a four-line advert for an optional
8
+ * companion, a sixty-name list of MCP tools, and the sync daemon's own log,
9
+ * including "01758d3f… is 115MB (over the 64MB ceiling)".
10
+ *
11
+ * ── What it says now ──────────────────────────────────────────────────────
12
+ * chat-recall init v0.5.27
13
+ * Installing…
14
+ * ✓ Done
15
+ *
16
+ * That is the whole contract. No step numbers, no counts, no per-item audit.
17
+ *
18
+ * The ONE exception is a thing the user must act on — a config file that would
19
+ * not parse, an env var to set, a server that cannot be reached. Those print on
20
+ * their own line, always. A quiet install that hides a failure is not quiet, it
21
+ * is broken; every bug found on 2026-08-27 was one the output failed to name.
22
+ */
23
+ export interface InitReporter {
24
+ /** Show the single "Installing…" line. Idempotent — call it freely. */
25
+ start: () => void;
26
+ /** Something the user must act on. ALWAYS printed, on its own line. */
27
+ warn: (text: string) => void;
28
+ /** Clear the status line and print the closing line. */
29
+ done: (text: string) => void;
30
+ }
31
+ export interface ReporterOpts {
32
+ /** A TTY gets an in-place line it can overwrite; a pipe gets a plain one. */
33
+ tty: boolean;
34
+ write: (s: string) => void;
35
+ line: (s: string) => void;
36
+ }
37
+ export declare function createInitReporter(opts: ReporterOpts): InitReporter;
38
+ //# sourceMappingURL=init-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-report.d.ts","sourceRoot":"","sources":["../src/init-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,uEAAuE;IACvE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,wDAAwD;IACxD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3B;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAwBnE"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `init` says two things: installing, then done.
3
+ *
4
+ * ── What it used to say ───────────────────────────────────────────────────
5
+ * Forty lines. A numbered heading per step, then a line per ITEM inside each
6
+ * step — one per AI tool found AND per tool not found, one per MCP client
7
+ * configured, one per skills directory, a four-line advert for an optional
8
+ * companion, a sixty-name list of MCP tools, and the sync daemon's own log,
9
+ * including "01758d3f… is 115MB (over the 64MB ceiling)".
10
+ *
11
+ * ── What it says now ──────────────────────────────────────────────────────
12
+ * chat-recall init v0.5.27
13
+ * Installing…
14
+ * ✓ Done
15
+ *
16
+ * That is the whole contract. No step numbers, no counts, no per-item audit.
17
+ *
18
+ * The ONE exception is a thing the user must act on — a config file that would
19
+ * not parse, an env var to set, a server that cannot be reached. Those print on
20
+ * their own line, always. A quiet install that hides a failure is not quiet, it
21
+ * is broken; every bug found on 2026-08-27 was one the output failed to name.
22
+ */
23
+ const INSTALLING = 'Installing…';
24
+ export function createInitReporter(opts) {
25
+ let painted = false;
26
+ const clear = () => {
27
+ if (painted && opts.tty)
28
+ opts.write(`\r${' '.repeat(INSTALLING.length)}\r`);
29
+ painted = false;
30
+ };
31
+ return {
32
+ start() {
33
+ if (painted)
34
+ return;
35
+ if (opts.tty) {
36
+ opts.write(INSTALLING);
37
+ painted = true;
38
+ }
39
+ else
40
+ opts.line(INSTALLING);
41
+ },
42
+ warn(text) {
43
+ // Clear first, or the warning lands on top of the status line.
44
+ clear();
45
+ opts.line(text);
46
+ },
47
+ done(text) {
48
+ clear();
49
+ opts.line(text);
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=init-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-report.js","sourceRoot":"","sources":["../src/init-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAkBH,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,MAAM,UAAU,kBAAkB,CAAC,IAAkB;IACnD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5E,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;YACH,IAAI,OAAO;gBAAE,OAAO;YACpB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAAC,OAAO,GAAG,IAAI,CAAC;YAAC,CAAC;;gBACpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI;YACP,+DAA+D;YAC/D,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI;YACP,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/mcp.js CHANGED
@@ -20327,7 +20327,7 @@ function pruneLedgerTargets(configuredServers) {
20327
20327
  return 0;
20328
20328
  }
20329
20329
  const rows = names.reduce((n, s) => n + Object.keys(orphans[s]).length, 0);
20330
- console.error(`[sync] ledger: parked ${rows} row(s) for ${names.length} server(s) no longer configured (${names.join(", ")}) in ${side}`);
20330
+ console.error(`[sync] tidied local bookkeeping: ${rows} already-synced marker(s) for ${names.length} server(s) you no longer sync to (${names.join(", ")}) moved to ${side}. Nothing was uploaded there; the file is kept so logging back in re-ships nothing.`);
20331
20331
  persistNow(data);
20332
20332
  return names.length;
20333
20333
  }
@@ -20633,7 +20633,7 @@ var init_http = __esm({
20633
20633
  CLI_VERSION = JSON.parse(readFileSync37(new URL("../package.json", import.meta.url), "utf-8")).version || CLI_VERSION;
20634
20634
  } catch {
20635
20635
  try {
20636
- if (true) CLI_VERSION = "0.5.26";
20636
+ if (true) CLI_VERSION = "0.5.28";
20637
20637
  } catch {
20638
20638
  }
20639
20639
  }
@@ -21145,7 +21145,7 @@ var init_telemetry = __esm({
21145
21145
  init_sync_client();
21146
21146
  cliVersion2 = () => {
21147
21147
  try {
21148
- return true ? "0.5.26" : "dev";
21148
+ return true ? "0.5.28" : "dev";
21149
21149
  } catch {
21150
21150
  return "dev";
21151
21151
  }
@@ -22974,7 +22974,7 @@ var init_sync_client = __esm({
22974
22974
  ownVersion = JSON.parse(readFileSync39(join49(dir, "../package.json"), "utf-8")).version || ownVersion;
22975
22975
  } catch {
22976
22976
  try {
22977
- if (true) ownVersion = "0.5.26";
22977
+ if (true) ownVersion = "0.5.28";
22978
22978
  } catch {
22979
22979
  }
22980
22980
  }
@@ -24143,6 +24143,19 @@ async function remotePatch(path, body) {
24143
24143
  throw await buildHttpError(path, res);
24144
24144
  return res.json();
24145
24145
  }
24146
+ async function remotePut(path, body) {
24147
+ const cred = remoteCredentials();
24148
+ if (!cred)
24149
+ throw new Error('scope "server" needs a login \u2014 run `chat-recall login <server-url>` first.');
24150
+ const res = await fetch(cred.base + path, {
24151
+ method: "PUT",
24152
+ headers: { "content-type": "application/json", authorization: `Bearer ${cred.token}` },
24153
+ body: JSON.stringify(body)
24154
+ });
24155
+ if (!res.ok)
24156
+ throw await buildHttpError(path, res);
24157
+ return res.json();
24158
+ }
24146
24159
  async function remoteDelete(path) {
24147
24160
  const cred = remoteCredentials();
24148
24161
  if (!cred)
@@ -24336,8 +24349,8 @@ var RecallTeamActivitySchema = z.object({
24336
24349
  member: z.string().optional().describe("Filter to one teammate by their user id (sub)"),
24337
24350
  since_days: z.number().optional().describe("Only activity in the last N days")
24338
24351
  });
24339
- var TASK_STATUS_FILTER = ["todo", "in_progress", "done", "rejected"];
24340
- var TASK_STATUS_SETTABLE = ["todo", "in_progress", "done"];
24352
+ var TASK_STATUS_FILTER = ["todo", "in_progress", "done", "rejected", "closed"];
24353
+ var TASK_STATUS_SETTABLE = ["todo", "in_progress", "done", "closed"];
24341
24354
  var RecallTasksSchema = z.object({
24342
24355
  mine: z.boolean().optional().describe("Only tasks assigned to me"),
24343
24356
  project: z.string().optional().describe("Filter to one project_id"),
@@ -24354,12 +24367,35 @@ var RecallTaskCreateSchema = z.object({
24354
24367
  });
24355
24368
  var RecallTaskUpdateSchema = z.object({
24356
24369
  id: z.string().describe("Task id (t_\u2026)"),
24357
- status: z.enum(TASK_STATUS_SETTABLE).optional(),
24370
+ status: z.enum(TASK_STATUS_SETTABLE).optional().describe("'done' needs linked_session_id \u2014 the session that did the work. 'closed' means the card no longer applies (its finding went away, or it duplicates another) and needs closed_reason. If it was never a real problem, do not close it: tell the user, because rejecting is their call."),
24371
+ closed_reason: z.string().optional().describe("Why the card no longer applies. REQUIRED with status 'closed'."),
24372
+ commits: z.array(z.string()).optional().describe("The commit sha(s) that fixed this, in THIS card's repository. REQUIRED with status 'done' \u2014 a session link alone proved the wrong thing once: a card closed with a real session attached showed 74 commits belonging to a DIFFERENT repository."),
24373
+ files: z.array(z.string()).optional().describe("Files those commits changed. PASS THESE: without them the card cannot narrow the session's diff to this card, and shows no changes at all rather than another repository's."),
24374
+ summary: z.string().optional().describe("One line on what changed (optional)."),
24358
24375
  assignee: z.string().optional().describe("Reassign to this user id (sub); empty string unassigns"),
24359
24376
  title: z.string().optional(),
24360
24377
  comment: z.string().optional().describe("Add a comment to the task"),
24361
24378
  linked_session_id: z.string().nullable().optional().describe("Session id to attach to the task (null detaches). Pass YOUR OWN current session id when you start working on the task.")
24362
24379
  });
24380
+ function mergeExcludedProjects(current, opts) {
24381
+ const list = Array.isArray(current) ? current.filter((p) => typeof p === "string" && !!p.trim()).map((p) => p.trim()) : [];
24382
+ const out = [...new Set(list)];
24383
+ const add = opts.add?.trim();
24384
+ const remove = opts.remove?.trim();
24385
+ if (add && !out.includes(add))
24386
+ out.push(add);
24387
+ return remove ? out.filter((p) => p !== remove) : out;
24388
+ }
24389
+ var RecallTaskPolicySchema = z.object({
24390
+ enabled: z.boolean().optional().describe("Turn auto-filing on or off."),
24391
+ max_pri: z.number().int().min(0).max(3).optional().describe("Severity floor, inclusive: 0 critical, 1 high, 2 medium, 3 low."),
24392
+ ceiling: z.number().int().min(1).max(1e3).optional().describe("How many auto-filed cards may be OPEN at once. Filing pauses at this number and resumes as cards close."),
24393
+ max_per_run: z.number().int().min(1).max(100).optional().describe("Cap on NEW cards per run, so one index cannot bury the board."),
24394
+ categories: z.array(z.string()).optional().describe('Only file these finding/action categories (e.g. ["security","clone"]). Pass an empty array for all of them.'),
24395
+ excluded_projects: z.array(z.string()).optional().describe("Projects that never file a card \u2014 replaces the whole list. Use exclude_project/include_project to change one."),
24396
+ exclude_project: z.string().optional().describe('Add ONE project to the never-file list. For "do not put work on my board for this repo" \u2014 a client codebase, an archive, a mirror.'),
24397
+ include_project: z.string().optional().describe("Remove ONE project from the never-file list.")
24398
+ });
24363
24399
  var RecallTaskCommentSchema = z.object({
24364
24400
  task_id: z.string().describe("Task id (t_\u2026) from recall_tasks"),
24365
24401
  body: z.string().describe("The comment text")
@@ -24624,6 +24660,7 @@ var WRITE_TOOLS = /* @__PURE__ */ new Set([
24624
24660
  "recall_task_create",
24625
24661
  "recall_task_update",
24626
24662
  "recall_task_comment",
24663
+ "recall_task_policy",
24627
24664
  "recall_security_dismiss",
24628
24665
  "recall_recommendation_apply",
24629
24666
  // queues a CLAUDE.md edit / sets a label
@@ -25149,14 +25186,34 @@ add a comment. Pass the task id (t_\u2026) from recall_tasks.
25149
25186
  WORKFLOW \u2014 do this whenever the user asks you to work on a task from the board:
25150
25187
  1. When you start, set status 'in_progress' AND pass your own current session id
25151
25188
  as linked_session_id (the session id you know from your own context; this MCP
25152
- server cannot see it). The board uses that link to show whether the linked
25153
- session actually shipped \u2014 files, diff stats, commits.
25154
- 2. When you finish, set status 'done'.`,
25189
+ server cannot see it). This is REQUIRED \u2014 claiming without it is refused,
25190
+ because "in progress" with nothing behind it cannot be asked about. The card
25191
+ then shows that session's changes as they land, not only after the commit.
25192
+ 2. When you finish, set status 'done' AND pass commits \u2014 the sha(s) in this
25193
+ card's repository that fixed it. Without them the close is refused. Pass
25194
+ the FILES too: they are what lets the card show the exact change, because a
25195
+ session's diff covers every repository it touched and only the file list can
25196
+ narrow it to this card.
25197
+
25198
+ THE THREE ENDINGS ARE NOT THE SAME:
25199
+ - 'done' \u2014 you fixed it. Needs linked_session_id; refused without one.
25200
+ - 'closed' \u2014 the card no longer applies: its finding stopped being reported, or
25201
+ it duplicates another card. Needs closed_reason.
25202
+ - rejected \u2014 NOT yours to set. If the card is not a real problem, say so to the
25203
+ user and let them reject it, because that also stops the finding
25204
+ being re-filed. (When they do, the API requires their reason.)
25205
+ Closing a card you did not fix, as 'done', is the one thing that makes this board
25206
+ worthless: two thirds of one real board's Done column turned out to be work
25207
+ nobody had done.`,
25155
25208
  inputSchema: {
25156
25209
  type: "object",
25157
25210
  properties: {
25158
25211
  id: { type: "string", description: "Task id (t_\u2026)" },
25159
- status: { type: "string", enum: [...TASK_STATUS_SETTABLE], description: "Set the card's state. There is no 'rejected' here on purpose: rejecting is the user's verdict, not yours." },
25212
+ status: { type: "string", enum: [...TASK_STATUS_SETTABLE], description: "Set the card's state. 'done' needs linked_session_id; 'closed' needs closed_reason. There is no 'rejected' here on purpose: rejecting is the user's verdict, not yours." },
25213
+ closed_reason: { type: "string", description: "Why the card no longer applies. REQUIRED with status 'closed'." },
25214
+ commits: { type: "array", items: { type: "string" }, description: "Commit sha(s) in THIS card's repository that fixed it. REQUIRED with status 'done'." },
25215
+ files: { type: "array", items: { type: "string" }, description: "Files those commits changed. PASS THESE: the card scopes the session's diff by them, and without them it can show no changes rather than risk showing another repository's." },
25216
+ summary: { type: "string", description: "One line on what changed (optional)." },
25160
25217
  assignee: { type: "string", description: "Reassign to this user id (sub)" },
25161
25218
  title: { type: "string", description: "Rename the card. Omit to leave the title alone." },
25162
25219
  comment: { type: "string", description: "Add a comment" },
@@ -25179,6 +25236,36 @@ without editing the task itself. Pass the task id (t_\u2026) from recall_tasks.`
25179
25236
  required: ["task_id", "body"]
25180
25237
  }
25181
25238
  },
25239
+ {
25240
+ name: "recall_task_policy",
25241
+ description: `Read or change what the board FILES \u2014 call with no arguments to read it.
25242
+
25243
+ max_pri severity floor, inclusive: 0 critical, 1 high, 2 medium, 3 low
25244
+ ceiling how many auto-filed cards may be open at once
25245
+ max_per_run cap on new cards per run
25246
+ categories only file these categories (e.g. ["security"]); [] means all
25247
+ exclude_project / include_project
25248
+ a repository that never files a card \u2014 a client's codebase, an
25249
+ archive, a mirror. Indexed and searchable as before; simply never
25250
+ put on the board.
25251
+
25252
+ Use this when the user says what they want worked on \u2014 "only security", "high and
25253
+ critical for now", "stop filing hotspots", "let more in". Reading it first also
25254
+ explains a quiet board: at the ceiling, filing pauses until cards close.`,
25255
+ inputSchema: {
25256
+ type: "object",
25257
+ properties: {
25258
+ enabled: { type: "boolean", description: "Turn auto-filing on or off." },
25259
+ max_pri: { type: "number", description: "Severity floor: 0 critical, 1 high, 2 medium, 3 low." },
25260
+ ceiling: { type: "number", description: "How many auto-filed cards may be OPEN at once." },
25261
+ max_per_run: { type: "number", description: "Cap on NEW cards per run." },
25262
+ categories: { type: "array", items: { type: "string" }, description: "Only file these categories; [] means all." },
25263
+ excluded_projects: { type: "array", items: { type: "string" }, description: "Replace the never-file list." },
25264
+ exclude_project: { type: "string", description: "Add ONE project to the never-file list." },
25265
+ include_project: { type: "string", description: "Remove ONE project from the never-file list." }
25266
+ }
25267
+ }
25268
+ },
25182
25269
  // ── Knowledge Graph Tools ──────────────────────────────────
25183
25270
  {
25184
25271
  name: "recall_kg_query",
@@ -26895,6 +26982,17 @@ ${howTo}` }] };
26895
26982
  patch.title = params.title;
26896
26983
  if (params.linked_session_id !== void 0)
26897
26984
  patch.linkedSessionId = params.linked_session_id;
26985
+ if (params.closed_reason !== void 0)
26986
+ patch.closedReason = params.closed_reason;
26987
+ if (params.commits?.length) {
26988
+ patch.doneEvidence = { commits: params.commits, files: params.files, summary: params.summary };
26989
+ }
26990
+ if (params.status === "done" && !params.commits?.length) {
26991
+ return { content: [{ type: "text", text: "Closing as 'done' needs the commit sha(s) that fixed it, in this card's repository \u2014 pass commits. Commit the fix first if you have not. If the card no longer applies, use status 'closed' with closed_reason; if it was never a real problem, leave it open and tell the user, because rejecting is their call." }] };
26992
+ }
26993
+ if (params.status === "closed" && !(params.closed_reason ?? "").trim()) {
26994
+ return { content: [{ type: "text", text: "closed_reason is required when closing a task. Say why the card no longer applies (its finding stopped being reported, or it duplicates another card). If you FIXED it, use status 'done' with linked_session_id instead; if it was never a real problem, leave it open and tell the user, because rejecting it is their call." }] };
26995
+ }
26898
26996
  let did = false;
26899
26997
  if (Object.keys(patch).length > 0) {
26900
26998
  await remotePatch(`/api/tasks/${encodeURIComponent(params.id)}`, patch);
@@ -26908,6 +27006,48 @@ ${howTo}` }] };
26908
27006
  return { content: [{ type: "text", text: "Nothing to update \u2014 pass status, assignee, title, linked_session_id, and/or comment." }] };
26909
27007
  return { content: [{ type: "text", text: `Updated task ${params.id}.` }] };
26910
27008
  }
27009
+ case "recall_task_policy": {
27010
+ const params = RecallTaskPolicySchema.parse(args);
27011
+ requireRemote();
27012
+ const patch = {};
27013
+ if (params.enabled !== void 0)
27014
+ patch.enabled = params.enabled;
27015
+ if (params.max_pri !== void 0)
27016
+ patch.maxPri = params.max_pri;
27017
+ if (params.ceiling !== void 0)
27018
+ patch.ceiling = params.ceiling;
27019
+ if (params.max_per_run !== void 0)
27020
+ patch.maxPerRun = params.max_per_run;
27021
+ if (params.categories !== void 0)
27022
+ patch.categories = params.categories;
27023
+ if (params.excluded_projects !== void 0)
27024
+ patch.excludedProjects = params.excluded_projects;
27025
+ const cur = await remoteGetQS("/api/tasks/policy", {});
27026
+ if (params.exclude_project || params.include_project) {
27027
+ patch.excludedProjects = mergeExcludedProjects(cur.excludedProjects, {
27028
+ add: params.exclude_project,
27029
+ remove: params.include_project
27030
+ });
27031
+ }
27032
+ if (!Object.keys(patch).length) {
27033
+ return { content: [{ type: "text", text: [
27034
+ `auto-filing: ${cur.enabled ? "on" : "off"}`,
27035
+ `severity floor: ${cur.maxPri} (0 critical \u2026 3 low, inclusive)`,
27036
+ `open-card ceiling: ${cur.openCards ?? "?"}/${cur.ceiling}`,
27037
+ `new cards per run: ${cur.maxPerRun}`,
27038
+ `categories: ${Array.isArray(cur.categories) && cur.categories.length ? cur.categories.join(", ") : "all"}`,
27039
+ ` (available: ${Array.isArray(cur.availableCategories) && cur.availableCategories.length ? cur.availableCategories.join(", ") : "none indexed yet"})`,
27040
+ `never filed: ${Array.isArray(cur.excludedProjects) && cur.excludedProjects.length ? cur.excludedProjects.join(", ") : "nothing excluded"}`,
27041
+ `waiting to be filed: ${cur.eligible}`
27042
+ ].join("\n") }] };
27043
+ }
27044
+ const saved = await remotePut("/api/tasks/policy", {
27045
+ enabled: cur.enabled,
27046
+ maxPri: cur.maxPri,
27047
+ ...patch
27048
+ });
27049
+ return { content: [{ type: "text", text: `Policy updated: ${JSON.stringify(saved)}` }] };
27050
+ }
26911
27051
  case "recall_task_comment": {
26912
27052
  const params = RecallTaskCommentSchema.parse(args);
26913
27053
  requireRemote();
@@ -28036,7 +28176,7 @@ ${JSON.stringify(r, null, 2)}
28036
28176
  ];
28037
28177
  const groups = [
28038
28178
  ["Aggregate views", ["recall_weekly_digest", "recall_analytics_summary", "recall_team_activity", "recall_outcome_summary"]],
28039
- ["Task board", ["recall_task_comment"]],
28179
+ ["Task board", ["recall_task_comment", "recall_task_policy"]],
28040
28180
  ["Knowledge graph", ["recall_kg_timeline", "recall_kg_stats", "recall_kg_invalidate"]],
28041
28181
  ["Session detail", ["recall_markers", "recall_subagent_search", "recall_memory_item", "recall_rename_session", "recall_regenerate_summary"]],
28042
28182
  ["Code intelligence", ["recall_code_index", "recall_code_projects", "recall_code_findings", "recall_code_actions"]],
@@ -1 +1 @@
1
- {"version":3,"file":"sync-ledger.d.ts","sourceRoot":"","sources":["../src/sync-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-ledger.d.ts","sourceRoot":"","sources":["../src/sync-ledger.ts"],"names":[],"mappings":"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"}
@@ -150,8 +150,14 @@ export function pruneLedgerTargets(configuredServers) {
150
150
  return 0;
151
151
  }
152
152
  const rows = names.reduce((n, s) => n + Object.keys(orphans[s]).length, 0);
153
- console.error(`[sync] ledger: parked ${rows} row(s) for ${names.length} server(s) no longer configured `
154
- + `(${names.join(', ')}) in ${side}`);
153
+ // NAME IT AS LOCAL BOOKKEEPING. This read as "we contacted a server you were
154
+ // just told is dead": it printed a retired hostname, mid-sync, with no hint
155
+ // that nothing had left the machine. The host is only a KEY in a local file
156
+ // here — the rows record what was already shipped to it, and they are moved
157
+ // aside rather than deleted so logging back in later re-ships nothing.
158
+ console.error(`[sync] tidied local bookkeeping: ${rows} already-synced marker(s) for `
159
+ + `${names.length} server(s) you no longer sync to (${names.join(', ')}) moved to ${side}. `
160
+ + 'Nothing was uploaded there; the file is kept so logging back in re-ships nothing.');
155
161
  persistNow(data);
156
162
  return names.length;
157
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync-ledger.js","sourceRoot":"","sources":["../src/sync-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-ledger.js","sourceRoot":"","sources":["../src/sync-ledger.ts"],"names":[],"mappings":"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"}