@aperant/framework 0.6.6 → 0.6.7

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 (88) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/dist/cli/commands/check-version.d.mts.map +1 -1
  3. package/dist/cli/commands/check-version.mjs +76 -1
  4. package/dist/cli/commands/check-version.mjs.map +1 -1
  5. package/dist/cli/commands/ci-watch.d.mts.map +1 -1
  6. package/dist/cli/commands/ci-watch.mjs +34 -4
  7. package/dist/cli/commands/ci-watch.mjs.map +1 -1
  8. package/dist/cli/commands/init.d.mts +8 -1
  9. package/dist/cli/commands/init.d.mts.map +1 -1
  10. package/dist/cli/commands/init.mjs +91 -9
  11. package/dist/cli/commands/init.mjs.map +1 -1
  12. package/dist/cli/commands/release-notes.d.mts +11 -0
  13. package/dist/cli/commands/release-notes.d.mts.map +1 -0
  14. package/dist/cli/commands/release-notes.mjs +173 -0
  15. package/dist/cli/commands/release-notes.mjs.map +1 -0
  16. package/dist/cli/config/load.d.mts +14 -0
  17. package/dist/cli/config/load.d.mts.map +1 -1
  18. package/dist/cli/config/load.mjs +40 -0
  19. package/dist/cli/config/load.mjs.map +1 -1
  20. package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -1
  21. package/dist/cli/config/upgrade-gitignore.mjs +6 -0
  22. package/dist/cli/config/upgrade-gitignore.mjs.map +1 -1
  23. package/dist/cli/consistency/parse-review.d.mts.map +1 -1
  24. package/dist/cli/consistency/parse-review.mjs +4 -1
  25. package/dist/cli/consistency/parse-review.mjs.map +1 -1
  26. package/dist/cli/dispatch.d.mts.map +1 -1
  27. package/dist/cli/dispatch.mjs +2 -0
  28. package/dist/cli/dispatch.mjs.map +1 -1
  29. package/dist/cli/gate/gates/review-clean.d.mts.map +1 -1
  30. package/dist/cli/gate/gates/review-clean.mjs +4 -2
  31. package/dist/cli/gate/gates/review-clean.mjs.map +1 -1
  32. package/dist/cli/install/update-chips.d.mts +23 -0
  33. package/dist/cli/install/update-chips.d.mts.map +1 -1
  34. package/dist/cli/install/update-chips.mjs +60 -0
  35. package/dist/cli/install/update-chips.mjs.map +1 -1
  36. package/dist/cli/release-notes/compile.d.mts +38 -0
  37. package/dist/cli/release-notes/compile.d.mts.map +1 -0
  38. package/dist/cli/release-notes/compile.mjs +244 -0
  39. package/dist/cli/release-notes/compile.mjs.map +1 -0
  40. package/dist/cli/release-notes/draft.d.mts +73 -0
  41. package/dist/cli/release-notes/draft.d.mts.map +1 -0
  42. package/dist/cli/release-notes/draft.mjs +120 -0
  43. package/dist/cli/release-notes/draft.mjs.map +1 -0
  44. package/dist/cli/release-notes/output-dir.d.mts +20 -0
  45. package/dist/cli/release-notes/output-dir.d.mts.map +1 -0
  46. package/dist/cli/release-notes/output-dir.mjs +42 -0
  47. package/dist/cli/release-notes/output-dir.mjs.map +1 -0
  48. package/dist/cli/release-notes/persona-filter.d.mts +51 -0
  49. package/dist/cli/release-notes/persona-filter.d.mts.map +1 -0
  50. package/dist/cli/release-notes/persona-filter.mjs +127 -0
  51. package/dist/cli/release-notes/persona-filter.mjs.map +1 -0
  52. package/dist/cli/release-notes/publish.d.mts +23 -0
  53. package/dist/cli/release-notes/publish.d.mts.map +1 -0
  54. package/dist/cli/release-notes/publish.mjs +125 -0
  55. package/dist/cli/release-notes/publish.mjs.map +1 -0
  56. package/dist/cli/release-notes/ship-autodraft.d.mts +37 -0
  57. package/dist/cli/release-notes/ship-autodraft.d.mts.map +1 -0
  58. package/dist/cli/release-notes/ship-autodraft.mjs +97 -0
  59. package/dist/cli/release-notes/ship-autodraft.mjs.map +1 -0
  60. package/dist/types/config.d.ts +11 -7
  61. package/dist/types/config.d.ts.map +1 -1
  62. package/package.json +133 -133
  63. package/skills/apt-close-task/SKILL.md +25 -0
  64. package/skills/apt-diagram/SKILL.md +45 -9
  65. package/skills/apt-release-notes/SKILL.md +193 -0
  66. package/skills/apt-release-notes/appendices/persona-voice.md +59 -0
  67. package/skills/apt-setup/SKILL.md +146 -3
  68. package/skills/apt-ship/SKILL.md +47 -0
  69. package/skills/apt-update/SKILL.md +51 -9
  70. package/skills/apt-watch-ci/SKILL.md +2 -2
  71. package/src/cli/commands/check-version.mjs +73 -1
  72. package/src/cli/commands/ci-watch.mjs +35 -4
  73. package/src/cli/commands/init.mjs +101 -9
  74. package/src/cli/commands/release-notes.mjs +187 -0
  75. package/src/cli/config/load.mjs +37 -0
  76. package/src/cli/config/upgrade-gitignore.mjs +6 -0
  77. package/src/cli/consistency/parse-review.mjs +3 -1
  78. package/src/cli/dispatch.mjs +2 -0
  79. package/src/cli/gate/gates/review-clean.mjs +4 -2
  80. package/src/cli/install/update-chips.mjs +57 -0
  81. package/src/cli/release-notes/compile.mjs +261 -0
  82. package/src/cli/release-notes/draft.mjs +133 -0
  83. package/src/cli/release-notes/output-dir.mjs +52 -0
  84. package/src/cli/release-notes/persona-filter.mjs +126 -0
  85. package/src/cli/release-notes/publish.mjs +128 -0
  86. package/src/cli/release-notes/ship-autodraft.mjs +106 -0
  87. package/templates/config.json +28 -3
  88. package/workflows/docs.md +12 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,161 @@
3
3
  All notable changes to `@aperant/framework` are documented here. See
4
4
  [`VERSIONING.md`](VERSIONING.md) for the per-tier contract.
5
5
 
6
+ ## [Unreleased]
7
+
8
+ ### persona-aware release-notes system (task persona-aware-changelog-and-release-note_16-05-26)
9
+
10
+ Two-skill split: `/apt:docs changelog` keeps the dev-flavored
11
+ `CHANGELOG.md` surface unchanged; a new opt-in `/apt:release-notes`
12
+ skill ships a persona-aware user-facing artifact. Schema bumps
13
+ `.aperant/config.json` v4 → v5 with a new `changelog.{dev,release_notes}`
14
+ block (default-OFF release-notes, dev-changelog stays default-ON).
15
+
16
+ - **New skill** `/apt:release-notes` (`stage: ops`, `intent: capture`,
17
+ `task_context: none`). Three modes — `draft --pr <n>` for towncrier-
18
+ style per-PR fragments, `compile <tag>` for tag-time narrative + the
19
+ non-negotiable `## Needs Triage` bucket (spec ID-6: never silent-drop
20
+ unmapped fragments), `publish <tag>` for `gh release create/edit`
21
+ with a graceful `{status: 'skipped', reason: 'gh-not-found'}`
22
+ envelope when `gh` is missing. DEEP-track-only — Fast Path Guarantee
23
+ pinned by `apt-release-notes-quick-exempt.test.ts`.
24
+ - **New CLI verb** `apt-tools release-notes <draft|compile|publish>`.
25
+ Deterministic I/O only — no LLM in the CLI, no prompt templates.
26
+ Persona-voice tuning lives in the SKILL.md via the
27
+ `appendices/persona-voice.md` posture loader.
28
+ - **Schema v4 → v5.** `packages/framework/templates/config.json` gains
29
+ the `changelog` block; the existing
30
+ `runMigrationsAgainstTemplate()` path silently auto-adds the new
31
+ block to any v4 config via the `auto_added` bucket. No bespoke
32
+ migration code, no destructive paths — TD-1 pins the safety net.
33
+ - **Setup integration.** `/apt:setup` gains Batch 9 (Changelog & Release
34
+ Notes) with two top-level questions + an audience / persona-filter
35
+ sub-picker under Q2=Yes. Per-project opt-in is explicit; presence of
36
+ `.aperant/personas.json` does NOT auto-enable (spec ID-7).
37
+ - **Ship integration.** `/apt:ship` §2.6 runs only when opted in.
38
+ Feature-registry diff → persona mapping → `Release note: …`
39
+ auto-draft in the PR body. When `require_pr_field=true` (default)
40
+ AND auto-draft fails, ship emits the exact error string `[APT] No
41
+ release-note signal found — author manual note in PR body or label
42
+ PR no-notes` and stops before `gh pr create`.
43
+ - **Close-task integration.** `/apt:close-task` §2.6 drops the
44
+ per-PR fragment on merge via the same idempotent `apt-tools
45
+ release-notes draft` verb. Failure is additive bookkeeping (appends
46
+ to `pending_release_note[]` in state.json) — never blocks close.
47
+ - **Tests.** TD-1 schema migration, TD-2 fragment idempotency, TD-3
48
+ compile + triage bucket, TD-4 ship-autodraft decision matrix, TD-5
49
+ end-to-end opt-in flow (mocked `gh`), TD-6 quick-exempt regression.
50
+ 32 cases across 6 release-notes test files.
51
+
52
+ The framework's own `CHANGELOG.md` stays dev-flavored — Aperant ships
53
+ to developers, so this file is the right audience already. The
54
+ user-facing surface that this work introduces is for projects that
55
+ ship to non-developer humans.
56
+
57
+ ## 0.6.7 — 2026-05-16 — /apt:update pipeline fixes (Codex spar) + framework-bug bundle
58
+
59
+ ### /apt:update pipeline (Codex spar 2026-05-15)
60
+
61
+ Three line-cited defects from a 2026-05-15 Codex adversarial spar made
62
+ `/apt:update` silently a no-op on a real version bump (e.g. 0.6.5 →
63
+ 0.6.7). All three are now fixed and proved by a new end-to-end test.
64
+
65
+ - **Bug 1: `check-version` was npm-blind.** `src/cli/commands/check-version.mjs:80-82`
66
+ previously read `framework_version` from the local kernel's own
67
+ `package.json` and hard-coded `update_available:false` per runtime
68
+ (lines 59, 70). The skill's `<context>` block documented fields like
69
+ `framework.latest_version` + `update_available` + `dev_install_ahead`
70
+ that `check-version` never emitted — those fields lived only in the
71
+ SessionStart worker's cache file (`hooks/apt-check-update-worker.js`
72
+ at `~/.cache/aperant/apt-update-check.json`). **Fix:** `check-version`
73
+ now reads that cache file when it exists and is fresh (< 1 h,
74
+ `schema_version=1`) and merges `framework.latest_version`,
75
+ `update_available`, `dev_install_ahead`, `not_published`,
76
+ `stale_files_total`, `lookup_error` into its envelope. On a stale or
77
+ missing cache the same field names are emitted with null/false/0
78
+ sentinel values so the skill's parser stays single-shape (ID-03).
79
+ Bails out on any non-1 `schema_version` (R2 mitigation against
80
+ future cache schema drift).
81
+ - **Bug 2: `init` upgrade no-op ignored runtime-manifest drift.**
82
+ `src/cli/commands/init.mjs:354-370` decided `upgrade_noop` solely on
83
+ `.aperant/config.json` schema drift, and lines `1064-1078` returned
84
+ `status:up_to_date` BEFORE `installRuntimes` ran. Reproduction:
85
+ deleting `.claude/apt-file-manifest.json` and re-running init still
86
+ returned `up_to_date` with the manifest unrestored. **Fix:** new
87
+ `--force-runtimes` flag on `init`. When set AND `upgrade_noop` would
88
+ fire, the cmdInit synthesizes a real `InstallAnswers` shape from the
89
+ existing config (preserving visibility/autonomy/cross-verification)
90
+ and falls through to `installRuntimes` + `runKernelInstall` +
91
+ `finishInit` as on the upgrade-with-drift path. The flag is strictly
92
+ additive — callers without it keep the existing no-op short-circuit
93
+ (preserves `init-upgrade-drift.test.ts` case (a) — verified by 27
94
+ passing tests across `init-upgrade-drift.test.ts` and
95
+ `init-flag-parser.test.ts`).
96
+ - **Bug 3: skill read fields `check-version` didn't emit.**
97
+ `skills/apt-update/SKILL.md:49-54` parsed `framework.installed_version`,
98
+ `framework.latest_version`, `stale_files_total`, `update_available`,
99
+ `dev_install_ahead`, `not_published` — none of which the CLI emitted.
100
+ **Fix:** Bug 1's fix lights up the fields the skill was already
101
+ reading; the SKILL.md prose is rewritten to also document a new
102
+ Step 1.5 (`npm view @aperant/framework version` + `npm install
103
+ --prefix .aperant/deps @aperant/framework@<latest>` when newer, with
104
+ 10 s npm timeout per ID-04) and to pass `--force-runtimes` in Step 3.
105
+ Added a `TODO(followup)` comment near the hardcoded
106
+ `.aperant/deps/...` path so the PATH-only / npx-only install case is
107
+ tracked but explicitly deferred (ID-05).
108
+
109
+ - **Schema status.** Envelope changes are strictly additive — the new
110
+ `framework`, `update_available`, `dev_install_ahead`, `not_published`,
111
+ `stale_files_total`, `lookup_error` fields are all nullable; existing
112
+ callers ignore unknown fields. `--force-runtimes` is opt-in. No
113
+ `schema_version` bump required.
114
+ - **Decision source.** Codex spar 2026-05-15.
115
+ - **Tests.** New: `check-version-cache-merge.test.ts` (6 cases),
116
+ `init-force-runtimes.test.ts` (3 cases),
117
+ `update-pipeline-bump-e2e.test.ts` (2 cases). Existing:
118
+ `init-upgrade-drift.test.ts` case (a) still green —
119
+ `--force-runtimes` is opt-in, not a behavior change. Manual smoke
120
+ test (kernel binary upgrades in place via `npm install --prefix`) is
121
+ deferred to release-time validation; the e2e test scopes to
122
+ cache-merge + force-runtimes composition.
123
+
124
+ `task: fix-apt-update-pipeline-3-bugs_15-05-26`
125
+
126
+ ### Other framework-bug fixes shipped in this release (rolled up from previous unreleased)
127
+
128
+ - **fix:** ship gate `review-clean` and `parse-review` now accept `fixed:true`
129
+ alongside `resolved:true` as resolution markers
130
+ ([FRAMEWORK-BUG-009](../../docs/frameworks/spec-gaps.md#framework-bug-009-review-clean-fixed-key)).
131
+ The reviewer skill writes `fixed:true` paired with `fix_commit` — the gate
132
+ and consistency normalizer previously only recognized `resolved:true`,
133
+ causing false-positive blocks when a review fixed findings in-loop.
134
+ - **fix:** `apt-tools ci-watch tick --payload-file <path>` lets the
135
+ orchestrator skill pass pre-captured `gh pr checks` + `gh pr view`
136
+ payloads directly to the cmd, closing the production-path gap
137
+ ([FRAMEWORK-BUG-010](../../docs/frameworks/spec-gaps.md#framework-bug-010-ci-watch-payload-file)).
138
+ The cmd still does NOT shell out to gh — that boundary stays with the
139
+ orchestrator.
140
+ - **feat:** new `loadMergedProjectConfig` deep-merge reader in
141
+ `src/cli/config/load.mjs` for per-user overrides via
142
+ `.aperant/config.local.json` (gitignored). `diagram.mcpConsent` migrated
143
+ to `config.local.json` to close a per-user consent-leak surface
144
+ ([FRAMEWORK-AUDIT-001](../../docs/frameworks/spec-gaps.md#framework-audit-001-config-local-json-migration)).
145
+ Five additional per-user candidates documented and deferred per a recorded
146
+ Codex spar round (cede-partial outcome).
147
+ - **blocked:** FRAMEWORK-BUG-011 (vitest `NODE_ENV='test'` workaround
148
+ location). Spec proposed moving the env override from `vitest.config.ts`
149
+ to `vitest.setup.ts`; empirical regression in `use-analytics.test.ts`
150
+ (`ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:`) disproved
151
+ the hypothesis. See
152
+ [FRAMEWORK-BUG-011](../../docs/frameworks/spec-gaps.md#framework-bug-011-vitest-node-env-workaround)
153
+ for follow-up options.
154
+
155
+ ### apt:setup onboarding-marker (rolled up from PR #137)
156
+
157
+ - **fix:** fresh installs now walk the full Batch 1-8 onboarding flow
158
+ via an explicit onboarding marker, replacing the previous heuristic
159
+ that short-circuited on the presence of any `.aperant/` content.
160
+
6
161
  ## 0.6.5 — 2026-05-14 — Drop aggregate envelope cap
7
162
 
8
163
  Replaces the aggregate `ENVELOPE_MAX_BYTES` cap in
@@ -1 +1 @@
1
- {"version":3,"file":"check-version.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/check-version.mjs"],"names":[],"mappings":"AAyEA;;GAEG;AACH,4CAFW,MAAM,8CA0ChB"}
1
+ {"version":3,"file":"check-version.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/check-version.mjs"],"names":[],"mappings":"AAqGA;;GAEG;AACH,4CAFW,MAAM,8CAsFhB"}
@@ -16,7 +16,26 @@
16
16
  * stale_files: [{ path, reason }],
17
17
  * update_available: false
18
18
  * }],
19
- * legacy_install: false // true when only the old .apt-version exists
19
+ * legacy_install: false, // true when only the old .apt-version exists
20
+ * // === 0.6.7 cache-merge fields (Bug 1 fix) ===
21
+ * // Merged from the SessionStart worker's cache at
22
+ * // ~/.cache/aperant/apt-update-check.json when fresh (< 1 h,
23
+ * // schema_version=1). When stale, missing, or malformed, the same
24
+ * // field names are present with null/false/0 sentinel values so
25
+ * // the skill's parser stays single-shape.
26
+ * //
27
+ * // Note: framework.installed_version is intentionally absent.
28
+ * // The live kernel version is always in the top-level
29
+ * // `framework_version` field (read from package.json, never from
30
+ * // the cache).
31
+ * framework: {
32
+ * latest_version: '0.6.7' | null
33
+ * },
34
+ * update_available: false,
35
+ * dev_install_ahead: false,
36
+ * not_published: false,
37
+ * stale_files_total: 0,
38
+ * lookup_error: null
20
39
  * }
21
40
  *
22
41
  * Per-file `reason` values:
@@ -30,6 +49,7 @@ import { dirname, join, resolve } from 'node:path';
30
49
  import { fileURLToPath } from 'node:url';
31
50
  import { readManifest } from '../install/manifest.mjs';
32
51
  import { detectInstalledRuntimes } from '../install/runtime-detect.mjs';
52
+ import { readFreshUpdateCache } from '../install/update-chips.mjs';
33
53
  import { inspectManifestFiles } from '../install/version-header.mjs';
34
54
  import { err, ok } from '../util/result.mjs';
35
55
  const __filename = fileURLToPath(import.meta.url);
@@ -53,6 +73,10 @@ function inspectRuntime(targetDir, descriptor) {
53
73
  runtime: descriptor.id,
54
74
  installed_version: null,
55
75
  stale_files: [],
76
+ // 0.6.7 — per-runtime `update_available` is retained as `false` for
77
+ // backward shape compatibility with pre-0.6.7 callers. The real
78
+ // npm-bump signal now lives on the TOP-LEVEL `update_available`
79
+ // field (merged from the SessionStart worker's cache below).
56
80
  update_available: false,
57
81
  };
58
82
  }
@@ -64,9 +88,12 @@ function inspectRuntime(targetDir, descriptor) {
64
88
  runtime: descriptor.id,
65
89
  installed_version: manifest.framework_version,
66
90
  stale_files: stale,
91
+ // See note above — top-level `update_available` carries the real signal.
67
92
  update_available: false,
68
93
  };
69
94
  }
95
+ /** Cache freshness window — 1 hour, matches the worker's CACHE_TTL_MS. */
96
+ const CACHE_TTL_MS = 60 * 60 * 1_000;
70
97
  /**
71
98
  * @param {string} projectDir
72
99
  */
@@ -98,6 +125,43 @@ export function cmdCheckVersion(projectDir) {
98
125
  else if (runtimes.length > 0) {
99
126
  messageParts.push(`Skills are up to date for ${runtimes.length} runtime(s).`);
100
127
  }
128
+ // 0.6.7 (Bug 1 fix) — merge the SessionStart worker's cache fields when
129
+ // the cache file is fresh (< 1 h, schema_version=1). On a stale / missing
130
+ // / malformed cache the same field names are emitted with null/false/0
131
+ // sentinel values so the skill's parser stays single-shape (ID-03).
132
+ //
133
+ // LOG-001: stale_files_total is always derived from the live per-runtime
134
+ // walk (totalStale). The cache value is intentionally NOT merged — it is
135
+ // up to 1 h old and would hide drift that occurred since the last worker
136
+ // run.
137
+ //
138
+ // LOG-002: installed_version always comes from the kernel's own
139
+ // package.json (frameworkVersion). The cache's installed_version is
140
+ // stale by definition and is NOT merged into the envelope. Consumers
141
+ // that need the live kernel version use the top-level `framework_version`
142
+ // field, which is identical.
143
+ const cacheResult = readFreshUpdateCache(CACHE_TTL_MS);
144
+ let latestVersion = null;
145
+ let updateAvailable = false;
146
+ let devInstallAhead = false;
147
+ let notPublished = false;
148
+ let lookupError = null;
149
+ if (cacheResult.fresh) {
150
+ const c = cacheResult.cache;
151
+ const fw = c.framework && typeof c.framework === 'object' ? c.framework : {};
152
+ // latest_version is semver-validated inside readFreshUpdateCache (SEC-001).
153
+ if (typeof fw.latest_version === 'string')
154
+ latestVersion = fw.latest_version;
155
+ if (typeof c.update_available === 'boolean')
156
+ updateAvailable = c.update_available;
157
+ if (typeof c.dev_install_ahead === 'boolean')
158
+ devInstallAhead = c.dev_install_ahead;
159
+ if (typeof c.not_published === 'boolean')
160
+ notPublished = c.not_published;
161
+ // stale_files_total intentionally NOT taken from cache (LOG-001).
162
+ if (typeof c.lookup_error === 'string')
163
+ lookupError = c.lookup_error;
164
+ }
101
165
  return ok({
102
166
  status,
103
167
  command: 'check-version',
@@ -105,6 +169,17 @@ export function cmdCheckVersion(projectDir) {
105
169
  runtimes,
106
170
  legacy_install: legacyInstall,
107
171
  message: messageParts.join(' '),
172
+ // Cache-merge fields (additive, nullable). Documented in the
173
+ // file-header schema comment.
174
+ framework: {
175
+ latest_version: latestVersion,
176
+ },
177
+ update_available: updateAvailable,
178
+ dev_install_ahead: devInstallAhead,
179
+ not_published: notPublished,
180
+ // stale_files_total: always the live sum from per-runtime walks (LOG-001).
181
+ stale_files_total: totalStale,
182
+ lookup_error: lookupError,
108
183
  });
109
184
  }
110
185
  //# sourceMappingURL=check-version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-version.mjs","sourceRoot":"","sources":["../../../src/cli/commands/check-version.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-version.mjs","sourceRoot":"","sources":["../../../src/cli/commands/check-version.mjs"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ci-watch.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/ci-watch.mjs"],"names":[],"mappings":"AA8DA;;;;GAIG;AACH,uCAJW,MAAM,cACN,MAAM,aACN,MAAM,EAAE,8CAyBlB"}
1
+ {"version":3,"file":"ci-watch.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/ci-watch.mjs"],"names":[],"mappings":"AAoEA;;;;GAIG;AACH,uCAJW,MAAM,cACN,MAAM,aACN,MAAM,EAAE,8CAyBlB"}
@@ -16,6 +16,12 @@
16
16
  * reads the gh payload from that file instead of shelling out. The stub
17
17
  * shape is `{ checks: [...], prMetadata: {...} }` — matches the classifier
18
18
  * input contract in stop-matrix.mjs.
19
+ *
20
+ * Production seam: when `--payload-file <path>` is passed, the tick path
21
+ * reads the gh payload from that file. Same shape as the stub. The
22
+ * orchestrator skill (apt-watch-ci §3) captures `gh pr checks ...` +
23
+ * `gh pr view ...` into the payload file BEFORE invoking the cmd — the cmd
24
+ * itself never shells out to gh.
19
25
  */
20
26
  import { randomBytes } from 'node:crypto';
21
27
  import { existsSync, readFileSync } from 'node:fs';
@@ -262,7 +268,8 @@ function doTick(root, flags) {
262
268
  reason: 'watch is paused (reviewer-pause); resume with /apt:watch-ci --resume',
263
269
  });
264
270
  }
265
- const payload = fetchGhPayload(pr);
271
+ const payloadFile = flags.get('payload-file');
272
+ const payload = payloadFile ? loadPayloadFile(resolve(root, payloadFile)) : fetchGhPayload(pr);
266
273
  if (payload.error) {
267
274
  // gh CLI not available / auth failed → infra-backoff. Don't count it,
268
275
  // double the next-tick interval (capped at MAX_TICK_INTERVAL_MS), and reschedule.
@@ -440,12 +447,35 @@ function fetchGhPayload(_pr) {
440
447
  // Real gh shell-out lives in the skill body. The cmd's tick treats
441
448
  // "no stub + no payload" as infra-backoff so unit tests can exercise the
442
449
  // path without a live gh binary. The orchestrator skill is responsible
443
- // for pre-fetching and re-invoking with APT_TEST_GH_STUB set, OR for
444
- // passing real data via a future --payload-file flag (out of scope here).
450
+ // for pre-fetching and re-invoking with APT_TEST_GH_STUB set (tests) OR
451
+ // `--payload-file <path>` (production see loadPayloadFile below).
445
452
  return {
446
- error: 'gh shell-out is the skill orchestrator boundary — set APT_TEST_GH_STUB for unit tests',
453
+ error: 'gh shell-out is the skill orchestrator boundary — set APT_TEST_GH_STUB for unit tests or pass --payload-file for production',
447
454
  };
448
455
  }
456
+ /**
457
+ * Read a gh payload from disk for the production path (FRAMEWORK-BUG-010).
458
+ * Returns the same shape as fetchGhPayload's stub branch on success, or an
459
+ * { error } envelope on missing path / parse failure — the existing
460
+ * infra-backoff branch surfaces the error cleanly.
461
+ *
462
+ * @param {string} path absolute or already-resolved path
463
+ */
464
+ function loadPayloadFile(path) {
465
+ try {
466
+ if (!existsSync(path)) {
467
+ return { error: `payload-file path not found: ${path}` };
468
+ }
469
+ const data = JSON.parse(readFileSync(path, 'utf-8'));
470
+ return {
471
+ checks: data.checks || [],
472
+ prMetadata: data.prMetadata || { state: 'OPEN' },
473
+ };
474
+ }
475
+ catch (e) {
476
+ return { error: `payload-file parse error: ${e.message}` };
477
+ }
478
+ }
449
479
  /**
450
480
  * Read `ci_watch.auto_merge_on_green` from `.aperant/config.json` (default
451
481
  * false). Best-effort — missing file or unparsable JSON returns false.
@@ -1 +1 @@
1
- {"version":3,"file":"ci-watch.mjs","sourceRoot":"","sources":["../../../src/cli/commands/ci-watch.mjs"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci-watch.mjs","sourceRoot":"","sources":["../../../src/cli/commands/ci-watch.mjs"],"names":[],"mappings":"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"}
@@ -15,8 +15,14 @@
15
15
  * a missing runtimes flag should block (no flag, no `--yes`) or not
16
16
  * (flag passed, or `--yes`).
17
17
  *
18
+ * 0.6.7 — `--force-runtimes` (Bug 2 fix) bypasses the `upgrade_noop`
19
+ * short-circuit so `/apt:update` can re-stamp runtime manifests even
20
+ * when `.aperant/config.json` is at the current schema. Strictly
21
+ * additive: callers without the flag still get the no-op short-circuit
22
+ * (preserves `init-upgrade-drift.test.ts` case (a)).
23
+ *
18
24
  * @param {string[]} args
19
- * @returns {{ runtimes: string[], runtimes_explicit: boolean, target: string|null, interactive: boolean, skipBootstrap: boolean, visibility?: 'solo'|'team', autonomy?: 0|1|2|3, accept_new_defaults: boolean, yes: boolean }}
25
+ * @returns {{ runtimes: string[], runtimes_explicit: boolean, target: string|null, interactive: boolean, skipBootstrap: boolean, visibility?: 'solo'|'team', autonomy?: 0|1|2|3, accept_new_defaults: boolean, yes: boolean, forceRuntimes: boolean }}
20
26
  */
21
27
  export function parseInstallFlags(args: string[]): {
22
28
  runtimes: string[];
@@ -28,6 +34,7 @@ export function parseInstallFlags(args: string[]): {
28
34
  autonomy?: 0 | 1 | 2 | 3;
29
35
  accept_new_defaults: boolean;
30
36
  yes: boolean;
37
+ forceRuntimes: boolean;
31
38
  };
32
39
  /**
33
40
  * Main entry — invoked from bin/apt-tools.mjs.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/init.mjs"],"names":[],"mappings":"AAmEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wCAHW,MAAM,EAAE,GACN;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAC,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAgD7N;AA40BD;;;;;;GAMG;AACH,oCAJW,MAAM,cACN,MAAM,EAAE,GACN,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAiI3D;;;;;cA98Ba,MAAM,EAAE;;;;qBACR,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC;;;;gBACP,MAAM,GAAC,MAAM;;;;4BACb,MAAM,EAAE;;;;aACR,OAAO;;;;mBACP,OAAO;eACP,OAAO,0BAA0B,EAAE,eAAe;;;;;;;;;aAErC,MAAM;eAAS,OAAO;cAAQ,MAAM;iBAAW,MAAM;;;;;;aAErD,MAAM;eAAS,OAAO;gBAAU,MAAM;;;;;;kBAEvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAAoB,OAAO,EAAE;2BAAqB,OAAO,EAAE;oBAAc,OAAO,EAAE"}
1
+ {"version":3,"file":"init.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/init.mjs"],"names":[],"mappings":"AAmEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wCAHW,MAAM,EAAE,GACN;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAC,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAoDrP;AA23BD;;;;;;GAMG;AACH,oCAJW,MAAM,cACN,MAAM,EAAE,GACN,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoK3D;;;;;cAhiCa,MAAM,EAAE;;;;qBACR,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC;;;;gBACP,MAAM,GAAC,MAAM;;;;4BACb,MAAM,EAAE;;;;aACR,OAAO;;;;mBACP,OAAO;eACP,OAAO,0BAA0B,EAAE,eAAe;;;;;;;;;aAErC,MAAM;eAAS,OAAO;cAAQ,MAAM;iBAAW,MAAM;;;;;;aAErD,MAAM;eAAS,OAAO;gBAAU,MAAM;;;;;;kBAEvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0BAAoB,OAAO,EAAE;2BAAqB,OAAO,EAAE;oBAAc,OAAO,EAAE"}
@@ -60,8 +60,14 @@ const TRANSFORM_LOADERS = new Map(RUNTIMES.map((r) => [r.id, () => import(`../in
60
60
  * a missing runtimes flag should block (no flag, no `--yes`) or not
61
61
  * (flag passed, or `--yes`).
62
62
  *
63
+ * 0.6.7 — `--force-runtimes` (Bug 2 fix) bypasses the `upgrade_noop`
64
+ * short-circuit so `/apt:update` can re-stamp runtime manifests even
65
+ * when `.aperant/config.json` is at the current schema. Strictly
66
+ * additive: callers without the flag still get the no-op short-circuit
67
+ * (preserves `init-upgrade-drift.test.ts` case (a)).
68
+ *
63
69
  * @param {string[]} args
64
- * @returns {{ runtimes: string[], runtimes_explicit: boolean, target: string|null, interactive: boolean, skipBootstrap: boolean, visibility?: 'solo'|'team', autonomy?: 0|1|2|3, accept_new_defaults: boolean, yes: boolean }}
70
+ * @returns {{ runtimes: string[], runtimes_explicit: boolean, target: string|null, interactive: boolean, skipBootstrap: boolean, visibility?: 'solo'|'team', autonomy?: 0|1|2|3, accept_new_defaults: boolean, yes: boolean, forceRuntimes: boolean }}
65
71
  */
66
72
  export function parseInstallFlags(args) {
67
73
  const flagSet = new Set(args.filter((a) => a.startsWith('--')));
@@ -74,10 +80,14 @@ export function parseInstallFlags(args) {
74
80
  // C47 D-04 — opt out of the PROJECT.md auto-chain. Forwarded as
75
81
  // `answers.skipBootstrap` into both interview paths.
76
82
  const skipBootstrap = flagSet.has('--skip-bootstrap');
83
+ // 0.6.7 (Bug 2 fix) — opt-in bypass of the upgrade_noop short-circuit
84
+ // so /apt:update can re-stamp runtime files on a no-drift upgrade.
85
+ const forceRuntimes = flagSet.has('--force-runtimes');
77
86
  const classFlags = parseClassFlags(args);
78
87
  const base = {
79
88
  target,
80
89
  skipBootstrap,
90
+ forceRuntimes,
81
91
  visibility: classFlags.visibility,
82
92
  autonomy: classFlags.autonomy,
83
93
  accept_new_defaults: classFlags.accept_new_defaults,
@@ -290,6 +300,31 @@ function applyCollapsedClassAToMigration(migration, collapsedEntries, source, te
290
300
  migration.migrated.version = templateVersion;
291
301
  }
292
302
  }
303
+ /**
304
+ * Resolve the effective runtimes list from flags, with fallback to
305
+ * `suggestRuntimes` and a final fallback to `['claude']`.
306
+ *
307
+ * Shared by the `nonInteractiveAnswers` upgrade path and the
308
+ * `--force-runtimes` synthesis block in `cmdInit` to avoid duplication.
309
+ *
310
+ * Emits a one-line stderr warning when the final fallback fires (no
311
+ * explicit flags and `suggestRuntimes` returned empty) so the choice is
312
+ * visible without breaking automated callers.
313
+ *
314
+ * @param {string} targetDir
315
+ * @param {ReturnType<typeof parseInstallFlags>} parsedFlags
316
+ * @returns {string[]}
317
+ */
318
+ function selectRuntimes(targetDir, parsedFlags) {
319
+ if (parsedFlags.runtimes_explicit)
320
+ return parsedFlags.runtimes;
321
+ const suggested = new Set(suggestRuntimes(targetDir));
322
+ if (suggested.size === 0) {
323
+ process.stderr.write('[apt-tools] No runtime specified and config has no suggestRuntimes; defaulting to claude.\n');
324
+ suggested.add('claude');
325
+ }
326
+ return [...suggested];
327
+ }
293
328
  /**
294
329
  * Non-TTY / scripted path — derive answers from flags + sensible defaults,
295
330
  * gated by the Class A/B classifier (spec R2 + R3).
@@ -377,10 +412,7 @@ function nonInteractiveAnswers(targetDir, canonicalRoot, archetype, parsedFlags)
377
412
  const visibility = migration.migrated?.share?.visibility === 'team' ? 'team' : 'solo';
378
413
  const autonomyDefault = migration.migrated?.autonomy?.default ?? 1;
379
414
  const xverify = migration.migrated?.multi_model?.cross_verification?.tools ?? [];
380
- const suggested = new Set(suggestRuntimes(targetDir));
381
- if (suggested.size === 0)
382
- suggested.add('claude');
383
- const runtimes = parsedFlags.runtimes_explicit ? parsedFlags.runtimes : [...suggested];
415
+ const runtimes = selectRuntimes(targetDir, parsedFlags);
384
416
  return {
385
417
  runtimes,
386
418
  autonomyDefault,
@@ -543,6 +575,12 @@ async function interactiveInterview(targetDir, version, canonicalRoot, archetype
543
575
  migration.applied_defaults.length === 0 &&
544
576
  migration.auto_added.length === 0;
545
577
  if (noDrift) {
578
+ // 0.6.7 (Bug 2 fix) — `--force-runtimes` bypasses the TTY
579
+ // "Nothing to do." outro so the runtime walker re-stamps every
580
+ // manifest; cmdInit's force-runtimes synthesis path takes over.
581
+ if (parsedFlags.forceRuntimes) {
582
+ return { upgrade_noop: true, skipBootstrap, migration };
583
+ }
546
584
  process.stdout.write(`\n${aperantBanner(version)}\n\n`);
547
585
  clack.intro('install');
548
586
  clack.note(`Already up to date — v${version}`, 'No drift');
@@ -833,6 +871,21 @@ function applyInterviewAnswers(config, answers) {
833
871
  }
834
872
  config.project_type =
835
873
  answers.archetype.type === 'brownfield' ? 'unknown' : config.project_type || 'unknown';
874
+ // Onboarding marker (task 15-05-26_apt-setup-onboarding-marker-7q9c).
875
+ // `/apt:setup` dispatches on this marker to decide review-mode vs full
876
+ // Batch 1-8 flow — file existence alone cannot disambiguate "fresh seed
877
+ // from template" from "fully tuned by setup" because templates/config.json
878
+ // ships with every key populated. Only the fresh-seed branch reaches this
879
+ // function (finishInit:1331); the upgrade branch (finishInit:1338-1357)
880
+ // writes answers.migration.migrated directly and never calls
881
+ // applyInterviewAnswers, so legacy unmarked configs correctly stay
882
+ // unmarked on upgrade. --yes / --accept-new-defaults walk this same fresh
883
+ // path but do NOT walk Batch 1-8 questions, so completed stays false.
884
+ config.onboarding = {
885
+ completed: false,
886
+ seeded_from_template: true,
887
+ seeded_at: new Date().toISOString(),
888
+ };
836
889
  }
837
890
  /**
838
891
  * Read the framework version from package.json.
@@ -968,7 +1021,13 @@ export async function cmdInit(projectDir, extraArgs = []) {
968
1021
  // idempotent — preserves PROJECT.md, refreshes sidecar from it).
969
1022
  // In TTY mode clack already rendered "Nothing to do." to stdout,
970
1023
  // so suppress the JSON envelope (matches the cancelled path).
971
- if (answers?.upgrade_noop) {
1024
+ //
1025
+ // 0.6.7 (Bug 2 fix) — `--force-runtimes` bypasses this short-circuit
1026
+ // so `/apt:update` can re-stamp every runtime manifest even when
1027
+ // `.aperant/config.json` is at the current schema. We synthesize a
1028
+ // real InstallAnswers shape from the existing config so
1029
+ // installRuntimes + finishInit run their normal upgrade path.
1030
+ if (answers?.upgrade_noop && !parsedFlags.forceRuntimes) {
972
1031
  if (interactiveTty)
973
1032
  return rawText('', 0);
974
1033
  const bootstrap = answers.skipBootstrap
@@ -984,14 +1043,37 @@ export async function cmdInit(projectDir, extraArgs = []) {
984
1043
  message: `Already up to date — v${version}`,
985
1044
  });
986
1045
  }
987
- const results = await installRuntimes(answers.runtimes, canonicalRoot, installTarget, version);
1046
+ // 0.6.7 (Bug 2 fix) when forceRuntimes is set on a no-drift run,
1047
+ // synthesize a real InstallAnswers shape from the existing config so
1048
+ // the runtime walker re-stamps every manifest. Visibility/autonomy/
1049
+ // cross-verification are read from answers.migration.migrated (already
1050
+ // in memory from nonInteractiveAnswers — avoids a second config read);
1051
+ // runtimes resolved via selectRuntimes helper shared with the upgrade path.
1052
+ let effectiveAnswers = answers;
1053
+ if (answers?.upgrade_noop && parsedFlags.forceRuntimes) {
1054
+ const existing = answers.migration?.migrated || {};
1055
+ const runtimes = selectRuntimes(installTarget, parsedFlags);
1056
+ effectiveAnswers = {
1057
+ runtimes,
1058
+ autonomyDefault: existing?.autonomy?.default ?? 1,
1059
+ visibility: existing?.share?.visibility === 'team' ? 'team' : 'solo',
1060
+ crossVerificationTools: existing?.multi_model?.cross_verification?.tools ?? [],
1061
+ scanNow: false,
1062
+ skipBootstrap: answers.skipBootstrap,
1063
+ archetype: detectArchetype(installTarget),
1064
+ agent_runtime: detectAgentRuntime(),
1065
+ applied_defaults: [],
1066
+ explicit_inputs: collectExplicitInputs(parsedFlags),
1067
+ };
1068
+ }
1069
+ const results = await installRuntimes(effectiveAnswers.runtimes, canonicalRoot, installTarget, version);
988
1070
  // Provision the project-local kernel BEFORE finishInit runs its JSON
989
1071
  // output — that way the "structure" summary can reflect the kernel
990
1072
  // path. We show a spinner in TTY mode because npm install is slow.
991
1073
  const kernelResult = await runKernelInstall(installTarget, version, interactiveTty);
992
- const envelope = finishInit(targetDir, installTarget, canonicalRoot, version, answers.runtimes, results, answers, interactiveTty, kernelResult);
1074
+ const envelope = finishInit(targetDir, installTarget, canonicalRoot, version, effectiveAnswers.runtimes, results, effectiveAnswers, interactiveTty, kernelResult);
993
1075
  if (interactiveTty) {
994
- await renderOutro(answers, results, version, kernelResult);
1076
+ await renderOutro(effectiveAnswers, results, version, kernelResult);
995
1077
  // TTY mode: envelope was persisted to disk + suppressed from stdout
996
1078
  // because the clack outro already rendered the user-facing summary.
997
1079
  // Return the rawText shape with empty payload so wrap() routes us