zelari-code 2.55.0 → 2.57.0
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/README.md +1 -1
- package/dist/cli/app.js +2 -2
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/budget/modelContextBuilder.js +4 -1
- package/dist/cli/budget/modelContextBuilder.js.map +1 -1
- package/dist/cli/commands/evolve.js +247 -0
- package/dist/cli/commands/evolve.js.map +1 -0
- package/dist/cli/commands/replay.js +202 -0
- package/dist/cli/commands/replay.js.map +1 -0
- package/dist/cli/commands/session.js +264 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/spineSession.js +77 -0
- package/dist/cli/commands/spineSession.js.map +1 -0
- package/dist/cli/components/StatusBar.js +6 -2
- package/dist/cli/components/StatusBar.js.map +1 -1
- package/dist/cli/components/statusChips.js +43 -0
- package/dist/cli/components/statusChips.js.map +1 -1
- package/dist/cli/councilDispatcher.js +12 -0
- package/dist/cli/councilDispatcher.js.map +1 -1
- package/dist/cli/evolution/controller.js +107 -0
- package/dist/cli/evolution/controller.js.map +1 -0
- package/dist/cli/evolution/ledger.js +127 -0
- package/dist/cli/evolution/ledger.js.map +1 -1
- package/dist/cli/evolution/patternLedger.js +165 -0
- package/dist/cli/evolution/patternLedger.js.map +1 -0
- package/dist/cli/headless/runOneTurn.js +31 -1
- package/dist/cli/headless/runOneTurn.js.map +1 -1
- package/dist/cli/hooks/useChatTurn.js +60 -2
- package/dist/cli/hooks/useChatTurn.js.map +1 -1
- package/dist/cli/hooks/useSlashDispatch.js +8 -0
- package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
- package/dist/cli/inbox.js +63 -10
- package/dist/cli/inbox.js.map +1 -1
- package/dist/cli/inboxSources.js +173 -0
- package/dist/cli/inboxSources.js.map +1 -0
- package/dist/cli/main.bundled.js +11889 -8078
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/main.js +80 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/memory/mcpAdapter.js +3 -1
- package/dist/cli/memory/mcpAdapter.js.map +1 -1
- package/dist/cli/memory/onePager.js +93 -0
- package/dist/cli/memory/onePager.js.map +1 -0
- package/dist/cli/memory/serviceFactory.js +5 -0
- package/dist/cli/memory/serviceFactory.js.map +1 -1
- package/dist/cli/memory/sqliteBackend.js +40 -3
- package/dist/cli/memory/sqliteBackend.js.map +1 -1
- package/dist/cli/memory/sqliteCodec.js +2 -0
- package/dist/cli/memory/sqliteCodec.js.map +1 -1
- package/dist/cli/memory/sqliteSchema.js +11 -1
- package/dist/cli/memory/sqliteSchema.js.map +1 -1
- package/dist/cli/plugins/bundleCommand.js +238 -0
- package/dist/cli/plugins/bundleCommand.js.map +1 -0
- package/dist/cli/plugins/bundleDiscover.js +74 -0
- package/dist/cli/plugins/bundleDiscover.js.map +1 -0
- package/dist/cli/plugins/bundleFs.js +57 -0
- package/dist/cli/plugins/bundleFs.js.map +1 -0
- package/dist/cli/plugins/bundleHookDef.js +70 -0
- package/dist/cli/plugins/bundleHookDef.js.map +1 -0
- package/dist/cli/plugins/bundleLoad.js +180 -0
- package/dist/cli/plugins/bundleLoad.js.map +1 -0
- package/dist/cli/plugins/bundleManifest.js +233 -0
- package/dist/cli/plugins/bundleManifest.js.map +1 -0
- package/dist/cli/plugins/bundleMcp.js +41 -0
- package/dist/cli/plugins/bundleMcp.js.map +1 -0
- package/dist/cli/plugins/bundleState.js +142 -0
- package/dist/cli/plugins/bundleState.js.map +1 -0
- package/dist/cli/runHeadless.js +102 -12
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/decisionEmit.js +43 -0
- package/dist/cli/safety/decisionEmit.js.map +1 -0
- package/dist/cli/safety/permissionGate.js +239 -0
- package/dist/cli/safety/permissionGate.js.map +1 -0
- package/dist/cli/safety/permissionPolicy.js +279 -0
- package/dist/cli/safety/permissionPolicy.js.map +1 -0
- package/dist/cli/safety/permissionRules.js +145 -0
- package/dist/cli/safety/permissionRules.js.map +1 -0
- package/dist/cli/safety/sessionSink.js +169 -0
- package/dist/cli/safety/sessionSink.js.map +1 -0
- package/dist/cli/slashCommands.js +29 -3
- package/dist/cli/slashCommands.js.map +1 -1
- package/dist/cli/slashHandlers/evolve.js +41 -0
- package/dist/cli/slashHandlers/evolve.js.map +1 -0
- package/dist/cli/slashHandlers/memory.js +21 -0
- package/dist/cli/slashHandlers/memory.js.map +1 -1
- package/dist/cli/slashHandlers/permissions.js +170 -0
- package/dist/cli/slashHandlers/permissions.js.map +1 -0
- package/dist/cli/statusline/inboxFeed.js +76 -0
- package/dist/cli/statusline/inboxFeed.js.map +1 -0
- package/dist/cli/statusline/statuslineItems.js +15 -0
- package/dist/cli/statusline/statuslineItems.js.map +1 -1
- package/dist/cli/toolRegistry.js +161 -7
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/toolResultCache.js +4 -22
- package/dist/cli/toolResultCache.js.map +1 -1
- package/dist/cli/tools/askUser.js +17 -2
- package/dist/cli/tools/askUser.js.map +1 -1
- package/dist/cli/tools/execProcess.js +15 -1
- package/dist/cli/tools/execProcess.js.map +1 -1
- package/dist/cli/tools/krakenWorktree.js +334 -43
- package/dist/cli/tools/krakenWorktree.js.map +1 -1
- package/dist/cli/tools/taskTool.js +179 -43
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/dist/cli/tools/verifyDebtSpine.js +41 -0
- package/dist/cli/tools/verifyDebtSpine.js.map +1 -1
- package/package.json +6 -2
|
@@ -35,7 +35,9 @@ import { typedErr, typedOk } from '@zelari/core/harness/tools/toolTypes';
|
|
|
35
35
|
import { findBlockedReason } from '../safety/shellBlocklist.js';
|
|
36
36
|
import { inspectCommand } from '../safety/selfKillGuard.js';
|
|
37
37
|
import { resolveSandboxedPath, SandboxViolationError } from '../safety/sandboxPath.js';
|
|
38
|
-
import { buildJailSpec, spawnJailed } from '../safety/osJail.js';
|
|
38
|
+
import { buildJailSpec, jailAvailability, spawnJailed } from '../safety/osJail.js';
|
|
39
|
+
// WS7 slice 4 (t139): `jail.blocked` on the spine when the OS jail refuses.
|
|
40
|
+
import { emitJailBlocked } from '../safety/decisionEmit.js';
|
|
39
41
|
export const execProcessInputSchema = z.object({
|
|
40
42
|
/** Program to execute: bare name resolved via PATH, or an absolute path. */
|
|
41
43
|
program: z.string().min(1),
|
|
@@ -103,6 +105,18 @@ export function createExecProcessTool(root, opts = {}) {
|
|
|
103
105
|
envExtras: { CI: process.env.CI ?? '1' },
|
|
104
106
|
});
|
|
105
107
|
if (res.outcome === 'denied') {
|
|
108
|
+
// WS7 slice 4 (t139): the OS jail refused the spawn — `jail.blocked`
|
|
109
|
+
// on the spine, carrying the backend + mode that made it refuse (the
|
|
110
|
+
// mode/probe are the SAME pure values decideJailSpawn used). Emission
|
|
111
|
+
// is fire-and-forget: a missing or throwing sink can never delay,
|
|
112
|
+
// soften or alter the typed `[jail]` deny the caller is about to get.
|
|
113
|
+
const { mode, probe } = jailAvailability();
|
|
114
|
+
void emitJailBlocked(ctx?.emitSessionEvent, {
|
|
115
|
+
backend: probe.backend,
|
|
116
|
+
mode,
|
|
117
|
+
reason: res.reason,
|
|
118
|
+
tool: 'exec_process',
|
|
119
|
+
});
|
|
106
120
|
resolve(typedErr(res.reason));
|
|
107
121
|
return;
|
|
108
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execProcess.js","sourceRoot":"","sources":["../../../src/cli/tools/execProcess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAA4C,MAAM,sCAAsC,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,aAAa,EAA6B,WAAW,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"execProcess.js","sourceRoot":"","sources":["../../../src/cli/tools/execProcess.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* krakenWorktree —
|
|
2
|
+
* krakenWorktree — git worktree isolation for Kraken general tentacles (K7).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* WS3 (2.39): isolation is **DEFAULT ON**. A `general` tentacle with write runs in
|
|
5
|
+
* `<repo>/.zelari/worktrees/kraken-<id>` unless the user opts out explicitly:
|
|
6
|
+
*
|
|
7
|
+
* | ZELARI_KRAKEN_WORKTREE | effect |
|
|
8
|
+
* |------------------------|----------------------------------------------------|
|
|
9
|
+
* | unset / '' / any other | ON — isolated worktree (the default) |
|
|
10
|
+
* | `1` `true` `yes` `on` | ON — legacy truthy spellings, unchanged |
|
|
11
|
+
* | `auto` | ON — plus the graph scheduler may pull overlapping writers forward |
|
|
12
|
+
* | `0` `false` `no` `off` | OFF — explicit opt-out, runs in the parent tree |
|
|
13
|
+
*
|
|
14
|
+
* The isolation decision is a PURE function of the env slice
|
|
15
|
+
* (`resolveKrakenWorktreeMode`), so it is testable without spawning anything.
|
|
5
16
|
*
|
|
6
17
|
* Flow:
|
|
7
18
|
* 1. git worktree add <repo>/.zelari/worktrees/kraken-<id> -b kraken/<id>
|
|
8
19
|
* 2. Run sub-agent with cwd = worktree path
|
|
9
20
|
* 3. On success (default): squash-merge branch into parent HEAD, then cleanup
|
|
10
21
|
* - ZELARI_KRAKEN_WORKTREE_AUTO_MERGE=0 → skip merge (still cleanup unless KEEP)
|
|
11
|
-
* - ZELARI_KRAKEN_WORKTREE_KEEP=1 → never merge/cleanup
|
|
22
|
+
* - ZELARI_KRAKEN_WORKTREE_KEEP=1 → never merge/cleanup: worktree + branch stay
|
|
23
|
+
* on disk for a manual merge (`git merge <branch>`, then `git worktree remove`)
|
|
12
24
|
* 4. On merge conflict: keep worktree + branch, report error in footer
|
|
25
|
+
* 5. Whenever a worktree cannot be created (not a git repo, no git, add failed)
|
|
26
|
+
* the tentacle runs in the SHARED parent tree and the reason is reported —
|
|
27
|
+
* never a silent degradation, never a failed tentacle.
|
|
28
|
+
*
|
|
29
|
+
* WS3 hardening (win32):
|
|
30
|
+
*
|
|
31
|
+
* - **Long paths**: the fs/`git` calls that touch the worktree path switch on
|
|
32
|
+
* demand — `\\?\`-prefixed paths for node fs, `-c core.longpaths=true` for
|
|
33
|
+
* git — but ONLY once a path is ≥ 240 chars, so the normal case keeps the
|
|
34
|
+
* identical argv/env it had before (existing spawn-count tests included).
|
|
35
|
+
* - **Cleanup retries**: `git worktree remove --force` and the filesystem
|
|
36
|
+
* sweep are retried a bounded number of times (default 3) with a short
|
|
37
|
+
* backoff, because on Windows a file still held by git/AV/an editor fails
|
|
38
|
+
* with EPERM/EACCES/EBUSY/ENOTEMPTY instead of being deleted.
|
|
39
|
+
* - **Gitignore-aware sweep**: the recursive delete only ever touches a path
|
|
40
|
+
* strictly inside `<repo>/.zelari/worktrees/` and named `kraken-*`
|
|
41
|
+
* (`.zelari/` is gitignored — see .gitignore), so a mangled or foreign
|
|
42
|
+
* handle can never delete user files outside the worktree root.
|
|
43
|
+
* - **Coherent teardown**: the branch is deleted (eager) or queued (batched)
|
|
44
|
+
* ONLY once the worktree directory is actually gone; if the directory
|
|
45
|
+
* survives, the branch is kept so the work is not orphaned.
|
|
13
46
|
*
|
|
14
47
|
* Int3c (plan v2 §7.3) — lifecycle micro-opts:
|
|
15
48
|
*
|
|
@@ -47,6 +80,46 @@ import { captureParentPreMergeState, emitWorktreeMergeAborted, formatRollbackMes
|
|
|
47
80
|
*/
|
|
48
81
|
export { beginKrakenWorktreeCleanupBatch, isKrakenWorktreeCleanupBatched, resolveWorktreeCleanupMode, } from '../kraken/worktreeCleanupBatch.js';
|
|
49
82
|
const execFileAsync = promisify(execFile);
|
|
83
|
+
/**
|
|
84
|
+
* Values that mean "do NOT isolate" — the explicit opt-out. Everything else
|
|
85
|
+
* (including an empty or unrecognized value) keeps isolation ON: this flag
|
|
86
|
+
* guards the user's working tree, so an unreadable value must fail CLOSED
|
|
87
|
+
* (isolated) rather than silently drop the worktree the repo asked for.
|
|
88
|
+
*
|
|
89
|
+
* Note the deliberate asymmetry with `worktreeScheduling.resolveWorktreeMode`,
|
|
90
|
+
* which resolves the *scheduling* mode and turns an unrecognized value into
|
|
91
|
+
* `off`: there the failure direction that must be avoided is widening
|
|
92
|
+
* parallelism, here it is dropping isolation. Both resolvers fail safe.
|
|
93
|
+
*/
|
|
94
|
+
const KRAKEN_WORKTREE_OFF_VALUES = new Set(['0', 'false', 'no', 'off', 'disable', 'disabled']);
|
|
95
|
+
/**
|
|
96
|
+
* WS3 — pure resolver for the isolation switch. No spawn, no fs, no clock:
|
|
97
|
+
* the caller passes the env slice in (defaults to `process.env` for callers
|
|
98
|
+
* that own the process).
|
|
99
|
+
*
|
|
100
|
+
* `unset`/''/`1`/`true`/`yes`/`on`/anything-else → 'on' (DEFAULT ON since 2.39)
|
|
101
|
+
* `auto` → 'auto' (isolation + the graph scheduler decides which nodes it
|
|
102
|
+
* rescues in parallel; see `worktreeScheduling.ts`)
|
|
103
|
+
* `0`/`false`/`no`/`off` → 'off' (explicit opt-out: run in the parent tree)
|
|
104
|
+
*/
|
|
105
|
+
export function resolveKrakenWorktreeMode(env = process.env) {
|
|
106
|
+
const v = (env.ZELARI_KRAKEN_WORKTREE ?? '').trim().toLowerCase();
|
|
107
|
+
if (v === 'auto')
|
|
108
|
+
return 'auto';
|
|
109
|
+
if (KRAKEN_WORKTREE_OFF_VALUES.has(v))
|
|
110
|
+
return 'off';
|
|
111
|
+
return 'on';
|
|
112
|
+
}
|
|
113
|
+
/** True when a general tentacle should run isolated (`on` or `auto`). */
|
|
114
|
+
export function isKrakenWorktreeIsolationEnabled(env = process.env) {
|
|
115
|
+
return resolveKrakenWorktreeMode(env) !== 'off';
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* LEGACY predicate, kept verbatim for the call sites written before WS3: true
|
|
119
|
+
* only when the raw value is an explicit truthy token, i.e. `false` by default.
|
|
120
|
+
* It no longer drives the isolation decision — `resolveKrakenWorktreeMode()`
|
|
121
|
+
* does (default ON) — so prefer that one for anything new.
|
|
122
|
+
*/
|
|
50
123
|
export function isKrakenWorktreeEnabled(env = process.env) {
|
|
51
124
|
const v = (env.ZELARI_KRAKEN_WORKTREE ?? '').trim().toLowerCase();
|
|
52
125
|
return v === '1' || v === 'true' || v === 'yes' || v === 'on';
|
|
@@ -103,9 +176,114 @@ export function __resetKrakenWorktreeLifecycleForTests() {
|
|
|
103
176
|
gitRootMemo.clear();
|
|
104
177
|
__resetKrakenWorktreeCleanupQueueForTests();
|
|
105
178
|
}
|
|
106
|
-
|
|
179
|
+
/* ------------------------------------------------------------------------- */
|
|
180
|
+
/* WS3 — win32 hardening helpers */
|
|
181
|
+
/* ------------------------------------------------------------------------- */
|
|
182
|
+
/** Below this the plain path is safe on Windows too; above it we switch form. */
|
|
183
|
+
const LONG_PATH_THRESHOLD = 240;
|
|
184
|
+
/** `\\?\`-prefixed (or `\\?\UNC\…`) absolute path. No-op off win32. */
|
|
185
|
+
export function toLongPath(target, platform = process.platform) {
|
|
186
|
+
if (platform !== 'win32')
|
|
187
|
+
return target;
|
|
188
|
+
// win32 semantics regardless of the HOST: the caller declared a win32 path, and the
|
|
189
|
+
// `\\?\` form only makes sense there. Host path.resolve would mangle win32 paths on
|
|
190
|
+
// posix hosts (e.g. 'C:\a\b' resolved as a relative posix path) — krakenWorktreeDefault
|
|
191
|
+
// asserts this cross-platform (CI runs linux).
|
|
192
|
+
const abs = path.win32.resolve(target);
|
|
193
|
+
if (abs.startsWith('\\\\?\\'))
|
|
194
|
+
return abs;
|
|
195
|
+
if (abs.startsWith('\\\\'))
|
|
196
|
+
return `\\\\?\\UNC\\${abs.slice(2)}`;
|
|
197
|
+
return `\\\\?\\${abs}`;
|
|
198
|
+
}
|
|
199
|
+
/** True when any of these paths may exceed the win32 MAX_PATH budget. */
|
|
200
|
+
export function isLongPath(...targets) {
|
|
201
|
+
return targets.some((t) => path.resolve(t).length >= LONG_PATH_THRESHOLD);
|
|
202
|
+
}
|
|
203
|
+
/** Path handed to node fs: extended-length only when the plain form may fail. */
|
|
204
|
+
function fsPath(target) {
|
|
205
|
+
return process.platform === 'win32' && isLongPath(target) ? toLongPath(target) : target;
|
|
206
|
+
}
|
|
207
|
+
/** Retry budget for teardown (`git worktree remove` + the fs sweep). */
|
|
208
|
+
export const CLEANUP_MAX_ATTEMPTS = 3;
|
|
209
|
+
/** Short backoff between attempts (ms), indexed by attempt - 1. */
|
|
210
|
+
export const CLEANUP_BACKOFF_MS = [25, 75];
|
|
211
|
+
/** Codes that mean "a handle is still open": worth another attempt, not a bug. */
|
|
212
|
+
const TRANSIENT_CLEANUP_CODES = new Set([
|
|
213
|
+
'EPERM',
|
|
214
|
+
'EACCES',
|
|
215
|
+
'EBUSY',
|
|
216
|
+
'ENOTEMPTY',
|
|
217
|
+
'EEXIST',
|
|
218
|
+
'EMFILE',
|
|
219
|
+
'ENFILE',
|
|
220
|
+
]);
|
|
221
|
+
/** True for the Windows lock/permission failures a retry can actually clear. */
|
|
222
|
+
export function isRetryableCleanupError(err) {
|
|
223
|
+
const code = err?.code;
|
|
224
|
+
return typeof code === 'string' && TRANSIENT_CLEANUP_CODES.has(code);
|
|
225
|
+
}
|
|
226
|
+
function sleep(ms) {
|
|
227
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The ONLY kind of path a recursive cleanup sweep may delete: strictly inside
|
|
231
|
+
* `<repoRoot>/.zelari/worktrees/` and named like a kraken worktree. `.zelari/`
|
|
232
|
+
* is gitignored (`.gitignore`), so a sweep can never reach user files, and a
|
|
233
|
+
* mangled handle — or one pointing at the parent tree — is refused instead of
|
|
234
|
+
* deleted. The worktrees root itself and anything above it return false.
|
|
235
|
+
*/
|
|
236
|
+
export function isInsideKrakenWorktrees(target, repoRoot) {
|
|
237
|
+
const root = path.resolve(repoRoot, '.zelari', 'worktrees');
|
|
238
|
+
const resolved = path.resolve(target);
|
|
239
|
+
const rel = path.relative(root, resolved);
|
|
240
|
+
if (!rel || rel.startsWith('..') || path.isAbsolute(rel))
|
|
241
|
+
return false;
|
|
242
|
+
return path.basename(resolved).startsWith('kraken-');
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Bounded retry around one recursive delete. A missing target counts as
|
|
246
|
+
* success. `opts.remove`/`opts.sleep` exist so tests can drive the retry path
|
|
247
|
+
* deterministically without depending on a real Windows file lock; production
|
|
248
|
+
* always runs the defaults (`rmSync` on the extended-length path when needed).
|
|
249
|
+
*/
|
|
250
|
+
export async function removePathWithRetry(target, opts = {}) {
|
|
251
|
+
const attempts = opts.attempts ?? CLEANUP_MAX_ATTEMPTS;
|
|
252
|
+
const backoff = opts.backoffMs ?? CLEANUP_BACKOFF_MS;
|
|
253
|
+
const remove = opts.remove ?? ((p) => rmSync(fsPath(p), { recursive: true, force: true }));
|
|
254
|
+
const wait = opts.sleep ?? sleep;
|
|
255
|
+
let lastError = null;
|
|
256
|
+
for (let attempt = 1; attempt <= attempts; attempt += 1) {
|
|
257
|
+
try {
|
|
258
|
+
remove(target);
|
|
259
|
+
if (!existsSync(fsPath(target)))
|
|
260
|
+
return { removed: true, attempts: attempt, lastError: null };
|
|
261
|
+
lastError = 'directory still present after rmSync';
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
if (err.code === 'ENOENT') {
|
|
265
|
+
return { removed: true, attempts: attempt, lastError: null };
|
|
266
|
+
}
|
|
267
|
+
lastError = `${err.code ?? 'error'}: ${err instanceof Error ? err.message : String(err)}`;
|
|
268
|
+
// Not a lock/perm failure: retrying a genuine error only wastes time.
|
|
269
|
+
if (!isRetryableCleanupError(err))
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
272
|
+
if (attempt < attempts)
|
|
273
|
+
await wait(backoff[Math.min(attempt - 1, backoff.length - 1)] ?? 0);
|
|
274
|
+
}
|
|
275
|
+
return { removed: !existsSync(fsPath(target)), attempts, lastError };
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Run git in `cwd`. `opts.longPaths` (win32 only) prepends
|
|
279
|
+
* `-c core.longpaths=true` and is passed ONLY by the call sites that can hand
|
|
280
|
+
* git a path past MAX_PATH — ordinary invocations keep the exact argv the
|
|
281
|
+
* existing spawn-count suites assert on.
|
|
282
|
+
*/
|
|
283
|
+
async function git(cwd, args, opts = {}) {
|
|
284
|
+
const prefix = opts.longPaths && process.platform === 'win32' ? ['-c', 'core.longpaths=true'] : [];
|
|
107
285
|
try {
|
|
108
|
-
const { stdout, stderr } = await execFileAsync('git', ['-C', cwd, ...args], {
|
|
286
|
+
const { stdout, stderr } = await execFileAsync('git', [...prefix, '-C', cwd, ...args], {
|
|
109
287
|
maxBuffer: 16 * 1024 * 1024,
|
|
110
288
|
windowsHide: true,
|
|
111
289
|
});
|
|
@@ -118,6 +296,7 @@ async function git(cwd, args) {
|
|
|
118
296
|
stdout: e.stdout ?? '',
|
|
119
297
|
stderr: e.stderr ?? e.message ?? String(err),
|
|
120
298
|
code: typeof e.code === 'number' ? e.code : 1,
|
|
299
|
+
...(typeof e.code === 'string' ? { errno: e.code } : {}),
|
|
121
300
|
};
|
|
122
301
|
}
|
|
123
302
|
}
|
|
@@ -139,28 +318,43 @@ const gitRootMemo = new Map();
|
|
|
139
318
|
* Callers that need the probe repeated (tests) can call
|
|
140
319
|
* `__resetKrakenWorktreeLifecycleForTests()`.
|
|
141
320
|
*/
|
|
142
|
-
export async function
|
|
321
|
+
export async function resolveGitRootDetailed(cwd) {
|
|
143
322
|
const key = path.resolve(cwd);
|
|
144
323
|
const memo = gitRootMemo.get(key);
|
|
145
324
|
if (memo)
|
|
146
|
-
return memo;
|
|
325
|
+
return { root: memo, reason: null };
|
|
147
326
|
const r = await git(cwd, ['rev-parse', '--show-toplevel']);
|
|
148
|
-
if (!r.ok)
|
|
149
|
-
|
|
327
|
+
if (!r.ok) {
|
|
328
|
+
// ENOENT = the `git` binary itself is missing (CI image, minimal container).
|
|
329
|
+
return { root: null, reason: r.errno === 'ENOENT' ? 'git-unavailable' : 'not-a-git-repo' };
|
|
330
|
+
}
|
|
150
331
|
const root = r.stdout.trim();
|
|
151
332
|
if (!root)
|
|
152
|
-
return null;
|
|
333
|
+
return { root: null, reason: 'not-a-git-repo' };
|
|
153
334
|
gitRootMemo.set(key, root);
|
|
154
|
-
return root;
|
|
335
|
+
return { root, reason: null };
|
|
336
|
+
}
|
|
337
|
+
export async function resolveGitRoot(cwd) {
|
|
338
|
+
return (await resolveGitRootDetailed(cwd)).root;
|
|
155
339
|
}
|
|
156
340
|
/**
|
|
157
|
-
* Create an isolated worktree for a general tentacle
|
|
158
|
-
*
|
|
341
|
+
* Create an isolated worktree for a general tentacle, reporting WHY when it
|
|
342
|
+
* cannot (WS3): the caller keeps running in the shared parent tree, but it
|
|
343
|
+
* publishes the reason instead of silently losing isolation.
|
|
159
344
|
*/
|
|
160
|
-
export async function
|
|
161
|
-
const
|
|
162
|
-
if (!
|
|
163
|
-
|
|
345
|
+
export async function createKrakenWorktreeDetailed(cwd, label) {
|
|
346
|
+
const probe = await resolveGitRootDetailed(cwd);
|
|
347
|
+
if (!probe.root) {
|
|
348
|
+
const code = probe.reason ?? 'not-a-git-repo';
|
|
349
|
+
return {
|
|
350
|
+
ok: false,
|
|
351
|
+
code,
|
|
352
|
+
reason: code === 'git-unavailable'
|
|
353
|
+
? 'git executable not found on PATH'
|
|
354
|
+
: `no git toplevel for ${path.resolve(cwd)}`,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
const repoRoot = probe.root;
|
|
164
358
|
const head = await git(repoRoot, ['rev-parse', 'HEAD']);
|
|
165
359
|
const baseSha = head.ok ? head.stdout.trim() : undefined;
|
|
166
360
|
const id = `${Date.now().toString(36)}-${randomBytes(3).toString('hex')}`;
|
|
@@ -172,31 +366,58 @@ export async function createKrakenWorktree(cwd, label) {
|
|
|
172
366
|
const branch = `kraken/${slug}-${id}`;
|
|
173
367
|
const wtRoot = path.join(repoRoot, '.zelari', 'worktrees');
|
|
174
368
|
const wtPath = path.join(wtRoot, `kraken-${id}`);
|
|
369
|
+
// win32: only switch git/fs into extended-length mode when this worktree
|
|
370
|
+
// path (or its repo root) can actually exceed MAX_PATH.
|
|
371
|
+
const longPaths = isLongPath(repoRoot, wtPath);
|
|
175
372
|
try {
|
|
176
|
-
if (!existsSync(wtRoot))
|
|
177
|
-
mkdirSync(wtRoot, { recursive: true });
|
|
373
|
+
if (!existsSync(fsPath(wtRoot)))
|
|
374
|
+
mkdirSync(fsPath(wtRoot), { recursive: true });
|
|
178
375
|
}
|
|
179
|
-
catch {
|
|
180
|
-
return
|
|
376
|
+
catch (err) {
|
|
377
|
+
return {
|
|
378
|
+
ok: false,
|
|
379
|
+
code: 'worktree-root-unwritable',
|
|
380
|
+
reason: `cannot create ${wtRoot}: ${err instanceof Error ? err.message : String(err)}`,
|
|
381
|
+
};
|
|
181
382
|
}
|
|
182
|
-
const add = await git(repoRoot, ['worktree', 'add', '-b', branch, wtPath, 'HEAD']);
|
|
383
|
+
const add = await git(repoRoot, ['worktree', 'add', '-b', branch, wtPath, 'HEAD'], { longPaths });
|
|
183
384
|
if (!add.ok) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
385
|
+
// Detached retry: an existing `kraken/<slug>-<id>` name (or a git that
|
|
386
|
+
// refuses `-b` on this object format) still gets isolation, just without
|
|
387
|
+
// a mergeable branch name — the handle says `HEAD`, and cleanup knows not
|
|
388
|
+
// to delete a branch in that case.
|
|
389
|
+
const add2 = await git(repoRoot, ['worktree', 'add', wtPath, 'HEAD'], { longPaths });
|
|
390
|
+
if (!add2.ok) {
|
|
391
|
+
return {
|
|
392
|
+
ok: false,
|
|
393
|
+
code: 'worktree-add-failed',
|
|
394
|
+
reason: `git worktree add failed: ${(add2.stderr || add.stderr).trim().slice(0, 300)}`,
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
return { ok: true, handle: { id, branch: 'HEAD', path: wtPath, repoRoot, baseSha } };
|
|
188
398
|
}
|
|
189
|
-
return { id, branch, path: wtPath, repoRoot, baseSha };
|
|
399
|
+
return { ok: true, handle: { id, branch, path: wtPath, repoRoot, baseSha } };
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Create an isolated worktree for a general tentacle.
|
|
403
|
+
* Returns null if git unavailable or worktree add fails (caller falls back to shared cwd).
|
|
404
|
+
* Prefer {@link createKrakenWorktreeDetailed} when the caller can report the reason.
|
|
405
|
+
*/
|
|
406
|
+
export async function createKrakenWorktree(cwd, label) {
|
|
407
|
+
const created = await createKrakenWorktreeDetailed(cwd, label);
|
|
408
|
+
return created.ok ? created.handle : null;
|
|
190
409
|
}
|
|
191
410
|
/**
|
|
192
411
|
* Commit dirty files inside the worktree (best-effort).
|
|
193
412
|
*/
|
|
194
413
|
export async function commitWorktreeChanges(handle, message) {
|
|
195
|
-
const
|
|
414
|
+
const longPaths = isLongPath(handle.path);
|
|
415
|
+
const opts = { longPaths };
|
|
416
|
+
const st = await git(handle.path, ['status', '--porcelain'], opts);
|
|
196
417
|
if (!st.ok)
|
|
197
418
|
return { ok: false, committed: false, detail: st.stderr || 'status failed' };
|
|
198
419
|
if (st.stdout.trim()) {
|
|
199
|
-
const add = await git(handle.path, ['add', '-A']);
|
|
420
|
+
const add = await git(handle.path, ['add', '-A'], opts);
|
|
200
421
|
if (!add.ok)
|
|
201
422
|
return { ok: false, committed: false, detail: add.stderr || 'add failed' };
|
|
202
423
|
const msg = message.slice(0, 200) || `kraken tentacle ${handle.id}`;
|
|
@@ -206,9 +427,9 @@ export async function commitWorktreeChanges(handle, message) {
|
|
|
206
427
|
msg,
|
|
207
428
|
'--author',
|
|
208
429
|
'Kraken Tentacle <kraken@zelari.local>',
|
|
209
|
-
]);
|
|
430
|
+
], opts);
|
|
210
431
|
if (!commit.ok) {
|
|
211
|
-
const st2 = await git(handle.path, ['status', '--porcelain']);
|
|
432
|
+
const st2 = await git(handle.path, ['status', '--porcelain'], opts);
|
|
212
433
|
if (st2.ok && !st2.stdout.trim()) {
|
|
213
434
|
return { ok: true, committed: false, detail: 'clean after add' };
|
|
214
435
|
}
|
|
@@ -335,30 +556,100 @@ export async function mergeKrakenWorktree(handle, opts = {}, env = process.env)
|
|
|
335
556
|
* `branch -D` per worktree become a single pair at flush time.
|
|
336
557
|
*/
|
|
337
558
|
export async function cleanupKrakenWorktree(handle, env = process.env) {
|
|
338
|
-
if (shouldKeepWorktree(env))
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
559
|
+
if (shouldKeepWorktree(env)) {
|
|
560
|
+
// KEEP=1: the caller owns the worktree now (manual merge + manual remove).
|
|
561
|
+
return {
|
|
562
|
+
removed: false,
|
|
563
|
+
swept: false,
|
|
564
|
+
attempts: 0,
|
|
565
|
+
branch: null,
|
|
566
|
+
branchAction: 'none',
|
|
567
|
+
degraded: null,
|
|
568
|
+
};
|
|
569
|
+
}
|
|
570
|
+
const longPaths = isLongPath(handle.repoRoot, handle.path);
|
|
571
|
+
let removed = !existsSync(fsPath(handle.path));
|
|
572
|
+
let lastError = null;
|
|
573
|
+
let attempts = 0;
|
|
574
|
+
// WS3: bounded retry. On Windows `git worktree remove --force` fails with
|
|
575
|
+
// EPERM/EBUSY while git itself, an AV scanner or an editor still holds a
|
|
576
|
+
// file in the tree; the lock is usually gone a few ms later.
|
|
577
|
+
while (!removed && attempts < CLEANUP_MAX_ATTEMPTS) {
|
|
578
|
+
attempts += 1;
|
|
579
|
+
const r = await git(handle.repoRoot, ['worktree', 'remove', '--force', handle.path], {
|
|
580
|
+
longPaths,
|
|
581
|
+
});
|
|
582
|
+
removed = !existsSync(fsPath(handle.path));
|
|
583
|
+
if (!removed) {
|
|
584
|
+
lastError = (r.stderr || r.stdout || `git worktree remove exited ${r.code}`)
|
|
585
|
+
.trim()
|
|
586
|
+
.slice(0, 200);
|
|
587
|
+
if (attempts < CLEANUP_MAX_ATTEMPTS) {
|
|
588
|
+
await sleep(CLEANUP_BACKOFF_MS[Math.min(attempts - 1, CLEANUP_BACKOFF_MS.length - 1)] ?? 0);
|
|
589
|
+
}
|
|
344
590
|
}
|
|
345
591
|
}
|
|
346
|
-
|
|
347
|
-
|
|
592
|
+
// Filesystem sweep — only as a fallback, and only inside the gitignored
|
|
593
|
+
// worktrees root: nothing here may ever delete a user path.
|
|
594
|
+
let swept = false;
|
|
595
|
+
if (!removed) {
|
|
596
|
+
if (isInsideKrakenWorktrees(handle.path, handle.repoRoot)) {
|
|
597
|
+
swept = true;
|
|
598
|
+
const sweep = await removePathWithRetry(handle.path);
|
|
599
|
+
removed = sweep.removed;
|
|
600
|
+
if (!removed)
|
|
601
|
+
lastError = sweep.lastError ?? lastError;
|
|
602
|
+
}
|
|
603
|
+
else {
|
|
604
|
+
lastError = `refusing to sweep ${handle.path}: not inside <repo>/.zelari/worktrees`;
|
|
605
|
+
}
|
|
348
606
|
}
|
|
349
607
|
const branch = handle.branch.startsWith('kraken/') ? handle.branch : null;
|
|
608
|
+
if (!removed) {
|
|
609
|
+
// The directory survived every attempt: its branch is still checked out
|
|
610
|
+
// there (git would refuse `branch -D` anyway), so keep it and report the
|
|
611
|
+
// degradation instead of orphaning the work.
|
|
612
|
+
return {
|
|
613
|
+
removed: false,
|
|
614
|
+
swept,
|
|
615
|
+
attempts,
|
|
616
|
+
branch,
|
|
617
|
+
branchAction: branch ? 'skipped' : 'none',
|
|
618
|
+
degraded: lastError ?? 'worktree directory still present after retries',
|
|
619
|
+
};
|
|
620
|
+
}
|
|
350
621
|
if (isKrakenWorktreeCleanupBatched(env)) {
|
|
351
622
|
// Queue instead of spawning: prune is idempotent and order-independent
|
|
352
623
|
// (it drops the admin entries of worktrees already removed), and the
|
|
353
624
|
// branch is unreachable once its worktree is gone, so deferring both to
|
|
354
625
|
// the end of the run changes nothing except the subprocess count.
|
|
355
626
|
queueWorktreeCleanup(handle.repoRoot, branch);
|
|
356
|
-
return
|
|
627
|
+
return {
|
|
628
|
+
removed: true,
|
|
629
|
+
swept,
|
|
630
|
+
attempts,
|
|
631
|
+
branch,
|
|
632
|
+
branchAction: branch ? 'queued' : 'none',
|
|
633
|
+
degraded: null,
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
await git(handle.repoRoot, ['worktree', 'prune'], { longPaths });
|
|
637
|
+
if (!branch) {
|
|
638
|
+
// Detached fallback handle (`worktree add <path> HEAD`): no branch to delete.
|
|
639
|
+
return { removed: true, swept, attempts, branch: null, branchAction: 'none', degraded: null };
|
|
357
640
|
}
|
|
358
|
-
await git(handle.repoRoot, ['
|
|
359
|
-
if (
|
|
360
|
-
|
|
641
|
+
const del = await git(handle.repoRoot, ['branch', '-D', branch]);
|
|
642
|
+
if (!del.ok) {
|
|
643
|
+
return {
|
|
644
|
+
removed: true,
|
|
645
|
+
swept,
|
|
646
|
+
attempts,
|
|
647
|
+
branch,
|
|
648
|
+
branchAction: 'skipped',
|
|
649
|
+
degraded: `branch -D ${branch} failed: ${(del.stderr || del.stdout).trim().slice(0, 200)}`,
|
|
650
|
+
};
|
|
361
651
|
}
|
|
652
|
+
return { removed: true, swept, attempts, branch, branchAction: 'deleted', degraded: null };
|
|
362
653
|
}
|
|
363
654
|
/** One-line status for task result footer. */
|
|
364
655
|
export function formatWorktreeFooter(handle, opts = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"krakenWorktree.js","sourceRoot":"","sources":["../../../src/cli/tools/krakenWorktree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"krakenWorktree.js","sourceRoot":"","sources":["../../../src/cli/tools/krakenWorktree.ts"],"names":[],"mappings":"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"}
|