docs(release) astubbs#197: lift the v6 announcement plan onto master - #446
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
✅ Duplicate Code ReportTwo engines run in parallel for cross-validation. Each has its own thresholds tuned to its baseline - the real safety net is the per-engine "max increase vs base" check. ✅ PMD CPD
No new clones introduced by this PR. ✅ jscpd (language-agnostic)
No new clones introduced by this PR. Powered by astubbs/duplicate-code-cross-check |
[superseded - a quarantined test changed outcome] 🧪🔒 Quarantine Lane Report
🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its No quarantined test changed outcome since the previous push. Updated for Superseded by a newer quarantine lane report. |
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #446 +/- ##
============================================
+ Coverage 82.58% 83.24% +0.66%
- Complexity 1583 1591 +8
============================================
Files 96 96
Lines 5431 5438 +7
Branches 547 548 +1
============================================
+ Hits 4485 4527 +42
+ Misses 750 717 -33
+ Partials 196 194 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
[superseded - status changed to FLAG] 🟢 Throughput — OKThis branch measured about 12% slower than master, on the one test this measures. That is INSIDE this test's own run-to-run spread of about 17%, so read it as a reading and not as a result - re-running the same commit moves it by about as much.
Allowable range 🟢 ≥ 0.70 · 🟡 0.50–0.70 (about a 30% loss) · 🔴 < 0.50 (about a 50% loss) What the numbers mean, and what they cannot tell youThe one that gets misread. Why a shape and not a rate. A rate depends on which runner you drew. A shape does not: every test here processes a fixed number of records, so a runner twice as slow doubles the subject and the controls together and leaves their ratio alone. That is the whole trick, and it is why the reported rate is shown last and labelled as this machine only. Reading the comparison. By conservation, not by correction. Every test in this lane processes a fixed number of records, so within one run the ratio of one test's time to another's is invariant under machine speed — a runner twice as slow doubles both terms and leaves the ratio alone. There is no machine-index correction to be wrong, because nothing needed correcting. Per-method times, not class times. A class time is Reference is the median of 10 recent What this still cannot do. It removes machine-to-machine variance. It does not remove this test's own run-to-run variance, measured at about 30% on a single unchanged commit while its controls stayed within 5%. That is a property of the test, not of the comparison, and no arithmetic here can touch it — which is why the reference is a median and the bounds are deliberately coarse. 🟡 means look at this; only 🔴 is outside the measured spread. Runs used: fb5ea93, 6573781, c30aaee, ca9c21b, 77fbba8, 7a8a7f0, 2e2705a, 28c6be6, c813942, 558fcfb Since the previous push: ratio 0.891 -> 0.878, share 1.677 -> 1.702, rate 87183 -> 64190 (-26.4%). One push of difference sits inside this test's measured spread - read it as movement, not as a result. Updated for Superseded by a newer throughput report. |
|
@claude review this |
|
Claude finished @astubbs's task in 4m 34s —— View job Review
Note on tooling: this action's permissions come from Finding: five
|
The automated review on #446 pointed out that four paragraphs citing bench/results/*.csv files carried no file-refs marker, unlike every other paragraph citing a document that lives only on the source branches. The gate does not flag them - its extension allowlist does not include csv, which is why it passed locally and in CI - but the intent of the markers is to tell a reader where a cited file actually is, and a reader does not consult the allowlist. Same marker, same four paragraphs the review named. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q99GxTheRQL6d7TDt1bUum
The second push of #446 - four markdown lines on top of a one-file docs branch whose previous push had passed both lanes - went red on Integration Tests and Chaos Pain Suite 4/4. Both are known master-state flakes, and a docs-only branch is the cleanest control arm either has had, so they are recorded where each ledger says its sightings go: - RegistrationRaceStaleResidentIT failed its mid-loop pause-point setup guard, the same assertion as the seven earlier sightings; eighth row in test-untracked-ci-flakes.md. - ChaosChurnStormIT tripped NO_PROGRESS at 97992/100000 for 30s, seed 8064312734196519950; a row in the table that test-no-progress-window-may-not-transfer-to-w1.md keeps for exactly that signature. Neither is diagnosed here. The rule is that a sighting on a PR's CI is recorded before that PR merges, because the seed and the job link die with the logs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q99GxTheRQL6d7TDt1bUum
[superseded - status changed to OK] 🟡 Throughput — FLAGThis branch measured about 31% slower than master, on the one test this measures. That is larger than this test's own run-to-run spread of about 17%, so it is worth looking at.
Allowable range 🟢 ≥ 0.70 · 🟡 0.50–0.70 (about a 30% loss) · 🔴 < 0.50 (about a 50% loss) What the numbers mean, and what they cannot tell youThe one that gets misread. Why a shape and not a rate. A rate depends on which runner you drew. A shape does not: every test here processes a fixed number of records, so a runner twice as slow doubles the subject and the controls together and leaves their ratio alone. That is the whole trick, and it is why the reported rate is shown last and labelled as this machine only. Reading the comparison. By conservation, not by correction. Every test in this lane processes a fixed number of records, so within one run the ratio of one test's time to another's is invariant under machine speed — a runner twice as slow doubles both terms and leaves the ratio alone. There is no machine-index correction to be wrong, because nothing needed correcting. Per-method times, not class times. A class time is Reference is the median of 9 recent What this still cannot do. It removes machine-to-machine variance. It does not remove this test's own run-to-run variance, measured at about 30% on a single unchanged commit while its controls stayed within 5%. That is a property of the test, not of the comparison, and no arithmetic here can touch it — which is why the reference is a median and the bounds are deliberately coarse. 🟡 means look at this; only 🔴 is outside the measured spread. Runs used: fb5ea93, 6573781, c30aaee, ca9c21b, 77fbba8, 7a8a7f0, 2e2705a, 28c6be6, c813942 Since the previous push: status OK -> FLAG, ratio 0.878 -> 0.694, share 1.702 -> 2.144, rate 64190 -> 67604 (+5.3%). One push of difference sits inside this test's measured spread - read it as movement, not as a result. Updated for Superseded by a newer throughput report. |
The plan for the v6 release announcement - the theme, the three-piece funnel, the points inventory, the claims decision the owner ratified on 2026-08-24 and its amendment - was written on 2026-08-15 on the language-proxy branch and grew there. Every branch carrying it belongs to the proxy, polyglot, throttling and engine-performance stacks, none of which merges before v6, so the release's own announcement plan could not be seen from master and did not appear in any release-scoping read of docs/inflight/. This copies the largest version (from feats/hasten-micro-mvp) to docs/inflight/release-v6-announcement.md. The content is unchanged except: em-dashes become the repo's " - "; the tags become task and release-gate, since writing the announcement is the last task of the release rather than a feature; and each paragraph citing a document that exists only on those branches carries a file-refs marker naming where it is, so the path gate passes without pretending the documents are here. The original file is left in place on the branches that carry it; the sweep that retires it there is theirs to do when they next merge master, and a note in the lifted copy says where it came from. Claude-Session: 0b684981-04d7-4b01-8d3d-e74e51fd6fff
The automated review on #446 pointed out that four paragraphs citing bench/results/*.csv files carried no file-refs marker, unlike every other paragraph citing a document that lives only on the source branches. The gate does not flag them - its extension allowlist does not include csv, which is why it passed locally and in CI - but the intent of the markers is to tell a reader where a cited file actually is, and a reader does not consult the allowlist. Same marker, same four paragraphs the review named. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q99GxTheRQL6d7TDt1bUum
The second push of #446 - four markdown lines on top of a one-file docs branch whose previous push had passed both lanes - went red on Integration Tests and Chaos Pain Suite 4/4. Both are known master-state flakes, and a docs-only branch is the cleanest control arm either has had, so they are recorded where each ledger says its sightings go: - RegistrationRaceStaleResidentIT failed its mid-loop pause-point setup guard, the same assertion as the seven earlier sightings; eighth row in test-untracked-ci-flakes.md. - ChaosChurnStormIT tripped NO_PROGRESS at 97992/100000 for 30s, seed 8064312734196519950; a row in the table that test-no-progress-window-may-not-transfer-to-w1.md keeps for exactly that signature. Neither is diagnosed here. The rule is that a sighting on a PR's CI is recorded before that PR merges, because the seed and the job link die with the logs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q99GxTheRQL6d7TDt1bUum
55ac30d to
18ed279
Compare
# Conflicts: # docs/inflight/test-no-progress-window-may-not-transfer-to-w1.md # docs/inflight/test-untracked-ci-flakes.md
[superseded - the quarantine lane is now empty] 🧪🔒 Quarantine Lane ReportThe superseded report, collapsed because it no longer applies
🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its Since the previous push: Updated for Superseded by a newer quarantine lane report. |
🟢 Throughput — OKThis branch measured about 8% faster than master, on the one test this measures. That is INSIDE this test's own run-to-run spread of about 17%, so read it as a reading and not as a result - re-running the same commit moves it by about as much.
Allowable range 🟢 ≥ 0.70 · 🟡 0.50–0.70 (about a 30% loss) · 🔴 < 0.50 (about a 50% loss) What the numbers mean, and what they cannot tell youThe one that gets misread. Why a shape and not a rate. A rate depends on which runner you drew. A shape does not: every test here processes a fixed number of records, so a runner twice as slow doubles the subject and the controls together and leaves their ratio alone. That is the whole trick, and it is why the reported rate is shown last and labelled as this machine only. Reading the comparison. By conservation, not by correction. Every test in this lane processes a fixed number of records, so within one run the ratio of one test's time to another's is invariant under machine speed — a runner twice as slow doubles both terms and leaves the ratio alone. There is no machine-index correction to be wrong, because nothing needed correcting. Per-method times, not class times. A class time is Reference is the median of 10 recent What this still cannot do. It removes machine-to-machine variance. It does not remove this test's own run-to-run variance, measured at about 30% on a single unchanged commit while its controls stayed within 5%. That is a property of the test, not of the comparison, and no arithmetic here can touch it — which is why the reference is a median and the bounds are deliberately coarse. 🟡 means look at this; only 🔴 is outside the measured spread. Runs used: 4bc6e7a, b62c310, c381310, c79424a, 9c67c89, f1aa5eb, eb9fdb0, 51d9bb2, 0ca787c, b654cb2 Since the previous push: ratio 1.119 -> 1.082, share 1.678 -> 1.735, rate 74992 -> 74556 (-0.6%). One push of difference sits inside this test's measured spread - read it as movement, not as a result. Updated for |
…is branch added belongs to a row master has retired #490 retired the RegistrationRaceStaleResidentIT row of the flake register as fixed (the setup guard was waiting on records back pressure had stopped fetching, 2026-09-07). The 2026-09-05 sighting this branch had appended to that row predates the fix and adds nothing to a closed row, so the register takes master's side whole; the announcement note and the no-progress-window sighting merge clean. Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
🧪🔒 Quarantine Lane ReportThe quarantine lane is empty - no Any earlier row on this PR asking for a Lane: non-gating; rules: see the Quarantine Audit check. No quarantined test changed outcome since the previous push. Updated for |
…he scope decision The plan was written before the owner decided, on 2026-09-07, that v6 is a stability release with Streams, Connect and the polyglot clients outside it. Rather than rewrite a plan made under different assumptions, one dated paragraph at the top says what the decision changed under it: the theme, the ordering, the experimental-claims rule and the claims decision still apply to v6; the sections describing the modules that do not ship describe a later announcement; and the scope note is the source of truth for what ships. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
|
@claude review this |
|
Claude finished @astubbs's task in 3m 50s —— View job Review
Tooling note: this action's permissions come from Finding: the new provenance paragraph adds a dangling citation with no
|
…gures came from an experimental branch Owner's correction, 2026-09-09. The note was written on the language-proxy branch when 0.6.0.0 was going to carry features; 0.6.0.0 is now a bugs-only release, so the top of the note says which of it applies to 0.6.0.0 - the theme, the ordering, the experimental-claims rule - and that the Streams, Connect, other-runtime, self-tuning and polyglot sections and the whole performance inventory are material for 6.1, the release the owner starts next. It says once, up front, that every performance figure in it was measured on that branch's engine, which differs substantially from master's, so none of them describes 0.6.0.0 and 0.6.0.0 makes no performance claim at all. The note is deferred to 6.1 in its state marker; the plan itself is not rewritten. The scope note that owns what ships is cited by name and PR rather than by path, since it exists only on that PR's branch until it merges. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
|
Thanks - the finding was right and is fixed in The rewrite is larger than the fix: the owner corrected the qualification itself. The note is an aggregate from when 0.6.0.0 was going to carry features; 0.6.0.0 is now a bugs-only release, so the top of the note says which of it applies to 0.6.0.0 (theme, ordering, the experimental-claims rule), that the rest is material for 6.1, and that every performance figure in it was measured on the experimental engine branch the note came from, whose engine differs substantially from master's - so 0.6.0.0 makes no performance claim at all. The note now carries |
This branch is docs-only - two markdown files differ from master - so neither red it drew can be its own. Both are recorded against the notes that own them, and reading each occurrence turned up a correction the note needed. INTEGRATION TESTS, on this PR's own head. The shape in ci-broker-container-exit-126-is-undiagnosable.md, exactly: one class fell slowly at the container-start timeout and every other broker class fell in milliseconds with NoClassDefFoundError on BrokerIntegrationTest. Codecov renders that as "20 Tests Failed"; it is one failure. What is new is that the cause was in the log all along. Testcontainers prints the failed container's own output at GenericContainer#tryStart, one line below the "Wait strategy failed" line the note's signature block quotes, and it reads "sh: /tmp/testcontainers_start.sh: Text file busy" - ETXTBSY, exec refused because the starter script was still open for writing. The container command waits for that script to EXIST and then executes it, so a file the daemon has created but not finished extracting is executable-shaped and not executable, and the shell reports the refusal as exit 126. A Testcontainers start race, widened by a busy runner; nothing in the product, the image or the Kafka configuration. Refetching #347's 2026-08-25 job, the run this note was written from, shows the identical two lines. So the note's premise under item 1 - "the container's stdout is nowhere in the job log" - was false of its own founding evidence. The instrument was fine; the triage stopped one line short. That correction is proposed in the note's vetting marker rather than applied, because the note's impact is misdirection and those are the owner's to close. CHAOS PAIN SUITE 4/4, on #495 - also docs-only, one README paragraph. ChaosChurnStormIT NO_PROGRESS at 96632/100000 for 30s against a 30s bound, seed 3717713223451201639. It goes in test-no-progress-window-may-not-transfer-to-w1.md as one appended row, with the part that makes it worth having: the fleet KEPT CONSUMING, reaching 99569 by the settle summary, so the outstanding count fell from 3368 to 431 - inside the TAIL_SLACK of 500. That is the "drains" branch of the deciding experiment the note states. It is the weak form and the row says so: no recovery diagnostic, so the counter compared is the ledger's rather than the probe's, and the conductor's churn ended 10s after the firing, so it is recovery-once-churn-stops. The bigger finding is that the deciding experiment had already been answered twice and this note never took delivery. test-857-churn-storm-async-stalls.md drained six for six on seed 9086872209853284830 with the diagnostic engaged, and its 2026-09-08 sighting drained seed 5650361238717170909 from 93487 to 101070/100000 at an outstanding count of 6513 - larger than every row in the table. That sighting says outright that this note owns the question; the pointer was written and nobody followed it. Proposed in the vetting marker for the same reason as above. RULED OUT, with a control arm rather than an argument. The six merges that landed on master today - #480, #487, #488, #491, #492 and #493 - are the obvious suspects for a chaos red, and #491 does touch ProgressProbe.java. Its diff does not touch the NO_PROGRESS path at all - it adds the UNCOMMITTED_COMPLETIONS detector, edits javadoc, and refactors the finding sink - and the same test PASSED on two heads that carry every one of those merges, four and six minutes either side of the failing run. A deterministic regression is excluded; a rate change is not, and one failure could not establish one. Nothing quarantined. The container fault has no test to quarantine and the exit-126 note says a re-run is the correct response there. The chaos firing has no rate that rule 1 would accept, and docs/quarantined-tests.md is empty - which is the state to preserve. Co-Authored-By: Claude Opus <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
The shard was re-run once on the identical commit and passed. That is worth recording next to the sighting because the register's own method section warns what it is and is not: it separates *always red* from *not always red* and says nothing about the rate. The chaos suite reseeds per run, so the green re-run did not replay 3717713223451201639 - it is a second draw from the same distribution, not a replay, and only the seeded replay the note asks for can be that. Co-Authored-By: Claude Opus <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
|
Answering the automated reports on this PR, since one of them is the red and the rest are clean. Codecov, "20 Tests Failed" - it is one failure, and it is not this branch. The cause, which that note said the log does not contain: Testcontainers prints the failed container's own output at
The control arm the note prescribes was run and it passed: the same
Today's six merges were the obvious suspects and are ruled out by control arm rather than by argument: #491 does touch SpotBugs, 354 bugs - the inherited baseline, unchanged by this PR;
|
The sighting claimed the plural on the strength of the pattern the note already records from #347. Checked it: only one earlier completed Integration Tests run exists on this branch, two days before, and it passed. The rest of that branch's runs were cancelled by the next push - which is the reading trap the flake register warns about, since a cancelled run is absent from every failure list and looks exactly like a pass. Co-Authored-By: Claude Opus <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
… qualified as 6.1 material The last tier 3 item before the tag-day checks is done: the announcement plan is on master, with the owner's qualification that it is 6.1 material whose figures came from an experimental branch, and that 0.6.0.0 takes only its theme, its ordering and its experimental-claims rule. The table row links it rather than naming the PR that carried it. Claude-Session: 460f7df9-dcc2-4b00-a9f9-62f3a2c6d5e4 Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
#499 diagnosed the Lincheck lane's timeouts more fully than this branch's sighting did and settled the decision it left open: the cap goes from 20 to 60, and the cause is ordinary hosted-runner speed variance against a fixed, uninterruptible budget - measured across every branch on the day, docs-only ones included, and reversing itself on a clock rather than on a commit. The only conflict was the note both touched. Resolved by keeping 499's section whole - it owns the cause and the ruling - and reducing this branch's sighting to what it adds and 499 could not have: the same branch on BOTH sides of the bound, three cancels and one 19m57s pass with nothing changed that the lane can see, which states the same diagnosis from one branch instead of across many. The open decision this branch recorded is marked as settled by that ruling rather than left standing. Also inherited: #496 rejects a batch size below one, and #446 lifts the v6 announcement plan onto master. Neither touches the record-intake gate. Co-Authored-By: Claude Opus <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xoi3HYae8pjsEatuNFKieD
Serves #197, the release tracker. Closes nothing.
Description
The plan for the v6 announcement - the theme, the LinkedIn/blog/release-notes funnel, the points inventory, the performance claims decision ratified on 2026-08-24 and its amendment - has lived only on the language-proxy branch and the stacks cut from it since 2026-08-15. None of those branches merges before v6, so a release-scoping read of
docs/inflight/on master could not see that the announcement had a plan at all. It was found by diffing every live ref's notes against master.This lifts the largest version (from
feats/hasten-micro-mvp) todocs/inflight/release-v6-announcement.md. Content is unchanged apart from:-;feature(no impact) totask+release-gate, because writing the announcement is the last task of the release, not a capability;file-refs: N/Amarker on each paragraph citing a document that exists only on the source branches, naming the branch, sobin/check-file-refs.shpasses without pretending those documents are on master.The original file stays on the branches that carry it. Retiring it there is those branches' job when they next merge master; a rename-on-merge would otherwise touch nine open PRs from here.
Worth knowing before reading it as a plan: the second half of the theme and most of the points inventory describe the polyglot clients, Streams, Connect and self-tuning work, all of which are still on unmerged branches. Whether any of that is v6 content is the open scope decision in
docs/inflight/release-when-is-v6-good-enough.md. This PR moves the document; it does not settle that.Also in this PR, added after the review: the second push went red on two lanes the first had passed, on a diff of four markdown lines - both known master-state flakes. The
ChaosChurnStormITNO_PROGRESSsighting is recorded in its note. TheRegistrationRaceStaleResidentITsighting was recorded in the flake register too, but that row was fixed and retired on master by #490 (the setup guard was waiting on records back pressure had stopped fetching) before this PR merged master, and a pre-fix sighting adds nothing to a closed row, so the register now takes master's side whole.Brought level with master on 2026-09-09, and qualified by the owner. The note is an aggregate written when 0.6.0.0 was going to carry features; 0.6.0.0 is now a bugs-only release (decision of 2026-09-07), so the top of the note now says which of it applies to 0.6.0.0 (the theme, the ordering, the experimental-claims rule) and that the rest - Streams, Connect, other runtimes, self-tuning, the polyglot positioning and the whole performance inventory - is material for 6.1, the release the owner plans to start next. It also says, once and up front, that every performance figure in it was measured on the experimental engine branch the note came from, whose engine differs substantially from master's, so none of those figures describes 0.6.0.0 and for 0.6.0.0 the claims decision reduces to no performance claim at all. The note carries
inflight-state: deferredto 6.1 accordingly; the plan itself is not rewritten. The v6 scope note on #475 is the source of truth for what ships and will fold this note into its table when it merges master.Two more master-state reds, recorded 2026-09-09 - and each note needed a correction. This branch is docs-only, so neither red it drew can be its own, and both are now recorded against the notes that own them.
Integration Tests, on this PR's own head. Theci-broker-container-exit-126-is-undiagnosable.mdsignature exactly: one class fell slowly at the container-start timeout, every other broker class fell in milliseconds onNoClassDefFoundError, and Codecov rendered it as "20 Tests Failed" - it is one failure. What is new is that the cause was in the log all along. Testcontainers prints the failed container's own output one line below the "Wait strategy failed" line that note quotes, and it readssh: /tmp/testcontainers_start.sh: Text file busy-ETXTBSY, because the container waits for its starter script to exist and then executes it, so a script the daemon has not finished extracting execs as busy and the shell reports exit 126. Refetching test(core): a Lincheck lane, calibrated by refinding four real races unaided #347's 2026-08-25 job shows the identical two lines, so that note's premise - "the container's stdout is nowhere in the job log" - was false of its own founding evidence. The re-run of the identical commit passed, which is the control arm that note prescribes.Chaos Pain Suite 4/4, on docs(readme): the trademark note claims no licence, and sits only in the attribution section #495 (also docs-only - one README paragraph).ChaosChurnStormITNO_PROGRESSat 96632/100000 for 30s against a 30s bound, seed3717713223451201639; one appended row intest-no-progress-window-may-not-transfer-to-w1.md. The fleet then kept consuming to 99569, taking the outstanding count from 3368 to 431 - inside theTAIL_SLACKof 500 - so it lands on the drains branch of that note's deciding experiment, in the weak form (no recovery diagnostic, and churn ended 10s after the firing). The larger finding, proposed in the note's vetting marker: that experiment had already been answered twice on two other seeds, both draining, and this note never took delivery of either.Today's six merges are ruled out by control arm rather than by argument: #491 does touch
ProgressProbe.java, but not theNO_PROGRESSpath, and the same chaos test passed on two heads carrying every one of those merges either side of the failing run. Both corrections are left asPROPOSEDin the vetting markers - both notes are impactmisdirection, whichdocs/inflight/AGENTS.mdmakes the owner's call. Nothing is quarantined anddocs/quarantined-tests.mdstays empty.Checklist
docs/features/- N/A - an in-flight planning note, not a featuredocs/inflight/working note (pr-/branch-) started at the PR's first commit - N/A - the PR is a single note move with nothingghcannot showce-simplifyandce-code-reviewlocally - N/A - docs only;bin/check-all.shran green🤖 Generated with Claude Code
https://claude.ai/code/session_01Q99GxTheRQL6d7TDt1bUum