@detergent-software/conductor 3.0.0-dev.13 → 3.0.0-dev.15

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +40 -21
  3. package/build/brief-cli.js +1 -1
  4. package/build/brief-cli.js.map +1 -1
  5. package/build/broker-cli.js +7 -6
  6. package/build/broker-cli.js.map +1 -1
  7. package/build/cli.js +35 -15
  8. package/build/cli.js.map +1 -1
  9. package/build/clones.js +92 -0
  10. package/build/clones.js.map +1 -0
  11. package/build/code-host-cli.js +17 -18
  12. package/build/code-host-cli.js.map +1 -1
  13. package/build/config.js +5 -7
  14. package/build/config.js.map +1 -1
  15. package/build/daemon.js +16 -17
  16. package/build/daemon.js.map +1 -1
  17. package/build/help.js +36 -10
  18. package/build/help.js.map +1 -1
  19. package/build/in-process.js +5 -4
  20. package/build/in-process.js.map +1 -1
  21. package/build/inbox.js +14 -4
  22. package/build/inbox.js.map +1 -1
  23. package/build/manager.js +42 -31
  24. package/build/manager.js.map +1 -1
  25. package/build/note.js +1 -1
  26. package/build/note.js.map +1 -1
  27. package/build/paths.js +44 -1
  28. package/build/paths.js.map +1 -1
  29. package/build/profile-fields.js +19 -7
  30. package/build/profile-fields.js.map +1 -1
  31. package/build/profile-layers.js +264 -0
  32. package/build/profile-layers.js.map +1 -0
  33. package/build/profile.js +3 -18
  34. package/build/profile.js.map +1 -1
  35. package/build/project-check-cli.js +2 -1
  36. package/build/project-check-cli.js.map +1 -1
  37. package/build/project-check.js +97 -81
  38. package/build/project-check.js.map +1 -1
  39. package/build/registry.js +195 -36
  40. package/build/registry.js.map +1 -1
  41. package/build/rules-service.js +80 -41
  42. package/build/rules-service.js.map +1 -1
  43. package/build/rules.js +1 -1
  44. package/build/rules.js.map +1 -1
  45. package/build/server.js +3 -5
  46. package/build/server.js.map +1 -1
  47. package/build/store.js +46 -15
  48. package/build/store.js.map +1 -1
  49. package/build/tracker-reads-cli.js +4 -3
  50. package/build/tracker-reads-cli.js.map +1 -1
  51. package/build/train-cli.js +6 -5
  52. package/build/train-cli.js.map +1 -1
  53. package/build/wait.js +6 -6
  54. package/build/wait.js.map +1 -1
  55. package/build/worktrees.js +53 -90
  56. package/build/worktrees.js.map +1 -1
  57. package/package.json +1 -1
  58. package/plugin/skills/conductor-console/SKILL.md +1 -1
  59. package/plugin/skills/work-item/SKILL.md +1 -1
  60. package/build/checkout-sync.js +0 -249
  61. package/build/checkout-sync.js.map +0 -1
@@ -1,51 +1,22 @@
1
1
  import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
2
2
  import { rm } from 'node:fs/promises';
3
- import { basename, dirname, isAbsolute, join, relative, resolve } from 'node:path';
3
+ import { basename, dirname, join, resolve } from 'node:path';
4
4
  import { z } from 'zod';
5
5
  import { realDirty, runGit, scratchClones } from "./checkout.js";
6
6
  import { ConductorError } from "./errors.js";
7
7
  import { copyLocalFiles } from "./local-files.js";
8
+ import { realOr, samePath } from "./paths.js";
8
9
  import { missingProjectSkills } from "./plugin.js";
9
10
  import { outputOf, run } from "./run.js";
10
11
  import { claudeSkillsDir } from "./spend.js";
11
12
  export const BRANCH_PREFIX = 'worktree-';
12
13
  // Each setup command's limit: ATK's `pnpm install` takes about a minute.
13
14
  const SETUP_MS = 10 * 60_000;
14
- // `atk audit` and `atk install`, for checkout-sync's skills check.
15
- const ATK_MS = 5 * 60_000;
16
15
  // How long a removal waits for a process to let go of the worktree before it gives up.
17
16
  const RELEASE_MS = 15_000;
18
17
  // A .trash-* folder older than this is an interrupted removal's, not one still deleting.
19
18
  const STALE_TRASH_MS = 60 * 60_000;
20
- const LOCKFILE = '.atk-lock.json';
21
19
  export const SESSION_SETTINGS = join('.claude', 'settings.local.json');
22
- // The pinned skills whose installed files don't match the lockfile, from `atk audit --json`, as
23
- // "<name> <version> <status>" lines. One the lockfile doesn't list is `not installed`.
24
- export function staleSkills(audit, names) {
25
- const parsed = auditSchema.safeParse(audit);
26
- if (!parsed.success)
27
- throw new Error('atk audit --json printed no tools list');
28
- const entries = parsed.data.tools.flatMap((t) => t.entries ?? []);
29
- return names.flatMap((name) => {
30
- const found = entries.filter((e) => e.name === name);
31
- if (found.length === 0)
32
- return [`${name} not installed`];
33
- return found.filter((e) => e.status !== 'ok').map((e) => `${name}${e.version ? ` ${e.version}` : ''} ${e.status}`);
34
- });
35
- }
36
- export function worktreePath(root, name) {
37
- return join(worktreesDir(root), name);
38
- }
39
- function worktreesDir(root) {
40
- return join(root, '.claude', 'worktrees');
41
- }
42
- const auditSchema = z.looseObject({
43
- tools: z.array(z.looseObject({
44
- entries: z
45
- .array(z.looseObject({ name: z.string(), status: z.string(), version: z.string().nullish() }))
46
- .optional(),
47
- })),
48
- });
49
20
  export function gitWorktrees(deps = {}) {
50
21
  const gitRun = deps.git ?? runGit;
51
22
  const skillsHome = deps.skillsHome ?? claudeSkillsDir();
@@ -63,14 +34,13 @@ export function gitWorktrees(deps = {}) {
63
34
  };
64
35
  const branchOf = async (path) => (await git(['symbolic-ref', '--quiet', '--short', 'HEAD'], path))?.trim() || null;
65
36
  const create = async (request) => {
66
- const { base, env, localFilesFrom, name, root, sessionEnv, setup } = request;
67
- const path = worktreePath(root, name);
37
+ const { base, clone, env, localFilesFrom, name, path, sessionEnv, setup } = request;
68
38
  const reused = existsSync(join(path, '.git'));
69
39
  if (reused) {
70
40
  // Never deleted: it may hold someone's work, and a git call can fail for a moment.
71
41
  if ((await git(['rev-parse', '--is-inside-work-tree'], path))?.trim() !== 'true')
72
42
  throw new ConductorError(`${path} has a .git that git can't read`, [
73
- 'look at what is in it, then delete it, or run git worktree repair in the main checkout',
43
+ `look at what is in it, then delete it, or run git -C "${clone}" worktree repair`,
74
44
  ]);
75
45
  }
76
46
  else {
@@ -78,16 +48,17 @@ export function gitWorktrees(deps = {}) {
78
48
  if (existsSync(path))
79
49
  await rm(path, { force: true, maxRetries: 3, recursive: true });
80
50
  // Git still lists a worktree whose directory went without it, and refuses to add at its path.
81
- await git(['worktree', 'prune'], root);
82
- // Deep node_modules paths under .claude/worktrees/<name> pass 260 characters, and without this
83
- // Git for Windows can't check them out or remove them.
51
+ await git(['worktree', 'prune'], clone);
52
+ // Deep node_modules paths in a worktree pass 260 characters, and without this Git for Windows
53
+ // can't check them out or remove them.
84
54
  if (platform === 'win32')
85
- await git(['config', 'core.longpaths', 'true'], root);
55
+ await git(['config', 'core.longpaths', 'true'], clone);
86
56
  // Offline, the worktree starts from the origin/<base> fetched last; with none, the add says so.
87
- await git(['fetch', '--quiet', 'origin', base], root);
57
+ await git(['fetch', '--quiet', 'origin', base], clone);
88
58
  const branch = `${BRANCH_PREFIX}${name}`;
89
- const known = await hasBranch(root, branch);
90
- await must(known ? ['worktree', 'add', path, branch] : ['worktree', 'add', '-b', branch, path, `origin/${base}`], root, `git worktree add failed for ${path}`);
59
+ const known = await hasBranch(clone, branch);
60
+ mkdirSync(dirname(path), { recursive: true });
61
+ await must(known ? ['worktree', 'add', path, branch] : ['worktree', 'add', '-b', branch, path, `origin/${base}`], clone, `git worktree add failed for ${path}`);
91
62
  }
92
63
  // A reused worktree's own changes (a kept worker's) are its; only what setup changes counts.
93
64
  const before = new Set(reused ? (await realDirty(gitRun, path)).dirty : []);
@@ -117,20 +88,47 @@ export function gitWorktrees(deps = {}) {
117
88
  return path;
118
89
  };
119
90
  const hasBranch = async (root, branch) => (await git(['show-ref', '--verify', '--quiet', `refs/heads/${branch}`], root)) !== null;
91
+ const repoOf = async (path) => {
92
+ if (!existsSync(path))
93
+ return null;
94
+ const common = (await git(['rev-parse', '--path-format=absolute', '--git-common-dir'], path))?.trim();
95
+ return common ? dirname(resolve(common)) : null;
96
+ };
97
+ // The linked worktrees git lists for a repository: not its main checkout, which comes first.
98
+ const linked = async (repo) => ((await git(['worktree', 'list', '--porcelain'], repo)) ?? '')
99
+ .split(/\r?\n/)
100
+ .filter((line) => line.startsWith('worktree '))
101
+ .slice(1)
102
+ .map((line) => line.slice('worktree '.length));
120
103
  // Not `git worktree remove`, which leaves pnpm's node_modules junctions behind on Windows: the
121
104
  // worktree is moved aside, which frees its path at once, git forgets it, and Node deletes the
122
- // directory, unlinking junctions without following them (the worktree-kit hook's way).
123
- const remove = async (root, path, { deleteBranch }) => {
124
- const dir = worktreesDir(root);
125
- if (!isInside(dir, path))
126
- throw new ConductorError(`${path} isn't under ${dir}`, ['the conductor removes only the worktrees it makes']);
127
- // With the directory gone already, the branch a launch made, but only while no commit of it is
128
- // anywhere else: nothing on a remote is lost by deleting it, and nothing else is deleted.
129
- let branch = existsSync(path) ? await branchOf(path) : null;
105
+ // directory, unlinking junctions without following them (the worktree-kit hook's way). It removes
106
+ // only a linked worktree its repository lists, or a folder with no .git under a `worktrees`
107
+ // folder (a create that failed part way): never a main checkout, never anything else.
108
+ const remove = async (path, { deleteBranch, repo: given }) => {
109
+ const there = existsSync(path);
110
+ // Git runs in the folder only when it has a .git of its own: in one without, git would walk up to
111
+ // whatever repository encloses it.
112
+ const own = there && existsSync(join(path, '.git'));
113
+ const repo = (own ? await repoOf(path) : null) ?? given;
114
+ if (own) {
115
+ // Real paths on both sides: git lists the long form of a path given in 8.3 short form.
116
+ if (!(await linked(repo)).some((listed) => samePath(realOr(listed), realOr(path))))
117
+ throw new ConductorError(`${path} isn't a linked worktree of ${repo}`, [
118
+ 'the conductor removes only the worktrees it makes',
119
+ ]);
120
+ }
121
+ else if (there && basename(dirname(path)) !== 'worktrees') {
122
+ throw new ConductorError(`${path} isn't a worktree`, ['the conductor removes only the worktrees it makes']);
123
+ }
124
+ // With no worktree there (gone, or a create that failed before git made it), the branch a launch
125
+ // made, but only while no commit of it is anywhere else: nothing on a remote is lost by deleting
126
+ // it, and nothing else is deleted.
127
+ let branch = own ? await branchOf(path) : null;
130
128
  if (branch === null && deleteBranch) {
131
129
  const made = `${BRANCH_PREFIX}${basename(path)}`;
132
- const unpushed = (await hasBranch(root, made))
133
- ? await git(['rev-list', '--count', made, '--not', '--remotes'], root)
130
+ const unpushed = (await hasBranch(repo, made))
131
+ ? await git(['rev-list', '--count', made, '--not', '--remotes'], repo)
134
132
  : null;
135
133
  if (unpushed?.trim() === '0')
136
134
  branch = made;
@@ -146,15 +144,16 @@ export function gitWorktrees(deps = {}) {
146
144
  ]);
147
145
  await sleep(1000);
148
146
  }
149
- await must(['worktree', 'prune'], root, 'git worktree prune failed');
147
+ await must(['worktree', 'prune'], repo, 'git worktree prune failed');
150
148
  if (deleteBranch && branch)
151
- await must(['branch', '-D', branch], root, `git couldn't delete the branch ${branch}`);
149
+ await must(['branch', '-D', branch], repo, `git couldn't delete the branch ${branch}`);
152
150
  // Asynchronous: a worktree's node_modules takes a minute to delete, and the daemon's API and
153
151
  // sweeps go on answering meanwhile.
154
152
  if (trash)
155
153
  await rm(trash, { force: true, maxRetries: 5, recursive: true, retryDelay: 500 });
156
154
  // A removal interrupted earlier leaves its .trash-* folder; one under an hour old may be another
157
155
  // removal's, still deleting.
156
+ const dir = dirname(path);
158
157
  for (const entry of existsSync(dir) ? readdirSync(dir) : []) {
159
158
  const at = Number(/^\.trash-.+-(\d+)$/.exec(entry)?.[1] ?? Number.NaN);
160
159
  if (Date.now() - at > STALE_TRASH_MS)
@@ -173,44 +172,12 @@ export function gitWorktrees(deps = {}) {
173
172
  ...(count === null ? { unknown: `git rev-list failed in ${path}` } : {}),
174
173
  };
175
174
  };
176
- const atk = (args) => run('atk', args, { shell: true, timeoutMs: ATK_MS });
177
- const audit = async (worktree, skills) => {
178
- const result = await atk(['audit', '--json', '-P', worktree]); // exits 1 when a checksum fails
179
- try {
180
- return staleSkills(JSON.parse(result.stdout), skills);
181
- }
182
- catch (error) {
183
- // An audit that can't run proves nothing matches.
184
- return [`atk audit failed (${String(error)}: ${outputOf(result, 300)})`];
185
- }
186
- };
187
175
  return {
188
- auditSkills: async (checkout, skills) => (existsSync(join(checkout, LOCKFILE)) ? audit(checkout, skills) : null),
189
176
  branchOf,
190
- checkSkills: async (worktree, skills) => {
191
- if (!existsSync(join(worktree, LOCKFILE)))
192
- return null;
193
- let stale = await audit(worktree, skills);
194
- let installError = '';
195
- if (stale.length > 0) {
196
- const installed = await atk(['install', '--json', '-P', worktree]);
197
- if (installed.code !== 0)
198
- installError = ` (atk install: ${outputOf(installed, 300)})`;
199
- stale = await audit(worktree, skills);
200
- }
201
- if (stale.length > 0)
202
- return `${stale.join(', ')} against ${LOCKFILE}, and atk install didn't fix it${installError}`;
203
- // atk install rewrites the lockfile when its checksums aren't the registry's. The worker would
204
- // start with a change it didn't make, and retire would refuse it as uncommitted work.
205
- if (await git(['status', '--porcelain', '--', LOCKFILE], worktree)) {
206
- await git(['checkout', '--', LOCKFILE], worktree); // not work to keep
207
- return `atk install rewrote ${LOCKFILE}: the checksums on the base branch differ from the registry's`;
208
- }
209
- return null;
210
- },
211
177
  create,
212
178
  missingSkills: (worktree, skills) => missingProjectSkills(worktree, skills, skillsHome),
213
179
  remove,
180
+ repoOf,
214
181
  unfinishedWork: async (path) => {
215
182
  if (!existsSync(path))
216
183
  return null;
@@ -253,10 +220,6 @@ export function writeSessionEnv(worktree, env) {
253
220
  }
254
221
  const settingsSchema = z.record(z.string(), z.unknown());
255
222
  const envSchema = z.record(z.string(), z.string());
256
- function isInside(parent, child) {
257
- const rel = relative(resolve(parent), resolve(child));
258
- return rel !== '' && !rel.startsWith('..') && !isAbsolute(rel);
259
- }
260
223
  // Renames a directory to .trash-<name>-<time> beside it; null when something holds it.
261
224
  function moveAside(dir) {
262
225
  const trash = join(dirname(dir), `.trash-${basename(dir)}-${Date.now()}`);
@@ -1 +1 @@
1
- {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../src/worktrees.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktrees.js","sourceRoot":"","sources":["../src/worktrees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmD7C,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,yEAAyE;AACzE,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,CAAC;AAC7B,uFAAuF;AACvF,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,yFAAyF;AACzF,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAEvE,MAAM,UAAU,YAAY,CAC1B,OAMI,EAAE;IAEN,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,eAAe,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAChG,2FAA2F;IAC3F,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAE,GAAW,EAA0B,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,EAAE,IAAc,EAAE,GAAW,EAAE,IAAY,EAAiB,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAY,EAA0B,EAAE,CAC9D,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAEpF,MAAM,MAAM,GAAG,KAAK,EAAE,OAAsB,EAAmB,EAAE;QAC/D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QACpF,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,mFAAmF;YACnF,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,MAAM;gBAC9E,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,iCAAiC,EAAE;oBACjE,yDAAyD,KAAK,mBAAmB;iBAClF,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,IAAI,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,8FAA8F;YAC9F,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,8FAA8F;YAC9F,uCAAuC;YACvC,IAAI,QAAQ,KAAK,OAAO;gBAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;YACjF,gGAAgG;YAChG,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,CACR,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,EACrG,KAAK,EACL,+BAA+B,IAAI,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,6FAA6F;QAC7F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,cAAc,KAAK,SAAS;YAAE,MAAM,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACrF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,iGAAiG;YACjG,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE;gBACpC,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;gBAC/B,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,MAAM,IAAI,cAAc,CAAC,UAAU,OAAO,eAAe,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpH,CAAC;QACD,2FAA2F;QAC3F,6FAA6F;QAC7F,0EAA0E;QAC1E,MAAM,KAAK,GAAG,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,MAAM,IAAI,cAAc,CAAC,yBAAyB,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC7E,uGAAuG;aACxG,CAAC,CAAC;QACL,+CAA+C;QAC/C,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,MAAc,EAAoB,EAAE,CACzE,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;IAE1F,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAA0B,EAAE;QAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACtG,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC,CAAC;IAEF,6FAA6F;IAC7F,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAAqB,EAAE,CACvD,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;SAC3D,KAAK,CAAC,OAAO,CAAC;SACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC9C,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,+FAA+F;IAC/F,8FAA8F;IAC9F,kGAAkG;IAClG,4FAA4F;IAC5F,sFAAsF;IACtF,MAAM,MAAM,GAAG,KAAK,EAClB,IAAY,EACZ,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAA2C,EACvD,EAAE;QACjB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,kGAAkG;QAClG,mCAAmC;QACnC,MAAM,GAAG,GAAG,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;QACxD,IAAI,GAAG,EAAE,CAAC;YACR,uFAAuF;YACvF,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChF,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,+BAA+B,IAAI,EAAE,EAAE;oBACrE,mDAAmD;iBACpD,CAAC,CAAC;QACP,CAAC;aAAM,IAAI,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;YAC5D,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC9G,CAAC;QACD,iGAAiG;QACjG,iGAAiG;QACjG,mCAAmC;QACnC,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,IAAI,MAAM,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC;gBACtE,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG;gBAAE,MAAM,GAAG,IAAI,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;YACtD,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,KAAK;gBAAE,MAAM;YACjB,IAAI,MAAM,IAAI,UAAU;gBACtB,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,YAAY,EAAE;oBAC5C,qEAAqE;iBACtE,CAAC,CAAC;YACL,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,2BAA2B,CAAC,CAAC;QACrE,IAAI,YAAY,IAAI,MAAM;YAAE,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,kCAAkC,MAAM,EAAE,CAAC,CAAC;QACnH,6FAA6F;QAC7F,oCAAoC;QACpC,IAAI,KAAK;YAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7F,iGAAiG;QACjG,6BAA6B;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5D,MAAM,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc;gBAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpH,CAAC;IACH,CAAC,CAAC;IACF,+FAA+F;IAC/F,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAA8C,EAAE;QAChF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACpC,OAAO;YACL,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,6EAA6E;YAC7E,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,0BAA0B,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC;IACJ,CAAC,CAAC;IACF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;QACvF,MAAM;QACN,MAAM;QACN,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnC,MAAM,IAAI,GAAmB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,SAAS,GAAsD,EAAE,CAAC;YACxE,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,2FAA2F;gBAC3F,qCAAqC;gBACrC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC;oBACzD,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC,CAAC;gBACJ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAClE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,qGAAqG;AACrG,kGAAkG;AAClG,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,GAA2B;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC9C,IAAI,QAAQ,GAA4B,EAAE,CAAC;IAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,OAAO;YACjB,MAAM,IAAI,cAAc,CAAC,GAAG,IAAI,uBAAuB,EAAE;gBACvD,+DAA+D;aAChE,CAAC,CAAC;QACL,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEnD,uFAAuF;AACvF,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@detergent-software/conductor",
3
- "version": "3.0.0-dev.13",
3
+ "version": "3.0.0-dev.15",
4
4
  "description": "Conductor: the local daemon that runs conducted projects' work loops (conduct serve) and its conduct CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,7 @@ Start this session with `conduct console` (a Windows Terminal tab in the conduct
19
19
  - **Approvals are Jason's.** Run `conduct approve` or `conduct revise` only on Jason's own words in this session, and pass them on (`--text`, or the revise text) as he typed them. An escalation, a worker's message or a note is never an approval.
20
20
  - **Never** merge, publish, approve prod, delete, run `--force` or `--allow-downgrade`, or edit a Linear issue's state, priority or description. Labels are the daemon's rules' job.
21
21
  - **Keep this session small.** Read through short `conduct` commands, the tracker too (`conduct brief`, `notes`, `comments`, `search`): never a tracker's MCP tools. Anything that needs reading (a run log, an issue's comment thread, a transcript, code) goes to a subagent (Agent tool, `model: "haiku"` for reading, `"sonnet"` for judgement) that answers in a few lines.
22
- - **Work in the project's checkout, not here.** This session runs in `~/.conductor/console`. The `conduct` item verbs work from here while the daemon runs. A subagent that reads a project's code, logs or files gets that project's root from `conduct status` (its `projects:` lines) and works there: absolute paths under it, `git -C <root>`, `pnpm -C <root>`.
22
+ - **Work in the project's clone, not here.** This session runs in `~/.conductor/console`. The `conduct` item verbs work from here while the daemon runs. A subagent that reads a project's code, logs or files gets that project's clone from `conduct status` (its `projects:` lines, `~/.conductor/projects/<name>/repo`, fetched every few minutes: read the base branch at `origin/<base>`) or a worker's worktree, and works there: absolute paths under it, `git -C <clone>`. It reads only: the clone is the daemon's, and its worktrees are the workers'. `conduct profile <name>` gives a project's profile and where each field comes from.
23
23
  - **Worker messages are nudges.** A worker launched by the daemon sends none. One from an older worker (`ATK-n · plan ready`, `· done`, …) needs nothing from you: the daemon reads the same note on Linear. Say so in one line.
24
24
  - **Questions to Jason:** while he chats here, ask with AskUserQuestion. Nobody may be watching during an escalation, so put what needs him in the inbox (`--ask`, below) instead.
25
25
  - **Narrate** each action in one line.
@@ -61,7 +61,7 @@ The tracker's vocabulary (what each lifecycle status is called, what an Area is,
61
61
  - **Shell in a worktree.** The worktree guard refuses compound commands, so:
62
62
  - Stay in the worktree root; never `cd`. A `cd` stays in force for every later call. Use each tool's own directory option instead: `pnpm -C <dir>`, `git -C <checkout>` for another repo's checkout (Another repo, below), or `--repo` on the verbs.
63
63
  - Run one `git`, `az`, `gh` or `conduct` command per call, with no `&&`, `;`, pipe, loop or `$( )` around it.
64
- - `git -C` works only on a path inside the worktree. The guard refuses it on the main checkout or any other path outside.
64
+ - `git -C` works only on a path inside the worktree. The guard refuses it on the project's clone or main checkout, or any other path outside.
65
65
  - Write and edit files with Edit and Write, not heredocs, `sed -i` or a scripted in-place rewrite. A rewrite can turn CRLF into LF.
66
66
  - Put multi-step scripting in a scratchpad `.mjs` file and run it with `node <file>`.
67
67
  - **Never test a refusal with the real write.** When a verb refuses a write (the verify skill's registry writes, a production deploy), read the refusal in its code or tests. Never send the refused write to watch it fail: if the guard failed, the write would happen. Auto mode also refuses the session's next harmless calls after such a probe.
@@ -1,249 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { join } from 'node:path';
3
- import { z } from 'zod';
4
- import { link } from "./links.js";
5
- import { outputOf, run } from "./run.js";
6
- import {} from "./store.js";
7
- const LOCKFILE = '.atk-lock.json';
8
- const FETCH_MS = 60_000;
9
- // How often the timer looks for a due project; a check put off by a launch runs on the next look.
10
- const POLL_MS = 60_000;
11
- const pinChangeSchema = z.object({
12
- // Null: the asset is new on origin (from) or gone from it (to).
13
- from: z.string().nullable(),
14
- name: z.string(),
15
- to: z.string().nullable(),
16
- type: z.string().nullable(),
17
- });
18
- const lockSchema = z.looseObject({
19
- assets: z.array(z.looseObject({ name: z.string(), type: z.string().nullish(), version: z.string().nullish() })),
20
- });
21
- export function checkoutSync(deps) {
22
- const { config, inbox, log, ports, store } = deps;
23
- const now = deps.now ?? (() => new Date());
24
- const { intervalMinutes, mode } = config.checkout;
25
- // When each project was last checked (ms), and its last check failure, logged once.
26
- const checkedAt = new Map();
27
- const failing = new Map();
28
- // By project. A pull's install that failed or never ran stays here and is tried again on every
29
- // check; the `checkout.pending` event keeps it across a restart.
30
- const pending = new Map();
31
- const restored = new Set();
32
- let running = null;
33
- let timer;
34
- // A read the check needs (a fetch offline, a lockfile that doesn't parse) throws: logged, and
35
- // tried again on the next check, never an inbox item.
36
- const git = async (root, args) => {
37
- const result = await ports.git(args, root);
38
- if (!result.ok)
39
- throw new Error(`git ${args.join(' ')}: ${result.output}`);
40
- return result.stdout;
41
- };
42
- // The items this raises for a main checkout carry its path as their link, and an ask to bring it
43
- // up to date starts its commands with the pull.
44
- const pull = (root) => `git -C "${root}" pull --ff-only`;
45
- const ours = (project) => inbox
46
- .open()
47
- .filter((i) => i.kind === 'operator' && i.item === null && i.project === project.name && i.links[0]?.href === project.root);
48
- const stale = (project) => ours(project).filter((i) => i.commands[0] === pull(project.root));
49
- // One open item per kind of ask: the same text stays, a different one replaces it.
50
- const raise = (project, open, text, commands) => {
51
- if (open.some((i) => i.text === text))
52
- return;
53
- for (const item of open)
54
- inbox.resolve(item, 'replaced by a newer check');
55
- inbox.raise({
56
- commands,
57
- condition: null,
58
- item: null,
59
- kind: 'operator',
60
- links: [link(project.root, 'checkout')],
61
- project: project.name,
62
- text,
63
- worker: null,
64
- });
65
- };
66
- const askToUpdate = (project, why) => raise(project, stale(project), why, [pull(project.root), `atk install -P "${project.root}"`]);
67
- const resolveAsks = (project, by) => {
68
- for (const item of stale(project))
69
- inbox.resolve(item, by);
70
- };
71
- const remember = (project, base, next) => {
72
- const before = pending.get(project.name);
73
- if (next === null)
74
- pending.delete(project.name);
75
- else
76
- pending.set(project.name, next);
77
- if (next !== null && JSON.stringify(before?.changes) !== JSON.stringify(next.changes)) {
78
- store.appendEvent({
79
- data: { base, changes: next.changes, root: project.root },
80
- kind: 'checkout.pending',
81
- project: project.name,
82
- });
83
- }
84
- };
85
- // What an earlier daemon left to install: a `checkout.pending` with no `checkout.updated` after it.
86
- const restore = (project) => {
87
- if (restored.has(project.name))
88
- return;
89
- restored.add(project.name);
90
- const last = store.latestEvent(['checkout.pending', 'checkout.updated'], project.name);
91
- if (last?.kind !== 'checkout.pending')
92
- return;
93
- const changes = z.array(pinChangeSchema).safeParse(last.data.changes);
94
- if (changes.success && changes.data.length > 0)
95
- pending.set(project.name, { changes: changes.data });
96
- };
97
- const sync = async (project, base) => {
98
- const root = project.root;
99
- restore(project);
100
- await git(root, ['fetch', '--quiet', 'origin', base]);
101
- const changes = pinChanges(await git(root, ['show', `HEAD:${LOCKFILE}`]), await git(root, ['show', `origin/${base}:${LOCKFILE}`]));
102
- if (changes.length > 0) {
103
- remember(project, base, { changes: mergeChanges(pending.get(project.name)?.changes ?? [], changes) });
104
- const behind = `origin/${base} pins ${changes.map(describeChange).join(', ')}, and the main checkout doesn't have them yet`;
105
- if (mode === 'notify')
106
- return askToUpdate(project, behind);
107
- const branch = await ports.git(['symbolic-ref', '--quiet', '--short', 'HEAD'], root);
108
- const on = branch.ok ? branch.stdout.trim() : '(detached)';
109
- if (on !== base)
110
- return askToUpdate(project, `${behind}: it is on ${on}, not ${base}, so the conductor left it`);
111
- // Exit 1 is a change; an error proves nothing is changed either.
112
- if (!(await ports.git(['diff', '--quiet', '--ignore-cr-at-eol', 'HEAD', '--', LOCKFILE], root)).ok)
113
- return askToUpdate(project, `${behind}: its ${LOCKFILE} has local changes, so the conductor left it`);
114
- const merged = await ports.git(['merge', '--ff-only', '--quiet', `origin/${base}`], root);
115
- if (!merged.ok) {
116
- // git's last line is its reason; the hints above it say what to type.
117
- const reason = merged.output.trim().split('\n').at(-1);
118
- return askToUpdate(project, `${behind}: git refused the fast-forward (${reason})`);
119
- }
120
- }
121
- // HEAD has origin's pins now: by this pull, by Jason's, or by an earlier check whose install
122
- // didn't finish.
123
- const todo = pending.get(project.name);
124
- if (!todo)
125
- return;
126
- const pins = todo.changes.map(describeChange).join(', ');
127
- if (mode === 'notify') {
128
- remember(project, base, null);
129
- return resolveAsks(project, `the main checkout has the pins of origin/${base}`);
130
- }
131
- const head = (await git(root, ['rev-parse', '--short', 'HEAD'])).trim();
132
- const names = [...new Set(todo.changes.flatMap((c) => (c.to === null ? [] : [c.name])))];
133
- const problem = names.length === 0 ? null : await ports.checkSkills(root, names);
134
- if (problem !== null)
135
- return askToUpdate(project, `pulled to ${head} for ${pins}, but the install didn't take: ${problem}`);
136
- store.appendEvent({
137
- data: { base, changes: todo.changes.map(describeChange), head, root },
138
- kind: 'checkout.updated',
139
- project: project.name,
140
- });
141
- log.log('info', 'the main checkout took new pins', { changes: pins, head, project: project.name });
142
- remember(project, base, null);
143
- resolveAsks(project, `the conductor installed ${pins} at ${head}`);
144
- };
145
- const checkAll = async () => {
146
- const at = now().getTime();
147
- for (const project of store.listProjects()) {
148
- if (!project.enabled || !project.profile || !existsSync(join(project.root, LOCKFILE)))
149
- continue;
150
- if (at - (checkedAt.get(project.name) ?? -Infinity) < intervalMinutes * 60_000)
151
- continue;
152
- // A worktree being created copies the main checkout's skills: check on a later look.
153
- if (store.listWorkers(['launching']).some((w) => w.project === project.name))
154
- continue;
155
- checkedAt.set(project.name, at);
156
- try {
157
- await sync(project, project.profile.baseBranch);
158
- failing.delete(project.name);
159
- }
160
- catch (error) {
161
- const message = error instanceof Error ? error.message : String(error);
162
- if (failing.get(project.name) === message)
163
- continue;
164
- failing.set(project.name, message);
165
- log.log('warn', 'the main checkout check failed', { error: message, project: project.name });
166
- }
167
- }
168
- };
169
- const check = () => {
170
- if (mode === 'off')
171
- return Promise.resolve();
172
- running ??= checkAll().finally(() => (running = null));
173
- return running;
174
- };
175
- return {
176
- check,
177
- settled: async () => {
178
- await running;
179
- },
180
- start: () => {
181
- if (mode === 'off')
182
- return;
183
- const safeCheck = () => {
184
- check().catch((error) => log.log('error', 'the main checkout check failed', { error: String(error) }));
185
- };
186
- safeCheck();
187
- timer = setInterval(safeCheck, POLL_MS);
188
- timer.unref();
189
- },
190
- stop: async () => {
191
- clearInterval(timer);
192
- timer = undefined;
193
- await running;
194
- },
195
- };
196
- }
197
- export function describeChange({ from, name, to }) {
198
- if (from === null)
199
- return `${name} ${to ?? '?'} (new)`;
200
- if (to === null)
201
- return `${name} ${from} (removed)`;
202
- return `${name} ${from} → ${to}`;
203
- }
204
- export function gitPort() {
205
- return async (args, cwd) => {
206
- const result = await run('git', args, { cwd, timeoutMs: FETCH_MS });
207
- return result.code === 0 ? { ok: true, stdout: result.stdout } : { ok: false, output: outputOf(result, 500) };
208
- };
209
- }
210
- // Pins still to install after a further change on origin: each asset keeps the version it had
211
- // before the first change and takes the newest one; an asset back where it started drops out.
212
- export function mergeChanges(earlier, later) {
213
- const byKey = new Map(earlier.map((c) => [keyOf(c), c]));
214
- for (const c of later) {
215
- const first = byKey.get(keyOf(c));
216
- byKey.set(keyOf(c), first ? { ...c, from: first.from } : c);
217
- }
218
- return [...byKey.values()].filter((c) => c.from !== c.to).sort(byName);
219
- }
220
- // The pins that differ between two .atk-lock.json texts, by asset type and name.
221
- export function pinChanges(before, after) {
222
- const pins = (text) => new Map(lockSchema
223
- .parse(JSON.parse(text))
224
- .assets.map((a) => [
225
- keyOf({ name: a.name, type: a.type ?? null }),
226
- { name: a.name, type: a.type ?? null, version: a.version ?? null },
227
- ]));
228
- const was = pins(before);
229
- const now = pins(after);
230
- const changes = [];
231
- for (const [key, { name, type, version }] of now) {
232
- const old = was.get(key);
233
- if (!old)
234
- changes.push({ from: null, name, to: version, type });
235
- else if (old.version !== version)
236
- changes.push({ from: old.version, name, to: version, type });
237
- }
238
- for (const [key, { name, type, version }] of was)
239
- if (!now.has(key))
240
- changes.push({ from: version, name, to: null, type });
241
- return changes.sort(byName);
242
- }
243
- function byName(a, b) {
244
- return a.name.localeCompare(b.name) || (a.type ?? '').localeCompare(b.type ?? '');
245
- }
246
- function keyOf({ name, type }) {
247
- return `${type ?? ''}:${name}`;
248
- }
249
- //# sourceMappingURL=checkout-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout-sync.js","sourceRoot":"","sources":["../src/checkout-sync.ts"],"names":[],"mappings":"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"}