@cleocode/core 2026.7.1 → 2026.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@
5
5
  * PR against the cleocode repo (ADR-065 — PRs target `main` via the Merge Queue;
6
6
  * NEVER a direct push to `main`, NEVER an auto-merge, NEVER a publish). This module
7
7
  * is the egress primitive, modeled on `propose-patch.ts` (the closest "agent
8
- * proposes a fix PR" exemplar) with three self-dogfooding hardenings:
8
+ * proposes a fix PR" exemplar) with four self-dogfooding hardenings:
9
9
  *
10
10
  * 1. **`--draft` is ALWAYS appended** to `gh pr create` — the PR is never
11
11
  * ready-for-merge; a human reviews and undrafts it.
@@ -14,6 +14,13 @@
14
14
  * side-effect-free at egress by default.
15
15
  * 3. **Branch `feat/T11889-selfimprove-<scenario>-<ts>`** — a feature branch
16
16
  * (ADR-065); no main mutation path exists in this module.
17
+ * 4. **Workspace isolation (T12007).** The patch is applied inside an
18
+ * *ephemeral transient worktree* cut fresh off `origin/main` — NEVER the
19
+ * invoking checkout — and ONLY the paths the patch names are staged
20
+ * (`git add -- <paths>`, never `git add -A`). This closes a P1 data-safety
21
+ * defect where the egress swept the orchestrator's entire dirty working
22
+ * tree (untracked owner scratch notes, uncommitted edits) into the public
23
+ * branch and deleted them locally. The invoking repo is never mutated.
17
24
  *
18
25
  * The live path wraps the git/gh shell-out in
19
26
  * {@link "../sentient/skill-provenance.js".withProvenance}`('pr-generator', …)`
@@ -26,21 +33,56 @@
26
33
  * @module @cleocode/core/selfimprove/draft-pr
27
34
  * @epic T11889
28
35
  * @task T11913
36
+ * @task T12007
29
37
  */
30
38
  /**
31
39
  * Pluggable command runner. Returns stdout as UTF-8 text or throws on non-zero
32
40
  * exit. Production default wraps `child_process.execFileSync` with piped stdio.
41
+ *
42
+ * The optional `cwd` is REQUIRED for workspace isolation (T12007): every git
43
+ * mutation runs inside the ephemeral worktree, never `process.cwd()` (which
44
+ * would be the invoking checkout). The default runner threads it into
45
+ * `execFileSync`; test doubles capture it to assert the isolation boundary.
46
+ */
47
+ export type CommandRunner = (file: string, args: readonly string[], cwd?: string) => string;
48
+ /**
49
+ * Provision arguments for the isolated worktree hook (T12007).
50
+ *
51
+ * @see {@link WorktreeProvisioner}
52
+ */
53
+ export interface ProvisionWorktreeArgs {
54
+ /** Absolute invoking project root the worktree is registered against. */
55
+ readonly projectRoot: string;
56
+ /** Absolute path where the ephemeral worktree directory is created (tmpdir). */
57
+ readonly worktreePath: string;
58
+ /** The feature branch created inside the worktree. */
59
+ readonly branch: string;
60
+ /** The base ref the worktree (and its branch) is cut from — `origin/main`. */
61
+ readonly baseRef: string;
62
+ }
63
+ /**
64
+ * Inject hook that provisions the ephemeral isolation worktree. Production
65
+ * leaves it undefined and the module routes through `@cleocode/worktree`'s
66
+ * `addTransientWorktree` (the sanctioned escape hatch for tmpdir worktrees —
67
+ * keeps the raw `git worktree` shell-out out of `packages/core/` per the
68
+ * T9984 lint gate). Tests inject a double to avoid a real git remote.
33
69
  */
34
- export type CommandRunner = (file: string, args: readonly string[]) => string;
70
+ export type WorktreeProvisioner = (args: ProvisionWorktreeArgs) => Promise<void> | void;
71
+ /**
72
+ * Inject hook that removes the ephemeral isolation worktree. Production leaves
73
+ * it undefined and the module routes through `@cleocode/worktree`'s
74
+ * `removeTransientWorktree`.
75
+ */
76
+ export type WorktreeRemover = (projectRoot: string, worktreePath: string) => Promise<void> | void;
35
77
  /** Failure codes from {@link openDraftPr}. */
36
78
  export type DraftPrErrorCode =
37
79
  /** Patch file does not exist on disk. */
38
80
  'E_NOT_FOUND'
39
- /** Patch file exists but is empty. */
81
+ /** Patch file exists but is empty (or names no files). */
40
82
  | 'E_PATCH_EMPTY'
41
83
  /** `gh` CLI missing / not authenticated. */
42
84
  | 'E_GH_UNAVAILABLE'
43
- /** Shell-out failure during the live PR cut. */
85
+ /** Shell-out failure during the live PR cut (incl. worktree provisioning). */
44
86
  | 'E_DRAFT_PR_FAILED';
45
87
  /** Args for {@link openDraftPr}. */
46
88
  export interface OpenDraftPrArgs {
@@ -60,12 +102,25 @@ export interface OpenDraftPrArgs {
60
102
  * @defaultValue false
61
103
  */
62
104
  readonly execute?: boolean;
63
- /** Working directory for path resolution + git ops. Defaults to {@link process.cwd}. */
105
+ /**
106
+ * The INVOKING checkout / project root. Used to (a) resolve {@link diffPath}
107
+ * and (b) register the ephemeral worktree against — it is NEVER mutated
108
+ * (T12007). Defaults to {@link process.cwd}.
109
+ */
64
110
  readonly cwd?: string;
65
111
  /** Injectable command runner (tests capture the shell-out). Defaults to {@link execFileSync}. */
66
112
  readonly run?: CommandRunner;
67
113
  /** Injectable timestamp source for the branch suffix (tests pin it). Defaults to now. */
68
114
  readonly timestamp?: () => string;
115
+ /**
116
+ * Explicit path for the ephemeral isolation worktree (T12007). Defaults to a
117
+ * unique `os.tmpdir()` directory. Overridable for deterministic tests.
118
+ */
119
+ readonly worktreeDir?: string;
120
+ /** Injectable worktree provisioner (tests avoid a real remote). Defaults to `addTransientWorktree`. */
121
+ readonly provisionWorktree?: WorktreeProvisioner;
122
+ /** Injectable worktree remover. Defaults to `removeTransientWorktree`. */
123
+ readonly removeWorktree?: WorktreeRemover;
69
124
  }
70
125
  /** Dry-run result — the planned steps, no side effects. */
71
126
  export interface DraftPrDryRun {
@@ -74,6 +129,8 @@ export interface DraftPrDryRun {
74
129
  readonly branchName: string;
75
130
  /** The planned shell steps; the `gh pr create` step includes `--draft`. */
76
131
  readonly steps: readonly string[];
132
+ /** The repo-relative paths the patch touches — the ONLY paths that will be staged. */
133
+ readonly patchPaths: readonly string[];
77
134
  }
78
135
  /** Live result — the opened draft PR. */
79
136
  export interface DraftPrOk {
@@ -82,6 +139,8 @@ export interface DraftPrOk {
82
139
  readonly branchName: string;
83
140
  /** The draft PR URL emitted by `gh pr create --draft`. */
84
141
  readonly prUrl: string;
142
+ /** The repo-relative paths the patch touched (the PR's complete file set). */
143
+ readonly patchPaths: readonly string[];
85
144
  }
86
145
  /** Failure result. */
87
146
  export interface DraftPrFailure {
@@ -101,15 +160,40 @@ export type DraftPrResult = DraftPrDryRun | DraftPrOk | DraftPrFailure;
101
160
  * @returns The branch name.
102
161
  */
103
162
  export declare function draftPrBranchName(scenario: string, ts: string): string;
163
+ /**
164
+ * Extract the set of repo-relative paths a unified diff touches — the SSoT for
165
+ * "which paths may be staged" (T12007).
166
+ *
167
+ * Parses the `diff --git a/<old> b/<new>` header (the authoritative per-file
168
+ * boundary in a git-format diff), collecting BOTH the pre-image (`a/`) and
169
+ * post-image (`b/`) paths so renames stage their old path too and deletions
170
+ * stage the removed path. `/dev/null` sentinels (pure add / pure delete) are
171
+ * skipped. Also parses bare `--- ` / `+++ ` headers as a fallback for
172
+ * non-`diff --git` unified diffs. The result is de-duplicated and stable
173
+ * ordered by first appearance.
174
+ *
175
+ * The egress stages ONLY these paths (`git add -- <paths>`), so the isolated
176
+ * worktree can never sweep anything the patch did not name.
177
+ *
178
+ * @param diffText - The unified-diff text.
179
+ * @returns The de-duplicated repo-relative paths the diff touches.
180
+ */
181
+ export declare function parseUnifiedDiffPaths(diffText: string): string[];
104
182
  /**
105
183
  * Open ONE DRAFT PR carrying a proposed self-improvement fix.
106
184
  *
107
185
  * DRY-RUN by default ({@link OpenDraftPrArgs.execute} falsey): returns the planned
108
186
  * `steps[]` (the `gh pr create` step ALWAYS carries `--draft`) WITHOUT touching
109
187
  * git/gh — so the loop is egress-side-effect-free unless `--execute` is threaded
110
- * through. The live path (`execute: true`) cuts the feature branch, applies the
111
- * diff, commits, pushes the FEATURE branch (NEVER `main`), and runs
112
- * `gh pr create --base main --head <branch> --draft`, returning the PR URL.
188
+ * through.
189
+ *
190
+ * The live path (`execute: true`) never mutates the invoking checkout (T12007).
191
+ * It cuts an EPHEMERAL transient worktree fresh off `origin/main`, applies the
192
+ * diff there, stages ONLY the paths the patch names (`git add -- <paths>` — NEVER
193
+ * `git add -A`), commits, pushes the FEATURE branch (NEVER `main`), runs
194
+ * `gh pr create --base main --head <branch> --draft`, and tears the worktree
195
+ * down in a `finally`. The orchestrator's untracked/uncommitted files are never
196
+ * staged, pushed, or deleted.
113
197
  *
114
198
  * NEVER pushes `main`, NEVER auto-merges, NEVER publishes — the only egress is a
115
199
  * draft PR against a feature branch.
@@ -121,7 +205,7 @@ export declare function draftPrBranchName(scenario: string, ts: string): string;
121
205
  * ```ts
122
206
  * // dry-run (default): no side effects, steps include `--draft`
123
207
  * const plan = await openDraftPr({ scenario: 'x', diffPath: 'fix.patch', title, body });
124
- * // live: cuts branch + opens draft PR
208
+ * // live: cuts an isolated worktree + opens draft PR (invoking repo untouched)
125
209
  * const res = await openDraftPr({ scenario: 'x', diffPath: 'fix.patch', title, body, execute: true });
126
210
  * ```
127
211
  */
@@ -1 +1 @@
1
- {"version":3,"file":"draft-pr.d.ts","sourceRoot":"","sources":["../../src/selfimprove/draft-pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAeH;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC;AAM9E,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB;AAC1B,yCAAyC;AACvC,aAAa;AACf,sCAAsC;GACpC,eAAe;AACjB,4CAA4C;GAC1C,kBAAkB;AACpB,gDAAgD;GAC9C,mBAAmB,CAAC;AAExB,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,QAAQ,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,yCAAyC;AACzC,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,sBAAsB;AACtB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yDAAyD;AACzD,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,cAAc,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAItE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAgF/E"}
1
+ {"version":3,"file":"draft-pr.d.ts","sourceRoot":"","sources":["../../src/selfimprove/draft-pr.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * PR against the cleocode repo (ADR-065 — PRs target `main` via the Merge Queue;
6
6
  * NEVER a direct push to `main`, NEVER an auto-merge, NEVER a publish). This module
7
7
  * is the egress primitive, modeled on `propose-patch.ts` (the closest "agent
8
- * proposes a fix PR" exemplar) with three self-dogfooding hardenings:
8
+ * proposes a fix PR" exemplar) with four self-dogfooding hardenings:
9
9
  *
10
10
  * 1. **`--draft` is ALWAYS appended** to `gh pr create` — the PR is never
11
11
  * ready-for-merge; a human reviews and undrafts it.
@@ -14,6 +14,13 @@
14
14
  * side-effect-free at egress by default.
15
15
  * 3. **Branch `feat/T11889-selfimprove-<scenario>-<ts>`** — a feature branch
16
16
  * (ADR-065); no main mutation path exists in this module.
17
+ * 4. **Workspace isolation (T12007).** The patch is applied inside an
18
+ * *ephemeral transient worktree* cut fresh off `origin/main` — NEVER the
19
+ * invoking checkout — and ONLY the paths the patch names are staged
20
+ * (`git add -- <paths>`, never `git add -A`). This closes a P1 data-safety
21
+ * defect where the egress swept the orchestrator's entire dirty working
22
+ * tree (untracked owner scratch notes, uncommitted edits) into the public
23
+ * branch and deleted them locally. The invoking repo is never mutated.
17
24
  *
18
25
  * The live path wraps the git/gh shell-out in
19
26
  * {@link "../sentient/skill-provenance.js".withProvenance}`('pr-generator', …)`
@@ -26,11 +33,15 @@
26
33
  * @module @cleocode/core/selfimprove/draft-pr
27
34
  * @epic T11889
28
35
  * @task T11913
36
+ * @task T12007
29
37
  */
30
38
  import { execFileSync } from 'node:child_process';
31
- import { existsSync, readFileSync } from 'node:fs';
32
- import { resolve as resolvePath } from 'node:path';
39
+ import { randomBytes } from 'node:crypto';
40
+ import { existsSync, readFileSync, rmSync } from 'node:fs';
41
+ import { tmpdir } from 'node:os';
42
+ import { join, resolve as resolvePath } from 'node:path';
33
43
  import { cwd as processCwd } from 'node:process';
44
+ import { addTransientWorktree, removeTransientWorktree } from '@cleocode/worktree';
34
45
  import { withProvenance } from '../sentient/skill-provenance.js';
35
46
  /**
36
47
  * The required Claude Code trailer every self-improvement PR body ends with.
@@ -38,7 +49,15 @@ import { withProvenance } from '../sentient/skill-provenance.js';
38
49
  */
39
50
  const PR_BODY_TRAILER = '\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)';
40
51
  /** Default command runner — wraps `execFileSync` with stdout-piped semantics. */
41
- const defaultRun = (file, args) => execFileSync(file, [...args], { stdio: 'pipe' }).toString('utf8');
52
+ const defaultRun = (file, args, cwd) => execFileSync(file, [...args], { cwd, stdio: 'pipe' }).toString('utf8');
53
+ /**
54
+ * Sanitize a scenario name into a filesystem/ref-safe stem.
55
+ *
56
+ * @internal
57
+ */
58
+ function safeStem(scenario) {
59
+ return scenario.replace(/[^a-z0-9-]/gi, '-');
60
+ }
42
61
  /**
43
62
  * Compute the feature branch name for a scenario's draft PR (ADR-065 feature
44
63
  * branch — `feat/T11889-selfimprove-<scenario>-<ts>`). The timestamp is
@@ -49,19 +68,89 @@ const defaultRun = (file, args) => execFileSync(file, [...args], { stdio: 'pipe'
49
68
  * @returns The branch name.
50
69
  */
51
70
  export function draftPrBranchName(scenario, ts) {
52
- const safeScenario = scenario.replace(/[^a-z0-9-]/gi, '-');
71
+ const safeScenario = safeStem(scenario);
53
72
  const safeTs = ts.replace(/[:.]/g, '-');
54
73
  return `feat/T11889-selfimprove-${safeScenario}-${safeTs}`;
55
74
  }
75
+ /**
76
+ * Extract the set of repo-relative paths a unified diff touches — the SSoT for
77
+ * "which paths may be staged" (T12007).
78
+ *
79
+ * Parses the `diff --git a/<old> b/<new>` header (the authoritative per-file
80
+ * boundary in a git-format diff), collecting BOTH the pre-image (`a/`) and
81
+ * post-image (`b/`) paths so renames stage their old path too and deletions
82
+ * stage the removed path. `/dev/null` sentinels (pure add / pure delete) are
83
+ * skipped. Also parses bare `--- ` / `+++ ` headers as a fallback for
84
+ * non-`diff --git` unified diffs. The result is de-duplicated and stable
85
+ * ordered by first appearance.
86
+ *
87
+ * The egress stages ONLY these paths (`git add -- <paths>`), so the isolated
88
+ * worktree can never sweep anything the patch did not name.
89
+ *
90
+ * @param diffText - The unified-diff text.
91
+ * @returns The de-duplicated repo-relative paths the diff touches.
92
+ */
93
+ export function parseUnifiedDiffPaths(diffText) {
94
+ const paths = [];
95
+ const seen = new Set();
96
+ const push = (raw) => {
97
+ // Strip surrounding double-quotes git adds for paths with special chars,
98
+ // then drop a leading `a/` or `b/` prefix and any trailing tab-timestamp.
99
+ let p = raw.trim();
100
+ if (p.startsWith('"') && p.endsWith('"') && p.length >= 2)
101
+ p = p.slice(1, -1);
102
+ p = p.replace(/\t.*$/, '');
103
+ if (p === '/dev/null' || p.length === 0)
104
+ return;
105
+ const rel = p.replace(/^[ab]\//, '');
106
+ if (rel.length === 0 || rel === '/dev/null' || seen.has(rel))
107
+ return;
108
+ seen.add(rel);
109
+ paths.push(rel);
110
+ };
111
+ for (const line of diffText.split('\n')) {
112
+ const trimmed = line.replace(/\r$/, '');
113
+ const gitHeader = /^diff --git (\S+) (\S+)\s*$/.exec(trimmed);
114
+ if (gitHeader) {
115
+ push(gitHeader[1]);
116
+ push(gitHeader[2]);
117
+ continue;
118
+ }
119
+ const minus = /^--- (.+)$/.exec(trimmed);
120
+ if (minus) {
121
+ push(minus[1]);
122
+ continue;
123
+ }
124
+ const plus = /^\+\+\+ (.+)$/.exec(trimmed);
125
+ if (plus)
126
+ push(plus[1]);
127
+ }
128
+ return paths;
129
+ }
130
+ /**
131
+ * Build a unique ephemeral worktree path under `os.tmpdir()` for a scenario.
132
+ * The random suffix keeps concurrent self-improve runs from colliding.
133
+ *
134
+ * @internal
135
+ */
136
+ function tempWorktreeDir(scenario) {
137
+ return join(tmpdir(), `cleo-selfimprove-${safeStem(scenario)}-${randomBytes(4).toString('hex')}`);
138
+ }
56
139
  /**
57
140
  * Open ONE DRAFT PR carrying a proposed self-improvement fix.
58
141
  *
59
142
  * DRY-RUN by default ({@link OpenDraftPrArgs.execute} falsey): returns the planned
60
143
  * `steps[]` (the `gh pr create` step ALWAYS carries `--draft`) WITHOUT touching
61
144
  * git/gh — so the loop is egress-side-effect-free unless `--execute` is threaded
62
- * through. The live path (`execute: true`) cuts the feature branch, applies the
63
- * diff, commits, pushes the FEATURE branch (NEVER `main`), and runs
64
- * `gh pr create --base main --head <branch> --draft`, returning the PR URL.
145
+ * through.
146
+ *
147
+ * The live path (`execute: true`) never mutates the invoking checkout (T12007).
148
+ * It cuts an EPHEMERAL transient worktree fresh off `origin/main`, applies the
149
+ * diff there, stages ONLY the paths the patch names (`git add -- <paths>` — NEVER
150
+ * `git add -A`), commits, pushes the FEATURE branch (NEVER `main`), runs
151
+ * `gh pr create --base main --head <branch> --draft`, and tears the worktree
152
+ * down in a `finally`. The orchestrator's untracked/uncommitted files are never
153
+ * staged, pushed, or deleted.
65
154
  *
66
155
  * NEVER pushes `main`, NEVER auto-merges, NEVER publishes — the only egress is a
67
156
  * draft PR against a feature branch.
@@ -73,7 +162,7 @@ export function draftPrBranchName(scenario, ts) {
73
162
  * ```ts
74
163
  * // dry-run (default): no side effects, steps include `--draft`
75
164
  * const plan = await openDraftPr({ scenario: 'x', diffPath: 'fix.patch', title, body });
76
- * // live: cuts branch + opens draft PR
165
+ * // live: cuts an isolated worktree + opens draft PR (invoking repo untouched)
77
166
  * const res = await openDraftPr({ scenario: 'x', diffPath: 'fix.patch', title, body, execute: true });
78
167
  * ```
79
168
  */
@@ -100,6 +189,16 @@ export async function openDraftPr(args) {
100
189
  message: `Patch file '${resolvedDiff}' is empty`,
101
190
  };
102
191
  }
192
+ // The authoritative "what may be staged" set. A patch that names no files is
193
+ // treated as empty — staging nothing would produce an empty PR.
194
+ const patchPaths = parseUnifiedDiffPaths(diffBytes);
195
+ if (patchPaths.length === 0) {
196
+ return {
197
+ kind: 'error',
198
+ code: 'E_PATCH_EMPTY',
199
+ message: `Patch file '${resolvedDiff}' names no files (no unified-diff headers)`,
200
+ };
201
+ }
103
202
  if (execute) {
104
203
  try {
105
204
  run('gh', ['--version']);
@@ -113,24 +212,50 @@ export async function openDraftPr(args) {
113
212
  }
114
213
  }
115
214
  const branchName = draftPrBranchName(args.scenario, isoNow);
215
+ const worktreePath = args.worktreeDir ?? tempWorktreeDir(args.scenario);
216
+ // Planned steps reflect the ISOLATED flow: every git mutation runs inside the
217
+ // ephemeral worktree (`<worktree>`), and staging is scoped to the patch paths.
116
218
  const steps = [
117
- `git checkout -b ${branchName}`,
118
- `git apply ${resolvedDiff}`,
119
- 'git add -A',
120
- `git commit -m "fix(selfimprove): ${args.scenario} regression"`,
121
- `git push -u origin ${branchName}`,
219
+ `git fetch origin ${base}`,
220
+ `# provision ephemeral worktree at ${worktreePath} off origin/${base} (via @cleocode/worktree)`,
221
+ `git -C <worktree> apply ${resolvedDiff}`,
222
+ `git -C <worktree> add -- ${patchPaths.join(' ')}`,
223
+ `git -C <worktree> commit -m "fix(selfimprove): ${args.scenario} regression"`,
224
+ `git -C <worktree> push -u origin ${branchName}`,
122
225
  `gh pr create --base ${base} --head ${branchName} --draft --title "${args.title}" --body <stdin>`,
226
+ '# remove ephemeral worktree (finally)',
123
227
  ];
124
228
  if (!execute) {
125
- return { kind: 'dry-run', scenario: args.scenario, branchName, steps };
229
+ return { kind: 'dry-run', scenario: args.scenario, branchName, steps, patchPaths };
126
230
  }
231
+ const provision = args.provisionWorktree ??
232
+ ((o) => addTransientWorktree({
233
+ projectRoot: o.projectRoot,
234
+ worktreePath: o.worktreePath,
235
+ branch: o.branch,
236
+ baseRef: o.baseRef,
237
+ resetBranch: true,
238
+ }));
239
+ const teardown = args.removeWorktree ?? ((projectRoot, p) => removeTransientWorktree(projectRoot, p));
127
240
  try {
128
- const prUrl = await withProvenance('pr-generator', () => {
129
- run('git', ['checkout', '-b', branchName]);
130
- run('git', ['apply', resolvedDiff]);
131
- run('git', ['add', '-A']);
132
- run('git', ['commit', '-m', `fix(selfimprove): ${args.scenario} regression`]);
133
- run('git', ['push', '-u', 'origin', branchName]);
241
+ // Freshen origin/<base> so the isolated worktree branches off the true tip.
242
+ run('git', ['fetch', 'origin', base], cwd);
243
+ // Provision the ephemeral worktree OFF origin/<base> — NEVER the invoking
244
+ // tree. All subsequent git mutations target `worktreePath`.
245
+ await provision({
246
+ projectRoot: cwd,
247
+ worktreePath,
248
+ branch: branchName,
249
+ baseRef: `origin/${base}`,
250
+ });
251
+ const prUrl = await withProvenance('pr-generator', async () => {
252
+ // Apply the patch INSIDE the isolated worktree (its working tree only).
253
+ run('git', ['apply', resolvedDiff], worktreePath);
254
+ // Stage ONLY the paths the patch names — never `git add -A`, never the
255
+ // invoking checkout. This is the crux of the T12007 fix.
256
+ run('git', ['add', '--', ...patchPaths], worktreePath);
257
+ run('git', ['commit', '-m', `fix(selfimprove): ${args.scenario} regression`], worktreePath);
258
+ run('git', ['push', '-u', 'origin', branchName], worktreePath);
134
259
  return run('gh', [
135
260
  'pr',
136
261
  'create',
@@ -143,9 +268,9 @@ export async function openDraftPr(args) {
143
268
  args.title,
144
269
  '--body',
145
270
  body,
146
- ]).trim();
271
+ ], worktreePath).trim();
147
272
  });
148
- return { kind: 'ok', scenario: args.scenario, branchName, prUrl };
273
+ return { kind: 'ok', scenario: args.scenario, branchName, prUrl, patchPaths };
149
274
  }
150
275
  catch (err) {
151
276
  return {
@@ -154,5 +279,21 @@ export async function openDraftPr(args) {
154
279
  message: `draft-pr failed: ${err instanceof Error ? err.message : String(err)}`,
155
280
  };
156
281
  }
282
+ finally {
283
+ // Best-effort teardown — the invoking checkout is never touched, only the
284
+ // ephemeral worktree registration + its tmpdir directory.
285
+ try {
286
+ await teardown(cwd, worktreePath);
287
+ }
288
+ catch {
289
+ /* best-effort */
290
+ }
291
+ try {
292
+ rmSync(worktreePath, { recursive: true, force: true });
293
+ }
294
+ catch {
295
+ /* best-effort */
296
+ }
297
+ }
157
298
  }
158
299
  //# sourceMappingURL=draft-pr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft-pr.js","sourceRoot":"","sources":["../../src/selfimprove/draft-pr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;GAGG;AACH,MAAM,eAAe,GACnB,qEAA8E,CAAC;AAQjF,iFAAiF;AACjF,MAAM,UAAU,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAC/C,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAmEpE;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,EAAU;IAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,2BAA2B,YAAY,IAAI,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;IAE9C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,4BAA4B,YAAY,GAAG;SACrD,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,eAAe,YAAY,YAAY;SACjD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,4EAA4E;aACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAsB;QAC/B,mBAAmB,UAAU,EAAE;QAC/B,aAAa,YAAY,EAAE;QAC3B,YAAY;QACZ,oCAAoC,IAAI,CAAC,QAAQ,cAAc;QAC/D,sBAAsB,UAAU,EAAE;QAClC,uBAAuB,IAAI,WAAW,UAAU,qBAAqB,IAAI,CAAC,KAAK,kBAAkB;KAClG,CAAC;IAEF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,GAAG,EAAE;YACtD,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACpC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1B,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,qBAAqB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC;YAC9E,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC,IAAI,EAAE;gBACf,IAAI;gBACJ,QAAQ;gBACR,QAAQ;gBACR,IAAI;gBACJ,QAAQ;gBACR,UAAU;gBACV,SAAS;gBACT,SAAS;gBACT,IAAI,CAAC,KAAK;gBACV,QAAQ;gBACR,IAAI;aACL,CAAC,CAAC,IAAI,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAChF,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"draft-pr.js","sourceRoot":"","sources":["../../src/selfimprove/draft-pr.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ import { type ExecutionEnvBackend } from '../llm/pi/resolve-execution-env.js';
56
56
  import { type ToolGuard } from '../tools/guard.js';
57
57
  import { type CircuitBreakerState, DEFAULT_BUDGET, type SelfImproveBudget } from './budget.js';
58
58
  import { type DhqAdapter } from './dhq-adapter.js';
59
- import { type CommandRunner, type DraftPrResult } from './draft-pr.js';
59
+ import { type CommandRunner, type DraftPrResult, type WorktreeProvisioner, type WorktreeRemover } from './draft-pr.js';
60
60
  import { type DiffEntry } from './envelope-diff.js';
61
61
  import { type FixGenerator, type FixGenResult } from './fix-gen.js';
62
62
  import { type ReplayDispatch } from './replay.js';
@@ -120,6 +120,14 @@ export interface RunSelfImproveOptions {
120
120
  * tests so the capstone proves the egress WITHOUT a real `gh`/`git` invocation.
121
121
  */
122
122
  readonly draftPrRun?: CommandRunner;
123
+ /**
124
+ * Test seam: inject the draft-PR isolation-worktree provisioner (T12007).
125
+ * Defaults to `@cleocode/worktree`'s `addTransientWorktree`. Supplied by tests
126
+ * so the capstone proves the egress WITHOUT a real git repo / remote.
127
+ */
128
+ readonly draftPrProvisionWorktree?: WorktreeProvisioner;
129
+ /** Test seam: inject the draft-PR isolation-worktree remover (T12007). */
130
+ readonly draftPrRemoveWorktree?: WorktreeRemover;
123
131
  /** Test seam: inject the guard backing the in-process fallback env. */
124
132
  readonly guard?: ToolGuard;
125
133
  /** Test seam: inject the run id (defaults to a timestamped id). */
@@ -1 +1 @@
1
- {"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../../src/selfimprove/run-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-loop.d.ts","sourceRoot":"","sources":["../../src/selfimprove/run-loop.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ import { LeaseUnavailableError } from '../store/writer-lease.js';
58
58
  import { createToolGuard } from '../tools/guard.js';
59
59
  import { CircuitBreaker, DEFAULT_BUDGET, resolveBudget, } from './budget.js';
60
60
  import { createDhqAdapter } from './dhq-adapter.js';
61
- import { openDraftPr } from './draft-pr.js';
61
+ import { openDraftPr, } from './draft-pr.js';
62
62
  import { computeQuestionHash, diffEnvelopes } from './envelope-diff.js';
63
63
  import { createLlmFixGenerator, fixPatchPath, generateFixPatch, } from './fix-gen.js';
64
64
  import { replayScenario } from './replay.js';
@@ -248,6 +248,12 @@ export async function runSelfImprove(opts) {
248
248
  execute,
249
249
  ...(opts.cwd !== undefined ? { cwd: opts.cwd } : {}),
250
250
  ...(opts.draftPrRun !== undefined ? { run: opts.draftPrRun } : {}),
251
+ ...(opts.draftPrProvisionWorktree !== undefined
252
+ ? { provisionWorktree: opts.draftPrProvisionWorktree }
253
+ : {}),
254
+ ...(opts.draftPrRemoveWorktree !== undefined
255
+ ? { removeWorktree: opts.draftPrRemoveWorktree }
256
+ : {}),
251
257
  });
252
258
  if (draftPr.kind === 'ok') {
253
259
  await adapter.recordPrUrl(questionHash, draftPr.prUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"run-loop.js","sourceRoot":"","sources":["../../src/selfimprove/run-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-loop.js","sourceRoot":"","sources":["../../src/selfimprove/run-loop.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.7.1",
3
+ "version": "2026.7.2",
4
4
  "description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -446,16 +446,16 @@
446
446
  "write-file-atomic": "^7.0.1",
447
447
  "yaml": "^2.8.3",
448
448
  "zod": "^4.3.6",
449
- "@cleocode/agents": "2026.7.1",
450
- "@cleocode/caamp": "2026.7.1",
451
- "@cleocode/contracts": "2026.7.1",
452
- "@cleocode/adapters": "2026.7.1",
453
- "@cleocode/git-shim": "2026.7.1",
454
- "@cleocode/nexus": "2026.7.1",
455
- "@cleocode/lafs": "2026.7.1",
456
- "@cleocode/paths": "2026.7.1",
457
- "@cleocode/skills": "2026.7.1",
458
- "@cleocode/worktree": "2026.7.1"
449
+ "@cleocode/adapters": "2026.7.2",
450
+ "@cleocode/agents": "2026.7.2",
451
+ "@cleocode/contracts": "2026.7.2",
452
+ "@cleocode/lafs": "2026.7.2",
453
+ "@cleocode/git-shim": "2026.7.2",
454
+ "@cleocode/caamp": "2026.7.2",
455
+ "@cleocode/nexus": "2026.7.2",
456
+ "@cleocode/paths": "2026.7.2",
457
+ "@cleocode/skills": "2026.7.2",
458
+ "@cleocode/worktree": "2026.7.2"
459
459
  },
460
460
  "engines": {
461
461
  "node": ">=24.16.0"
@@ -490,7 +490,7 @@
490
490
  },
491
491
  "optionalDependencies": {
492
492
  "llmtxt": "^2026.5.15",
493
- "@cleocode/studio": "^2026.7.1"
493
+ "@cleocode/studio": "^2026.7.2"
494
494
  },
495
495
  "scripts": {
496
496
  "build": "tsc && node scripts/copy-selfimprove-fixtures.mjs",