chat-recall 0.7.10 → 0.7.11
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/auto-update.d.ts +31 -0
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +81 -15
- package/dist/auto-update.js.map +1 -1
- package/dist/cli.js +61 -20
- package/dist/mcp-relay.js +1 -1
- package/dist/mcp.js +61 -20
- package/dist/watch.js +63 -21
- package/package.json +1 -1
package/dist/auto-update.d.ts
CHANGED
|
@@ -80,6 +80,14 @@ export interface UpdateDeps {
|
|
|
80
80
|
platform?: NodeJS.Platform;
|
|
81
81
|
/** Version actually on disk after the install — the post-condition check. */
|
|
82
82
|
verify?: () => string | null;
|
|
83
|
+
/** True once this process is shutting down: nothing is installed or restarted after that. */
|
|
84
|
+
stopping?: () => boolean;
|
|
85
|
+
/** Version on disk before the install, read once the lock is held. */
|
|
86
|
+
onDisk?: () => string | null;
|
|
87
|
+
/** Take the machine-wide update lock, or null when another process holds it. */
|
|
88
|
+
acquireLock?: () => {
|
|
89
|
+
release(): void;
|
|
90
|
+
} | null;
|
|
83
91
|
}
|
|
84
92
|
export interface UpdateResult {
|
|
85
93
|
updated: boolean;
|
|
@@ -131,6 +139,19 @@ export interface NpmLocation {
|
|
|
131
139
|
* npm spawns. A bare `npm` from PATH is the last candidate.
|
|
132
140
|
*/
|
|
133
141
|
export declare function resolveNpm(loc: NpmLocation): NpmCommand;
|
|
142
|
+
/**
|
|
143
|
+
* The command that restarts the watch service, per platform.
|
|
144
|
+
*
|
|
145
|
+
* Linux passes --no-block: queue the restart and return. The watch daemon runs
|
|
146
|
+
* this from inside the service, and a blocking `systemctl restart` waits for
|
|
147
|
+
* the stop phase, which waits for this process, whose event loop the wait
|
|
148
|
+
* blocks. systemd then killed it at TimeoutStopSec and the next start counted
|
|
149
|
+
* a crash.
|
|
150
|
+
*/
|
|
151
|
+
export declare function restartCommand(platform: NodeJS.Platform): {
|
|
152
|
+
cmd: string;
|
|
153
|
+
shell?: string;
|
|
154
|
+
} | null;
|
|
134
155
|
type UpdateState = {
|
|
135
156
|
target?: string;
|
|
136
157
|
failures?: number;
|
|
@@ -142,6 +163,16 @@ export declare function hasGivenUpOn(target: string, st?: UpdateState): boolean;
|
|
|
142
163
|
export declare function noteUpdateFailure(target: string): number;
|
|
143
164
|
/** A successful install clears the brake. */
|
|
144
165
|
export declare function clearUpdateFailures(): void;
|
|
166
|
+
/** The reason an update gives when its process began to shut down under it. */
|
|
167
|
+
export declare const STOPPING_REASON = "not installed: this process is shutting down";
|
|
168
|
+
/** The reason an update gives when another process holds the update lock. */
|
|
169
|
+
export declare const LOCKED_REASON = "another process is installing an update";
|
|
170
|
+
/**
|
|
171
|
+
* Stop this process from installing or restarting anything from now on. The
|
|
172
|
+
* watch daemon calls it when it begins to shut down: an update that started
|
|
173
|
+
* then ran `systemctl restart` against the unit that was stopping it.
|
|
174
|
+
*/
|
|
175
|
+
export declare function stopAutoUpdates(): void;
|
|
145
176
|
export declare function runAutoUpdate(base: string, authHeaders: Record<string, string>, ownVersion: string, deps?: Partial<UpdateDeps>): Promise<UpdateResult>;
|
|
146
177
|
export {};
|
|
147
178
|
//# sourceMappingURL=auto-update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
|
package/dist/auto-update.js
CHANGED
|
@@ -22,6 +22,7 @@ import { writeFileSync, mkdtempSync, rmSync, readdirSync, statSync, mkdirSync }
|
|
|
22
22
|
import { join, dirname, sep, posix as pathPosix, win32 as pathWin32 } from 'node:path';
|
|
23
23
|
import { tmpdir, homedir } from 'node:os';
|
|
24
24
|
import { createHash } from 'node:crypto';
|
|
25
|
+
import { acquireIndexLock } from '@chat-recall/engine/core/index-lock.js';
|
|
25
26
|
/** semver-ish compare: -1 (a<b), 0 (a==b), 1 (a>b). Ignores prerelease tags. */
|
|
26
27
|
export function compareVersions(a, b) {
|
|
27
28
|
const pa = String(a).split('-')[0].split('.').map((n) => parseInt(n, 10) || 0);
|
|
@@ -192,6 +193,10 @@ export async function executeAutoUpdate(plan, deps) {
|
|
|
192
193
|
catch { /* best effort */ } };
|
|
193
194
|
const tgz = join(dir, 'chat-recall.tgz');
|
|
194
195
|
writeFileSync(tgz, buf);
|
|
196
|
+
if (deps.stopping?.()) {
|
|
197
|
+
discardStaging();
|
|
198
|
+
return { updated: false, reason: STOPPING_REASON };
|
|
199
|
+
}
|
|
195
200
|
try {
|
|
196
201
|
deps.install(tgz);
|
|
197
202
|
}
|
|
@@ -218,10 +223,14 @@ export async function executeAutoUpdate(plan, deps) {
|
|
|
218
223
|
+ `npm install -g ${plan.url}`,
|
|
219
224
|
};
|
|
220
225
|
}
|
|
221
|
-
|
|
222
|
-
|
|
226
|
+
// A process that is shutting down leaves the restart to the service
|
|
227
|
+
// manager, which is already stopping it; the new bundle runs on the next start.
|
|
228
|
+
if (!deps.stopping?.()) {
|
|
229
|
+
try {
|
|
230
|
+
deps.restart(deps.platform ?? process.platform);
|
|
231
|
+
}
|
|
232
|
+
catch { /* daemon will pick up new bin on its next natural restart */ }
|
|
223
233
|
}
|
|
224
|
-
catch { /* daemon will pick up new bin on its next natural restart */ }
|
|
225
234
|
return { updated: true, reason: `updated ${plan.from} → ${plan.to}`, from: plan.from, to: plan.to };
|
|
226
235
|
}
|
|
227
236
|
/* ── real side effects (defaults) ─────────────────────────────────── */
|
|
@@ -354,13 +363,33 @@ function realInstall(tgz) {
|
|
|
354
363
|
npmInstall(npm, ['install', '-g', '--prefix', join(homedir(), '.local'), tgz]);
|
|
355
364
|
}
|
|
356
365
|
}
|
|
357
|
-
function
|
|
366
|
+
function acquireUpdateLock() {
|
|
367
|
+
// A live holder is never preempted; a dead one is taken over after the
|
|
368
|
+
// helper's short grace. 10 minutes covers a slow download and npm install.
|
|
369
|
+
return acquireIndexLock({ kind: 'auto-update', file: '.update.lock', staleAfterMs: 10 * 60_000 });
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* The command that restarts the watch service, per platform.
|
|
373
|
+
*
|
|
374
|
+
* Linux passes --no-block: queue the restart and return. The watch daemon runs
|
|
375
|
+
* this from inside the service, and a blocking `systemctl restart` waits for
|
|
376
|
+
* the stop phase, which waits for this process, whose event loop the wait
|
|
377
|
+
* blocks. systemd then killed it at TimeoutStopSec and the next start counted
|
|
378
|
+
* a crash.
|
|
379
|
+
*/
|
|
380
|
+
export function restartCommand(platform) {
|
|
358
381
|
if (platform === 'linux')
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
382
|
+
return { cmd: 'systemctl --user --no-block restart chat-recall-watch.service' };
|
|
383
|
+
if (platform === 'darwin')
|
|
384
|
+
return { cmd: 'launchctl kickstart -k gui/$(id -u)/com.chat-recall.watch', shell: '/bin/bash' };
|
|
385
|
+
if (platform === 'win32')
|
|
386
|
+
return { cmd: 'schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch' };
|
|
387
|
+
return null;
|
|
388
|
+
}
|
|
389
|
+
function realRestart(platform) {
|
|
390
|
+
const c = restartCommand(platform);
|
|
391
|
+
if (c)
|
|
392
|
+
execSync(c.cmd, { stdio: 'ignore', ...(c.shell ? { shell: c.shell } : {}) });
|
|
364
393
|
}
|
|
365
394
|
/**
|
|
366
395
|
* Give up on a target version that keeps failing to install.
|
|
@@ -428,6 +457,17 @@ export function clearUpdateFailures() { writeUpdateState({}); }
|
|
|
428
457
|
*/
|
|
429
458
|
/** Servers already told "this device will not self-update", per process. */
|
|
430
459
|
const reportedStandingSkip = new Set();
|
|
460
|
+
/** The reason an update gives when its process began to shut down under it. */
|
|
461
|
+
export const STOPPING_REASON = 'not installed: this process is shutting down';
|
|
462
|
+
/** The reason an update gives when another process holds the update lock. */
|
|
463
|
+
export const LOCKED_REASON = 'another process is installing an update';
|
|
464
|
+
let stopRequested = false;
|
|
465
|
+
/**
|
|
466
|
+
* Stop this process from installing or restarting anything from now on. The
|
|
467
|
+
* watch daemon calls it when it begins to shut down: an update that started
|
|
468
|
+
* then ran `systemctl restart` against the unit that was stopping it.
|
|
469
|
+
*/
|
|
470
|
+
export function stopAutoUpdates() { stopRequested = true; }
|
|
431
471
|
export async function runAutoUpdate(base, authHeaders, ownVersion, deps) {
|
|
432
472
|
let caps;
|
|
433
473
|
try {
|
|
@@ -486,12 +526,38 @@ export async function runAutoUpdate(base, authHeaders, ownVersion, deps) {
|
|
|
486
526
|
if (target && hasGivenUpOn(target)) {
|
|
487
527
|
return { updated: false, reason: `gave up installing ${plan.to} after ${GIVE_UP_AFTER} failed attempts — run \`npm install -g chat-recall\` by hand` };
|
|
488
528
|
}
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
529
|
+
const stopping = deps?.stopping ?? (() => stopRequested);
|
|
530
|
+
if (stopping())
|
|
531
|
+
return { updated: false, reason: STOPPING_REASON };
|
|
532
|
+
// One installer per machine. The watch daemon, an MCP daemon and a CLI
|
|
533
|
+
// command each run this after a sync, and two of them installed the same
|
|
534
|
+
// release at once: one restarted the service, and the other then restarted it
|
|
535
|
+
// again from inside the stopping daemon.
|
|
536
|
+
const lock = (deps?.acquireLock ?? acquireUpdateLock)();
|
|
537
|
+
if (!lock)
|
|
538
|
+
return { updated: false, reason: LOCKED_REASON };
|
|
539
|
+
let result;
|
|
540
|
+
try {
|
|
541
|
+
// The version on disk may have changed while this process waited: the
|
|
542
|
+
// process that held the lock installed it, and restarted the service.
|
|
543
|
+
const onDisk = (deps?.onDisk ?? installedVersion)();
|
|
544
|
+
if (onDisk && plan.to && compareVersions(onDisk, plan.to) >= 0) {
|
|
545
|
+
return { updated: false, reason: `already current: ${onDisk} is on disk` };
|
|
546
|
+
}
|
|
547
|
+
result = await executeAutoUpdate(plan, {
|
|
548
|
+
download: deps?.download ?? realDownload,
|
|
549
|
+
install: deps?.install ?? realInstall,
|
|
550
|
+
restart: deps?.restart ?? realRestart,
|
|
551
|
+
platform: deps?.platform,
|
|
552
|
+
verify: deps?.verify,
|
|
553
|
+
stopping,
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
finally {
|
|
557
|
+
lock.release();
|
|
558
|
+
}
|
|
559
|
+
if (result.reason === STOPPING_REASON)
|
|
560
|
+
return result;
|
|
495
561
|
// A self-update that KEEPS failing is the worst failure mode this system has:
|
|
496
562
|
// the machine silently runs an old collector forever, and the only trace was a
|
|
497
563
|
// reason string that two of the three call sites threw away
|
package/dist/auto-update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auto-update.js","sourceRoot":"","sources":["../src/auto-update.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -18646,7 +18646,7 @@ var init_sync_fields = __esm({
|
|
|
18646
18646
|
import { existsSync as existsSync39, mkdirSync as mkdirSync7, openSync as openSync8, writeFileSync as writeFileSync6, readFileSync as readFileSync30, rmSync as rmSync4, statSync as statSync35, closeSync as closeSync8 } from "fs";
|
|
18647
18647
|
import { dirname as dirname16, join as join39 } from "path";
|
|
18648
18648
|
function acquireIndexLock(opts) {
|
|
18649
|
-
const lockPath = lockFilePath();
|
|
18649
|
+
const lockPath = lockFilePath(opts.file);
|
|
18650
18650
|
mkdirSync7(dirname16(lockPath), { recursive: true });
|
|
18651
18651
|
if (existsSync39(lockPath)) {
|
|
18652
18652
|
if (!stealStaleLock(lockPath, opts.staleAfterMs ?? 10 * 6e4)) {
|
|
@@ -18688,8 +18688,8 @@ function acquireIndexLock(opts) {
|
|
|
18688
18688
|
}
|
|
18689
18689
|
};
|
|
18690
18690
|
}
|
|
18691
|
-
function lockFilePath() {
|
|
18692
|
-
return join39(getIndexDir(),
|
|
18691
|
+
function lockFilePath(file = ".compact.lock") {
|
|
18692
|
+
return join39(getIndexDir(), file);
|
|
18693
18693
|
}
|
|
18694
18694
|
function stealStaleLock(lockPath, staleAfterMs) {
|
|
18695
18695
|
try {
|
|
@@ -18765,7 +18765,7 @@ var init_http = __esm({
|
|
|
18765
18765
|
CLI_VERSION = JSON.parse(readFileSync31(new URL("../package.json", import.meta.url), "utf-8")).version || CLI_VERSION;
|
|
18766
18766
|
} catch {
|
|
18767
18767
|
try {
|
|
18768
|
-
if (true) CLI_VERSION = "0.7.
|
|
18768
|
+
if (true) CLI_VERSION = "0.7.11";
|
|
18769
18769
|
} catch {
|
|
18770
18770
|
}
|
|
18771
18771
|
}
|
|
@@ -19263,7 +19263,7 @@ var init_telemetry = __esm({
|
|
|
19263
19263
|
init_sync_client();
|
|
19264
19264
|
cliVersion2 = () => {
|
|
19265
19265
|
try {
|
|
19266
|
-
return true ? "0.7.
|
|
19266
|
+
return true ? "0.7.11" : "dev";
|
|
19267
19267
|
} catch {
|
|
19268
19268
|
return "dev";
|
|
19269
19269
|
}
|
|
@@ -19631,6 +19631,8 @@ var init_client_events = __esm({
|
|
|
19631
19631
|
// src/auto-update.ts
|
|
19632
19632
|
var auto_update_exports = {};
|
|
19633
19633
|
__export(auto_update_exports, {
|
|
19634
|
+
LOCKED_REASON: () => LOCKED_REASON,
|
|
19635
|
+
STOPPING_REASON: () => STOPPING_REASON,
|
|
19634
19636
|
clearUpdateFailures: () => clearUpdateFailures,
|
|
19635
19637
|
compareVersions: () => compareVersions,
|
|
19636
19638
|
executeAutoUpdate: () => executeAutoUpdate,
|
|
@@ -19642,8 +19644,10 @@ __export(auto_update_exports, {
|
|
|
19642
19644
|
planAutoUpdate: () => planAutoUpdate,
|
|
19643
19645
|
readUpdateState: () => readUpdateState,
|
|
19644
19646
|
resolveNpm: () => resolveNpm,
|
|
19647
|
+
restartCommand: () => restartCommand,
|
|
19645
19648
|
runAutoUpdate: () => runAutoUpdate,
|
|
19646
19649
|
runningPrefix: () => runningPrefix,
|
|
19650
|
+
stopAutoUpdates: () => stopAutoUpdates,
|
|
19647
19651
|
sweepStaleStaging: () => sweepStaleStaging,
|
|
19648
19652
|
tarballUrl: () => tarballUrl
|
|
19649
19653
|
});
|
|
@@ -19739,6 +19743,10 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
19739
19743
|
};
|
|
19740
19744
|
const tgz = join41(dir, "chat-recall.tgz");
|
|
19741
19745
|
writeFileSync8(tgz, buf);
|
|
19746
|
+
if (deps.stopping?.()) {
|
|
19747
|
+
discardStaging();
|
|
19748
|
+
return { updated: false, reason: STOPPING_REASON };
|
|
19749
|
+
}
|
|
19742
19750
|
try {
|
|
19743
19751
|
deps.install(tgz);
|
|
19744
19752
|
} catch (e) {
|
|
@@ -19753,9 +19761,11 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
19753
19761
|
reason: `install reported success but ${landed} is still on disk (wanted ${plan.to}) \u2014 the package that runs is not the one npm wrote. Reinstall by hand: npm install -g ${plan.url}`
|
|
19754
19762
|
};
|
|
19755
19763
|
}
|
|
19756
|
-
|
|
19757
|
-
|
|
19758
|
-
|
|
19764
|
+
if (!deps.stopping?.()) {
|
|
19765
|
+
try {
|
|
19766
|
+
deps.restart(deps.platform ?? process.platform);
|
|
19767
|
+
} catch {
|
|
19768
|
+
}
|
|
19759
19769
|
}
|
|
19760
19770
|
return { updated: true, reason: `updated ${plan.from} \u2192 ${plan.to}`, from: plan.from, to: plan.to };
|
|
19761
19771
|
}
|
|
@@ -19814,10 +19824,18 @@ function realInstall(tgz) {
|
|
|
19814
19824
|
npmInstall(npm, ["install", "-g", "--prefix", join41(homedir15(), ".local"), tgz]);
|
|
19815
19825
|
}
|
|
19816
19826
|
}
|
|
19827
|
+
function acquireUpdateLock() {
|
|
19828
|
+
return acquireIndexLock({ kind: "auto-update", file: ".update.lock", staleAfterMs: 10 * 6e4 });
|
|
19829
|
+
}
|
|
19830
|
+
function restartCommand(platform2) {
|
|
19831
|
+
if (platform2 === "linux") return { cmd: "systemctl --user --no-block restart chat-recall-watch.service" };
|
|
19832
|
+
if (platform2 === "darwin") return { cmd: "launchctl kickstart -k gui/$(id -u)/com.chat-recall.watch", shell: "/bin/bash" };
|
|
19833
|
+
if (platform2 === "win32") return { cmd: "schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch" };
|
|
19834
|
+
return null;
|
|
19835
|
+
}
|
|
19817
19836
|
function realRestart(platform2) {
|
|
19818
|
-
|
|
19819
|
-
|
|
19820
|
-
else if (platform2 === "win32") execSync2("schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch", { stdio: "ignore" });
|
|
19837
|
+
const c = restartCommand(platform2);
|
|
19838
|
+
if (c) execSync2(c.cmd, { stdio: "ignore", ...c.shell ? { shell: c.shell } : {} });
|
|
19821
19839
|
}
|
|
19822
19840
|
function updateStatePath() {
|
|
19823
19841
|
const dir = process.env.CHAT_RECALL_DATA_DIR || join41(homedir15(), ".chat-recall");
|
|
@@ -19850,6 +19868,9 @@ function noteUpdateFailure(target) {
|
|
|
19850
19868
|
function clearUpdateFailures() {
|
|
19851
19869
|
writeUpdateState({});
|
|
19852
19870
|
}
|
|
19871
|
+
function stopAutoUpdates() {
|
|
19872
|
+
stopRequested = true;
|
|
19873
|
+
}
|
|
19853
19874
|
async function runAutoUpdate(base3, authHeaders, ownVersion3, deps) {
|
|
19854
19875
|
let caps;
|
|
19855
19876
|
try {
|
|
@@ -19876,12 +19897,28 @@ async function runAutoUpdate(base3, authHeaders, ownVersion3, deps) {
|
|
|
19876
19897
|
if (target && hasGivenUpOn(target)) {
|
|
19877
19898
|
return { updated: false, reason: `gave up installing ${plan.to} after ${GIVE_UP_AFTER} failed attempts \u2014 run \`npm install -g chat-recall\` by hand` };
|
|
19878
19899
|
}
|
|
19879
|
-
const
|
|
19880
|
-
|
|
19881
|
-
|
|
19882
|
-
|
|
19883
|
-
|
|
19884
|
-
|
|
19900
|
+
const stopping = deps?.stopping ?? (() => stopRequested);
|
|
19901
|
+
if (stopping()) return { updated: false, reason: STOPPING_REASON };
|
|
19902
|
+
const lock = (deps?.acquireLock ?? acquireUpdateLock)();
|
|
19903
|
+
if (!lock) return { updated: false, reason: LOCKED_REASON };
|
|
19904
|
+
let result;
|
|
19905
|
+
try {
|
|
19906
|
+
const onDisk = (deps?.onDisk ?? installedVersion)();
|
|
19907
|
+
if (onDisk && plan.to && compareVersions(onDisk, plan.to) >= 0) {
|
|
19908
|
+
return { updated: false, reason: `already current: ${onDisk} is on disk` };
|
|
19909
|
+
}
|
|
19910
|
+
result = await executeAutoUpdate(plan, {
|
|
19911
|
+
download: deps?.download ?? realDownload,
|
|
19912
|
+
install: deps?.install ?? realInstall,
|
|
19913
|
+
restart: deps?.restart ?? realRestart,
|
|
19914
|
+
platform: deps?.platform,
|
|
19915
|
+
verify: deps?.verify,
|
|
19916
|
+
stopping
|
|
19917
|
+
});
|
|
19918
|
+
} finally {
|
|
19919
|
+
lock.release();
|
|
19920
|
+
}
|
|
19921
|
+
if (result.reason === STOPPING_REASON) return result;
|
|
19885
19922
|
if (!result.updated) {
|
|
19886
19923
|
const failures = target ? noteUpdateFailure(target) : 1;
|
|
19887
19924
|
if (failures <= GIVE_UP_AFTER) {
|
|
@@ -19897,14 +19934,18 @@ async function runAutoUpdate(base3, authHeaders, ownVersion3, deps) {
|
|
|
19897
19934
|
}
|
|
19898
19935
|
return result;
|
|
19899
19936
|
}
|
|
19900
|
-
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip;
|
|
19937
|
+
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip, STOPPING_REASON, LOCKED_REASON, stopRequested;
|
|
19901
19938
|
var init_auto_update = __esm({
|
|
19902
19939
|
"src/auto-update.ts"() {
|
|
19903
19940
|
"use strict";
|
|
19904
19941
|
init_http();
|
|
19942
|
+
init_index_lock();
|
|
19905
19943
|
tarballUrl = (base3, version2) => `${base3.replace(/\/+$/, "")}/install/${version2 ? `chat-recall-${version2}.tgz` : "chat-recall.tgz"}`;
|
|
19906
19944
|
GIVE_UP_AFTER = 3;
|
|
19907
19945
|
reportedStandingSkip = /* @__PURE__ */ new Set();
|
|
19946
|
+
STOPPING_REASON = "not installed: this process is shutting down";
|
|
19947
|
+
LOCKED_REASON = "another process is installing an update";
|
|
19948
|
+
stopRequested = false;
|
|
19908
19949
|
}
|
|
19909
19950
|
});
|
|
19910
19951
|
|
|
@@ -21603,7 +21644,7 @@ var init_sync_client = __esm({
|
|
|
21603
21644
|
ownVersion = JSON.parse(readFileSync35(join42(dir, "../package.json"), "utf-8")).version || ownVersion;
|
|
21604
21645
|
} catch {
|
|
21605
21646
|
try {
|
|
21606
|
-
if (true) ownVersion = "0.7.
|
|
21647
|
+
if (true) ownVersion = "0.7.11";
|
|
21607
21648
|
} catch {
|
|
21608
21649
|
}
|
|
21609
21650
|
}
|
|
@@ -25765,7 +25806,7 @@ var init_intent_drain = __esm({
|
|
|
25765
25806
|
ownVersion2 = JSON.parse(readFileSync45(join56(dir, "../package.json"), "utf-8")).version || ownVersion2;
|
|
25766
25807
|
} catch {
|
|
25767
25808
|
try {
|
|
25768
|
-
if (true) ownVersion2 = "0.7.
|
|
25809
|
+
if (true) ownVersion2 = "0.7.11";
|
|
25769
25810
|
} catch {
|
|
25770
25811
|
}
|
|
25771
25812
|
}
|
package/dist/mcp-relay.js
CHANGED
|
@@ -192,7 +192,7 @@ function bridge(input, output, sock, exit, opts = {}) {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
// src/mcp-relay.ts
|
|
195
|
-
var VERSION = true ? "0.7.
|
|
195
|
+
var VERSION = true ? "0.7.11" : "0.0.0";
|
|
196
196
|
var SERVER_URL = new URL("./mcp.js", import.meta.url);
|
|
197
197
|
var SERVER_PATH = fileURLToPath(SERVER_URL);
|
|
198
198
|
var START_TIMEOUT_MS = 15e3;
|
package/dist/mcp.js
CHANGED
|
@@ -19564,7 +19564,7 @@ var init_sync_fields = __esm({
|
|
|
19564
19564
|
import { existsSync as existsSync43, mkdirSync as mkdirSync11, openSync as openSync9, writeFileSync as writeFileSync8, readFileSync as readFileSync35, rmSync as rmSync4, statSync as statSync40, closeSync as closeSync9 } from "fs";
|
|
19565
19565
|
import { dirname as dirname18, join as join47 } from "path";
|
|
19566
19566
|
function acquireIndexLock(opts) {
|
|
19567
|
-
const lockPath = lockFilePath();
|
|
19567
|
+
const lockPath = lockFilePath(opts.file);
|
|
19568
19568
|
mkdirSync11(dirname18(lockPath), { recursive: true });
|
|
19569
19569
|
if (existsSync43(lockPath)) {
|
|
19570
19570
|
if (!stealStaleLock(lockPath, opts.staleAfterMs ?? 10 * 6e4)) {
|
|
@@ -19606,8 +19606,8 @@ function acquireIndexLock(opts) {
|
|
|
19606
19606
|
}
|
|
19607
19607
|
};
|
|
19608
19608
|
}
|
|
19609
|
-
function lockFilePath() {
|
|
19610
|
-
return join47(getIndexDir(),
|
|
19609
|
+
function lockFilePath(file = ".compact.lock") {
|
|
19610
|
+
return join47(getIndexDir(), file);
|
|
19611
19611
|
}
|
|
19612
19612
|
function stealStaleLock(lockPath, staleAfterMs) {
|
|
19613
19613
|
try {
|
|
@@ -19677,7 +19677,7 @@ var init_http = __esm({
|
|
|
19677
19677
|
CLI_VERSION = JSON.parse(readFileSync36(new URL("../package.json", import.meta.url), "utf-8")).version || CLI_VERSION;
|
|
19678
19678
|
} catch {
|
|
19679
19679
|
try {
|
|
19680
|
-
if (true) CLI_VERSION = "0.7.
|
|
19680
|
+
if (true) CLI_VERSION = "0.7.11";
|
|
19681
19681
|
} catch {
|
|
19682
19682
|
}
|
|
19683
19683
|
}
|
|
@@ -20175,7 +20175,7 @@ var init_telemetry = __esm({
|
|
|
20175
20175
|
init_sync_client();
|
|
20176
20176
|
cliVersion2 = () => {
|
|
20177
20177
|
try {
|
|
20178
|
-
return true ? "0.7.
|
|
20178
|
+
return true ? "0.7.11" : "dev";
|
|
20179
20179
|
} catch {
|
|
20180
20180
|
return "dev";
|
|
20181
20181
|
}
|
|
@@ -20325,6 +20325,8 @@ var init_server_probe = __esm({
|
|
|
20325
20325
|
// src/auto-update.ts
|
|
20326
20326
|
var auto_update_exports = {};
|
|
20327
20327
|
__export(auto_update_exports, {
|
|
20328
|
+
LOCKED_REASON: () => LOCKED_REASON,
|
|
20329
|
+
STOPPING_REASON: () => STOPPING_REASON,
|
|
20328
20330
|
clearUpdateFailures: () => clearUpdateFailures,
|
|
20329
20331
|
compareVersions: () => compareVersions,
|
|
20330
20332
|
executeAutoUpdate: () => executeAutoUpdate,
|
|
@@ -20336,8 +20338,10 @@ __export(auto_update_exports, {
|
|
|
20336
20338
|
planAutoUpdate: () => planAutoUpdate,
|
|
20337
20339
|
readUpdateState: () => readUpdateState,
|
|
20338
20340
|
resolveNpm: () => resolveNpm,
|
|
20341
|
+
restartCommand: () => restartCommand,
|
|
20339
20342
|
runAutoUpdate: () => runAutoUpdate,
|
|
20340
20343
|
runningPrefix: () => runningPrefix,
|
|
20344
|
+
stopAutoUpdates: () => stopAutoUpdates,
|
|
20341
20345
|
sweepStaleStaging: () => sweepStaleStaging,
|
|
20342
20346
|
tarballUrl: () => tarballUrl
|
|
20343
20347
|
});
|
|
@@ -20433,6 +20437,10 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
20433
20437
|
};
|
|
20434
20438
|
const tgz = join48(dir, "chat-recall.tgz");
|
|
20435
20439
|
writeFileSync9(tgz, buf);
|
|
20440
|
+
if (deps.stopping?.()) {
|
|
20441
|
+
discardStaging();
|
|
20442
|
+
return { updated: false, reason: STOPPING_REASON };
|
|
20443
|
+
}
|
|
20436
20444
|
try {
|
|
20437
20445
|
deps.install(tgz);
|
|
20438
20446
|
} catch (e) {
|
|
@@ -20447,9 +20455,11 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
20447
20455
|
reason: `install reported success but ${landed} is still on disk (wanted ${plan.to}) \u2014 the package that runs is not the one npm wrote. Reinstall by hand: npm install -g ${plan.url}`
|
|
20448
20456
|
};
|
|
20449
20457
|
}
|
|
20450
|
-
|
|
20451
|
-
|
|
20452
|
-
|
|
20458
|
+
if (!deps.stopping?.()) {
|
|
20459
|
+
try {
|
|
20460
|
+
deps.restart(deps.platform ?? process.platform);
|
|
20461
|
+
} catch {
|
|
20462
|
+
}
|
|
20453
20463
|
}
|
|
20454
20464
|
return { updated: true, reason: `updated ${plan.from} \u2192 ${plan.to}`, from: plan.from, to: plan.to };
|
|
20455
20465
|
}
|
|
@@ -20508,10 +20518,18 @@ function realInstall(tgz) {
|
|
|
20508
20518
|
npmInstall(npm, ["install", "-g", "--prefix", join48(homedir17(), ".local"), tgz]);
|
|
20509
20519
|
}
|
|
20510
20520
|
}
|
|
20521
|
+
function acquireUpdateLock() {
|
|
20522
|
+
return acquireIndexLock({ kind: "auto-update", file: ".update.lock", staleAfterMs: 10 * 6e4 });
|
|
20523
|
+
}
|
|
20524
|
+
function restartCommand(platform2) {
|
|
20525
|
+
if (platform2 === "linux") return { cmd: "systemctl --user --no-block restart chat-recall-watch.service" };
|
|
20526
|
+
if (platform2 === "darwin") return { cmd: "launchctl kickstart -k gui/$(id -u)/com.chat-recall.watch", shell: "/bin/bash" };
|
|
20527
|
+
if (platform2 === "win32") return { cmd: "schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch" };
|
|
20528
|
+
return null;
|
|
20529
|
+
}
|
|
20511
20530
|
function realRestart(platform2) {
|
|
20512
|
-
|
|
20513
|
-
|
|
20514
|
-
else if (platform2 === "win32") execSync4("schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch", { stdio: "ignore" });
|
|
20531
|
+
const c = restartCommand(platform2);
|
|
20532
|
+
if (c) execSync4(c.cmd, { stdio: "ignore", ...c.shell ? { shell: c.shell } : {} });
|
|
20515
20533
|
}
|
|
20516
20534
|
function updateStatePath() {
|
|
20517
20535
|
const dir = process.env.CHAT_RECALL_DATA_DIR || join48(homedir17(), ".chat-recall");
|
|
@@ -20544,6 +20562,9 @@ function noteUpdateFailure(target) {
|
|
|
20544
20562
|
function clearUpdateFailures() {
|
|
20545
20563
|
writeUpdateState({});
|
|
20546
20564
|
}
|
|
20565
|
+
function stopAutoUpdates() {
|
|
20566
|
+
stopRequested = true;
|
|
20567
|
+
}
|
|
20547
20568
|
async function runAutoUpdate(base, authHeaders, ownVersion2, deps) {
|
|
20548
20569
|
let caps;
|
|
20549
20570
|
try {
|
|
@@ -20570,12 +20591,28 @@ async function runAutoUpdate(base, authHeaders, ownVersion2, deps) {
|
|
|
20570
20591
|
if (target && hasGivenUpOn(target)) {
|
|
20571
20592
|
return { updated: false, reason: `gave up installing ${plan.to} after ${GIVE_UP_AFTER} failed attempts \u2014 run \`npm install -g chat-recall\` by hand` };
|
|
20572
20593
|
}
|
|
20573
|
-
const
|
|
20574
|
-
|
|
20575
|
-
|
|
20576
|
-
|
|
20577
|
-
|
|
20578
|
-
|
|
20594
|
+
const stopping = deps?.stopping ?? (() => stopRequested);
|
|
20595
|
+
if (stopping()) return { updated: false, reason: STOPPING_REASON };
|
|
20596
|
+
const lock = (deps?.acquireLock ?? acquireUpdateLock)();
|
|
20597
|
+
if (!lock) return { updated: false, reason: LOCKED_REASON };
|
|
20598
|
+
let result;
|
|
20599
|
+
try {
|
|
20600
|
+
const onDisk = (deps?.onDisk ?? installedVersion)();
|
|
20601
|
+
if (onDisk && plan.to && compareVersions(onDisk, plan.to) >= 0) {
|
|
20602
|
+
return { updated: false, reason: `already current: ${onDisk} is on disk` };
|
|
20603
|
+
}
|
|
20604
|
+
result = await executeAutoUpdate(plan, {
|
|
20605
|
+
download: deps?.download ?? realDownload,
|
|
20606
|
+
install: deps?.install ?? realInstall,
|
|
20607
|
+
restart: deps?.restart ?? realRestart,
|
|
20608
|
+
platform: deps?.platform,
|
|
20609
|
+
verify: deps?.verify,
|
|
20610
|
+
stopping
|
|
20611
|
+
});
|
|
20612
|
+
} finally {
|
|
20613
|
+
lock.release();
|
|
20614
|
+
}
|
|
20615
|
+
if (result.reason === STOPPING_REASON) return result;
|
|
20579
20616
|
if (!result.updated) {
|
|
20580
20617
|
const failures = target ? noteUpdateFailure(target) : 1;
|
|
20581
20618
|
if (failures <= GIVE_UP_AFTER) {
|
|
@@ -20591,14 +20628,18 @@ async function runAutoUpdate(base, authHeaders, ownVersion2, deps) {
|
|
|
20591
20628
|
}
|
|
20592
20629
|
return result;
|
|
20593
20630
|
}
|
|
20594
|
-
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip;
|
|
20631
|
+
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip, STOPPING_REASON, LOCKED_REASON, stopRequested;
|
|
20595
20632
|
var init_auto_update = __esm({
|
|
20596
20633
|
"src/auto-update.ts"() {
|
|
20597
20634
|
"use strict";
|
|
20598
20635
|
init_http();
|
|
20636
|
+
init_index_lock();
|
|
20599
20637
|
tarballUrl = (base, version2) => `${base.replace(/\/+$/, "")}/install/${version2 ? `chat-recall-${version2}.tgz` : "chat-recall.tgz"}`;
|
|
20600
20638
|
GIVE_UP_AFTER = 3;
|
|
20601
20639
|
reportedStandingSkip = /* @__PURE__ */ new Set();
|
|
20640
|
+
STOPPING_REASON = "not installed: this process is shutting down";
|
|
20641
|
+
LOCKED_REASON = "another process is installing an update";
|
|
20642
|
+
stopRequested = false;
|
|
20602
20643
|
}
|
|
20603
20644
|
});
|
|
20604
20645
|
|
|
@@ -22297,7 +22338,7 @@ var init_sync_client = __esm({
|
|
|
22297
22338
|
ownVersion = JSON.parse(readFileSync38(join49(dir, "../package.json"), "utf-8")).version || ownVersion;
|
|
22298
22339
|
} catch {
|
|
22299
22340
|
try {
|
|
22300
|
-
if (true) ownVersion = "0.7.
|
|
22341
|
+
if (true) ownVersion = "0.7.11";
|
|
22301
22342
|
} catch {
|
|
22302
22343
|
}
|
|
22303
22344
|
}
|
|
@@ -29246,7 +29287,7 @@ function installCrashGuards() {
|
|
|
29246
29287
|
reportClientEvent2("mcp_crash", { message: err.stack || err.message });
|
|
29247
29288
|
});
|
|
29248
29289
|
}
|
|
29249
|
-
var RELAY_VERSION = true ? "0.7.
|
|
29290
|
+
var RELAY_VERSION = true ? "0.7.11" : "0.0.0";
|
|
29250
29291
|
function daemonIdleSecs() {
|
|
29251
29292
|
const raw = process.env.CHAT_RECALL_DAEMON_IDLE_SECS;
|
|
29252
29293
|
if (raw === void 0) return 900;
|
package/dist/watch.js
CHANGED
|
@@ -18202,7 +18202,7 @@ var init_sync_fields = __esm({
|
|
|
18202
18202
|
import { existsSync as existsSync39, mkdirSync as mkdirSync8, openSync as openSync8, writeFileSync as writeFileSync7, readFileSync as readFileSync31, rmSync as rmSync4, statSync as statSync35, closeSync as closeSync8 } from "fs";
|
|
18203
18203
|
import { dirname as dirname17, join as join40 } from "path";
|
|
18204
18204
|
function acquireIndexLock(opts) {
|
|
18205
|
-
const lockPath = lockFilePath();
|
|
18205
|
+
const lockPath = lockFilePath(opts.file);
|
|
18206
18206
|
mkdirSync8(dirname17(lockPath), { recursive: true });
|
|
18207
18207
|
if (existsSync39(lockPath)) {
|
|
18208
18208
|
if (!stealStaleLock(lockPath, opts.staleAfterMs ?? 10 * 6e4)) {
|
|
@@ -18244,8 +18244,8 @@ function acquireIndexLock(opts) {
|
|
|
18244
18244
|
}
|
|
18245
18245
|
};
|
|
18246
18246
|
}
|
|
18247
|
-
function lockFilePath() {
|
|
18248
|
-
return join40(getIndexDir(),
|
|
18247
|
+
function lockFilePath(file = ".compact.lock") {
|
|
18248
|
+
return join40(getIndexDir(), file);
|
|
18249
18249
|
}
|
|
18250
18250
|
function stealStaleLock(lockPath, staleAfterMs) {
|
|
18251
18251
|
try {
|
|
@@ -18312,7 +18312,7 @@ var init_http = __esm({
|
|
|
18312
18312
|
CLI_VERSION = JSON.parse(readFileSync32(new URL("../package.json", import.meta.url), "utf-8")).version || CLI_VERSION;
|
|
18313
18313
|
} catch {
|
|
18314
18314
|
try {
|
|
18315
|
-
if (true) CLI_VERSION = "0.7.
|
|
18315
|
+
if (true) CLI_VERSION = "0.7.11";
|
|
18316
18316
|
} catch {
|
|
18317
18317
|
}
|
|
18318
18318
|
}
|
|
@@ -18806,7 +18806,7 @@ var init_telemetry = __esm({
|
|
|
18806
18806
|
init_sync_client();
|
|
18807
18807
|
cliVersion = () => {
|
|
18808
18808
|
try {
|
|
18809
|
-
return true ? "0.7.
|
|
18809
|
+
return true ? "0.7.11" : "dev";
|
|
18810
18810
|
} catch {
|
|
18811
18811
|
return "dev";
|
|
18812
18812
|
}
|
|
@@ -19021,6 +19021,8 @@ var init_client_events = __esm({
|
|
|
19021
19021
|
// src/auto-update.ts
|
|
19022
19022
|
var auto_update_exports = {};
|
|
19023
19023
|
__export(auto_update_exports, {
|
|
19024
|
+
LOCKED_REASON: () => LOCKED_REASON,
|
|
19025
|
+
STOPPING_REASON: () => STOPPING_REASON,
|
|
19024
19026
|
clearUpdateFailures: () => clearUpdateFailures,
|
|
19025
19027
|
compareVersions: () => compareVersions,
|
|
19026
19028
|
executeAutoUpdate: () => executeAutoUpdate,
|
|
@@ -19032,8 +19034,10 @@ __export(auto_update_exports, {
|
|
|
19032
19034
|
planAutoUpdate: () => planAutoUpdate,
|
|
19033
19035
|
readUpdateState: () => readUpdateState,
|
|
19034
19036
|
resolveNpm: () => resolveNpm,
|
|
19037
|
+
restartCommand: () => restartCommand,
|
|
19035
19038
|
runAutoUpdate: () => runAutoUpdate,
|
|
19036
19039
|
runningPrefix: () => runningPrefix,
|
|
19040
|
+
stopAutoUpdates: () => stopAutoUpdates,
|
|
19037
19041
|
sweepStaleStaging: () => sweepStaleStaging,
|
|
19038
19042
|
tarballUrl: () => tarballUrl
|
|
19039
19043
|
});
|
|
@@ -19129,6 +19133,10 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
19129
19133
|
};
|
|
19130
19134
|
const tgz = join41(dir, "chat-recall.tgz");
|
|
19131
19135
|
writeFileSync8(tgz, buf);
|
|
19136
|
+
if (deps.stopping?.()) {
|
|
19137
|
+
discardStaging();
|
|
19138
|
+
return { updated: false, reason: STOPPING_REASON };
|
|
19139
|
+
}
|
|
19132
19140
|
try {
|
|
19133
19141
|
deps.install(tgz);
|
|
19134
19142
|
} catch (e) {
|
|
@@ -19143,9 +19151,11 @@ async function executeAutoUpdate(plan, deps) {
|
|
|
19143
19151
|
reason: `install reported success but ${landed} is still on disk (wanted ${plan.to}) \u2014 the package that runs is not the one npm wrote. Reinstall by hand: npm install -g ${plan.url}`
|
|
19144
19152
|
};
|
|
19145
19153
|
}
|
|
19146
|
-
|
|
19147
|
-
|
|
19148
|
-
|
|
19154
|
+
if (!deps.stopping?.()) {
|
|
19155
|
+
try {
|
|
19156
|
+
deps.restart(deps.platform ?? process.platform);
|
|
19157
|
+
} catch {
|
|
19158
|
+
}
|
|
19149
19159
|
}
|
|
19150
19160
|
return { updated: true, reason: `updated ${plan.from} \u2192 ${plan.to}`, from: plan.from, to: plan.to };
|
|
19151
19161
|
}
|
|
@@ -19204,10 +19214,18 @@ function realInstall(tgz) {
|
|
|
19204
19214
|
npmInstall(npm, ["install", "-g", "--prefix", join41(homedir15(), ".local"), tgz]);
|
|
19205
19215
|
}
|
|
19206
19216
|
}
|
|
19217
|
+
function acquireUpdateLock() {
|
|
19218
|
+
return acquireIndexLock({ kind: "auto-update", file: ".update.lock", staleAfterMs: 10 * 6e4 });
|
|
19219
|
+
}
|
|
19220
|
+
function restartCommand(platform2) {
|
|
19221
|
+
if (platform2 === "linux") return { cmd: "systemctl --user --no-block restart chat-recall-watch.service" };
|
|
19222
|
+
if (platform2 === "darwin") return { cmd: "launchctl kickstart -k gui/$(id -u)/com.chat-recall.watch", shell: "/bin/bash" };
|
|
19223
|
+
if (platform2 === "win32") return { cmd: "schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch" };
|
|
19224
|
+
return null;
|
|
19225
|
+
}
|
|
19207
19226
|
function realRestart(platform2) {
|
|
19208
|
-
|
|
19209
|
-
|
|
19210
|
-
else if (platform2 === "win32") execSync2("schtasks /End /TN chat-recall-watch & schtasks /Run /TN chat-recall-watch", { stdio: "ignore" });
|
|
19227
|
+
const c = restartCommand(platform2);
|
|
19228
|
+
if (c) execSync2(c.cmd, { stdio: "ignore", ...c.shell ? { shell: c.shell } : {} });
|
|
19211
19229
|
}
|
|
19212
19230
|
function updateStatePath() {
|
|
19213
19231
|
const dir = process.env.CHAT_RECALL_DATA_DIR || join41(homedir15(), ".chat-recall");
|
|
@@ -19240,6 +19258,9 @@ function noteUpdateFailure(target) {
|
|
|
19240
19258
|
function clearUpdateFailures() {
|
|
19241
19259
|
writeUpdateState({});
|
|
19242
19260
|
}
|
|
19261
|
+
function stopAutoUpdates() {
|
|
19262
|
+
stopRequested = true;
|
|
19263
|
+
}
|
|
19243
19264
|
async function runAutoUpdate(base2, authHeaders, ownVersion3, deps) {
|
|
19244
19265
|
let caps;
|
|
19245
19266
|
try {
|
|
@@ -19266,12 +19287,28 @@ async function runAutoUpdate(base2, authHeaders, ownVersion3, deps) {
|
|
|
19266
19287
|
if (target && hasGivenUpOn(target)) {
|
|
19267
19288
|
return { updated: false, reason: `gave up installing ${plan.to} after ${GIVE_UP_AFTER} failed attempts \u2014 run \`npm install -g chat-recall\` by hand` };
|
|
19268
19289
|
}
|
|
19269
|
-
const
|
|
19270
|
-
|
|
19271
|
-
|
|
19272
|
-
|
|
19273
|
-
|
|
19274
|
-
|
|
19290
|
+
const stopping = deps?.stopping ?? (() => stopRequested);
|
|
19291
|
+
if (stopping()) return { updated: false, reason: STOPPING_REASON };
|
|
19292
|
+
const lock = (deps?.acquireLock ?? acquireUpdateLock)();
|
|
19293
|
+
if (!lock) return { updated: false, reason: LOCKED_REASON };
|
|
19294
|
+
let result;
|
|
19295
|
+
try {
|
|
19296
|
+
const onDisk = (deps?.onDisk ?? installedVersion)();
|
|
19297
|
+
if (onDisk && plan.to && compareVersions(onDisk, plan.to) >= 0) {
|
|
19298
|
+
return { updated: false, reason: `already current: ${onDisk} is on disk` };
|
|
19299
|
+
}
|
|
19300
|
+
result = await executeAutoUpdate(plan, {
|
|
19301
|
+
download: deps?.download ?? realDownload,
|
|
19302
|
+
install: deps?.install ?? realInstall,
|
|
19303
|
+
restart: deps?.restart ?? realRestart,
|
|
19304
|
+
platform: deps?.platform,
|
|
19305
|
+
verify: deps?.verify,
|
|
19306
|
+
stopping
|
|
19307
|
+
});
|
|
19308
|
+
} finally {
|
|
19309
|
+
lock.release();
|
|
19310
|
+
}
|
|
19311
|
+
if (result.reason === STOPPING_REASON) return result;
|
|
19275
19312
|
if (!result.updated) {
|
|
19276
19313
|
const failures = target ? noteUpdateFailure(target) : 1;
|
|
19277
19314
|
if (failures <= GIVE_UP_AFTER) {
|
|
@@ -19287,14 +19324,18 @@ async function runAutoUpdate(base2, authHeaders, ownVersion3, deps) {
|
|
|
19287
19324
|
}
|
|
19288
19325
|
return result;
|
|
19289
19326
|
}
|
|
19290
|
-
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip;
|
|
19327
|
+
var tarballUrl, GIVE_UP_AFTER, reportedStandingSkip, STOPPING_REASON, LOCKED_REASON, stopRequested;
|
|
19291
19328
|
var init_auto_update = __esm({
|
|
19292
19329
|
"src/auto-update.ts"() {
|
|
19293
19330
|
"use strict";
|
|
19294
19331
|
init_http();
|
|
19332
|
+
init_index_lock();
|
|
19295
19333
|
tarballUrl = (base2, version) => `${base2.replace(/\/+$/, "")}/install/${version ? `chat-recall-${version}.tgz` : "chat-recall.tgz"}`;
|
|
19296
19334
|
GIVE_UP_AFTER = 3;
|
|
19297
19335
|
reportedStandingSkip = /* @__PURE__ */ new Set();
|
|
19336
|
+
STOPPING_REASON = "not installed: this process is shutting down";
|
|
19337
|
+
LOCKED_REASON = "another process is installing an update";
|
|
19338
|
+
stopRequested = false;
|
|
19298
19339
|
}
|
|
19299
19340
|
});
|
|
19300
19341
|
|
|
@@ -20898,7 +20939,7 @@ var init_sync_client = __esm({
|
|
|
20898
20939
|
ownVersion = JSON.parse(readFileSync35(join42(dir, "../package.json"), "utf-8")).version || ownVersion;
|
|
20899
20940
|
} catch {
|
|
20900
20941
|
try {
|
|
20901
|
-
if (true) ownVersion = "0.7.
|
|
20942
|
+
if (true) ownVersion = "0.7.11";
|
|
20902
20943
|
} catch {
|
|
20903
20944
|
}
|
|
20904
20945
|
}
|
|
@@ -24035,7 +24076,7 @@ try {
|
|
|
24035
24076
|
ownVersion2 = JSON.parse(readFileSync39(join48(dir, "../package.json"), "utf-8")).version || ownVersion2;
|
|
24036
24077
|
} catch {
|
|
24037
24078
|
try {
|
|
24038
|
-
if (true) ownVersion2 = "0.7.
|
|
24079
|
+
if (true) ownVersion2 = "0.7.11";
|
|
24039
24080
|
} catch {
|
|
24040
24081
|
}
|
|
24041
24082
|
}
|
|
@@ -24420,7 +24461,7 @@ async function runCollectorMigration(opts) {
|
|
|
24420
24461
|
init_sync_ledger();
|
|
24421
24462
|
init_collector_health();
|
|
24422
24463
|
import { existsSync as existsSync50, readFileSync as readFileSync45, statSync as statSync45 } from "fs";
|
|
24423
|
-
var CLI_VERSION3 = true ? "0.7.
|
|
24464
|
+
var CLI_VERSION3 = true ? "0.7.11" : "0.0.0";
|
|
24424
24465
|
var DEBOUNCE_MS = 5e3;
|
|
24425
24466
|
var PLANS_DIR = claudeBackend.plansDir();
|
|
24426
24467
|
var TASKS_DIR = claudeBackend.tasksDir();
|
|
@@ -24976,6 +25017,7 @@ if (CODE_INDEX_ON) setTimeout(() => {
|
|
|
24976
25017
|
}, 15e4);
|
|
24977
25018
|
function shutdown(signal) {
|
|
24978
25019
|
daemonLog.info(`Received ${signal}, shutting down...`);
|
|
25020
|
+
stopAutoUpdates();
|
|
24979
25021
|
try {
|
|
24980
25022
|
flushLedger();
|
|
24981
25023
|
} catch (e) {
|