@sumicom/quicksave 0.8.13 → 0.8.14
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/ai/codexAppServer/processManager.d.ts +15 -3
- package/dist/ai/codexAppServer/processManager.d.ts.map +1 -1
- package/dist/ai/codexAppServer/processManager.js +126 -11
- package/dist/ai/codexAppServer/processManager.js.map +1 -1
- package/dist/ai/codexLogin.d.ts.map +1 -1
- package/dist/ai/codexLogin.js +4 -2
- package/dist/ai/codexLogin.js.map +1 -1
- package/dist/handlers/messageHandler.js +1 -1
- package/dist/index.js +2 -2
- package/dist/service/ipcClient.js +1 -1
- package/dist/service/run.js +1 -1
- package/dist/service/types.js +1 -1
- package/package.json +3 -3
|
@@ -40,11 +40,23 @@ export interface AppServerInitOptions {
|
|
|
40
40
|
clientInfo: ClientInfo;
|
|
41
41
|
capabilities?: InitializeCapabilities | null;
|
|
42
42
|
}
|
|
43
|
+
export declare function _resetCodexBinCache(): void;
|
|
43
44
|
/**
|
|
44
|
-
*
|
|
45
|
-
* PATH
|
|
45
|
+
* Resolve the Codex CLI path once. Background daemons, especially systemd
|
|
46
|
+
* user units, often start with a smaller PATH than the user's shell.
|
|
46
47
|
*/
|
|
47
|
-
export declare function
|
|
48
|
+
export declare function getCodexBin(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Build the environment used for Codex CLI child processes. When Codex is
|
|
51
|
+
* installed under nvm/npm, the shim may rely on `env node`; prepend both the
|
|
52
|
+
* resolved Codex bin directory and this daemon's Node directory.
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildCodexCliEnv(env?: Record<string, string | undefined>, codexBin?: string): Record<string, string>;
|
|
55
|
+
/**
|
|
56
|
+
* Detect the installed codex CLI version. Throws if the resolved CLI cannot
|
|
57
|
+
* be executed.
|
|
58
|
+
*/
|
|
59
|
+
export declare function detectCodexVersion(codexBin?: string, env?: Record<string, string | undefined>): Promise<string>;
|
|
48
60
|
/**
|
|
49
61
|
* Compare the running codex CLI version against the schema pin and warn
|
|
50
62
|
* if they disagree on minor or major. Patch-level diffs are silent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processManager.d.ts","sourceRoot":"","sources":["../../../src/ai/codexAppServer/processManager.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"processManager.d.ts","sourceRoot":"","sources":["../../../src/ai/codexAppServer/processManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAK3F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAM3B,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;8CAC0C;IAC1C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACrE;AAED,MAAM,WAAW,eAAe;IAC9B;;;4BAGwB;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB;oCACgC;IAChC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB;mEAC+D;IAC/D,KAAK,EAAE,YAAY,CAAC;IACpB;;qBAEiB;IACjB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAwBpC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,QAAQ,SAAgB,GACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,SAAgB,EACxB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACpC,MAAM,GAAE,MAAoC,GAC3C,IAAI,CAaN;AAQD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,eAAe,CAAC,CAuF1B"}
|
|
@@ -1,23 +1,74 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 King Young Technology
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
|
-
import { spawn } from 'node:child_process';
|
|
4
|
-
import {
|
|
3
|
+
import { execFile, spawn } from 'node:child_process';
|
|
4
|
+
import { accessSync, constants, readdirSync } from 'node:fs';
|
|
5
|
+
import { delimiter, dirname, isAbsolute, join } from 'node:path';
|
|
5
6
|
import { promisify } from 'node:util';
|
|
6
7
|
import { CodexRpcClient } from './rpcClient.js';
|
|
7
8
|
import { StdioTransport } from './stdioTransport.js';
|
|
8
9
|
import { CODEX_SCHEMA_PINNED_VERSION } from './version.js';
|
|
9
10
|
const execFileAsync = promisify(execFile);
|
|
11
|
+
let _codexBin;
|
|
12
|
+
export function _resetCodexBinCache() {
|
|
13
|
+
_codexBin = undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the Codex CLI path once. Background daemons, especially systemd
|
|
17
|
+
* user units, often start with a smaller PATH than the user's shell.
|
|
18
|
+
*/
|
|
19
|
+
export function getCodexBin() {
|
|
20
|
+
if (_codexBin)
|
|
21
|
+
return _codexBin;
|
|
22
|
+
const explicit = process.env.QUICKSAVE_CODEX_BIN?.trim();
|
|
23
|
+
if (explicit) {
|
|
24
|
+
_codexBin = explicit;
|
|
25
|
+
return _codexBin;
|
|
26
|
+
}
|
|
27
|
+
const fromPath = resolveFromPath('codex', process.env);
|
|
28
|
+
if (fromPath) {
|
|
29
|
+
_codexBin = fromPath;
|
|
30
|
+
return _codexBin;
|
|
31
|
+
}
|
|
32
|
+
for (const candidate of commonCodexCandidates()) {
|
|
33
|
+
if (isExecutable(candidate)) {
|
|
34
|
+
_codexBin = candidate;
|
|
35
|
+
return _codexBin;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
_codexBin = 'codex';
|
|
39
|
+
return _codexBin;
|
|
40
|
+
}
|
|
10
41
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
42
|
+
* Build the environment used for Codex CLI child processes. When Codex is
|
|
43
|
+
* installed under nvm/npm, the shim may rely on `env node`; prepend both the
|
|
44
|
+
* resolved Codex bin directory and this daemon's Node directory.
|
|
13
45
|
*/
|
|
14
|
-
export
|
|
15
|
-
const
|
|
46
|
+
export function buildCodexCliEnv(env = process.env, codexBin = getCodexBin()) {
|
|
47
|
+
const out = filterUndefined(env);
|
|
48
|
+
const pathKey = findPathKey(out);
|
|
49
|
+
const prepend = [];
|
|
50
|
+
if (isAbsolute(codexBin))
|
|
51
|
+
prepend.push(dirname(codexBin));
|
|
52
|
+
if (isAbsolute(process.execPath))
|
|
53
|
+
prepend.push(dirname(process.execPath));
|
|
54
|
+
out[pathKey] = mergePath(prepend, out[pathKey]);
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Detect the installed codex CLI version. Throws if the resolved CLI cannot
|
|
59
|
+
* be executed.
|
|
60
|
+
*/
|
|
61
|
+
export async function detectCodexVersion(codexBin = getCodexBin(), env = process.env) {
|
|
62
|
+
const { stdout } = await execFileAsync(codexBin, ['--version'], {
|
|
63
|
+
encoding: 'utf8',
|
|
64
|
+
env: buildCodexCliEnv(env, codexBin),
|
|
65
|
+
});
|
|
16
66
|
// Output looks like `codex-cli 0.125.0` (or just `0.125.0` on some
|
|
17
67
|
// builds). Take the last whitespace-separated token.
|
|
18
|
-
const
|
|
68
|
+
const text = stdout.toString();
|
|
69
|
+
const last = text.trim().split(/\s+/).pop() ?? '';
|
|
19
70
|
if (!last)
|
|
20
|
-
throw new Error(`unexpected codex --version output: ${JSON.stringify(
|
|
71
|
+
throw new Error(`unexpected codex --version output: ${JSON.stringify(text)}`);
|
|
21
72
|
return last;
|
|
22
73
|
}
|
|
23
74
|
/**
|
|
@@ -52,11 +103,12 @@ function parseSemver(v) {
|
|
|
52
103
|
*/
|
|
53
104
|
export async function spawnAppServer(init, opts = {}) {
|
|
54
105
|
const log = opts.log ?? { warn: () => { } };
|
|
55
|
-
const codexBin = opts.codexBin ??
|
|
106
|
+
const codexBin = opts.codexBin ?? getCodexBin();
|
|
56
107
|
const args = ['app-server', ...(opts.extraArgs ?? [])];
|
|
108
|
+
const env = buildCodexCliEnv(opts.env ? { ...process.env, ...filterUndefined(opts.env) } : process.env, codexBin);
|
|
57
109
|
let cliVersion = '';
|
|
58
110
|
try {
|
|
59
|
-
cliVersion = await detectCodexVersion(codexBin);
|
|
111
|
+
cliVersion = await detectCodexVersion(codexBin, env);
|
|
60
112
|
checkSchemaVersionCompatibility(cliVersion, log);
|
|
61
113
|
}
|
|
62
114
|
catch (err) {
|
|
@@ -64,7 +116,7 @@ export async function spawnAppServer(init, opts = {}) {
|
|
|
64
116
|
}
|
|
65
117
|
const spawnOpts = {
|
|
66
118
|
cwd: opts.cwd,
|
|
67
|
-
env
|
|
119
|
+
env,
|
|
68
120
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
69
121
|
};
|
|
70
122
|
const child = spawn(codexBin, args, spawnOpts);
|
|
@@ -161,4 +213,67 @@ function filterUndefined(env) {
|
|
|
161
213
|
}
|
|
162
214
|
return out;
|
|
163
215
|
}
|
|
216
|
+
function commonCodexCandidates() {
|
|
217
|
+
const home = process.env.HOME;
|
|
218
|
+
if (!home)
|
|
219
|
+
return ['/usr/local/bin/codex', '/opt/homebrew/bin/codex'];
|
|
220
|
+
const candidates = [
|
|
221
|
+
join(home, '.npm-global', 'bin', 'codex'),
|
|
222
|
+
join(home, '.local', 'bin', 'codex'),
|
|
223
|
+
join(home, '.volta', 'bin', 'codex'),
|
|
224
|
+
join(home, '.bun', 'bin', 'codex'),
|
|
225
|
+
'/usr/local/bin/codex',
|
|
226
|
+
'/opt/homebrew/bin/codex',
|
|
227
|
+
];
|
|
228
|
+
appendVersionedNodeBins(candidates, join(home, '.nvm', 'versions', 'node'), (root, ver) => join(root, ver, 'bin', 'codex'));
|
|
229
|
+
appendVersionedNodeBins(candidates, join(home, '.local', 'share', 'fnm', 'node-versions'), (root, ver) => join(root, ver, 'installation', 'bin', 'codex'));
|
|
230
|
+
return candidates;
|
|
231
|
+
}
|
|
232
|
+
function appendVersionedNodeBins(candidates, root, makePath) {
|
|
233
|
+
try {
|
|
234
|
+
for (const version of readdirSync(root)) {
|
|
235
|
+
candidates.push(makePath(root, version));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
// Missing version manager directory.
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function resolveFromPath(command, env) {
|
|
243
|
+
const pathValue = env[findPathKey(env)];
|
|
244
|
+
if (!pathValue)
|
|
245
|
+
return undefined;
|
|
246
|
+
for (const dir of pathValue.split(delimiter)) {
|
|
247
|
+
if (!dir)
|
|
248
|
+
continue;
|
|
249
|
+
const candidate = join(dir, command);
|
|
250
|
+
if (isExecutable(candidate))
|
|
251
|
+
return candidate;
|
|
252
|
+
}
|
|
253
|
+
return undefined;
|
|
254
|
+
}
|
|
255
|
+
function isExecutable(path) {
|
|
256
|
+
try {
|
|
257
|
+
accessSync(path, constants.X_OK);
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
function findPathKey(env) {
|
|
265
|
+
return Object.keys(env).find((key) => key.toLowerCase() === 'path') ?? 'PATH';
|
|
266
|
+
}
|
|
267
|
+
function mergePath(prepend, existing) {
|
|
268
|
+
const seen = new Set();
|
|
269
|
+
const parts = [...prepend, ...(existing ? existing.split(delimiter) : [])]
|
|
270
|
+
.filter((part) => part.length > 0)
|
|
271
|
+
.filter((part) => {
|
|
272
|
+
if (seen.has(part))
|
|
273
|
+
return false;
|
|
274
|
+
seen.add(part);
|
|
275
|
+
return true;
|
|
276
|
+
});
|
|
277
|
+
return parts.join(delimiter);
|
|
278
|
+
}
|
|
164
279
|
//# sourceMappingURL=processManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processManager.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/processManager.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAwC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"processManager.js","sourceRoot":"","sources":["../../../src/ai/codexAppServer/processManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexLogin.d.ts","sourceRoot":"","sources":["../../src/ai/codexLogin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"codexLogin.d.ts","sourceRoot":"","sources":["../../src/ai/codexLogin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA6BjE,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAEvE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA2D;IACxE,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAE3C,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI;IAIpE;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAe3C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAsEvC;;;OAGG;IACH,MAAM,IAAI,eAAe;IAczB,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,IAAI;IAIZ,iEAAiE;IACjE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAchC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMvG"}
|
package/dist/ai/codexLogin.js
CHANGED
|
@@ -4,6 +4,7 @@ import { spawn } from 'child_process';
|
|
|
4
4
|
import { readFile } from 'fs/promises';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
6
|
import { join } from 'path';
|
|
7
|
+
import { buildCodexCliEnv, getCodexBin } from './codexAppServer/processManager.js';
|
|
7
8
|
/**
|
|
8
9
|
* Coordinates `codex login --device-auth` on behalf of the PWA. The daemon
|
|
9
10
|
* spawns the codex CLI, parses the one-time verification URL and user code
|
|
@@ -71,9 +72,10 @@ export class CodexLoginManager {
|
|
|
71
72
|
this.cleanup();
|
|
72
73
|
this.state = { loggedIn: false, inProgress: true };
|
|
73
74
|
this.emit();
|
|
74
|
-
const
|
|
75
|
+
const codexBin = getCodexBin();
|
|
76
|
+
const child = spawn(codexBin, ['login', '--device-auth'], {
|
|
75
77
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
76
|
-
env: process.env,
|
|
78
|
+
env: buildCodexCliEnv(process.env, codexBin),
|
|
77
79
|
});
|
|
78
80
|
this.child = child;
|
|
79
81
|
this.stdoutBuf = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexLogin.js","sourceRoot":"","sources":["../../src/ai/codexLogin.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"codexLogin.js","sourceRoot":"","sources":["../../src/ai/codexLogin.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ function projectAppServerModel(m) {
|
|
|
93
93
|
}
|
|
94
94
|
export class MessageHandler {
|
|
95
95
|
repos;
|
|
96
|
-
agentVersion = '0.8.
|
|
96
|
+
agentVersion = '0.8.14';
|
|
97
97
|
defaultRepoPath;
|
|
98
98
|
clientRepos = new Map(); // peerAddress -> repoPath
|
|
99
99
|
repoLocks = new Map(); // repoPath -> peerAddress holding lock
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ function collectValues(value, previous) {
|
|
|
20
20
|
program
|
|
21
21
|
.name('quicksave-agent')
|
|
22
22
|
.description('Quicksave desktop agent for remote git control')
|
|
23
|
-
.version('0.8.
|
|
23
|
+
.version('0.8.14')
|
|
24
24
|
.allowExcessArguments(false)
|
|
25
25
|
.option('-r, --repo <path>', 'Path to git repository (can specify multiple)', collectValues, [])
|
|
26
26
|
.option('-c, --coding-path <path>', 'Path for Claude Code sessions (can specify multiple, non-git dirs OK)', collectValues, [])
|
|
@@ -72,7 +72,7 @@ program
|
|
|
72
72
|
try {
|
|
73
73
|
const result = await ensureDaemon();
|
|
74
74
|
client = result.client;
|
|
75
|
-
console.log(`Quicksave Agent v0.8.
|
|
75
|
+
console.log(`Quicksave Agent v0.8.14 (daemon pid: ${result.hello.daemonPid})`);
|
|
76
76
|
console.log('='.repeat(50));
|
|
77
77
|
}
|
|
78
78
|
catch (err) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { connect } from 'net';
|
|
10
10
|
import { IPC_VERSION, BUILD_ID } from './types.js';
|
|
11
11
|
// Package version — matches package.json
|
|
12
|
-
const PACKAGE_VERSION = '0.8.
|
|
12
|
+
const PACKAGE_VERSION = '0.8.14';
|
|
13
13
|
export class IpcClient {
|
|
14
14
|
socket = null;
|
|
15
15
|
nextId = 1;
|
package/dist/service/run.js
CHANGED
|
@@ -38,7 +38,7 @@ import { enrichEntry } from '../ai/enrichEntry.js';
|
|
|
38
38
|
import { getTerminalManager } from '../terminal/terminalManager.js';
|
|
39
39
|
const HEARTBEAT_INTERVAL_MS = 30_000;
|
|
40
40
|
const REGISTRY_WATCH_INTERVAL_MS = 1_000;
|
|
41
|
-
const PACKAGE_VERSION = '0.8.
|
|
41
|
+
const PACKAGE_VERSION = '0.8.14';
|
|
42
42
|
function startSessionRegistryWatcher(bus, claudeService) {
|
|
43
43
|
const seen = new Map();
|
|
44
44
|
const registry = getSessionRegistry();
|
package/dist/service/types.js
CHANGED
|
@@ -27,7 +27,7 @@ const IS_DEV = globalThis.__QUICKSAVE_DEV__ === true;
|
|
|
27
27
|
* In dev mode, hashes source file mtimes so the value only changes when code
|
|
28
28
|
* actually changes — avoids spurious daemon restarts.
|
|
29
29
|
*/
|
|
30
|
-
const _PLACEHOLDER = '
|
|
30
|
+
const _PLACEHOLDER = '9d6a24119392';
|
|
31
31
|
export const BUILD_ID = IS_DEV ? devBuildId() : _PLACEHOLDER;
|
|
32
32
|
function devBuildId() {
|
|
33
33
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumicom/quicksave",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.14",
|
|
4
4
|
"description": "Quicksave agent - remote git control CLI",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"tweetnacl": "^1.0.3",
|
|
42
42
|
"ws": "^8.16.0",
|
|
43
43
|
"zod": "^4.3.6",
|
|
44
|
-
"@sumicom/quicksave-message-bus": "0.8.
|
|
45
|
-
"@sumicom/quicksave-shared": "0.8.
|
|
44
|
+
"@sumicom/quicksave-message-bus": "0.8.14",
|
|
45
|
+
"@sumicom/quicksave-shared": "0.8.14"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/better-sqlite3": "^7.6.13",
|