v3.6.1: the gaps v3.6.0 named #243

Merged
john merged 18 commits from cadence/v3.6.1 into main 2026-08-23 20:36:12 +00:00
Owner

Closes the three gaps the v3.6.0 changelog stated about its own /cad-why work, and nothing else.

One phase, 19 commits, three requirement ids seeded at the open and all three traced to a verified phase: WHY-02, WHY-03, WHY-04. /cad-audit PASS on both arms, 6 of 6 acceptance criteria covered.

  • WHY-02 - the chain states what git's default history simplification dropped, instead of returning 7 of 10 commits silently. --follow and --full-history do not compose, so the simplification is kept and named.
  • WHY-03 - DEFAULT_TOP moved 10 to 6, re-measured after the exclusion block landed rather than inherited from the plan, and the pin now reads the comment's own stated figure so the number and its reason cannot drift apart silently.
  • WHY-04 - closeOver orders by parsed instants and guards an unparseable date; the pinning test was proved to fail against the string-compare implementation.

Two things the phase's verify pass caught that the plan did not. The cap's header claimed to bound the response in bytes; swept across all 548 tracked paths, 63 render at or over the 10,000-byte line, worst 30,825 B, so the header now says the cap bounds entry count and names relocating the bytes as the fix that would bound it. And the false WHY-02 account was live at three sites in the planning record, one more than the phase summary named; all three corrected.

Suite 2,935 tests, 0 failures. self-verify --root . ok:true, problems: [].

Closes the three gaps the `v3.6.0` changelog stated about its own `/cad-why` work, and nothing else. One phase, 19 commits, three requirement ids seeded at the open and all three traced to a verified phase: `WHY-02`, `WHY-03`, `WHY-04`. `/cad-audit` PASS on both arms, 6 of 6 acceptance criteria covered. - **WHY-02** - the chain states what git's default history simplification dropped, instead of returning 7 of 10 commits silently. `--follow` and `--full-history` do not compose, so the simplification is kept and named. - **WHY-03** - `DEFAULT_TOP` moved 10 to 6, re-measured after the exclusion block landed rather than inherited from the plan, and the pin now reads the comment's own stated figure so the number and its reason cannot drift apart silently. - **WHY-04** - `closeOver` orders by parsed instants and guards an unparseable date; the pinning test was proved to fail against the string-compare implementation. Two things the phase's verify pass caught that the plan did not. The cap's header claimed to bound the response in bytes; swept across all 548 tracked paths, 63 render at or over the 10,000-byte line, worst 30,825 B, so the header now says the cap bounds entry count and names relocating the bytes as the fix that would bound it. And the false `WHY-02` account was live at three sites in the planning record, one more than the phase summary named; all three corrected. Suite 2,935 tests, 0 failures. `self-verify --root .` `ok:true`, `problems: []`.
john added 18 commits 2026-08-23 20:36:07 +00:00
v3.6.1's one phase: the three gaps v3.6.0 named about /cad-why, WHY-02, WHY-03 and WHY-04, in one phase because all three live in two files and their test pins.

WHY-02 carries the only real decision - whether the chain query takes --full-history - and criterion 2 makes recording that decision part of the phase rather than a flag choice buried in a commit message.
The spike's recommendation listed the one-line rung-label fix first and the
trace instrumentation last. That is the wrong order: the fix's benefit is
argued entirely from byte layout, and shipping it before the record can
produce a hit rate leaves no before/after to confirm it recovered anything.
Reordered so the instrumentation gates the fix, and captured both as a seed
rather than scoping them into v3.6.1.

model.escalate_on_failure was resolving false by inheriting the shipped
template default. The v2.6.0 docs-verify runs record that default as having
been true, so inheritance was not a guarantee - pinned explicitly.
The header opened with a global bounding claim - the response is bounded by
truncating the entry count - and supported it with a three-path table. The
maximality claim below it was scoped and true as written; the sentence above
it was not.

Swept every tracked path: 548 rendered, median 5,569 B, 63 of them (11.5%) at
or over the 10,000-byte line, worst 30,825 B. Those are join-field bytes, which
the cap does not bound at any value that still shows a reader the history they
asked for. Says so now, names the measured range instead of three samples, and
points at relocating the bytes as the fix that would actually bound it.
ROADMAP:16-17, ROADMAP:54-55 and PROJECT:206-207 all stated the three commits
missing on lib/release-decision.mjs were _archive-v2.2.0/3 phase commits
collapsed into merge 0bf62847. Measured three times independently - planner,
executor, and the phase-1 verify pass - and false in both halves: 0bf62847 is
single-parent (0bba96f4) and is already one of the reachable 7, and the three
--full-history adds are the merges b86fc25c, 051f0df1 and 9237a539. The five
_archive-v2.2.0/3 commits are not ancestors of HEAD, so no git log flag
reaches them.

phases/1/CONTEXT.md D-01 already carried the correction, so the record had
been contradicting itself in three places.
docs: close v3.6.1, no cycle open
Some checks failed
test / node-test (git, 22) (pull_request) Successful in 31s
test / node-test (git, 24) (pull_request) Successful in 30s
test / node-test (other, 22) (pull_request) Failing after 1m17s
test / node-test (other, 24) (pull_request) Failing after 1m15s
test / node-test (planning, 22) (pull_request) Successful in 1m51s
test / node-test (planning, 24) (pull_request) Successful in 1m45s
test / node-test (prose, 22) (pull_request) Successful in 30s
test / node-test (prose, 24) (pull_request) Successful in 29s
test / node-test (review, 22) (pull_request) Successful in 16s
test / node-test (review, 24) (pull_request) Successful in 16s
test / node-test (routing, 22) (pull_request) Successful in 41s
test / node-test (routing, 24) (pull_request) Successful in 41s
test / self-verify (pull_request) Successful in 13s
test / typecheck (pull_request) Successful in 18s
2e8dc22432
john merged commit 47232b4a8a into main 2026-08-23 20:36:12 +00:00
Sign in to join this conversation.
No description provided.