plumbbob 0.12.0 → 0.13.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +15 -10
- package/dist/cli-core.js +25 -3
- package/dist/lib/git.js +20 -8
- package/dist/lib/notice.js +15 -1
- package/dist/lib/orient.js +266 -19
- package/dist/lib/sidecar.js +149 -3
- package/dist/verbs/abandon.js +19 -14
- package/dist/verbs/build.js +45 -22
- package/dist/verbs/checkpoint.js +34 -25
- package/dist/verbs/doctor.js +23 -4
- package/dist/verbs/finish.js +21 -17
- package/dist/verbs/handoff.js +235 -65
- package/dist/verbs/order.js +110 -0
- package/dist/verbs/park.js +6 -2
- package/dist/verbs/recover.js +31 -1
- package/dist/verbs/relay.js +306 -0
- package/dist/verbs/revert.js +17 -11
- package/dist/verbs/spike.js +50 -38
- package/dist/verbs/start.js +13 -9
- package/dist/verbs/status.js +2 -2
- package/dist/verbs/turn.js +14 -7
- package/dist/verbs/use.js +21 -17
- package/hooks/hooks.json +7 -0
- package/node_modules/checkride/.claude-plugin/plugin.json +1 -1
- package/node_modules/checkride/CHANGELOG.md +117 -0
- package/node_modules/checkride/dist/adapters.d.ts.map +1 -1
- package/node_modules/checkride/dist/adapters.js +14 -10
- package/node_modules/checkride/dist/adapters.js.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.d.ts +4 -3
- package/node_modules/checkride/dist/baseline/fallow.d.ts.map +1 -1
- package/node_modules/checkride/dist/baseline/fallow.js +15 -8
- package/node_modules/checkride/dist/baseline/fallow.js.map +1 -1
- package/node_modules/checkride/dist/gate.d.ts.map +1 -1
- package/node_modules/checkride/dist/gate.js +62 -44
- package/node_modules/checkride/dist/gate.js.map +1 -1
- package/node_modules/checkride/dist/init.js +3 -3
- package/node_modules/checkride/dist/init.js.map +1 -1
- package/node_modules/checkride/dist/orchestrator.d.ts.map +1 -1
- package/node_modules/checkride/dist/orchestrator.js +53 -8
- package/node_modules/checkride/dist/orchestrator.js.map +1 -1
- package/node_modules/checkride/dist/pack.js +3 -3
- package/node_modules/checkride/dist/security.d.ts +4 -2
- package/node_modules/checkride/dist/security.d.ts.map +1 -1
- package/node_modules/checkride/dist/security.js +42 -8
- package/node_modules/checkride/dist/security.js.map +1 -1
- package/node_modules/checkride/dist/triage/render.js +1 -1
- package/node_modules/checkride/dist/triage/render.js.map +1 -1
- package/node_modules/checkride/package.json +10 -10
- package/node_modules/checkride/skills/check/SKILL.md +4 -3
- package/node_modules/checkride/templates/shared/cspell.json +3 -24
- package/package.json +3 -3
- package/skills/build/SKILL.md +47 -20
- package/skills/harvest/SKILL.md +4 -1
- package/skills/order/SKILL.md +50 -0
- package/skills/park/SKILL.md +7 -0
- package/skills/plan/SKILL.md +4 -1
- package/skills/refine/SKILL.md +6 -2
- package/skills/step/SKILL.md +8 -3
- package/skills/verify/SKILL.md +42 -22
- package/templates/intent.md +9 -0
|
@@ -4,6 +4,121 @@ All notable changes to this project are documented here. The format is based on
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
5
5
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.12.5] - 2026-09-04
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- **The `spell` slot reports common typos, not unknown words.** The cspell
|
|
12
|
+
config `checkride init` scaffolds — and this repo's own — now sets
|
|
13
|
+
`"unknownWords": "report-common-typos"`, so a red `spell` means a word from
|
|
14
|
+
cspell's common-misspellings list (`recieve`, `seperate`, `occured`), never a
|
|
15
|
+
tool name or a domain term the dictionary has not met. The scaffolded `words`
|
|
16
|
+
allowlist starts empty, and this repo's 87-entry list — one that 37 of its
|
|
17
|
+
247 commits had to touch — is gone. The trade is recall on a novel
|
|
18
|
+
misspelling of a real word, which is the recall the noise was already
|
|
19
|
+
costing. `language` widens to `en,en-GB`, so Canadian and British spellings
|
|
20
|
+
(`colour`, `behaviour`) pass without a second dictionary. Existing adopters
|
|
21
|
+
opt in by adding the two settings to their `cspell.json`; `cspell --report
|
|
22
|
+
typos --words-only --unique .` previews what a repo would still flag.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **A `security` run against an unreachable advisory endpoint no longer sits
|
|
27
|
+
for four minutes and then says nothing.** The adapter passes
|
|
28
|
+
`--fetch-retries=1 --fetch-timeout=15000`, so pnpm gives up in about 40s
|
|
29
|
+
instead of its default ~250s. The failure is reported as `exit_code: -1` —
|
|
30
|
+
could not verify, the code the plugin's readers already name a harness
|
|
31
|
+
problem rather than a finding — with pnpm's own message printed under the
|
|
32
|
+
slot's status line. Any `exit_code: -1` slot now prints its reason there: a
|
|
33
|
+
built-in's `check-<slot>:` line, or the `timed out after Ns` note.
|
|
34
|
+
- A slot's stderr is persisted as `.check/<slot>.stderr.txt` even when its
|
|
35
|
+
stdout won as a JSON artifact. The security evaluator's explanation used to
|
|
36
|
+
be dropped on that path, leaving `.check/security.json` as the only trace.
|
|
37
|
+
- Re-resolved `fast-uri` to 3.1.7 (four high advisories: GHSA-5jgf-p345-68v8,
|
|
38
|
+
GHSA-f65p-4m7j-42xc, GHSA-fph4-wmhf-6fwf, GHSA-jqff-g426-hqxp) and `qs` to
|
|
39
|
+
6.16.0 (GHSA-4mjr-xmp4-gh2g, GHSA-x5fp-wj9c-mxmx). Both dev-only and
|
|
40
|
+
transitive. `fast-uri` needed no override entry — ajv's own `^3.0.1` reaches
|
|
41
|
+
the patched line — while the `qs` entry was re-scoped from `>=6.11.1
|
|
42
|
+
<6.15.2` to `>=2.2.5 <6.16.0`, since the newer advisories left 6.15.3 exposed
|
|
43
|
+
inside the old range's blind spot. Removing that entry drops `qs` to 6.15.1
|
|
44
|
+
and three moderates return, so it stays.
|
|
45
|
+
|
|
46
|
+
### Internal
|
|
47
|
+
|
|
48
|
+
- Dev-dependency patch bumps, mirrored into the adapter `devDeps` that
|
|
49
|
+
`checkride init` scaffolds and `doctor` recommends: `@vvago/vale` 3.17.1,
|
|
50
|
+
`@ast-grep/cli` 0.45.3, `publint` 0.3.24, and the `vitest` /
|
|
51
|
+
`@vitest/coverage-v8` pair 4.1.11 (their peer range pins them to the same
|
|
52
|
+
version). The vale repin closes the one left open when `minimumReleaseAge`
|
|
53
|
+
blocked 3.17.1 during the prose-slot build.
|
|
54
|
+
- `fallow` 3.9.1 -> 3.22.0. Its report schema moved (11 for health, 9 for
|
|
55
|
+
dead-code and dupes, from 7), which the parser accepts by design — the floor
|
|
56
|
+
is a minimum, not an exact match. Re-verified that every field the fallow
|
|
57
|
+
parsers read survives the jump, including against a health report carrying a
|
|
58
|
+
real finding, since a silent shape drift would read as zero findings and
|
|
59
|
+
pass. No new findings on this repo; thresholds are unchanged.
|
|
60
|
+
- `oxlint` 1.81.0 with `oxlint-tsgolint` 7.0.2001 — one bump, not two: oxlint
|
|
61
|
+
1.81 declares the tsgolint peer as `>=7.0.2001`, and tsgolint renumbered from
|
|
62
|
+
0.25.0 to track TypeScript 7. It brought two new rules. `no-irregular-
|
|
63
|
+
whitespace` caught a zero-width space in a `src/pack.ts` doc comment, wedged
|
|
64
|
+
there to stop a glob's `*/` closing the comment — reworded so no invisible
|
|
65
|
+
character is load-bearing. `no-await-in-loop` is off for `**/*.test.ts`:
|
|
66
|
+
those suites mutate one shared directory and awaiting in the loop is the
|
|
67
|
+
correctness constraint, not an oversight.
|
|
68
|
+
- `cspell` 10.2.0. Its word splitter changed (camelCase, symbols, numbers,
|
|
69
|
+
soft hyphens, opt-in Intl segmentation), so the `report-common-typos` mode
|
|
70
|
+
adopted a version earlier was re-verified rather than assumed: same five
|
|
71
|
+
typos flagged, jargon and Canadian spellings still clean, `cspell:ignore`
|
|
72
|
+
still honoured, and the mode still filters (10 words under `report-all`
|
|
73
|
+
against 5 under `report-common-typos`). 10.2.1 exists but sits inside the
|
|
74
|
+
48-hour `minimumReleaseAge` cooldown.
|
|
75
|
+
- The `/version` release gate widened from `--only docs,links,spell,test` to
|
|
76
|
+
the full `pnpm check`. Repo-local skill, not shipped.
|
|
77
|
+
|
|
78
|
+
## [0.12.4] - 2026-09-02
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
|
|
82
|
+
- **A narrowed run's summary now states its own narrowing.** Slots deselected
|
|
83
|
+
by `--only`/`--skip` ride `.check/summary.json` as skipped rows naming the
|
|
84
|
+
flag (`not in --only`, `skipped by --skip`), so a consumer reading the
|
|
85
|
+
artifact after a gate profile or an iteration loop can tell the subset from
|
|
86
|
+
the whole. Opt-in slots that simply sat out are not narrowing and stay
|
|
87
|
+
absent, as before. The human summary reports the same narrowed set.
|
|
88
|
+
|
|
89
|
+
### Changed
|
|
90
|
+
|
|
91
|
+
- **The gate verdict reads as one sentence.** The glyph now trails the clause
|
|
92
|
+
it confirms and every detail rides a single parenthetical — `checkride green
|
|
93
|
+
in 4.1s ✔ (10 checks, without test, slowest: spell in 1.8s)` — in place of
|
|
94
|
+
the old leading-glyph, dash-chained form. A gate profile names its narrowing
|
|
95
|
+
directly (`only types, lint`, `without test`, `affected-only`) rather than
|
|
96
|
+
the `gate profile: … — NOT the full check` boilerplate, so a narrowed green
|
|
97
|
+
still cannot read as a full green. This moves a frozen surface: anything
|
|
98
|
+
matching the old verdict string verbatim needs updating, and
|
|
99
|
+
`docs/contract.md` and its contract test move with it. The `AGENTS.md`
|
|
100
|
+
stanza that `checkride init` writes describes the new wording.
|
|
101
|
+
|
|
102
|
+
### Fixed
|
|
103
|
+
|
|
104
|
+
- The gate's user-visible verdict no longer lands glued to the turn's last
|
|
105
|
+
sentence. The harness prints a hook's `systemMessage` immediately after the
|
|
106
|
+
previous text, so the verdict now carries its own two-newline lead. Only the
|
|
107
|
+
user-facing channel is padded; the agent-facing `reason` and the stderr line
|
|
108
|
+
are untouched.
|
|
109
|
+
- Re-resolved `browserslist` to 4.28.8 for GHSA-c83g-rgw3-j3cx and
|
|
110
|
+
GHSA-73wf-gq98-2v4g (high severity; dev-only, via `@stryker-mutator/core` →
|
|
111
|
+
`@babel/core` → `@babel/helper-compilation-targets`). No override entry —
|
|
112
|
+
`helper-compilation-targets` already declares `^4.24.0`, so a plain
|
|
113
|
+
re-resolve takes the patched line.
|
|
114
|
+
|
|
115
|
+
### Internal
|
|
116
|
+
|
|
117
|
+
- `gateDetail` splits back into `greenDetail` and `redDetail` behind a thin
|
|
118
|
+
dispatcher, clearing fallow's health threshold after the earlier
|
|
119
|
+
consolidation pushed it to cyclomatic 10. Pure extraction — the verdict
|
|
120
|
+
strings are byte-identical.
|
|
121
|
+
|
|
7
122
|
## [0.12.2] - 2026-08-12
|
|
8
123
|
|
|
9
124
|
### Added
|
|
@@ -1847,6 +1962,8 @@ The first real release. (`0.0.0` was a name-claim placeholder.)
|
|
|
1847
1962
|
- Flags: `--only`, `--skip`, `--bail`, `--json`, `--changed`, `--all`,
|
|
1848
1963
|
`--include`.
|
|
1849
1964
|
|
|
1965
|
+
[0.12.5]: https://www.npmjs.com/package/checkride/v/0.12.5
|
|
1966
|
+
[0.12.4]: https://www.npmjs.com/package/checkride/v/0.12.4
|
|
1850
1967
|
[0.12.2]: https://www.npmjs.com/package/checkride/v/0.12.2
|
|
1851
1968
|
[0.12.1]: https://www.npmjs.com/package/checkride/v/0.12.1
|
|
1852
1969
|
[0.12.0]: https://www.npmjs.com/package/checkride/v/0.12.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAqBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;AACzE,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzC,8BAA8B;AAC9B,MAAM,MAAM,IAAI,GAAG;IACjB,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,OAAO,GAAG;IACpB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oIAAoI;IACpI,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAqBhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAoYtC,CAAC"}
|
|
@@ -104,7 +104,7 @@ export const ADAPTERS = [
|
|
|
104
104
|
args: ['exec', 'oxlint', '--type-aware', '--format=json'],
|
|
105
105
|
outputFile: 'lint.json',
|
|
106
106
|
fixArgs: ['exec', 'oxlint', '--type-aware', '--fix'],
|
|
107
|
-
devDeps: { oxlint: '1.
|
|
107
|
+
devDeps: { oxlint: '1.81.0', 'oxlint-tsgolint': '7.0.2001' },
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
name: 'biome',
|
|
@@ -148,7 +148,7 @@ export const ADAPTERS = [
|
|
|
148
148
|
command: 'pnpm',
|
|
149
149
|
args: ['exec', 'ast-grep', 'scan', '--json=compact'],
|
|
150
150
|
outputFile: 'struct.json',
|
|
151
|
-
devDeps: { '@ast-grep/cli': '0.45.
|
|
151
|
+
devDeps: { '@ast-grep/cli': '0.45.3' },
|
|
152
152
|
},
|
|
153
153
|
{
|
|
154
154
|
name: 'fallow',
|
|
@@ -163,7 +163,7 @@ export const ADAPTERS = [
|
|
|
163
163
|
outputFile: 'dead.json',
|
|
164
164
|
gate: 'fallow',
|
|
165
165
|
fixArgs: ['exec', 'fallow', 'fix'],
|
|
166
|
-
devDeps: { fallow: '3.
|
|
166
|
+
devDeps: { fallow: '3.22.0' },
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
name: 'knip',
|
|
@@ -189,7 +189,7 @@ export const ADAPTERS = [
|
|
|
189
189
|
args: ['exec', 'fallow', 'dupes', '--format', 'json', '--quiet'],
|
|
190
190
|
outputFile: 'dupes.json',
|
|
191
191
|
gate: 'fallow',
|
|
192
|
-
devDeps: { fallow: '3.
|
|
192
|
+
devDeps: { fallow: '3.22.0' },
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
name: 'fallow',
|
|
@@ -200,7 +200,7 @@ export const ADAPTERS = [
|
|
|
200
200
|
args: ['exec', 'fallow', 'health', '--format', 'json', '--quiet'],
|
|
201
201
|
outputFile: 'health.json',
|
|
202
202
|
gate: 'fallow',
|
|
203
|
-
devDeps: { fallow: '3.
|
|
203
|
+
devDeps: { fallow: '3.22.0' },
|
|
204
204
|
},
|
|
205
205
|
{
|
|
206
206
|
name: 'vitest',
|
|
@@ -218,7 +218,7 @@ export const ADAPTERS = [
|
|
|
218
218
|
],
|
|
219
219
|
outputFile: null,
|
|
220
220
|
changedArgs: ['--changed', 'origin/main'],
|
|
221
|
-
devDeps: { vitest: '4.1.
|
|
221
|
+
devDeps: { vitest: '4.1.11', '@vitest/coverage-v8': '4.1.11' },
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
name: 'jest',
|
|
@@ -281,7 +281,7 @@ export const ADAPTERS = [
|
|
|
281
281
|
command: 'pnpm',
|
|
282
282
|
args: ['exec', 'cspell', '--no-progress', '--no-summary', '--reporter=default'],
|
|
283
283
|
outputFile: null,
|
|
284
|
-
devDeps: { cspell: '10.0
|
|
284
|
+
devDeps: { cspell: '10.2.0' },
|
|
285
285
|
},
|
|
286
286
|
{
|
|
287
287
|
name: 'vale',
|
|
@@ -300,7 +300,7 @@ export const ADAPTERS = [
|
|
|
300
300
|
// `args` with explicit paths — the same way this one already does for lint.
|
|
301
301
|
args: ['exec', 'vale', '--no-global', '--output=JSON', '.'],
|
|
302
302
|
outputFile: 'prose.json',
|
|
303
|
-
devDeps: { '@vvago/vale': '3.17.
|
|
303
|
+
devDeps: { '@vvago/vale': '3.17.1' },
|
|
304
304
|
},
|
|
305
305
|
{
|
|
306
306
|
name: 'stryker',
|
|
@@ -329,7 +329,11 @@ export const ADAPTERS = [
|
|
|
329
329
|
// they are the audit invocation, and `--audit-level=<l>` doubles as the
|
|
330
330
|
// gate threshold it enforces itself — pnpm's JSON-mode exit code ignores
|
|
331
331
|
// the level, so trusting it gated at zero advisories of any severity.
|
|
332
|
-
|
|
332
|
+
// The fetch flags bound the wait when npm's advisory endpoint is down:
|
|
333
|
+
// pnpm's defaults (2 retries, 60s timeout, 10–60s backoff) sit ~250s
|
|
334
|
+
// before reporting; one retry at 15s measures ~40s. pnpm-only flags are
|
|
335
|
+
// safe here — the slot is unavailable under any other manager.
|
|
336
|
+
args: ['audit', '--audit-level=high', '--json', '--fetch-retries=1', '--fetch-timeout=15000'],
|
|
333
337
|
outputFile: 'security.json',
|
|
334
338
|
builtin: 'security',
|
|
335
339
|
devDeps: {},
|
|
@@ -359,7 +363,7 @@ export const ADAPTERS = [
|
|
|
359
363
|
command: 'pnpm',
|
|
360
364
|
args: ['exec', 'publint'],
|
|
361
365
|
outputFile: null,
|
|
362
|
-
devDeps: { publint: '0.3.
|
|
366
|
+
devDeps: { publint: '0.3.24' },
|
|
363
367
|
},
|
|
364
368
|
{
|
|
365
369
|
name: 'attw',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
* uniformly — and an *unrecognized* schema fails loudly rather than passing
|
|
17
17
|
* silently (the count can't be trusted, so the slot can't be green).
|
|
18
18
|
*
|
|
19
|
-
* The JSON is fallow's `schema_version
|
|
20
|
-
* schema 4 with a different layout and is no longer supported). Each
|
|
21
|
-
* kind has its own layout, so parsing dispatches on the top-level
|
|
19
|
+
* The JSON is fallow's `schema_version` >= 7 shape (fallow >= 3.5; fallow 2.x
|
|
20
|
+
* was schema 4 with a different layout and is no longer supported). Each
|
|
21
|
+
* analysis kind has its own layout, so parsing dispatches on the top-level
|
|
22
|
+
* `kind`.
|
|
22
23
|
*/
|
|
23
24
|
import type { Fingerprint } from './fingerprint.js';
|
|
24
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallow.d.ts","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fallow.d.ts","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAsTpD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAGvD;AAED,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,EAAE,EAAE,OAAO,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,QAAQ,EAAE,WAAW,CAAC;IACtB;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,aAAa,CA0BhG"}
|
|
@@ -16,18 +16,25 @@
|
|
|
16
16
|
* uniformly — and an *unrecognized* schema fails loudly rather than passing
|
|
17
17
|
* silently (the count can't be trusted, so the slot can't be green).
|
|
18
18
|
*
|
|
19
|
-
* The JSON is fallow's `schema_version
|
|
20
|
-
* schema 4 with a different layout and is no longer supported). Each
|
|
21
|
-
* kind has its own layout, so parsing dispatches on the top-level
|
|
19
|
+
* The JSON is fallow's `schema_version` >= 7 shape (fallow >= 3.5; fallow 2.x
|
|
20
|
+
* was schema 4 with a different layout and is no longer supported). Each
|
|
21
|
+
* analysis kind has its own layout, so parsing dispatches on the top-level
|
|
22
|
+
* `kind`.
|
|
22
23
|
*/
|
|
23
24
|
import { parseToolJson } from '../tool-json.js';
|
|
24
25
|
import { applyBaseline } from './store.js';
|
|
25
26
|
/**
|
|
26
|
-
* Minimum fallow JSON schema version checkride understands
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
27
|
+
* Minimum fallow JSON schema version checkride understands, and deliberately a
|
|
28
|
+
* floor rather than an exact match: fallow bumps the number for layout changes
|
|
29
|
+
* that leave the fields below untouched. 3.5.0 through 3.9.1 emitted 7 for all
|
|
30
|
+
* three kinds; 3.22.0 emits 11 for health and 9 for dead-code and dupes, and
|
|
31
|
+
* every field these parsers read (`findings[].path`/`.name`,
|
|
32
|
+
* `summary.total_issues`, `clone_groups[].fingerprint`) is unchanged across
|
|
33
|
+
* that span — re-verified against 3.22.0 output, including a health report
|
|
34
|
+
* carrying a real finding, since a shape drift here would read as zero
|
|
35
|
+
* findings and pass. 2.x emitted 4 with an incompatible layout. A report below
|
|
36
|
+
* this floor — or one whose kind/shape we can't read — is a hard failure,
|
|
37
|
+
* never a silent pass.
|
|
31
38
|
*/
|
|
32
39
|
const FALLOW_SCHEMA_MIN = 7;
|
|
33
40
|
/** Narrow to a plain object (arrays and null excluded). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallow.js","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fallow.js","sourceRoot":"","sources":["../../src/baseline/fallow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAgB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAKrD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAStD,iEAAiE;AACjE,eAAO,MAAM,aAAa,+BAAgC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAKzD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,KACxE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AA8C5B,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AA+BF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,WAAW,GAAG,IAAW,GAAG,MAAM,EAAE,CAS1F;AAkBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAe,GAAG,IAAsB,GAAG,WAAW,GAAG,IAAI,CAI7G;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAe,GAAG,IAAsB,GAAG,MAAM,GAAG,IAAI,CAG1G;
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAgB,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAKrD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAStD,iEAAiE;AACjE,eAAO,MAAM,aAAa,+BAAgC,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAKzD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,KACxE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AA8C5B,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,qFAAqF;IACrF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AA+BF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,GAAE,WAAW,GAAG,IAAW,GAAG,MAAM,EAAE,CAS1F;AAkBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAe,GAAG,IAAsB,GAAG,WAAW,GAAG,IAAI,CAI7G;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,eAAe,GAAG,IAAsB,GAAG,MAAM,GAAG,IAAI,CAG1G;AA6aD;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgD5E"}
|
|
@@ -235,12 +235,12 @@ export function gatePreflight(cwd, config = loadConfig(cwd)) {
|
|
|
235
235
|
return path !== undefined && path.length > 0 ? path : null;
|
|
236
236
|
}
|
|
237
237
|
/**
|
|
238
|
-
* How a narrowed run must describe itself —
|
|
239
|
-
*
|
|
238
|
+
* How a narrowed run must describe itself — the narrowing words that ride
|
|
239
|
+
* inside every verdict's parenthetical while a profile is active.
|
|
240
240
|
*
|
|
241
241
|
* This is the price of the profile and it is not optional. A gate that runs two
|
|
242
|
-
* of eighteen slots and reports a bare
|
|
243
|
-
* done, which is exactly what it does not know. Naming the
|
|
242
|
+
* of eighteen slots and reports a bare `green ✔` has told the reader the work is
|
|
243
|
+
* done, which is exactly what it does not know. Naming the narrowing turns a
|
|
244
244
|
* silent partial pass into a stated one.
|
|
245
245
|
*/
|
|
246
246
|
function profileClause(profile) {
|
|
@@ -251,7 +251,7 @@ function profileClause(profile) {
|
|
|
251
251
|
profile.skip && profile.skip.length > 0 ? `without ${profile.skip.join(', ')}` : null,
|
|
252
252
|
profile.changed === true ? 'affected-only' : null,
|
|
253
253
|
].filter((p) => p !== null);
|
|
254
|
-
return
|
|
254
|
+
return parts.join(', ');
|
|
255
255
|
}
|
|
256
256
|
/**
|
|
257
257
|
* Below this, naming the slowest check is noise rather than insight — every
|
|
@@ -262,13 +262,40 @@ const SLOWEST_FLOOR_MS = 1000;
|
|
|
262
262
|
function ranChecks(checks) {
|
|
263
263
|
return checks.filter((c) => c.skipped !== true);
|
|
264
264
|
}
|
|
265
|
-
/**
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
/**
|
|
266
|
+
* The verdict's parenthetical: what the run says about itself, comma-joined
|
|
267
|
+
* into one clause — the check count, the profile's narrowing words when one is
|
|
268
|
+
* active, and the slowest check when naming it is insight rather than noise.
|
|
269
|
+
* Without a fresh summary the narrowing words stand alone, and with neither
|
|
270
|
+
* there is no parenthetical at all.
|
|
271
|
+
*/
|
|
272
|
+
function gateDetail(read, fresh, green, profile) {
|
|
273
|
+
const narrowing = profileClause(profile);
|
|
274
|
+
if (!fresh || read.state !== 'ok')
|
|
275
|
+
return narrowing;
|
|
276
|
+
const ran = ranChecks(read.summary.checks);
|
|
277
|
+
return green ? greenDetail(ran, narrowing) : redDetail(ran, narrowing);
|
|
278
|
+
}
|
|
279
|
+
/** `15 checks, without test, slowest: spell in 1.8s` — what a green run is worth saying about itself. */
|
|
280
|
+
function greenDetail(ran, narrowing) {
|
|
281
|
+
const parts = [`${ran.length} check${ran.length === 1 ? '' : 's'}`];
|
|
282
|
+
if (narrowing !== null)
|
|
283
|
+
parts.push(narrowing);
|
|
268
284
|
const slowest = ran.reduce((worst, c) => (worst === null || c.duration_ms > worst.duration_ms ? c : worst), null);
|
|
269
|
-
if (slowest
|
|
270
|
-
|
|
271
|
-
|
|
285
|
+
if (slowest !== null && slowest.duration_ms >= SLOWEST_FLOOR_MS) {
|
|
286
|
+
parts.push(`slowest: ${slowest.name} in ${formatDuration(slowest.duration_ms)}`);
|
|
287
|
+
}
|
|
288
|
+
return parts.join(', ');
|
|
289
|
+
}
|
|
290
|
+
/** `2 of 15 failed: lint, test; without mutation` — what a red run says, with the narrowing after it. */
|
|
291
|
+
function redDetail(ran, narrowing) {
|
|
292
|
+
const failed = ran.filter((c) => !c.ok).map((c) => c.name);
|
|
293
|
+
// Red with nothing failing means the check script itself died (or --strict
|
|
294
|
+
// caught a vacuous run); say the honest thing rather than name no slots.
|
|
295
|
+
const detail = failed.length === 0
|
|
296
|
+
? `${ran.length} checks ran, none failed; the check script itself failed`
|
|
297
|
+
: `${failed.length} of ${ran.length} failed: ${failed.join(', ')}`;
|
|
298
|
+
return narrowing === null ? detail : `${detail}; ${narrowing}`;
|
|
272
299
|
}
|
|
273
300
|
/**
|
|
274
301
|
* Tolerance for a summary written moments before the gate's own clock reading —
|
|
@@ -297,40 +324,20 @@ const MTIME_TOLERANCE_MS = 1000;
|
|
|
297
324
|
function isFresh(read, startedAt) {
|
|
298
325
|
return read.state === 'ok' && read.mtimeMs >= startedAt - MTIME_TOLERANCE_MS;
|
|
299
326
|
}
|
|
300
|
-
/**
|
|
301
|
-
* What the run itself says, read back out of a summary already known to be this
|
|
302
|
-
* run's, or `null` when there is none. The caller still has the elapsed time,
|
|
303
|
-
* which is true regardless.
|
|
304
|
-
*/
|
|
305
|
-
function runDetail(read, green) {
|
|
306
|
-
if (read.state !== 'ok')
|
|
307
|
-
return null;
|
|
308
|
-
const ran = ranChecks(read.summary.checks);
|
|
309
|
-
if (green)
|
|
310
|
-
return greenDetail(ran);
|
|
311
|
-
const failed = ran.filter((c) => !c.ok).map((c) => c.name);
|
|
312
|
-
// Red with nothing failing means the check script itself died (or --strict
|
|
313
|
-
// caught a vacuous run); say the honest thing rather than name no slots.
|
|
314
|
-
if (failed.length === 0)
|
|
315
|
-
return `${ran.length} checks ran, none failed — the check script itself failed`;
|
|
316
|
-
return `${failed.length} of ${ran.length} failed: ${failed.join(', ')}`;
|
|
317
|
-
}
|
|
318
327
|
/**
|
|
319
328
|
* The one line a human reads to know the gate ran, what it decided, and how long
|
|
320
|
-
* they waited on it.
|
|
329
|
+
* they waited on it: `checkride green in 3.6s ✔ (10 checks, without test,
|
|
330
|
+
* slowest: spell in 1.8s)`. The glyph trails the clause it confirms and the
|
|
331
|
+
* detail rides one parenthetical, so a harness prefix ("Notice:") still leaves
|
|
332
|
+
* a line that reads as a sentence, with no colon or dash chain of its own.
|
|
321
333
|
*
|
|
322
334
|
* The elapsed time is the gate's own wall clock — package-manager startup,
|
|
323
335
|
* incremental build and all — not the pipeline's `total_duration_ms`, because
|
|
324
336
|
* the honest answer to "why did that pause" is the whole pause, not the part
|
|
325
337
|
* checkride chooses to measure.
|
|
326
338
|
*/
|
|
327
|
-
function headline(verdict, elapsedMs, detail) {
|
|
328
|
-
return `checkride ${verdict} in ${formatDuration(elapsedMs)}${detail === null ? '' : `
|
|
329
|
-
}
|
|
330
|
-
/** Join the run's own detail with the narrowing note, dropping whichever is absent. */
|
|
331
|
-
function detailWith(detail, profile) {
|
|
332
|
-
const parts = [detail, profileClause(profile)].filter((p) => p !== null);
|
|
333
|
-
return parts.length === 0 ? null : parts.join(' — ');
|
|
339
|
+
function headline(verdict, glyph, elapsedMs, detail) {
|
|
340
|
+
return `checkride ${verdict} in ${formatDuration(elapsedMs)} ${glyph}${detail === null ? '' : ` (${detail})`}`;
|
|
334
341
|
}
|
|
335
342
|
/** The sentence a red gate hands the agent, naming what to open first. */
|
|
336
343
|
function redMessage(cwd, pm, profile) {
|
|
@@ -435,7 +442,7 @@ function failedVerdict(f) {
|
|
|
435
442
|
const refusal = f.fresh ? null : launchRefusal(f.output);
|
|
436
443
|
if (refusal === null) {
|
|
437
444
|
return {
|
|
438
|
-
status: headline('
|
|
445
|
+
status: headline('red', '✘', f.elapsedMs, gateDetail(f.summary, f.fresh, false, f.profile)),
|
|
439
446
|
instruction: redMessage(f.cwd, f.pm, f.profile),
|
|
440
447
|
refusal: null,
|
|
441
448
|
standDown: false,
|
|
@@ -444,7 +451,7 @@ function failedVerdict(f) {
|
|
|
444
451
|
// A launch refusal names no profile: nothing ran, so how much would have run
|
|
445
452
|
// is beside the point.
|
|
446
453
|
return {
|
|
447
|
-
status: headline('
|
|
454
|
+
status: headline('could not run', '⚠', f.elapsedMs, refusal.cause),
|
|
448
455
|
instruction: refusalMessage(refusal, { alignment: f.alignment, running: f.running, pm: f.pm }),
|
|
449
456
|
refusal: refusal.cause,
|
|
450
457
|
standDown: refusal.fixable === 'environment',
|
|
@@ -466,7 +473,19 @@ function failedVerdict(f) {
|
|
|
466
473
|
function reportGreen(harness, stdout, status) {
|
|
467
474
|
if (harness === 'cursor')
|
|
468
475
|
return;
|
|
469
|
-
stdout.write(`${JSON.stringify({ systemMessage: status })}\n`);
|
|
476
|
+
stdout.write(`${JSON.stringify({ systemMessage: noticePad(status) })}\n`);
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Blank lines in front of the user-visible verdict.
|
|
480
|
+
*
|
|
481
|
+
* The harness prints a `systemMessage` right after the turn's last text and
|
|
482
|
+
* trims whatever trailing whitespace that text carried, so the verdict has to
|
|
483
|
+
* bring its own separation: without the pad it lands jammed against the
|
|
484
|
+
* previous sentence. Only the `systemMessage` channel gets it; the agent-facing
|
|
485
|
+
* `reason` and the stderr line are read by parsers and scrollback, not layout.
|
|
486
|
+
*/
|
|
487
|
+
function noticePad(message) {
|
|
488
|
+
return `\n\n${message}`;
|
|
470
489
|
}
|
|
471
490
|
/**
|
|
472
491
|
* Answer a refusal the turn cannot possibly clear: say so, loudly, and do not
|
|
@@ -506,7 +525,7 @@ function reportStandDown(harness, out, full, env) {
|
|
|
506
525
|
out.stdout.write(`${JSON.stringify({ followup_message: full })}\n`);
|
|
507
526
|
}
|
|
508
527
|
else {
|
|
509
|
-
out.stdout.write(`${JSON.stringify({ systemMessage: full })}\n`);
|
|
528
|
+
out.stdout.write(`${JSON.stringify({ systemMessage: noticePad(full) })}\n`);
|
|
510
529
|
}
|
|
511
530
|
out.stderr.write(`${full}\n`);
|
|
512
531
|
return 0;
|
|
@@ -544,7 +563,7 @@ function reportRed(harness, out, verdict, env) {
|
|
|
544
563
|
out.stdout.write(`${JSON.stringify({ followup_message: full })}\n`);
|
|
545
564
|
return 0;
|
|
546
565
|
}
|
|
547
|
-
out.stdout.write(`${JSON.stringify({ decision: 'block', reason: full, systemMessage: verdict.status })}\n`);
|
|
566
|
+
out.stdout.write(`${JSON.stringify({ decision: 'block', reason: full, systemMessage: noticePad(verdict.status) })}\n`);
|
|
548
567
|
out.stderr.write(`${full}\n`);
|
|
549
568
|
return 2;
|
|
550
569
|
}
|
|
@@ -596,8 +615,7 @@ export async function runGate(options = {}) {
|
|
|
596
615
|
const fresh = isFresh(summary, startedAt);
|
|
597
616
|
if (green) {
|
|
598
617
|
rmSync(marker, { force: true });
|
|
599
|
-
|
|
600
|
-
reportGreen(harness, stdout, headline('✔ green', now() - startedAt, detail));
|
|
618
|
+
reportGreen(harness, stdout, headline('green', '✔', now() - startedAt, gateDetail(summary, fresh, true, profile)));
|
|
601
619
|
return { exitCode: 0, ran: true, green: true, refusal: null };
|
|
602
620
|
}
|
|
603
621
|
const verdict = failedVerdict({
|