@aperant/framework 0.8.6 → 0.9.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.
Files changed (71) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/agents/apt-pr-review-fixer.md +9 -4
  3. package/dist/cli/commands/init.mjs +140 -22
  4. package/dist/cli/commands/init.mjs.map +1 -1
  5. package/dist/cli/commands/toolchain-detect.d.mts.map +1 -1
  6. package/dist/cli/commands/toolchain-detect.mjs +44 -0
  7. package/dist/cli/commands/toolchain-detect.mjs.map +1 -1
  8. package/dist/cli/commands/triage.d.mts.map +1 -1
  9. package/dist/cli/commands/triage.mjs +346 -13
  10. package/dist/cli/commands/triage.mjs.map +1 -1
  11. package/dist/cli/commands/uninstall.d.mts.map +1 -1
  12. package/dist/cli/commands/uninstall.mjs +11 -8
  13. package/dist/cli/commands/uninstall.mjs.map +1 -1
  14. package/dist/cli/install/manifest.d.mts +13 -0
  15. package/dist/cli/install/manifest.d.mts.map +1 -1
  16. package/dist/cli/install/manifest.mjs +5 -0
  17. package/dist/cli/install/manifest.mjs.map +1 -1
  18. package/dist/cli/install/pipeline.d.mts +15 -0
  19. package/dist/cli/install/pipeline.d.mts.map +1 -1
  20. package/dist/cli/install/pipeline.mjs +27 -0
  21. package/dist/cli/install/pipeline.mjs.map +1 -1
  22. package/dist/cli/install/runtime-detect.d.mts +26 -0
  23. package/dist/cli/install/runtime-detect.d.mts.map +1 -1
  24. package/dist/cli/install/runtime-detect.mjs +27 -0
  25. package/dist/cli/install/runtime-detect.mjs.map +1 -1
  26. package/dist/cli/install/transforms/codex.d.mts +1 -1
  27. package/dist/cli/install/transforms/codex.d.mts.map +1 -1
  28. package/dist/cli/install/transforms/codex.mjs +43 -2
  29. package/dist/cli/install/transforms/codex.mjs.map +1 -1
  30. package/dist/cli/install/version-header.d.mts.map +1 -1
  31. package/dist/cli/install/version-header.mjs +7 -1
  32. package/dist/cli/install/version-header.mjs.map +1 -1
  33. package/dist/cli/util/aperant-section.d.mts +12 -0
  34. package/dist/cli/util/aperant-section.d.mts.map +1 -1
  35. package/dist/cli/util/aperant-section.mjs +12 -0
  36. package/dist/cli/util/aperant-section.mjs.map +1 -1
  37. package/dist/cli/util/copy.d.mts +27 -0
  38. package/dist/cli/util/copy.d.mts.map +1 -1
  39. package/dist/cli/util/copy.mjs +49 -5
  40. package/dist/cli/util/copy.mjs.map +1 -1
  41. package/dist/cli/verify-proof/idl/index.d.mts +12 -1
  42. package/dist/cli/verify-proof/idl/index.d.mts.map +1 -1
  43. package/dist/cli/verify-proof/idl/index.mjs +50 -1
  44. package/dist/cli/verify-proof/idl/index.mjs.map +1 -1
  45. package/dist/cli/verify-proof/resolver.d.mts.map +1 -1
  46. package/dist/cli/verify-proof/resolver.mjs +51 -1
  47. package/dist/cli/verify-proof/resolver.mjs.map +1 -1
  48. package/dist/plugin/.claude-plugin/plugin.json +1 -1
  49. package/dist/plugin/agents/apt-pr-review-fixer.md +9 -4
  50. package/dist/plugin/skills/apt-pr-review/SKILL.md +52 -15
  51. package/dist/plugin/skills/apt-setup/SKILL.md +7 -6
  52. package/dist/plugin/skills/apt-triage/SKILL.md +8 -6
  53. package/dist/plugin/skills/apt-update/SKILL.md +1 -1
  54. package/package.json +1 -1
  55. package/skills/apt-pr-review/SKILL.md +52 -15
  56. package/skills/apt-setup/SKILL.md +7 -6
  57. package/skills/apt-triage/SKILL.md +8 -6
  58. package/skills/apt-update/SKILL.md +1 -1
  59. package/src/cli/commands/init.mjs +144 -19
  60. package/src/cli/commands/toolchain-detect.mjs +44 -0
  61. package/src/cli/commands/triage.mjs +352 -11
  62. package/src/cli/commands/uninstall.mjs +11 -8
  63. package/src/cli/install/manifest.mjs +5 -0
  64. package/src/cli/install/pipeline.mjs +28 -0
  65. package/src/cli/install/runtime-detect.mjs +27 -0
  66. package/src/cli/install/transforms/codex.mjs +51 -2
  67. package/src/cli/install/version-header.mjs +7 -1
  68. package/src/cli/util/aperant-section.mjs +14 -0
  69. package/src/cli/util/copy.mjs +53 -8
  70. package/src/cli/verify-proof/idl/index.mjs +49 -11
  71. package/src/cli/verify-proof/resolver.mjs +49 -2
@@ -268,6 +268,31 @@ export function cmdToolchainDetect(projectDir, extraArgs = []) {
268
268
  }
269
269
  }
270
270
  const scripts = packageJson?.scripts ?? {};
271
+ // FRAMEWORK-BUG-006 (Part B) — turbo cache-bypass detection.
272
+ // A turbo-backed verify command can replay a STALE CACHE HIT and report
273
+ // PASS while a broken import sits on disk (sighted on PR #244). When the
274
+ // project is turbo-backed we additionally emit a `no_cache_command`
275
+ // variant that appends turbo's `--force` flag so pr-review (and any
276
+ // consumer) can run a cache-bypassing verification. This is ADDITIVE —
277
+ // the existing `command` strings are never altered (ID-03).
278
+ const hasTurboConfig = existsSync(join(scopePath, 'turbo.json'));
279
+ // A package script "resolves through turbo" when its script body invokes
280
+ // the turbo CLI (e.g. "turbo run typecheck"). package.json scripts are
281
+ // hand-authored and tiny; a substring match on the `turbo` token is
282
+ // sufficient and avoids parsing shell.
283
+ function scriptIsTurboBacked(scriptName) {
284
+ const body = scripts[scriptName];
285
+ return typeof body === 'string' && /\bturbo\b/.test(body);
286
+ }
287
+ // Append --force to a turbo-backed package script so it reaches the
288
+ // underlying `turbo run …`. Only used when the command is known to be
289
+ // turbo-backed, so --force is always meaningful here. npm does NOT
290
+ // forward trailing args to the script unless they follow a `--`
291
+ // separator (`npm run typecheck --force` swallows --force as an npm flag),
292
+ // so insert `--` for npm. pnpm/yarn/bun forward trailing args directly.
293
+ function withTurboForce(command) {
294
+ return pm === 'npm' ? `${command} -- --force` : `${command} --force`;
295
+ }
271
296
  // Read pyproject.toml as string if present
272
297
  let pyproject = null;
273
298
  const pyprojectPath = join(scopePath, 'pyproject.toml');
@@ -330,6 +355,20 @@ export function cmdToolchainDetect(projectDir, extraArgs = []) {
330
355
  else if (pyproject && pyproject.includes('[tool.mypy]')) {
331
356
  typecheck = { tool: 'mypy', command: 'mypy .' };
332
357
  }
358
+ // Additive turbo cache-bypass variant (FRAMEWORK-BUG-006). When the
359
+ // project is turbo-backed AND has a turbo-backed typecheck script, the
360
+ // plain command (often `tsc --noEmit` when tsconfig.json wins above) can
361
+ // be masked by a replayed turbo cache PASS. The no_cache_command routes
362
+ // through the turbo-backed script with `--force` so pr-review's post-fix
363
+ // typecheck cannot be fooled by a stale cache.
364
+ if (typecheck && hasTurboConfig) {
365
+ if (scriptIsTurboBacked('typecheck')) {
366
+ typecheck.no_cache_command = withTurboForce(`${pmRun} typecheck`);
367
+ }
368
+ else if (scriptIsTurboBacked('type-check')) {
369
+ typecheck.no_cache_command = withTurboForce(`${pmRun} type-check`);
370
+ }
371
+ }
333
372
  // --- Test ---
334
373
  let test = null;
335
374
  if (hasFilePrefix('vitest.config')) {
@@ -364,6 +403,11 @@ export function cmdToolchainDetect(projectDir, extraArgs = []) {
364
403
  if (!test && scripts.test) {
365
404
  test = { tool: 'package-script', command: `${pmRun} test` };
366
405
  }
406
+ // Additive turbo cache-bypass variant for tests (FRAMEWORK-BUG-006), same
407
+ // rationale as typecheck above — only when turbo backs the test script.
408
+ if (test && hasTurboConfig && scriptIsTurboBacked('test')) {
409
+ test.no_cache_command = withTurboForce(`${pmRun} test`);
410
+ }
367
411
  // --- Build ---
368
412
  let build = null;
369
413
  if (hasFile('turbo.json')) {
@@ -1 +1 @@
1
- {"version":3,"file":"toolchain-detect.mjs","sourceRoot":"","sources":["../../../src/cli/commands/toolchain-detect.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolchain-detect.mjs","sourceRoot":"","sources":["../../../src/cli/commands/toolchain-detect.mjs"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"triage.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/triage.mjs"],"names":[],"mappings":"AAiIA;;GAEG;AACH,wHAoJC;AAGD,+BAA6B;AAC7B,mCAAqC;AACrC,6CAAmD"}
1
+ {"version":3,"file":"triage.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/triage.mjs"],"names":[],"mappings":"AAmcA;;GAEG;AACH,wHAuKC;AAGD,+BAA6B;AAC7B,mCAAqC;AACrC,6CAAmD"}
@@ -3,8 +3,10 @@
3
3
  *
4
4
  * 5-state triage state machine with extensible metadata for v2 OSS
5
5
  * contributor primitives. Backend-configured: writes to
6
- * `.aperant/tasks/{task-id}/triage.json` by default (local-only); other
7
- * backends (github-issues, app-inbox) ship as not-implemented stubs.
6
+ * `.aperant/tasks/{task-id}/triage.json` by default (local-only). The
7
+ * `github-issues` backend mirrors triage state to a real GitHub issue via
8
+ * the `gh` CLI (create on first mirror, update/close on transition); the
9
+ * `app-inbox` backend remains a not-implemented stub (post-app-launch).
8
10
  *
9
11
  * Subcommands:
10
12
  * apt-tools triage init <project-dir> --id <task-id> [--category bug|enhancement] [--extra '{...}']
@@ -19,6 +21,7 @@
19
21
  * routes around QUICK tasks before invoking the CLI. The CLI is the
20
22
  * mechanical state-machine surface; the routing is the skill body's job.
21
23
  */
24
+ import { execFileSync } from 'node:child_process';
22
25
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
23
26
  import { dirname, join, resolve } from 'node:path';
24
27
  import { parseFlags } from '../util/args.mjs';
@@ -66,6 +69,31 @@ function readBackend(absProjectDir) {
66
69
  return 'local-only';
67
70
  }
68
71
  }
72
+ /**
73
+ * Read task_tracking.tracker_label_vocabulary from .aperant/config.json.
74
+ * Absent or "default" → use the `triage:<state>` prefix; any other
75
+ * non-empty string → that string is used as the label prefix instead
76
+ * (`<vocab>:<state>`). Per spec ID-03 / AC5. This is the ONLY label
77
+ * configurability — no speculative label-map.
78
+ *
79
+ * @param {string} absProjectDir
80
+ * @returns {string} the label prefix (default 'triage')
81
+ */
82
+ function readLabelVocabulary(absProjectDir) {
83
+ const configPath = join(absProjectDir, '.aperant', 'config.json');
84
+ if (!existsSync(configPath))
85
+ return 'triage';
86
+ try {
87
+ const parsed = JSON.parse(readFileSync(configPath, 'utf-8'));
88
+ const vocab = parsed?.task_tracking?.tracker_label_vocabulary;
89
+ if (typeof vocab === 'string' && vocab.length > 0 && vocab !== 'default')
90
+ return vocab;
91
+ return 'triage';
92
+ }
93
+ catch {
94
+ return 'triage';
95
+ }
96
+ }
69
97
  /**
70
98
  * Triage record file path.
71
99
  *
@@ -103,24 +131,314 @@ function writeTriage(path, record) {
103
131
  writeFileSync(path, `${JSON.stringify(record, null, 2)}\n`);
104
132
  }
105
133
  /**
106
- * Apply the backend mirror step. local-only writes to disk; the other
107
- * backends return a not-implemented envelope so callers can handle the
108
- * stub gracefully.
134
+ * Map a `gh` invocation's arg array to a stable subcommand key for the
135
+ * test fixture (ID-07). The fixture maps these keys to {stdout, exitCode}.
136
+ *
137
+ * @param {string[]} args
138
+ * @returns {string}
139
+ */
140
+ function ghFixtureKey(args) {
141
+ if (args[0] === '--version')
142
+ return 'version';
143
+ if (args[0] === 'auth' && args[1] === 'status')
144
+ return 'auth-status';
145
+ if (args[0] === 'repo' && args[1] === 'view')
146
+ return 'repo-view';
147
+ if (args[0] === 'issue' && args[1] === 'create')
148
+ return 'issue-create';
149
+ if (args[0] === 'issue' && args[1] === 'edit')
150
+ return 'issue-edit';
151
+ if (args[0] === 'issue' && args[1] === 'close')
152
+ return 'issue-close';
153
+ return args.slice(0, 2).join('-');
154
+ }
155
+ /**
156
+ * The single injection seam for `gh` shell-outs (ID-07). When
157
+ * process.env.APT_TRIAGE_GH_FIXTURE is set (a JSON map of subcommand key →
158
+ * {stdout, exitCode}), it returns the scripted response instead of
159
+ * shelling out — keeping unit tests hermetic (no network). Otherwise it
160
+ * runs `execFileSync('gh', args, ...)` with an arg array (NEVER a shell
161
+ * string — titles/bodies derive from task ids/reasons, ID-01).
162
+ *
163
+ * Returns a uniform `{ stdout, exitCode }`. A non-zero exit (or ENOENT) is
164
+ * reported via the return shape, NOT thrown — the caller maps it to an
165
+ * error envelope. The only thrown-then-caught path is ENOENT (gh missing),
166
+ * surfaced as exitCode:127 with code:'ENOENT' on the result.
167
+ *
168
+ * @param {string[]} args
169
+ * @param {string} cwd
170
+ * @returns {{ stdout: string, stderr: string, exitCode: number, code?: string }}
171
+ */
172
+ function runGh(args, cwd) {
173
+ const fixtureRaw = process.env.APT_TRIAGE_GH_FIXTURE;
174
+ if (fixtureRaw) {
175
+ let fixture;
176
+ try {
177
+ fixture = JSON.parse(fixtureRaw);
178
+ }
179
+ catch {
180
+ return { stdout: '', stderr: 'invalid APT_TRIAGE_GH_FIXTURE JSON', exitCode: 1 };
181
+ }
182
+ const key = ghFixtureKey(args);
183
+ const scripted = fixture[key];
184
+ if (!scripted) {
185
+ // No scripted entry → treat as gh missing so tests must be explicit.
186
+ return { stdout: '', stderr: `no fixture for ${key}`, exitCode: 127, code: 'ENOENT' };
187
+ }
188
+ return {
189
+ stdout: typeof scripted.stdout === 'string' ? scripted.stdout : '',
190
+ stderr: typeof scripted.stderr === 'string' ? scripted.stderr : '',
191
+ exitCode: typeof scripted.exitCode === 'number' ? scripted.exitCode : 0,
192
+ ...(scripted.code ? { code: scripted.code } : {}),
193
+ };
194
+ }
195
+ try {
196
+ const stdout = execFileSync('gh', args, {
197
+ cwd,
198
+ encoding: 'utf-8',
199
+ stdio: ['ignore', 'pipe', 'pipe'],
200
+ });
201
+ return { stdout: stdout ?? '', stderr: '', exitCode: 0 };
202
+ }
203
+ catch (e) {
204
+ // execFileSync throws on non-zero exit AND on spawn failure (ENOENT).
205
+ return {
206
+ stdout: typeof e?.stdout === 'string' ? e.stdout : '',
207
+ stderr: typeof e?.stderr === 'string' ? e.stderr : (e?.message ?? String(e)),
208
+ exitCode: typeof e?.status === 'number' ? e.status : 1,
209
+ ...(e?.code ? { code: e.code } : {}),
210
+ };
211
+ }
212
+ }
213
+ /**
214
+ * Truncate a gh stderr message to a plain ~200-char string for the error
215
+ * envelope. NEVER returns an Error object / stacktrace (AC6).
216
+ *
217
+ * @param {string} stderr
218
+ * @returns {string}
219
+ */
220
+ function ghErrorMessage(stderr) {
221
+ return String(stderr ?? '')
222
+ .trim()
223
+ .slice(0, 200);
224
+ }
225
+ /**
226
+ * Build the structured `gh` error envelope (ID-04). The adapter NEVER
227
+ * throws past its own boundary; every failure routes here.
228
+ *
229
+ * @param {string} reason
230
+ * @param {string} message
231
+ */
232
+ function ghError(reason, message) {
233
+ return { status: 'error', backend: 'github-issues', reason, error: ghErrorMessage(message) };
234
+ }
235
+ /**
236
+ * Preflight: gh present? authenticated? remote/repo resolvable? (ID-05).
237
+ * Short-circuits to an error envelope on the first failure; on success
238
+ * returns the resolved `owner/repo` for deterministic `--repo` passing.
239
+ *
240
+ * @param {string} cwd
241
+ * @returns {{ ok: true, repo: string } | { ok: false, envelope: object }}
242
+ */
243
+ function ghPreflight(cwd) {
244
+ const version = runGh(['--version'], cwd);
245
+ if (version.code === 'ENOENT' || version.exitCode === 127) {
246
+ return { ok: false, envelope: ghError('gh-unavailable', 'gh CLI not found on PATH') };
247
+ }
248
+ if (version.exitCode !== 0) {
249
+ return { ok: false, envelope: ghError('gh-unavailable', version.stderr) };
250
+ }
251
+ const auth = runGh(['auth', 'status'], cwd);
252
+ if (auth.exitCode !== 0) {
253
+ return { ok: false, envelope: ghError('gh-unauthenticated', auth.stderr) };
254
+ }
255
+ const repo = runGh(['repo', 'view', '--json', 'nameWithOwner', '--jq', '.nameWithOwner'], cwd);
256
+ if (repo.exitCode !== 0) {
257
+ return { ok: false, envelope: ghError('no-remote', repo.stderr) };
258
+ }
259
+ const nameWithOwner = repo.stdout.trim();
260
+ if (!nameWithOwner) {
261
+ return { ok: false, envelope: ghError('no-remote', 'gh repo view returned no nameWithOwner') };
262
+ }
263
+ return { ok: true, repo: nameWithOwner };
264
+ }
265
+ /**
266
+ * Parse the issue number + url from `gh issue create` stdout. gh prints
267
+ * the issue URL as the trailing line; the number is the path tail
268
+ * (`.../issues/N`). Documented parse assumption (spec Further Notes).
269
+ *
270
+ * @param {string} stdout
271
+ * @returns {{ issue_number: number, issue_url: string } | null}
272
+ */
273
+ function parseCreatedIssue(stdout) {
274
+ const url = String(stdout ?? '')
275
+ .trim()
276
+ .split('\n')
277
+ .filter((l) => l.includes('/issues/'))
278
+ .pop();
279
+ if (!url)
280
+ return null;
281
+ const m = url.match(/\/issues\/(\d+)\b/);
282
+ if (!m)
283
+ return null;
284
+ return { issue_number: Number(m[1]), issue_url: url.trim() };
285
+ }
286
+ /**
287
+ * github-issues adapter (ID-01/02/03/04/05). Mirrors triage state to a
288
+ * real GitHub issue via the `gh` CLI: first mirror CREATES an issue,
289
+ * subsequent transitions UPDATE the SAME issue (label swap), and a
290
+ * transition to `wontfix` CLOSES it as "not planned". Persists the issue
291
+ * pointer onto `triage.json` (like local-only) so the pointer survives.
292
+ *
293
+ * Precedence (spec Further Notes): the local triage.json write is the
294
+ * caller's responsibility for local-only; here, the github backend is the
295
+ * sole persistence path, so this adapter writes triage.json itself with
296
+ * the github block attached. Label ops are best-effort (AC8): a failed
297
+ * label edit degrades to a warnings[] entry, the open/closed state change
298
+ * still lands.
299
+ *
300
+ * @param {string} absProjectDir
301
+ * @param {string} taskId
302
+ * @param {object} record the (init or post-transition) triage record; mutated to carry `record.github`
303
+ * @returns {{ status: string, backend: 'github-issues', [k: string]: unknown }}
304
+ */
305
+ function mirrorToGithubIssues(absProjectDir, taskId, record) {
306
+ const cwd = absProjectDir;
307
+ const prefix = readLabelVocabulary(absProjectDir);
308
+ const stateLabel = (state) => `${prefix}:${state}`;
309
+ const pre = ghPreflight(cwd);
310
+ if (!pre.ok)
311
+ return pre.envelope;
312
+ const repo = pre.repo;
313
+ const warnings = [];
314
+ const persist = () => writeTriage(triagePath(absProjectDir, taskId), record);
315
+ // CREATE path: no issue yet on the record.
316
+ if (!record.github || typeof record.github.issue_number !== 'number') {
317
+ const labels = [];
318
+ if (typeof record.category === 'string' && record.category)
319
+ labels.push(record.category);
320
+ labels.push(stateLabel(record.state));
321
+ const createArgs = [
322
+ 'issue',
323
+ 'create',
324
+ '--title',
325
+ `triage: ${taskId}`,
326
+ '--body',
327
+ `Triage state: ${record.state}${record.category ? ` (${record.category})` : ''}`,
328
+ '--repo',
329
+ repo,
330
+ ];
331
+ for (const l of labels)
332
+ createArgs.push('--label', l);
333
+ let res = runGh(createArgs, cwd);
334
+ if (res.exitCode !== 0) {
335
+ // AC8: a label that doesn't exist in the repo fails the create.
336
+ // Retry WITHOUT label flags so the issue still gets created.
337
+ const noLabelArgs = createArgs.filter((a, i) => a !== '--label' && createArgs[i - 1] !== '--label');
338
+ const retry = runGh(noLabelArgs, cwd);
339
+ if (retry.exitCode !== 0) {
340
+ return ghError('gh-command-failed', res.stderr || retry.stderr);
341
+ }
342
+ warnings.push(`label(s) not applied on create: ${ghErrorMessage(res.stderr)}`);
343
+ res = retry;
344
+ }
345
+ const parsed = parseCreatedIssue(res.stdout);
346
+ if (!parsed) {
347
+ return ghError('gh-command-failed', `could not parse issue URL from: ${res.stdout}`);
348
+ }
349
+ record.github = { issue_number: parsed.issue_number, issue_url: parsed.issue_url, repo };
350
+ persist();
351
+ return {
352
+ status: 'ok',
353
+ backend: 'github-issues',
354
+ action: 'created',
355
+ issue_number: parsed.issue_number,
356
+ issue_url: parsed.issue_url,
357
+ warnings,
358
+ };
359
+ }
360
+ // UPDATE / CLOSE path: the record already points at an issue.
361
+ const issueNumber = record.github.issue_number;
362
+ const issueRepo = typeof record.github.repo === 'string' ? record.github.repo : repo;
363
+ // The previous state is the `from` of the last transition (the one that
364
+ // produced this record); on init there are no transitions.
365
+ const txs = Array.isArray(record.transitions) ? record.transitions : [];
366
+ const lastTx = txs.length > 0 ? txs[txs.length - 1] : null;
367
+ const oldLabel = lastTx ? stateLabel(lastTx.from) : null;
368
+ const newLabel = stateLabel(record.state);
369
+ const editArgs = ['issue', 'edit', String(issueNumber), '--repo', issueRepo];
370
+ if (oldLabel)
371
+ editArgs.push('--remove-label', oldLabel);
372
+ editArgs.push('--add-label', newLabel);
373
+ const edit = runGh(editArgs, cwd);
374
+ if (edit.exitCode !== 0) {
375
+ // AC8: label op failed (e.g. label not in repo). Degrade: skip the
376
+ // label swap, still perform the open/closed state change, warn.
377
+ warnings.push(`label swap skipped: ${ghErrorMessage(edit.stderr)}`);
378
+ }
379
+ if (record.state === 'wontfix') {
380
+ const close = runGh(['issue', 'close', String(issueNumber), '--repo', issueRepo, '--reason', 'not planned'], cwd);
381
+ if (close.exitCode !== 0) {
382
+ return ghError('gh-command-failed', close.stderr);
383
+ }
384
+ record.github = {
385
+ issue_number: issueNumber,
386
+ issue_url: record.github.issue_url,
387
+ repo: issueRepo,
388
+ };
389
+ persist();
390
+ return {
391
+ status: 'ok',
392
+ backend: 'github-issues',
393
+ action: 'closed',
394
+ issue_number: issueNumber,
395
+ issue_url: record.github.issue_url,
396
+ warnings,
397
+ };
398
+ }
399
+ record.github = { issue_number: issueNumber, issue_url: record.github.issue_url, repo: issueRepo };
400
+ persist();
401
+ return {
402
+ status: 'ok',
403
+ backend: 'github-issues',
404
+ action: 'updated',
405
+ issue_number: issueNumber,
406
+ issue_url: record.github.issue_url,
407
+ warnings,
408
+ };
409
+ }
410
+ /**
411
+ * Apply the backend mirror step. local-only writes to disk; github-issues
412
+ * dispatches to the gh-CLI adapter; app-inbox stays a not-implemented stub
413
+ * so callers can handle it gracefully.
109
414
  *
110
415
  * @param {string} backend
111
416
  * @param {string} absProjectDir
112
417
  * @param {string} taskId
113
418
  * @param {object} record
114
- * @returns {null | { status: 'not-implemented', backend: string, v2_issue: string }}
419
+ * @returns {null | { status: string, backend?: string, [k: string]: unknown }}
115
420
  */
116
421
  function mirrorToBackend(backend, absProjectDir, taskId, record) {
117
422
  if (backend === 'local-only') {
118
423
  writeTriage(triagePath(absProjectDir, taskId), record);
119
424
  return null;
120
425
  }
121
- // v1 stubs: github-issues and app-inbox return not-implemented.
426
+ if (backend === 'github-issues') {
427
+ return mirrorToGithubIssues(absProjectDir, taskId, record);
428
+ }
429
+ // v1 stub: app-inbox returns not-implemented (out of scope per spec).
122
430
  return { status: 'not-implemented', backend, v2_issue: '#TBD' };
123
431
  }
432
+ /**
433
+ * Map a non-null mirror envelope to its exit code. github-issues errors
434
+ * exit 1 (ID-04); the not-implemented stub and ok envelopes exit 0.
435
+ *
436
+ * @param {{ status: string, [k: string]: unknown }} mirror
437
+ * @returns {number}
438
+ */
439
+ function mirrorExitCode(mirror) {
440
+ return mirror.status === 'error' ? 1 : 0;
441
+ }
124
442
  /**
125
443
  * Entry: `apt-tools triage <subcommand> <project-dir> [flags]`.
126
444
  */
@@ -184,9 +502,16 @@ export function cmdTriage(subcommand, projectDir, extraArgs) {
184
502
  transitions: [],
185
503
  extra,
186
504
  };
187
- const stub = mirrorToBackend(backend, absProjectDir, taskId, record);
188
- if (stub)
189
- return exitWith({ command: 'triage-init', ...stub }, 0);
505
+ const mirror = mirrorToBackend(backend, absProjectDir, taskId, record);
506
+ if (mirror) {
507
+ // github-issues success merges its action/issue fields and echoes
508
+ // the persisted record (which now carries `github`); errors + the
509
+ // app-inbox not-implemented stub pass through as-is.
510
+ const merged = mirror.status === 'ok'
511
+ ? { command: 'triage-init', ...mirror, record }
512
+ : { command: 'triage-init', ...mirror };
513
+ return exitWith(merged, mirrorExitCode(mirror));
514
+ }
190
515
  return ok({ status: 'ok', command: 'triage-init', backend, record });
191
516
  }
192
517
  if (subcommand === 'transition') {
@@ -236,10 +561,18 @@ export function cmdTriage(subcommand, projectDir, extraArgs) {
236
561
  category: current.category,
237
562
  extra: current.extra ?? {},
238
563
  transitions: [...(current.transitions || []), transition],
564
+ // ID-02: carry the github issue pointer forward so subsequent
565
+ // transitions target the SAME issue instead of creating a duplicate.
566
+ // Only set when present (local-only records never carry it).
567
+ ...(current.github ? { github: current.github } : {}),
239
568
  };
240
- const stub = mirrorToBackend(backend, absProjectDir, taskId, next);
241
- if (stub)
242
- return exitWith({ command: 'triage-transition', ...stub }, 0);
569
+ const mirror = mirrorToBackend(backend, absProjectDir, taskId, next);
570
+ if (mirror) {
571
+ const merged = mirror.status === 'ok'
572
+ ? { command: 'triage-transition', ...mirror, transition, record: next }
573
+ : { command: 'triage-transition', ...mirror };
574
+ return exitWith(merged, mirrorExitCode(mirror));
575
+ }
243
576
  return ok({
244
577
  status: 'ok',
245
578
  command: 'triage-transition',
@@ -1 +1 @@
1
- {"version":3,"file":"triage.mjs","sourceRoot":"","sources":["../../../src/cli/commands/triage.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triage.mjs","sourceRoot":"","sources":["../../../src/cli/commands/triage.mjs"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.mjs"],"names":[],"mappings":"AA8XA;;;;;GAKG;AACH,yCAHW,MAAM,cACN,MAAM,EAAE,uDAyDlB;;WA3Ya,OAAO;SACP,OAAO;YACP,OAAO;aACP,MAAM,GAAC,IAAI"}
1
+ {"version":3,"file":"uninstall.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.mjs"],"names":[],"mappings":"AAiYA;;;;;GAKG;AACH,yCAHW,MAAM,cACN,MAAM,EAAE,uDAyDlB;;WA3Ya,OAAO;SACP,OAAO;YACP,OAAO;aACP,MAAM,GAAC,IAAI"}
@@ -7,10 +7,10 @@
7
7
  * root — unknown files are left alone and the directory is preserved if
8
8
  * it would otherwise be non-empty.
9
9
  *
10
- * The APT section in `CLAUDE.md` / `AGENTS.md` is stripped between the
11
- * `<!-- APT:framework-start -->` / `<!-- APT:framework-end -->` markers
12
- * (same injection surface as `injectInstructionFile`). If the file becomes
13
- * empty after the strip, the file is removed too.
10
+ * The APT section in `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` is stripped
11
+ * between the `<!-- APT:framework-start -->` / `<!-- APT:framework-end -->`
12
+ * markers (same injection surface as `injectInstructionFile`). If the file
13
+ * becomes empty after the strip, the file is removed too.
14
14
  *
15
15
  * Flags:
16
16
  * --purge Also delete `.aperant/` state. Default: preserve
@@ -24,13 +24,16 @@ import { existsSync, readdirSync, readFileSync, rmdirSync, rmSync, statSync, unl
24
24
  import { join, resolve } from 'node:path';
25
25
  import { MANIFEST_FILENAME } from '../install/manifest.mjs';
26
26
  import { RUNTIMES } from '../install/runtime-detect.mjs';
27
+ import { APT_SECTION_STRIP_RE as APT_SECTION_RE } from '../util/aperant-section.mjs';
27
28
  import { err, ok } from '../util/result.mjs';
28
- const APT_SECTION_RE = /<!-- APT:framework-start -->[\s\S]*?<!-- APT:framework-end -->\n?/;
29
29
  const APT_GITIGNORE_BLOCK_RE = /# APT:gitignore-start[\s\S]*?# APT:gitignore-end\n?/;
30
30
  /**
31
31
  * Files inside the project root that may carry the APT-injected section.
32
+ * Derived from RUNTIMES.nativeInstructionFile so the list stays in sync with
33
+ * whatever targets `init` writes — the same drift class as the bug this PR
34
+ * fixes cannot occur here.
32
35
  */
33
- const INSTRUCTION_FILES = ['CLAUDE.md', 'AGENTS.md'];
36
+ const INSTRUCTION_FILES = [...new Set(RUNTIMES.map((r) => r.nativeInstructionFile).filter(Boolean))];
34
37
  /**
35
38
  * @typedef {Object} UninstallFlags
36
39
  * @property {boolean} purge
@@ -286,8 +289,8 @@ function removeRuntime(target, flags) {
286
289
  };
287
290
  }
288
291
  /**
289
- * Strip the APT-injected section from CLAUDE.md / AGENTS.md. If the
290
- * remaining file is empty, the file itself is removed.
292
+ * Strip the APT-injected section from CLAUDE.md / AGENTS.md / GEMINI.md. If
293
+ * the remaining file is empty, the file itself is removed.
291
294
  *
292
295
  * @param {string} targetDir
293
296
  * @param {UninstallFlags} flags