voyage/tests/hooks
Kjell Tore Guttormsen a1e0e50451
fix: round 9 of the release review of 6.3.0, for 6.3.1
Round 9 (0f400d3..a10018f, WARN: 0 BLOCKER, 12 MAJOR): seven findings and
three brief notes, by operator choice. Each finding began with a test that
failed on a10018f on its assertion; suite 2230 (2228/0/2).

- A check refused for its comment (a quote, $, backtick or backslash) keeps
  its command and its reason, and every reader refuses it out loud: a nested
  ## Verification bullet stays a criterion (PLAN_VERIFICATION_NOT_RUNNABLE)
  and a brief SC warns (BRIEF_SC_NOT_RUNNABLE). It was folded into a
  sub-point or read as prose, a regression from a10018f. Readers that took a
  command as runnable (the end-to-end lists) skip a refused one.
- The verdict gate reads the last fenced block's info string and body from
  one reading, and exits 2 unless the info string is exactly json: a last
  block opened as ```json {x} held a BLOCKER the gate passed with exit 0
  (also in 6.3.0). A last block never closed is exit 2 too.
- One fence reader (findings-schema fencedBlocks) for the gate and every
  trailing-json reader: a fence closes only on a run at least as long as its
  opener, as in Markdown, so a four-backtick example of a json block is one
  block; CRLF and an indented fence read alike in the gate and the readers.
- Files: a description runs on past a comma and onto the next line until a
  new entry starts (a list item on a new line, or a backticked path), and a
  plain path followed by a colon starts its description. Measured over all
  939 Files: fields in the .md files under the marketplace and the test repo
  (560 of them in the 48 plan.md files outside worktrees): 0 read
  differently, tests-only changed in 0.
- The test lock compares --cmd by its words, so other blanks between the
  same words are the step's command.
- release-check decides "two files" on real paths: one review.md reached
  through a symlinked --repo is one file.
- Brief notes: red proof's stopped control run has its own test (green at
  once, red with the branch deleted); the two tests that assumed jest is not
  installed run with a PATH that finds only git (red on a10018f with a jest
  on PATH, green now); the Files: reader's doc states the measured counts
  (520 fields in 48 plan files at rounds 7-8, not "182 plans"; 560 now).

Not in this round (operator 2026-10-11): a144e9ce, 1dc2e785, dc3a467e,
2fa88853, 26873fa5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:49:01 +02:00
..
agent-cap.test.mjs fix(cap-hook): shrink the inherited deny window and print the way out of it 2026-08-12 23:06:47 +02:00
approval-ask.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
approval-log.test.mjs fix: the fix round before 6.3.0 (order 10) 2026-10-09 22:16:12 +02:00
bash-guard.test.mjs fix(hooks): close the bypasses anchoring opened in the destructive-command rule 2026-08-12 22:03:22 +02:00
guard-helpers.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
guards-review-regressions.test.mjs fix: the findings of the release review of 6.3.0 2026-10-10 22:12:12 +02:00
hooks-json-stop-wired.test.mjs chore(voyage): W3 hardening (S2) — exec-form hooks, enforced disallowed-tools, F2 decision 2026-06-18 12:03:11 +02:00
otel-export-otlp.test.mjs feat(voyage): add lib/exporters/otlp-format.mjs — OTLP/JSON enum-integer SC #13 2026-05-09 09:32:29 +02:00
otel-export-textfile.test.mjs feat(trekresearch): emit and export the five STORM measurement fields 2026-08-09 15:01:15 +02:00
otel-export-token-capture.test.mjs feat(observability): opt-in token capture in Stop hook (VOYAGE_TOKEN_METER) 2026-06-26 14:42:58 +02:00
otel-export-validators.test.mjs test(docs): the order fields stand on all five surfaces (red) 2026-10-04 19:54:17 +02:00
otel-export.test.mjs fix: the fix round before 6.3.0 (order 10) 2026-10-09 22:16:12 +02:00
path-guard.test.mjs fix(hooks): the write guard covers Edit and NotebookEdit and fails closed 2026-10-06 15:54:47 +02:00
plan-gate-hook.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
post-compact-flush.test.mjs feat(ultraplan-local): add PostCompact rehydrate hook to re-inject session-state after compaction 2026-05-04 07:57:42 +02:00
post-edit-check.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
pre-compact-flush.test.mjs fix: close what an independent review found in the trial 2 fixes 2026-10-08 15:21:56 +02:00
storm-matcher.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
test-lock-green.test.mjs fix: round 9 of the release review of 6.3.0, for 6.3.1 2026-10-11 12:49:01 +02:00
test-lock-guard.test.mjs feat(hooks): wave-1 guards -- approval ask, plan gate, test lock, post-edit check 2026-10-06 20:09:32 +02:00
worktree-guard.test.mjs feat(ultraplan-local): harden Phase 2.6 wave executor (11 sub-changes for plugin-in-monorepo + gitignored-state topology) 2026-05-04 07:49:45 +02:00
write-guard-coverage.test.mjs fix(hooks): the write guard covers Edit and NotebookEdit and fails closed 2026-10-06 15:54:47 +02:00