@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.
- package/CHANGELOG.md +155 -0
- package/dist/cli/commands/check-version.d.mts.map +1 -1
- package/dist/cli/commands/check-version.mjs +76 -1
- package/dist/cli/commands/check-version.mjs.map +1 -1
- package/dist/cli/commands/ci-watch.d.mts.map +1 -1
- package/dist/cli/commands/ci-watch.mjs +34 -4
- package/dist/cli/commands/ci-watch.mjs.map +1 -1
- package/dist/cli/commands/init.d.mts +8 -1
- package/dist/cli/commands/init.d.mts.map +1 -1
- package/dist/cli/commands/init.mjs +91 -9
- package/dist/cli/commands/init.mjs.map +1 -1
- package/dist/cli/commands/release-notes.d.mts +11 -0
- package/dist/cli/commands/release-notes.d.mts.map +1 -0
- package/dist/cli/commands/release-notes.mjs +173 -0
- package/dist/cli/commands/release-notes.mjs.map +1 -0
- package/dist/cli/config/load.d.mts +14 -0
- package/dist/cli/config/load.d.mts.map +1 -1
- package/dist/cli/config/load.mjs +40 -0
- package/dist/cli/config/load.mjs.map +1 -1
- package/dist/cli/config/upgrade-gitignore.d.mts.map +1 -1
- package/dist/cli/config/upgrade-gitignore.mjs +6 -0
- package/dist/cli/config/upgrade-gitignore.mjs.map +1 -1
- package/dist/cli/consistency/parse-review.d.mts.map +1 -1
- package/dist/cli/consistency/parse-review.mjs +4 -1
- package/dist/cli/consistency/parse-review.mjs.map +1 -1
- package/dist/cli/dispatch.d.mts.map +1 -1
- package/dist/cli/dispatch.mjs +2 -0
- package/dist/cli/dispatch.mjs.map +1 -1
- package/dist/cli/gate/gates/review-clean.d.mts.map +1 -1
- package/dist/cli/gate/gates/review-clean.mjs +4 -2
- package/dist/cli/gate/gates/review-clean.mjs.map +1 -1
- package/dist/cli/install/update-chips.d.mts +23 -0
- package/dist/cli/install/update-chips.d.mts.map +1 -1
- package/dist/cli/install/update-chips.mjs +60 -0
- package/dist/cli/install/update-chips.mjs.map +1 -1
- package/dist/cli/release-notes/compile.d.mts +38 -0
- package/dist/cli/release-notes/compile.d.mts.map +1 -0
- package/dist/cli/release-notes/compile.mjs +244 -0
- package/dist/cli/release-notes/compile.mjs.map +1 -0
- package/dist/cli/release-notes/draft.d.mts +73 -0
- package/dist/cli/release-notes/draft.d.mts.map +1 -0
- package/dist/cli/release-notes/draft.mjs +120 -0
- package/dist/cli/release-notes/draft.mjs.map +1 -0
- package/dist/cli/release-notes/output-dir.d.mts +20 -0
- package/dist/cli/release-notes/output-dir.d.mts.map +1 -0
- package/dist/cli/release-notes/output-dir.mjs +42 -0
- package/dist/cli/release-notes/output-dir.mjs.map +1 -0
- package/dist/cli/release-notes/persona-filter.d.mts +51 -0
- package/dist/cli/release-notes/persona-filter.d.mts.map +1 -0
- package/dist/cli/release-notes/persona-filter.mjs +127 -0
- package/dist/cli/release-notes/persona-filter.mjs.map +1 -0
- package/dist/cli/release-notes/publish.d.mts +23 -0
- package/dist/cli/release-notes/publish.d.mts.map +1 -0
- package/dist/cli/release-notes/publish.mjs +125 -0
- package/dist/cli/release-notes/publish.mjs.map +1 -0
- package/dist/cli/release-notes/ship-autodraft.d.mts +37 -0
- package/dist/cli/release-notes/ship-autodraft.d.mts.map +1 -0
- package/dist/cli/release-notes/ship-autodraft.mjs +97 -0
- package/dist/cli/release-notes/ship-autodraft.mjs.map +1 -0
- package/dist/types/config.d.ts +11 -7
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +133 -133
- package/skills/apt-close-task/SKILL.md +25 -0
- package/skills/apt-diagram/SKILL.md +45 -9
- package/skills/apt-release-notes/SKILL.md +193 -0
- package/skills/apt-release-notes/appendices/persona-voice.md +59 -0
- package/skills/apt-setup/SKILL.md +146 -3
- package/skills/apt-ship/SKILL.md +47 -0
- package/skills/apt-update/SKILL.md +51 -9
- package/skills/apt-watch-ci/SKILL.md +2 -2
- package/src/cli/commands/check-version.mjs +73 -1
- package/src/cli/commands/ci-watch.mjs +35 -4
- package/src/cli/commands/init.mjs +101 -9
- package/src/cli/commands/release-notes.mjs +187 -0
- package/src/cli/config/load.mjs +37 -0
- package/src/cli/config/upgrade-gitignore.mjs +6 -0
- package/src/cli/consistency/parse-review.mjs +3 -1
- package/src/cli/dispatch.mjs +2 -0
- package/src/cli/gate/gates/review-clean.mjs +4 -2
- package/src/cli/install/update-chips.mjs +57 -0
- package/src/cli/release-notes/compile.mjs +261 -0
- package/src/cli/release-notes/draft.mjs +133 -0
- package/src/cli/release-notes/output-dir.mjs +52 -0
- package/src/cli/release-notes/persona-filter.mjs +126 -0
- package/src/cli/release-notes/publish.mjs +128 -0
- package/src/cli/release-notes/ship-autodraft.mjs +106 -0
- package/templates/config.json +28 -3
- 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":"
|
|
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
|
|
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":"AAAA
|
|
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":"
|
|
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
|
|
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
|
|
444
|
-
//
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
1074
|
+
const envelope = finishInit(targetDir, installTarget, canonicalRoot, version, effectiveAnswers.runtimes, results, effectiveAnswers, interactiveTty, kernelResult);
|
|
993
1075
|
if (interactiveTty) {
|
|
994
|
-
await renderOutro(
|
|
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
|