Repository navigation
docs(release): pay the testing-evidence debt, clear the disabled-test gate, and correct the 857 stage text - #448
Conversation
… gate, and correct the 857 stage text Three release-0.6.0.0 gate items from docs/inflight/release-0.6.0.0.md and docs/inflight/release-0600-blockers.md, resolved in one PR because none of them touches the other's files. 1. docs/data/testing-evidence.yaml had no entry for the Lincheck lane (#347) or the jcstress probe module (#348), though both merged 2026-08-25 and the release note named the entry as owed. Added both as test_layers items in the file's existing shape, sourced from docs/plans/2026-08-25-001-test-lincheck-poc-plan.md and docs/inflight/test-jcstress-probe-module-open-items.md. The jcstress entry states the limit that note records: no probe imports a bz.stub.parallelconsumer class, so nothing detects correspondence drift between the probes and the real code. Flipped the release note's "Owed before the release" to "Paid before the release" now that the entry exists. 2. ProgressBarTest.width() was the last @disabled test on master - a manual/visual check with no assertions, diagnosed and left alone by the 2026-08-08 inactive-tests audit. The release-0.6.0.0.md gate section's list of four disabled tests was stale: VertxTest.handleHttpResponseCodes was already deleted, both named ParallelEoSStreamProcessorTest methods run unconditionally now, and MultiInstanceRebalanceTest.largeNumberOfInstances carries @Quarantined rather than @disabled. ProgressBarTest was the one name the section never carried and the one still blocking the gate. Deleted it (no product behaviour to preserve, so neither a fix nor a quarantine applies), recorded the deletion under docs/test-hardening/progressbartest-deleted-2026-09-05.md, and rewrote the gate section to state the current, verified truth instead of the stale list. `grep -rn @disabled --include=*.java .` now returns no live annotation. #263, the audit PR this cites, is already merged - nothing to close there. 3. docs/inflight/release-0600-blockers.md's "Recheck the documentation data" bullet asked for a recheck of the production-use maturity wording and the confluentinc#857 stage text. docs/data/module-maturity.yaml's production-use wording needed no correction - it was already conditional ("maintained for production use when the release validation passes"). docs/data/roadmap.yaml's known-defects-cleared entry did carry a stale claim: it said #29 "remains unmerged", but #29 merged 2026-09-02, fixing one confluentinc#857 mechanism (the poll/control revoke-path deadlock). Corrected in place without weakening what the entry already said correctly - the family is not closed by that merge. #44 (the transactional revoke wait) is untouched by it, a third mechanism has an open fix attempt in #444, and docs/inflight/bug-857-family.md records stall sightings reproducing on trees that already carry #29's fix. Recorded the recheck as done at this commit in the blockers bullet, leaving "again after the critical fixes land" open as before. No test behaviour, timeout or assertion changed except the one deletion in (2), which removed a test that asserted nothing. No CHANGELOG entry - AGENTS.md's changelog rule. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
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 #448 +/- ##
============================================
+ Coverage 81.99% 82.36% +0.36%
- Complexity 1472 1481 +9
============================================
Files 95 95
Lines 5165 5165
Branches 505 505
============================================
+ Hits 4235 4254 +19
+ Misses 731 716 -15
+ Partials 199 195 -4
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:
|
|
🟢 Throughput — OKThis branch measured about 4% 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: 867c407, 7a8dd92, df3bd71, 440b9bd, 11e0500, e20e898, 9999144, cc36b64, 1941cdf, 05c02bb Since the previous push: ratio 0.988 -> 1.037, share 1.69 -> 1.594, rate 66859 -> 68264 (+2.1%). One push of difference sits inside this test's measured spread - read it as movement, not as a result. Updated for |
…le-refs The previous commit's audit entry names ProgressBarTest.java's path in the same sentence that says the commit deletes it, so the gate correctly flags it as a dangling reference - naming the path is the point of the sentence, per docs/citations.md. Adds the paragraph-scoped `file-refs: N/A` marker. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
… from this PR's own CI This is a sighting record, not a diagnosis and not a test change - no test code is touched. #448's CI hit a red on ChaosRevokeUnderWorkTransactionalIT.revokeUnderWorkStaysProtocolHonestInTransactionalMode (Chaos Pain Suite 2/4, run 33938124400, job 101230384149): a 5-minute Awaitility drain-condition timeout, seed 7976335177229963841, no gating probe violation. A rerun of the same job on the same commit (job 101232514184) passed, and the PR's diff touches no Java or pom file, so the failure cannot be attributed to this branch's own change. Recorded per AGENTS.md/docs/testing.md: a flake observed on a PR's CI gets its ledger entry before that PR merges, because the seed and the log expire. This is the test's own first recorded red - its class javadoc records "Calibration status: UNCALIBRATED" with only one prior run, a 2026-09-01 green - so the sighting bears directly on the open question that javadoc states, without resolving it. docs/inflight/bug-857-transactional-revoke-wait.md already tracks the specific defect (the unbounded transactional revoke wait) this scenario was purpose-built to hunt, and already carries one prior sighting in the same shape, so the entry is added there rather than opening a new file. Not diagnosed, not attributed to the tracked defect, and no seed replay was run - this commit only preserves the evidence. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
[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 Since the previous push: Updated for Superseded by a newer quarantine lane report. |
…etire the two notes this PR overrode A ce-doc-review pass over this branch's three commits falsified six factual claims they made and found two inflight notes the PR had silently overridden. Each is a claim that read as verified and was not, which is the class this repo's own rules call a false green: none of them would have gone red anywhere. 1. The `@Disabled` grep claim was wrong in two places - the new test-hardening entry and release-0.6.0.0.md's gate section both said `grep -rn "@disabled" --include="*.java" .` returns nothing but historical prose. Running it returns a live `@DisabledOnOs(OS.WINDOWS)` on AbstractQuarantineScriptTest and two `@Disabled` string literals built into TransactionalClaimCoverageTest's assertion messages, on top of the prose. Both sentences now describe what the command actually returns and why the gate still holds - no live bare `@Disabled` on a test class or method - and name the command to re-run rather than a count that will drift. 2. The new ChaosRevokeUnderWorkTransactionalIT sighting said the PR "touches no Java" in the same sentence that named the Java file it deletes. Replaced with ground the deletion does not undermine: nothing under `src/main` and nothing in the `chaostests` package changed, and `.github/workflows/maven.yml` gives each chaos shard a hardcoded `scenarios:` list (verified - Suite 2/4 is ChaosRevokeUnderWorkTransactionalIT,ChaosRevokeUnderWorkKeyOrderIT, passed as CHAOS_SCENARIOS), so removing a sanity-package class cannot reshuffle a shard. The opening parenthetical's artefact counts become the shape plus `git diff --name-status <base>..<head>`, and the bare `AbstractRevokeUnderWorkScenario.java:211` becomes the seed banner's own greppable literal, matching how its sibling citation two lines up already cites. 3. The blockers recheck said "every occurrence is already conditional" of module-maturity.yaml's production-use wording. Half true: the `support_posture` lines are conditional, the `maturity: production-use` field values are bare. The record now says exactly that, so the second recheck starts from the state rather than from the first pass's summary of it. No yaml value changed - whether an unqualified maturity value is a claim the open confluentinc#857 family falsifies is a release call for the maintainer. 4. release-0.6.0.0.md's opening block said #80 emptied the quarantine registry so release.yml's gate now passes, while the section this PR rewrote records MultiInstanceRebalanceTest.largeNumberOfInstances as quarantined and blocking. docs/quarantined-tests.md confirms the entry is live and unowned, so rule 5 still bites; the opening block now says the gate does NOT pass and points at the registry as the enforced copy. 5. Retired docs/inflight/test-progressbar-width-needs-a-machine-assertion.md. It argued for splitting the test into a machine assertion plus a tagged demo rather than deleting it, and this PR deleted it without naming that argument. Per AGENTS.md - record the reasoning you are overriding, where you override it - the note's alternative and why deletion won (the test asserted nothing, so the split describes a test still to be written rather than one being preserved; ProgressBarUtils.getNewMessagesBar keeps its other in-tree callers; and reinstating a tagged demo stays a maintainer's call this deletion does not block) are migrated into the test-hardening entry before the note is removed. 6. Retired docs/inflight/test-disabled-tests-before-v6.md. Its stated delete-when condition is met - #263 landed and no test carries a live bare `@Disabled` - and its four-name list is the same stale one this PR already replaced. Its one framing not owned elsewhere, that the disabled tests were inherited debt rather than a rule broken here, is migrated to release-0.6.0.0.md's gate section, which points at the 2026-08-08 audit for the per-test provenance behind it. No inbound links to fix - `grep -rn` over the tree returned none for either note. 7. docs/refactoring.md described ProgressBarTest.width in the present tense as a deliberate manual check. Past tense now, citing the deletion entry. 8. Reconciled "three of four races refound" (the new testing-evidence entry) with "Lincheck refound four real races unaided" (release-0.6.0.0.md, untouched by the earlier commits). docs/plans/2026-08-25-001-test-lincheck-poc-plan.md's verdict table supports the first: three of four found by the stress strategy plus one nobody had named, with the fourth half-found once by model checking and not reproducible. The release note now says that, and says to use that wording in the announcement. Left alone deliberately, because they are decisions rather than errors: the lincheck entry's merge_gate field versus the CI leg, and the jcstress anomaly disposition. Gates: bin/check-all.sh (16 passed, 0 failed), plus check-issue-refs.sh, check-docs-data.sh and check-file-refs.sh individually. Docs only - no code, no test behaviour, no changelog entry. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
[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 Since the previous push: Updated for Superseded by a newer quarantine lane report. |
|
@claude review this |
|
Claude finished @astubbs's task in 4m 23s —— View job Review of #448 ✅
Note on tooling: SummaryThis is a docs/data-only PR (one deleted dead test) with an unusually thorough self-correction commit (
Minor findings (non-blocking)
Everything else
Nothing here blocks merge. Nice work on the self-correction pass — falsifying your own PR's claims before anyone else has to is exactly the kind of thing |
as the quarantine owner Two findings from the Claude review on #448, both the class of stale claim this PR exists to correct: - The new sighting in bug-857-transactional-revoke-wait.md cited the failing wait as a file:line, which AGENTS.md forbids because nothing checks it - and it was already off by two lines. It now names the method and the quoted Awaitility alias, which greps. - docs/refactoring.md still said largeNumberOfInstances "is owned by open PR #29". That PR merged on 2026-09-02 fixing one confluentinc#857 mechanism, and the quarantine registry lists the test as unowned. The line now says so and defers to the registry. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
…lease note does too Master quarantined RegistrationRaceStaleResidentIT on a sighting ledger (#440) while this branch was open. The opening block this PR corrected named only largeNumberOfInstances as the entry keeping the release gate red; it now names both and still defers to the registry as the enforced copy. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
[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 Since the previous push: Updated for Superseded by a newer quarantine lane report. |
[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 Since the previous push: Updated for Superseded by a newer quarantine lane report. |
…it entry Review feedback on #448: a one-test deletion is not a test-hardening audit, and an 84-line dated note for it would outlive its usefulness the day it landed. The entry is removed; what it carried that is durable now lives in two places sized to it. The override reasoning - the argument the deletion overrode, and why deletion won - is a short paragraph in the "Release gate: no disabled tests" section of docs/inflight/release-0.6.0.0.md, next to the deletion it explains. The retired inflight note test-progressbar-width-needs-a-machine-assertion had proposed splitting the test into a machine assertion on rendered width plus a deliberately runnable, tagged visual demo. Deletion won because the test asserted nothing, so nothing a suite relied on was removed and the proposed assertion would be written from scratch either way; ProgressBarUtils.getNewMessagesBar keeps its other in-tree callers (grep -rn "ProgressBarUtils" --include="*.java" .); and a tagged demo stays available to reinstate at any time. What the release gate could not accept was a @disabled test sitting inside the suite while running as no part of it. The evidence that the deletion is complete is the command, already stated in that same section: grep -rn "@disabled" --include="*.java" . returns no live bare @disabled on a test class or method; its remaining matches are javadoc and comment prose, two string literals in TransactionalClaimCoverageTest's assertion messages, and one @DisabledOnOs platform guard. docs/refactoring.md's citation of the removed entry now points at that release-note section. The 2026-08-08 inactive-tests audit is untouched, as its own rule requires. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK
[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 Since the previous push: Updated for Superseded by a newer quarantine lane report. |
🧪🔒 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 Since the previous push: Updated for |
56 commits of master, none of which touched this PR's mechanism: master changed neither `.github/workflows/release.yml`, `bin/release-notes.py`, `bin/test-release-notes.sh` nor `.github/workflows/mutation-full-sweep.yml` since the branch's last master merge, so the renderer and the workflow step that calls it merge unchanged. Master's `release.yml` still carries the inline `awk`/`sed` converter this PR replaces. Master also changed six of the files this PR touches. Four auto-merged: `docs/releasing.md` and `bin/AGENTS.md` (#457's job batching, #442's integration sharding), `.gitignore` (#378, #440), and `docs/inflight/release-0.6.0.0.md` (#448, #476). Two conflicted. `docs/inflight/release-0600-blockers.md` - the #197 triage bullet, inside the `post-merge: checked` markers. This branch (2026-09-01, 2026-09-03) rewrote it in post-merge terms as "all four landed"; master's grooming sweep (#476, 2026-09-08, correcting on 2026-09-07) rewrote the same bullet to say the empty-release-body item **was already false when written** - #72 gave the workflow a `--notes-file` built from the `CHANGELOG.adoc` section on 2026-07-29, with `--generate-notes` only as a fallback. Master's correction is right and is the later decision, so it is kept; master's claim that MDC is still open is not - #205 merged 2026-08-27, which is why this branch corrected it, and that correction is kept. Resolved as one bullet carrying both later facts, and it now states what #199 actually does (replace the inline converter, and fail the release on a missing or unrenderable section) rather than the retired claim that it restores a body that was never absent. `docs/refactoring.md` - two unrelated new sections appended at the same point. Both kept: this branch's "`bin/release-notes.py` is Python in a Node-default `bin/`" and master's "JUnit tag resolution is implemented twice". No content from either side dropped. Neither `--ours` nor `--theirs` was used. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019XS64Xttx4vF5datYh7fmk
Description
Three small release-0.6.0.0 gate items, bundled into one PR because none of them touches a file the
other two do (each is scoped to
docs/data/,docs/inflight/or a single test class), plus acorrection pass (item 4) over the claims the first three made. This PR does
not serve one GitHub issue, so no
Closesline - see below for #263, theone issue this body does have something to say about.
Two
docs/inflight/notes are retired here, both overridden by this PR's own work rather thanmerely gone stale -
test-progressbar-width-needs-a-machine-assertion.md, whose argument forsplitting the test instead of deleting it is migrated into
release-0.6.0.0.md's gate section before removal,and
test-disabled-tests-before-v6.md, whose stated delete-when condition this PR meets. Item 4 hasthe detail.
1.
docs/data/testing-evidence.yamlhad no entry for Lincheck or jcstressdocs/inflight/release-0.6.0.0.mdsaid an entry was "owed before the release": the Lincheck lane(#347) and the jcstress probe module (#348) both
merged 2026-08-25, and the suite-as-evidence file never caught up. Added both as
test_layersentries in the file's existing shape (same required fields as every other entry:
id,command,merge_gate,proves,why_it_matters,limitation,inspect), sourced fromdocs/plans/2026-08-25-001-test-lincheck-poc-plan.mdanddocs/inflight/test-jcstress-probe-module-open-items.md. The jcstress entry'slimitationstatesthe open note's own headline finding: no probe imports a
bz.stub.parallelconsumerclass, so nothingdetects correspondence drift between the probes and the real code they model. Flipped
release-0.6.0.0.md's "Owed before the release" to "Paid before the release" now that the entryexists.
2.
ProgressBarTest.width()was the last@Disabledtest on masterrelease-0.6.0.0.md's "no disabled tests" gate section listed four disabled tests. All four nameswere stale - checked each with
greprather than trusting the list:VertxTest.handleHttpResponseCodes- already deleted (its stub body wasassertThat(true).isFalse()).ParallelEoSStreamProcessorTestmethods(
offsetsAreNeverCommittedForMessagesStillInFlightLong,processInKeyOrder) - rununconditionally now, no
@Disabledon either.MultiInstanceRebalanceTest.largeNumberOfInstances- carries@Quarantined, not@Disabled(a different, separate gate covers the quarantine registry).
The name the section never carried,
ProgressBarTest.width, was the actual last@Disabledtest - amanual/visual check with no assertions, diagnosed in
docs/test-hardening/inactive-tests-audit-2026-08-08.md§1.5, which recommended leaving it alone atthe time. Deleting it is a new decision, not a reversal of that one: this release's own gate makes it
the deciding factor, and its own diagnosis rules out both alternatives (nothing to fix, and
@Quarantinedis for a test expected to sometimes fail, not one that never asserted anything).Deleted the class and rewrote the gate section in
release-0.6.0.0.mdto state the current,verified truth instead of the stale list, including the evidence command and the argument the
deletion overrode. (A dated
docs/test-hardening/entry for the deletion was added and then removedon review: a one-test deletion is not an audit, and the 2026-08-08 audit is left untouched per that
directory's own rule.)
grep -rn "@Disabled" --include="*.java" .no longer returns a live bare@Disabledon any testclass or method, which is what this gate asks. It is not silent - it still matches javadoc/comment
prose, two
@Disabledstring literals insideTransactionalClaimCoverageTest's assertion messages,and one
@DisabledOnOs(OS.WINDOWS)platform guard onAbstractQuarantineScriptTest. None of thoseswitches a test off. (This sentence originally claimed the grep returned nothing; item 4 corrects it
in both docs that said so.)
docs/copyright.mdgives no header treatment to a plain deletion (nothing to register in any of itsthree provenance tables), so nothing else was needed there.
#263 (the inactive-tests audit PR this whole item traces back to) is
already merged -
gh issue view 263returns a merged PR, not an open issue, so there is nothingleft to close and no
Closeskeyword applies.3.
docs/inflight/release-0600-blockers.md's "recheck the documentation data" bulletRechecked the "before the tag" half of the bullet at this commit (the "again after the critical fixes
land" half is deliberately left open - this pass only establishes today's state).
docs/data/module-maturity.yamlwas left unchanged, and the recheck record now says exactly whatthe pass saw, because the file is only half conditional: the
support_posturelines read"Maintained for production use when the release validation passes", but the
maturity: production-usefield values sit beside them bare, with no condition attached. Whether anunqualified maturity value is a claim the still-open Paused consumption across multiple consumers confluentinc/parallel-consumer#857 family falsifies, or a
category label the
support_postureline exists to condition, is a release call for themaintainer - so this pass established the state and changed no value. (This bullet originally read
"every occurrence is already conditional"; item 4 corrects it.)
docs/data/roadmap.yaml'sknown-defects-clearedstage detail did carry a stale claim: it saidfix(core) confluentinc#857: the revoke path declines the commit lock instead of blocking on it #29 "remains unmerged". fix(core) confluentinc#857: the revoke path declines the commit lock instead of blocking on it #29 merged 2026-09-02,
fixing one Paused consumption across multiple consumers confluentinc/parallel-consumer#857 mechanism (the poll/control revoke-path deadlock, verified 60/60 fail
on the defect build and 0/60 on the fixed one). Corrected in place, without weakening what the
entry already said correctly: the family is not closed by that merge.
confluentinc#803: Transactional Producer instance gets timeout getting commit lock while second instance starts #44 (the transactional revoke wait, carrying upstream's verified-bug
label) is a separate defect the merged fix cannot reach; a third mechanism (a closing instance
polling too little to leave its group cleanly) has an open fix attempt in
test(perf) confluentinc#857: the largeNumberOfInstances residual is the group protocol under its churn rate - measured, with the reproducer that shows it #444; and
docs/inflight/bug-857-family.mdrecords unattributed stallsightings reproducing on trees that already carry fix(core) confluentinc#857: the revoke path declines the commit lock instead of blocking on it #29's fix. So
Paused consumption across multiple consumers confluentinc/parallel-consumer#857 is still the open critical defect blocking this release's gate - "amend the claim
rather than the standard" (
release-0600-blockers.md's own instruction) still applies, and nothingin this PR claims otherwise.
Updated the blockers bullet to record this recheck as done at this commit, leaving the second recheck
("again after the critical fixes land") open exactly as before.
4. Correction pass: the claims the doc review falsified, and the two notes this PR overrode
A
ce-doc-reviewpass over the three commits above falsified six factual claims they made, and foundtwo
docs/inflight/notes the PR had overridden without saying so. Every one of them read as verifiedand was not - none would have gone red anywhere. Landed in one commit:
@Disabledgrep claim inrelease-0.6.0.0.md's gate section now describes what thecommand actually returns, and names the command to re-run rather than a count - see item 2 above.
sentence that named the Java file it deletes. Replaced with ground the deletion does not undermine:
nothing under
src/mainor thechaostestspackage changed, and.github/workflows/maven.ymlgives each chaos shard a hardcoded
scenarios:class list (verified), so removing asanity-package class cannot reshuffle a shard. Its artefact counts became the shape plus
git diff --name-status <base>..<head>, and a bare...Scenario.java:211became a greppableanchor, matching how its sibling citation two lines up already cites.
module-maturity.yamlis only half conditional - see item 3 above.release-0.6.0.0.md's opening block said the quarantine gate now passes, while the section thisPR rewrote records
MultiInstanceRebalanceTest.largeNumberOfInstancesas quarantined and blocking.docs/quarantined-tests.mdconfirms the entry is live and unowned, so its rule 5 still bites; theopening block now says the gate does not pass and points at the registry as the enforced copy.
testing-evidence entry and an unedited
release-0.6.0.0.mdparagraph disagreed.docs/plans/2026-08-25-001-test-lincheck-poc-plan.md's verdict table supports the first: three offour found unaided by the stress strategy plus one nobody had named, the fourth half-found once by
model checking and not reproducible. The release note now says that, and says to use that wording in
the announcement.
docs/refactoring.mddescribedProgressBarTest.widthin the present tense as a deliberatemanual check. Past tense now, citing the deletion entry.
The two retired notes, per
docs/inflight/AGENTS.md's four outcomes (migrate what outlives the workfirst, then remove):
test-progressbar-width-needs-a-machine-assertion.mdargued for splitting the test into amachine assertion plus a tagged demo rather than deleting it, and this PR deleted it without naming
that argument. Per AGENTS.md - record the reasoning you are overriding, where you override it -
the note's alternative and why deletion won are migrated into
release-0.6.0.0.md's gate sectionbefore the
git rm.test-disabled-tests-before-v6.mdhas met its own stated delete-when condition(docs(tests): audit every test that does not run, assert, or exist #263 landed, and no test carries a live bare
@Disabled), and repeated thesame stale four-name list item 2 above already replaced. Its one framing not owned elsewhere - that
this was inherited debt rather than a rule broken here - is migrated to
release-0.6.0.0.md's gatesection, which points at the 2026-08-08 audit for the per-test provenance behind it.
grep -rnover the tree returned no inbound links to either note, so nothing needed repointing.Deliberately left alone, because they are decisions rather than errors: the lincheck entry's
merge_gatefield versus the CI leg, and the jcstress anomaly disposition.Prior art checked
node bin/inflight.mjs prior-art testing-evidence ProgressBarTest Lincheck jcstress module-maturityinstead of writing its own;
docs/data/testing-evidence.yamlitself is unchanged on every otherref (only "on origin/master"). No branch has already deleted
ProgressBarTest.node bin/inflight.mjs note drift docs/inflight/release-0.6.0.0.mdand... note drift docs/inflight/release-0600-blockers.md- both show only long-dead/supersededbranches carrying divergent content (nothing live or relevant to this PR's three edits).
gh pr list -R astubbs/parallel-consumer --state merged --limit 100 --json number,title,files --jq '.[] | select(.files[]?.path | test("testing-evidence|ProgressBarTest|module-maturity")) | "\(.number) \(.title)"'- returned nothing; no merged PR already touched these exact paths beyondthe ones cited above by name (test(core): a Lincheck lane, calibrated by refinding four real races unaided #347, test(jcstress): a probe module - the plain-long residual is real on hardware, and the commit path errs safe #348,
docs(tests): audit every test that does not run, assert, or exist #263).
gh issue view 263 -R astubbs/parallel-consumer- already merged, see item 2 above.Checklist
docs/features/-N/A - not a feature; testing-evidence and release-note housekeepingN/A - one dead test deleted, no behaviour change; see item 2docs/inflight/working note (pr-/branch-) started at the PR's first commit -N/A - this PR resolves existing notes (release-0.6.0.0.md, release-0600-blockers.md) in place rather than opening a new one; nothing hereghcannot already showce-simplifyandce-code-reviewlocally -ce-doc-reviewran over this branch's commits and its findings landed in commita11ece1b1(item 4: six falsified factual claims corrected, two overridden notes retired).ce-simplifyandce-code-reviewareN/A- there is no code diff for either to run against beyond one deleted test. The automated@claude review thisis left for the operator to trigger.🤖 Generated with Claude Code
https://claude.ai/code/session_019SVm2cT6ZgUyPMim9CukYK