Skip to content

docs: audit the in-flight ledger against reality, then split it so PRs stop colliding - #112

Merged
astubbs merged 9 commits into
masterfrom
docs/audit-inflight-and-upstream-map
Aug 4, 2026
Merged

docs: audit the in-flight ledger against reality, then split it so PRs stop colliding#112
astubbs merged 9 commits into
masterfrom
docs/audit-inflight-and-upstream-map

Conversation

@astubbs

@astubbs astubbs commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Description

An audit of the in-flight ledger against reality, and then a restructure of it - plus the same audit applied to the manifest it defers to.

1. The audit

The ledger had reached 677 lines and turned into a record of finished work. Entries told to "delete when #98 merges" survived three merges; the rebalance-commit fix was still filed as awaiting PR after landing as #100; the largeOffsetMap static-state flake was still listed as deliberately-unfixed after #101 fixed it at source. Meanwhile the largest thing actually in flight - #80, carrying the drain-zombie fix - appeared only as a footnote about quarantine ownership, and #105/#106/#111 were absent entirely. The file's own scope rule says entries shrink or vanish when work lands; it had stopped being applied.

Every surviving claim is now checked against GitHub, git and the code, and dated. 677 lines of prose → 281, before the split below.

Obsolete entries deleted rather than annotated, each verified first:

Entry said Actually
jscpd cap 4% "fails every PR" cap is 5%
docs-only PRs run an inconsistent check set no workflow has path filters at all
ManagedPCInstance needs a fork header line it has one
CommitFailedException handler marks uncommitted offsets clean fixed in #108
largeOffsetMap static leak "worth doing soon" fixed in #101 (the reader declares the same @ResourceLock)
Quarantine roster: one test two, both owned by #80 - and empty since #80 merged
Stacked PRs are ungated closed by a new all-branches ruleset requiring Check PR Dependencies
Concede optimizer "parked" with a 5-point revival checklist abandoned twice; deleted

Upstream references now follow the convention CHANGELOG.adoc and docs/refactoring.md already use. Fork numbering reaches #111, so every bare reference at or above #162 was silently upstream and read as if it were ours - #857, #859, #893/#905, #909, #912, #629/#631/#640 and the rest are now written upstream #NN, including the trap that fork branch names encode the upstream number (bugs/857-...), so a number in a branch name is never a fork issue.

Four items moved to docs/refactoring.md, which owns deferred work: the eleven SpotBugs thread-visibility findings (verified still present on master), the produce-lock double release surfaced by #110, the commitAndWait timeout message that misstates its own wait, and jacoco's single exec file under forked surefire.

2. The split: one file per item

With the content correct, the file became a directory. docs/inflight.md appeared in 26 of the last 30 master commits, so unrelated PRs conflicted on it constantly - not because they disagreed, but because their notes were adjacent, and the merge that resolves such a conflict silently drops one side (it happened between #108 and #110).

Each item is now its own file, docs/inflight/<category>-<slug>.md. Two PRs recording unrelated work touch disjoint files and cannot conflict, and finishing work is git rm - a deletion never conflicts with an edit elsewhere. The prefix is the structure: ls docs/inflight/ shows the shape of what is open without reading anything (bug-, test-, ci-, deps-, pr-, branch-, release-, parked-, next-).

There is deliberately no committed index. It would be edited by every PR, which is the problem the directory solves; docs/TODO_INDEX.md is the cautionary case, generated and committed and stale until a reviewer caught it on #110. ls and grep -r are the index.

This was parked on docs/inflight-as-directory, with "migrating ~600 lines of existing entries" named as the reason not to do it. The audit is what made it cheap. docs/refactoring.md deliberately stays one file - 2 of the last 30 commits touched it, so it has none of this problem.

Four rules now live in docs/inflight/AGENTS.md, where an agent will find them, rather than in one person's head:

  • Delete an entry in the PR that resolves it; never leave a "delete when #NN merges" marker on master, because the merge is exactly when nobody is reading this.
  • Never record what gh or git can answer - which is why the open-PR table an earlier revision of this PR added is gone again.
  • Known code defects belong here even when an issue exists, because an agent scans this directory and will not read every issue on the tracker.
  • New guidance about how these notes are written gets written into that file too.

3. upstream-map.yaml: five entries disagreed with reality

The manifest is the declared source of truth for the fork↔upstream mapping, so drift here is worse than drift in a scratch file - it is what a future session trusts instead of re-deriving.

Nothing catches this class of drift: upstream-map.py validate only checks the schema, upstream-sweep.sh only watches upstream. prs: [] beside an open fork PR passes every check we have. Hence the new AGENTS.md rule - update the entry at every lifecycle transition of your own work, in the commit that causes it, not only when starting.

4. .gitignore

Agent and tool state was only excluded in .git/info/exclude, which is local to one checkout, so every fresh clone and every agent session rediscovered 7.6G of session transcripts and 6.9M of tool artifacts sitting untracked. .claude is ignored by contents (/*) rather than as a directory, so shared config can later be un-ignored with a negation - git will not descend into a fully-excluded directory, which would make that impossible.

Also removes an empty duplicate-code-cross-check/ clone: a git init from April that never fetched anything (0 objects, no refs, no commits). The action itself is real and pinned in maven.yml; this was scaffolding. Deleted rather than ignored, so a genuine nested clone would be visible rather than silently swallowed.

Not included

Raised for the maintainer to decide, deliberately not acted on here: retargeting #29/#31 off master-confluent (their fixes need reconciling with what #100 and #80 landed, not a mechanical rebase), pruning the superseded cherry-pick/* and upstream-pr-* branches, and refreshing last_swept (over a week stale - needs an actual sweep run). docs/inflight-as-directory can also be deleted once this merges: its idea has shipped.

The changelog rework is #113, deliberately separate - it touches the generated README.adoc, which would have made this diff noisier to read.

changelog-ref: N/A - internal documentation and gitignore only, no user- or operator-visible change

Checklist

  • Changelog entry added - N/A - internal docs + gitignore, nothing user- or operator-visible
  • Docs updated - this PR is the docs change (docs/inflight/, docs/refactoring.md, AGENTS.md, upstream-map.yaml); every in-repo reference to docs/inflight.md updated, including bin/todo-index.sh, dependabot.yml and maven.yml. Historical mentions in docs/plans/ and docs/solutions/ are left alone: they record what was true when written
  • Tests added/updated - N/A - no code changed; upstream-map.py validate passes (24 entries, no schema errors) and the changelog-ref gate self-test passes
  • Title & body reflect the final content of this PR
  • Self-hosted runner / security implications considered - N/A - no workflow or runner changes (the maven.yml edit is a comment pointing at the moved doc)

🤖 Generated with Claude Code

astubbs and others added 3 commits August 4, 2026 15:17
The ledger had grown to 677 lines and drifted into being a record of finished
work: entries told to "delete when #98 merges" outlived three merges, the
rebalance-commit fix was still filed as "awaiting PR" after landing as #100, and
the largeOffsetMap static-state flake was still listed as deliberately-unfixed
after #101 fixed it at source. Meanwhile the largest thing actually in flight -
#80, carrying the drain-zombie fix - appeared only as a footnote about
quarantine ownership, and #105/#106/#111 were absent entirely.

Every remaining claim is now checked against GitHub, git and the code, and dated.
Obsolete entries are deleted rather than annotated: the jscpd cap is above
baseline, the docs-only path-filter inconsistency cannot happen (no workflow has
path filters), the ManagedPCInstance header carries its Modifications line, and
the CommitFailedException follow-up shipped in #108. What remains open is stated
with what would close it - the reviewer's missing actionlint/todo-index grants,
the ungated stacked-PR path, the undiagnosed MultiInstanceMetricsTest flake.

Upstream references now follow the convention the changelog and refactoring
backlog already use. Fork numbering reaches #111, so every bare reference at or
above #162 was silently upstream and read as if it were ours; those are now
written "upstream #NN". The convention, including the trap that branch names
encode the upstream number, is stated at the top of the file.

Four items moved to docs/refactoring.md, which is where deferred work belongs:
the eleven SpotBugs thread-visibility findings (verified still present), the
produce-lock double release surfaced by #110, the commitAndWait timeout message
that misreports its own wait, and jacoco's single exec file under forked
surefire.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ync a rule

Five entries disagreed with reality. bug-857 recorded no fork PR and a todo to
open one, while #29 was open, #100 had merged and #80 was awaiting review - it is
a family of three distinct defects behind one upstream symptom, now written that
way. fix-909 recorded no PR though #31 is open; bug-912 was "in-progress" when
the schema's own word for pushed-but-unPR'd is "ready"; the release entry listed
none of #55/#56/#72 and did not say the release has not happened.

The manifest is the declared source of truth for this mapping, so drift here is
worse than drift in a scratch file - it is what a future session trusts instead
of re-deriving. Nothing catches it: upstream-map.py validate only checks the
schema, and upstream-sweep.sh only watches upstream, so "prs: []" beside an open
fork PR passes every check we have.

Hence the AGENTS.md rule: update the entry at every lifecycle transition of your
own work, in the commit that causes it, not only when starting. The two
wrong-base PRs are now todo lines rather than buried prose, so upstream-map.py
todo surfaces them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
These paths were only excluded in .git/info/exclude, which is local to one
checkout - so every fresh clone, and every agent session, rediscovered 7.6G of
session transcripts and 6.9M of tool artifacts sitting untracked. Sharing the
rules means nobody has to.

.claude is ignored by contents rather than as a directory, so shared config can
later be un-ignored with a negation; git will not descend into a fully-excluded
directory, which would make that impossible. .compound-engineering holds a local
config byte-identical to its own example, and .vscode a single personal Java
setting - neither is a project convention.

Also removes an empty duplicate-code-cross-check clone from the tree: a git init
from April that never fetched anything (no objects, no refs, no commits). The
action itself is real and pinned in maven.yml; this was scaffolding. Deleted
rather than ignored, so a genuine nested clone would be visible rather than
silently swallowed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

✅ Duplicate Code Report

Two 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

PR Base Change
Clones 29 29 ➖ 0
Duplicated lines 874 874 ➖ 0
Duplication 2.58% 2.58% ➖ 0
Rule Limit Status
Max duplication 5% ✅ Pass (2.58%)
Max increase vs base +0.1% ✅ Pass (+0.00%)

No new clones introduced by this PR.

✅ jscpd (language-agnostic)

PR Base Change
Clones 77 77 ➖ 0
Duplicated lines 1111 1111 ➖ 0
Duplication 3.31% 3.31% ➖ 0
Rule Limit Status
Max duplication 5% ✅ Pass (3.31%)
Max increase vs base +0.1% ✅ Pass (+0.00%)

No new clones introduced by this PR.

Powered by astubbs/duplicate-code-cross-check

@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 5m 35s —— View job


Review complete

Tasks

  • Gather context (PR diff, changed files, CI status)
  • Review docs/inflight.md changes for accuracy
  • Review docs/refactoring.md changes
  • Review src/docs/development/upstream-map.yaml changes
  • Review .gitignore and AGENTS.md changes
  • Verify factual claims against repo state (git log, code, workflow files)
  • Post final review

Summary

This is an unusually well-verified docs PR. I spot-checked essentially every falsifiable claim and they all held up:

  • jscpd cap is 5%, not 4% (.github/workflows/maven.yml:218) — matches the corrected claim.
  • No workflow has paths: filters — the only paths: line in any workflow is commented out (claude-code-review.yml:7) — matches.
  • ManagedPCInstance.java already carries the fork copyright header (lines 3-6) — matches.
  • largeOffsetMap static-state fix: the reader test classes (OffsetEncodingTests, WorkManagerOffsetMapCodecManagerTest, etc.) do declare @ResourceLock(METADATA_DATA_SIZE_RESOURCE_LOCK) — matches the "fixed in test: uncollected tests, cross-test static state, and a timing flake #101" claim.
  • Quarantine registry: exactly two entries, both owned by fix(core): draining PC stops polling - 10kHz busy-spin + zombie partition hold (#857-family silent stall) #80 — matches.
  • ConsumerOffsetCommitter.commitAndWait(): line 155 blocks on commitTimeout.toMillis(), but line 157's error message interpolates the unused timeout local (DEFAULT_TIMEOUT, line 154) — the misreported-wait claim in refactoring.md is accurate down to the line number.
  • cleanUpContext double-unlock: AbstractParallelEoSStreamProcessor.java:1419 is exactly context.getProducingLock().ifPresent(ProducerManager.ProducingLock::unlock) — matches.
  • Reference convention (upstream #NN) already exists identically in CHANGELOG.adoc:10 and is now mirrored in docs/refactoring.md and docs/inflight.md.
  • upstream-map.yaml has exactly 24 - id: entries, matching the checklist's claim.
  • duplicate-code-cross-check/ is absent from the working tree post-merge, consistent with the described removal.

One thing I could not verify: the PR/branch ahead/behind counts in the docs/inflight.md table (e.g. "#80: 38 ahead, 0 behind", "#57: 28 ahead, 11 behind"). This checkout is a shallow clone (git rev-parse --is-shallow-repository → true; origin/master's root commit is its own tip), and git fetch/gh/WebFetch all require approval that isn't available in this run — so I have no reliable way to independently compute or confirm those numbers here. Flagging as a gap in my review coverage, not as a suspected error.

Minor finding

docs/inflight.md:48-50 — the new #80 write-up cites two solutions docs that don't exist on master (or anywhere in this checkout):

Write-ups: `docs/solutions/test-flakiness/pc-silent-stall-under-contention-2026-07-29.md` and
`latest-reset-nudge-race-committedoffsetremoved-2026-07-30.md`.

Both are absent from docs/solutions/test-flakiness/ on this branch. docs/QUARANTINED_TESTS.md (lines 58, 65, unchanged by this PR) references the same two files but qualifies them "(on the fix branch)" — this PR's new text drops that qualifier, so a reader on master today hits a dead link. Given the PR's central claim is that "every surviving claim is now checked against GitHub, git and the code," this is a small inconsistency worth a one-line fix (add the same "(on the fix branch)" qualifier, or drop the paths until #80 merges).

Everything else — the upstream-map.yaml entry rewrites (bug-857 family, fix-909, bug-912, the release entry), the .gitignore additions, and the AGENTS.md rule — reads as accurate and consistent with the repo's current state.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

📌 Duplicate code detection tool report

The tool analyzed your source code and found the following degree of similarity between the files:

✅ No new or increased file similarities introduced by this PR.

Full similarity report
parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java

📄 parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/csid/utils/JavaUtils.java 35.32
parallel-consumer-core/src/test/java/io/confluent/csid/utils/CollectionUtils.java 33.26
parallel-consumer-core/src/main/java/io/confluent/csid/utils/JavaUtils.java

📄 parallel-consumer-core/src/main/java/io/confluent/csid/utils/JavaUtils.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/csid/utils/CollectionUtils.java 39.5
parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java 35.32
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 54.36 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 40.38
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 37.0
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java 36.97
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 35.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 35.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 35.28
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 34.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 30.07
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 60.96 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 54.74 ⚠️
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 40.4
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 37.01
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 32.68
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 31.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 60.96 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 50.65 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 36.76
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 32.44
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 31.63
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 30.22
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 36.97
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 33.11
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 54.36 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 53.28 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 44.98
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 35.05
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 33.75
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 31.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 31.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 30.74
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 30.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerOptions.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerOptions.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ProducerManager.java 32.32
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionState.java 30.0
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 54.74 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 50.65 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 45.53
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 33.92
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 33.05
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 31.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 45.53
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 37.01
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 36.76
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 32.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContext.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContext.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/RecordContextInternal.java 35.38
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 32.36
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 33.92
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/RecordContextInternal.java 33.09
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 32.68
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContext.java 32.36
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 31.63
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/RecordContextInternal.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/RecordContextInternal.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContext.java 35.38
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 33.09
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/BrokerPollSystem.java 33.48
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 33.05
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/BrokerPollSystem.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/BrokerPollSystem.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 33.48
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ExternalEngine.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ExternalEngine.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 39.59
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 60.58 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 53.28 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 51.0 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 48.89
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 40.38
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 39.43
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 37.28
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 34.02
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 34.02
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java 33.11
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 39.43
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 31.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 30.74
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/PCModule.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/PCModule.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/PCModuleTestEnv.java 32.97
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ProducerManager.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ProducerManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerOptions.java 32.32
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ProducerManagerTest.java 30.64
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 51.75 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 37.68
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 37.68
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 37.28
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 35.28
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 35.05
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 32.92
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 60.58 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 51.75 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 48.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 47.37
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 47.37
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 46.84
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 44.98
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 37.0
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 31.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 48.89
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 46.84
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 45.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 38.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 38.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 30.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 30.07
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 51.0 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 48.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 45.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 34.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 33.75
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 32.92
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 31.8
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 31.8
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 63.65 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 47.37
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 38.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 37.68
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 35.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 34.02
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 31.8
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 31.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 63.65 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 47.37
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 38.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 37.68
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 35.39
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 34.02
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 31.8
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 31.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionState.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionState.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionStateManager.java 30.45
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerOptions.java 30.0
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionStateManager.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionStateManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/WorkManager.java 39.62
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionState.java 30.45
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ProcessingShard.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ProcessingShard.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ShardManager.java 36.71
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ShardManager.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ShardManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/ProcessingShard.java 36.71
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/WorkManager.java

📄 parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/WorkManager.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionStateManager.java 39.62
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/AmbientProbeExtension.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/AmbientProbeExtension.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AmbientProbeExtensionTest.java 30.14
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/DrainingMemberRebalanceIT.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/DrainingMemberRebalanceIT.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/BrokerPollSystemDrainTest.java 31.54
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/KafkaSanityTests.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/KafkaSanityTests.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/csid/utils/LoopingResumingIteratorTest.java 34.02
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 55.42 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 46.93
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 38.68
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 44.13
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 41.11
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 38.68
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceTest.java 36.56
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/RebalanceEoSDeadlockTest.java 36.56
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 60.72 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 46.93
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 41.11
parallel-consumer-vertx/src/test-integration/java/io/confluent/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 30.02
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 60.72 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 55.42 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 44.13
parallel-consumer-vertx/src/test-integration/java/io/confluent/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 39.24
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 48.87
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 35.69
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 48.87
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java 38.27
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 30.35
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 49.38
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkCooperativeIT.java 49.38
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 35.69
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 30.35
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java

📄 parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 38.27
parallel-consumer-core/src/test/java/io/confluent/csid/utils/CollectionUtils.java

📄 parallel-consumer-core/src/test/java/io/confluent/csid/utils/CollectionUtils.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/csid/utils/JavaUtils.java 39.5
parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java 33.26
parallel-consumer-core/src/test/java/io/confluent/csid/utils/LoopingResumingIteratorTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/csid/utils/LoopingResumingIteratorTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/KafkaSanityTests.java 34.02
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessorTest.java 30.01
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AmbientProbeExtensionTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AmbientProbeExtensionTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/AmbientProbeExtension.java 30.14
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/BatchTestBase.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/BatchTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 30.61
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CheckQuarantineOwnersScriptTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CheckQuarantineOwnersScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineLaneReportScriptTest.java 45.22
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java 43.72
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 32.44
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 32.42
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorBatchTest.java 52.04 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java 50.73 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java 44.86
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/BatchTestBase.java 30.61
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java 70.36 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 56.9 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 49.45
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java 32.42
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 70.36 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 55.42 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 52.82 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java 52.82 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 49.45
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 46.82
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 56.9 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java 55.42 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 46.82
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java 32.44
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessorTest.java 34.69
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessorTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessorTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSSStreamProcessorRebalancedTest.java 34.69
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/AbstractParallelEoSStreamProcessorTestBase.java 30.01
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineLaneReportScriptTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineLaneReportScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CheckQuarantineOwnersScriptTest.java 45.22
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java 33.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CheckQuarantineOwnersScriptTest.java 43.72
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineLaneReportScriptTest.java 33.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/TestConventionsArchTest.java 90.34 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java 89.68 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 89.68 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/BrokerPollSystemDrainTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/BrokerPollSystemDrainTest.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/DrainingMemberRebalanceIT.java 31.54
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ExceptionConstructorsTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ExceptionConstructorsTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/InternalRuntimeExceptionTest.java 30.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/InternalRuntimeExceptionTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/InternalRuntimeExceptionTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ExceptionConstructorsTest.java 30.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/PCModuleTestEnv.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/PCModuleTestEnv.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/PCModule.java 32.97
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ProducerManagerTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ProducerManagerTest.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ProducerManager.java 30.64
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/TestParallelEoSStreamProcessor.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/TestParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 31.14
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java 40.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureUnitTest.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/OffsetEncodingBackPressureTest.java 40.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/CommitHistorySubject.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/CommitHistorySubject.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/LongPollingMockConsumerSubject.java 36.66
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/LongPollingMockConsumerSubject.java

📄 parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/LongPollingMockConsumerSubject.java

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/truth/CommitHistorySubject.java 36.66
parallel-consumer-mutiny/src/main/java/io/confluent/parallelconsumer/mutiny/MutinyProcessor.java

📄 parallel-consumer-mutiny/src/main/java/io/confluent/parallelconsumer/mutiny/MutinyProcessor.java

File Similarity (%)
parallel-consumer-reactor/src/main/java/io/confluent/parallelconsumer/reactor/ReactorProcessor.java 52.23 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java

📄 parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorBatchTest.java 78.97 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 50.73 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java 49.07
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyPCTest.java

📄 parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyPCTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorPCTest.java 71.2 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyTest.java

📄 parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorTest.java 32.74
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyUnitTestBase.java

📄 parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyUnitTestBase.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorUnitTestBase.java 32.16
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java

📄 parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/TestConventionsArchTest.java 91.13 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 90.46 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 89.68 ⚠️
parallel-consumer-reactor/src/main/java/io/confluent/parallelconsumer/reactor/ReactorProcessor.java

📄 parallel-consumer-reactor/src/main/java/io/confluent/parallelconsumer/reactor/ReactorProcessor.java

File Similarity (%)
parallel-consumer-mutiny/src/main/java/io/confluent/parallelconsumer/mutiny/MutinyProcessor.java 52.23 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorBatchTest.java

📄 parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorBatchTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java 78.97 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 52.04 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java 50.33 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorPCTest.java

📄 parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorPCTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyPCTest.java 71.2 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorTest.java

📄 parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyTest.java 32.74
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorUnitTestBase.java

📄 parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorUnitTestBase.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyUnitTestBase.java 32.16
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java

📄 parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/TestConventionsArchTest.java 91.13 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java 90.46 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 89.68 ⚠️
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 41.54
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 40.4
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 39.88
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java 35.43
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 32.44
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 39.88
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java 39.29
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 32.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 31.47
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 30.22
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java 41.75
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 41.54
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ExternalEngine.java 39.59
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java

📄 parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java

File Similarity (%)
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelEoSStreamProcessor.java 41.75
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 39.29
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 35.43
parallel-consumer-vertx/src/test-integration/java/io/confluent/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java

📄 parallel-consumer-vertx/src/test-integration/java/io/confluent/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/VeryLargeMessageVolumeTest.java 39.24
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 30.02
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/TestConventionsArchTest.java

📄 parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/TestConventionsArchTest.java

File Similarity (%)
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java 91.13 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 91.13 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 90.34 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java

📄 parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java

File Similarity (%)
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/ReactorBatchTest.java 50.33 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java 49.07
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 44.86

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

✅ SpotBugs Report

No bugs found (new bugs only — baseline from base branch excluded).

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

🧪🔒 Quarantine Lane Report

Quarantined test Outcome Owner Meaning
ChaosChurnStormIT.churnStormMeetsSlosAndBalancesLedger 🔴 failing (expected) #80 quarantine holding
PartitionStateCommittedOffsetIT.committedOffsetRemoved 🟡🎲 passed (flapper) #80 proves nothing - passes most runs by nature

🔴 expected while the owner PR is open · 🟡🎲 flapper, pass proves nothing · 🚨 a deterministic quarantined test passing means its fix landed: delete its @Quarantined annotation + docs/QUARANTINED_TESTS.md entry (a merge-blocking review thread has been opened). Lane: non-gating; rules: see the Quarantine Audit check.

…-and-upstream-map

# Conflicts:
#	docs/inflight.md
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 3m 56s —— View job


Review complete

Tasks

  • Gather context (PR diff since last review, merge commit, changed files)
  • Verify docs/inflight.md claims against repo/CI state post-merge
  • Verify docs/refactoring.md line-level claims
  • Verify src/docs/development/upstream-map.yaml entries and schema
  • Verify .gitignore / AGENTS.md changes
  • Check for merge-conflict artifacts from the origin/master merge

Summary

This push merged origin/master (bringing in #80's landing) into the branch, resolving a conflict in docs/inflight.md. I re-verified the file set against current repo state; everything holds up, and the merge resolution is clean (no leftover conflict markers, no stale references).

Specifically re-checked since the prior automated review:

  • The prior review's one finding is now resolved: docs/solutions/test-flakiness/pc-silent-stall-under-contention-2026-07-29.md and latest-reset-nudge-race-committedoffsetremoved-2026-07-30.md (cited at docs/inflight.md:50) now exist on disk — they landed via fix(core): draining PC stops polling - 10kHz busy-spin + zombie partition hold (#857-family silent stall) #80's merge, which is exactly what this branch just pulled in.
  • Quarantine registry is genuinely empty: bin/check-quarantine-registry.sh → "consistent (0 entries)", and no @Quarantined annotations remain outside test fixtures/string literals in the quarantine-tooling tests themselves. Matches docs/inflight.md:120 and docs/QUARANTINED_TESTS.md.
  • Line-level claims in docs/refactoring.md are exact: ConsumerOffsetCommitter.java:154-157 does declare Duration timeout = ... DEFAULT_TIMEOUT and interpolate it into the exception message while blocking on commitTimeout.toMillis() (line 155) — the misreported-wait claim is accurate down to the line. AbstractParallelEoSStreamProcessor.java:1419 is exactly the described single unconditional unlock(). The SpotBugs line numbers (420/448/463 for numberOfAssignedPartitions, 259/979/1117-1124 for lastWorkRequestWasFulfilled) all match.
  • upstream-map.yaml: still 24 entries; bug-857-stall-after-rebalance now correctly lists prs: [29, 80, 100] with notes distinguishing all three landed/open states (including fix(core): draining PC stops polling - 10kHz busy-spin + zombie partition hold (#857-family silent stall) #80 merged at bd717241, matching the actual merge commit); fix-909-stale-container has prs: [31]/status: pr-open; bug-912-vertx-stream-leak is status: ready; the release entry's todo: correctly states pom is still -SNAPSHOT (confirmed: pom.xml:13). No leftover <<<<<<</=======/>>>>>>> markers anywhere in the touched files.
  • Reference convention enforcement is thorough: grepped docs/inflight.md for any bare #NN ≥ 162 not preceded by "upstream" — every hit is either directly prefixed or part of an explicit "upstream #X, #Y, #Z" grouping (e.g. line 235, line 263-264), never a truly bare high number.
  • jscpd cap confirmed still 5% (maven.yml:217-221), and CHANGELOG.adoc:10 still carries the reference-convention note this file's header now mirrors.

Not independently verifiable in this sandbox (unchanged from the prior pass): the ahead/behind counts in the Open fork PRs table (e.g. #57: 28 ahead, 11 behind). This is still a shallow clone — git merge-base between origin/master and the referenced branches returns nothing, and git rev-list/gh/network fetches require approval not available in this run. Flagging as a coverage gap, not a suspected error — the branch/PR names themselves do all exist as referenced.

No new issues found. The audit's central claim — that every surviving line was checked against GitHub, git and the code — held up under a second, independent pass focused on what changed in this sync.

…deferred thread-parallel check

The header now says that work your own PR resolves is tracked by that PR, so its
entry goes in that PR - never leave a marker on master saying to delete it later.
A merge is exactly when nobody is reading this file, so such markers outlive the
work: the one #80 left behind survived the merge and read as live afterwards.

Also restores an open item this rewrite dropped. #68 made integration reliable by
forking per broker, which sidesteps the upstream confluentinc#857 deadlock rather than proving
it gone - so re-running with -Dparallel-tests=true on a shared broker, once #29
lands, is still outstanding. Recorded against #29, which is what gates it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 2m 46s —— View job


Review complete

Tasks

  • Gather context (PR diff, prior review comments, CI status)
  • Review the new commit since the last automated pass (6ca34b22)
  • Verify its factual claims against repo/CI state
  • Sanity-check the rest of the PR for regressions from the merge
  • Post final review

Summary

This third pass covers what changed since the previous two automated reviews: commit 6ca34b22 ("forbid 'delete when #NN merges' markers, restore the deferred thread-parallel check"), which touches only docs/inflight.md (+19/-4). The other four files (.gitignore, AGENTS.md, docs/refactoring.md, src/docs/development/upstream-map.yaml) are unchanged since the prior review, which already verified them line-by-line — no need to re-litigate those.

The new header rule is well-grounded, not just asserted. I checked whether the "#80 left a marker that survived the merge" claim is actually true: git show bd717241:docs/inflight.md (the commit that is #80 landing on master) contains, at line 666:

#29's territory. Delete this entry when #80 merges.

That's a self-referential marker — impossible to act on, since the commit containing it is the merge it names. It sat on master unresolved until this PR's merge commit (823f08c0) rewrote the file and dropped it. So the new header guidance ("work your own PR resolves is tracked by that PR — delete the entry there, never leave a 'delete when #NN merges' marker on master") is a real, verified lesson from this PR's own history, not a hypothetical.

The restored "Step 2" thread-parallel item checks out in full:

No inaccuracies, no dangling references, no duplication with the surrounding #29/load-tightness sections found in this delta.

Not independently verifiable in this sandbox (same gap as both prior passes): the ahead/behind counts in the "Open fork PRs" table (e.g. #57: 28 ahead, 11 behind) — this checkout has no network access for git fetch/gh, so these can't be recomputed here. Flagging as a continued coverage gap, not a suspected error.

Nothing to fix. This audit continues to hold up under independent verification, including the "delete when #NN merges" anti-pattern it just self-corrected.

The rebuilt ledger opened with a table of every open PR, its branch, its worktree
and its ahead/behind counts. That is a second PR tracker: `gh pr list` is always
right, this table is wrong within a day, and a reader cannot tell which one they
are looking at. Same for branch divergence and worktree paths, which `git` and
bin/worktree-status.sh already report.

Replaced with the part no command can answer - #29/#31 pointing at the pinned
mirror and why the retarget is not mechanical, #38 blocked on a missing ArchUnit
engine rather than the version bump, #51 colliding with #57 over PCMetrics, and
which PR owns which files. Divergence counts are dropped throughout; what stays
is the consequence ("rebase before review"), not the number behind it. Measured
flake rates stay - an experiment's results are not re-derivable from a command.

The rule is in the header, where the file's other writing rules live.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 1m 58s —— View job


Review complete

Tasks

  • Gather context (diff since last review, current HEAD, changed files)
  • Check for anything new since the last three automated passes
  • Verify factual claims in docs/inflight.md, docs/refactoring.md, upstream-map.yaml
  • Post final review

Summary

This is a fourth pass, covering only what changed since the last automated review: commit 6d983851 ("docs(inflight): stop duplicating what gh and git already answer", docs/inflight.md +46/-39). No other tracked file changed. The other four files were already verified line-by-line in the prior three passes and are untouched here.

The change itself resolves a gap flagged in all three prior reviews. Each earlier pass noted it could not verify the ahead/behind counts in the old "Open fork PRs" table (e.g. "#57: 28 ahead, 11 behind") because this sandbox has no git fetch/network access. This commit deletes that entire table — along with worktree paths and branch-divergence numbers — on the stated principle that anything gh/git can answer shouldn't be duplicated in a doc that goes stale within a day. That's a real fix to the exact class of drift this PR's own description is arguing against, not just a rewrite.

Verified every new factual claim against GitHub (this session did have gh pr view access, unlike the git network commands used in earlier passes):

Not independently verifiable in this sandbox: existence of the no-PR branches listed (bugs/912-vertx-stream-memory-leak, docs/uber-stall-experiment-results, etc.) and the master-confluent pin commit — gh api and git ls-remote were both blocked pending approval in this run, unlike gh pr view. This is a smaller residual gap than the ahead/behind counts this commit just removed, and these branch claims were already present (unchanged in substance) before this diff.

No inaccuracies found in the new content. The commit is a clean, well-motivated tightening of the file's own scope rule, and the rationale in its message matches what's actually in the diff.

The stacked-PR gap is closed: an "All branches: PR dependency gate" ruleset
(~ALL, requiring only "Check PR Dependencies") now covers PRs whose base is a
feature branch, which the master-only ruleset never matched. Verified live on
#112.

The concede optimizer is abandoned, not parked - it was removed from #75 by
review, re-introduced and dropped again on #80, and highcpu stays purely
advisory. A five-point revival checklist for something nobody intends to revive
is the "keep it in case" habit this file is meant to resist; the findings survive
in #75's and #80's review history if it ever comes back.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 1m 46s —— View job


Review complete

Tasks

  • Gather context (diff since last review, current HEAD, changed files)
  • Verify the new commit (b911ad2b) against repo/CI/PR-history state
  • Post final review

Summary

Fifth pass, scoped to what changed since the last automated review: commit b911ad2b ("docs(inflight): drop two entries that are no longer open", docs/inflight.md -18 lines only). No other tracked file changed. The four other files were fully verified in earlier passes and are untouched here.

Two entries were deleted; both deletion rationales check out:

No orphaned references: grepped both docs/inflight.md and the sibling files for "stacked"/"concede" — the only surviving hit is AGENTS.md:202's unrelated "put depends on #N in the description" guidance, which doesn't reference either deleted entry. The file's ending is clean (no dangling headers), and cumulative diff vs origin/master now stands at exactly +395/-702 across 5 files, matching the PR description's stated totals.

Not independently verifiable in this sandbox (recurring, unchanged gap): GitHub-side ruleset configuration — gh api/gh ruleset list require approval not granted in this automated run. Flagging as a coverage gap, not a suspected error; everything checkable (workflow files, PR review history, commit diffs) confirms the claims.

No inaccuracies found. This pass's deletions are well-supported by verifiable history rather than assertion.

… site

Two scope points that were only in one person's head.

Known defects on the current branch belong in this file even when a GitHub issue
exists. An agent picking up work scans this ledger; it does not read every issue
on the tracker, so an unrecorded defect is one the next session rediscovers or
builds on top of. Link the issue, keep it short.

The docs are also heading for a generated site, which removes the
include::CHANGELOG.adoc[] coupling that currently publishes the whole changelog
as a README chapter. Recorded now so nothing new is built on that coupling, and
so changelog decisions stop being driven by it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 1m 11s —— View job


Review complete

Tasks

  • Gather context (diff since last review, current HEAD, changed files)
  • Verify the new commit (fe135ec6) against repo state
  • Sanity-check the full diff for regressions/artifacts
  • Post final review

Summary

Sixth pass, scoped to what changed since the last automated review: commit fe135ec6 ("docs(inflight): record known code problems here, and the planned docs site", docs/inflight.md +10 lines only). No other tracked file changed. The other four files (.gitignore, AGENTS.md, docs/refactoring.md, src/docs/development/upstream-map.yaml) were fully verified in earlier passes and remain untouched.

This commit adds two scope points to the file, both checked:

  • Header addition ("known problems with the code on this branch belong here, even when a GitHub issue exists") is a scope clarification, not a factual claim — it's internally consistent with the existing scope rule and doesn't contradict or duplicate anything else in the header (checked: no other "known problems"/GitHub-issue-coupling text exists elsewhere in the file).
  • New "Parked ideas" entry ("Documentation site (planned)") makes one concrete, falsifiable claim: that README_TEMPLATE.adoc does include::{project_root}/CHANGELOG.adoc[]. Verified directly — src/docs/README_TEMPLATE.adoc:1323 contains exactly that line, so the whole changelog is indeed pulled into the README as described. No other file in the repo makes this claim, so there's no duplication.

Whole-diff sanity check: cumulative diff vs origin/master is +405/-702 across the 5 files — matches the PR description's stated totals exactly. Grepped all five changed files for <<<<<<</=======/>>>>>>>; the only hits are YAML # ==== section dividers in upstream-map.yaml, not conflict markers.

No inaccuracies found in this delta. Across all six passes on this PR, every falsifiable claim I've been able to check locally (file contents, line numbers, gh pr view state, workflow configs, quarantine registry, PR history) has held up. The two persistent gaps remain the same as before and are unrelated to this commit: GitHub ruleset configuration (gh api/gh ruleset list need approval not available in this sandbox) and, historically, ahead/behind branch counts (now moot — that table was deleted in an earlier commit specifically to stop tracking what git/gh already answer).

docs/inflight.md appeared in 26 of the last 30 master commits. Unrelated PRs
conflicted on it constantly - not because they disagreed, but because their notes
were adjacent, and the merge that resolves such a conflict silently drops one
side's update. It happened between #108 and #110.

So each item is now its own file under docs/inflight/, named <category>-<slug>.md.
Two PRs recording unrelated work touch disjoint files and cannot conflict, and
finishing work is `git rm` - a deletion, which never conflicts with an edit
elsewhere. The category prefix is the structure: `ls docs/inflight/` shows the
shape of what is open without opening anything.

No committed index. It would be edited by every PR, which is the problem this
directory exists to solve; docs/TODO_INDEX.md is the cautionary case, generated
and committed and stale until a reviewer caught it. `ls` and `grep -r` are the
index.

The rules that lived in the old file's header now live in docs/inflight/AGENTS.md,
where an agent will find them: delete a file when its work lands rather than
rewriting it into a FIXED narrative, delete it in the PR that resolves it rather
than leaving a "delete when #NN merges" marker, never record what gh or git can
answer, and record known defects here even when an issue exists.

This was parked on docs/inflight-as-directory with migrating ~600 lines of stale
entries named as the reason not to do it. This branch's audit already did that
work, which is why it is cheap now. That parked note is one of the entries the
split drops. docs/refactoring.md deliberately stays a single file - 2 of the last
30 commits touched it, so it has none of this problem.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @astubbs's task in 5m 39s —— View job


Review complete

Tasks

  • Gather context (diff since last review, current HEAD, changed files)
  • Verify the new commit (9d5744fa, "one file per item") against repo state
  • Check every cross-reference and file-path claim in the 17 new docs/inflight/*.md files
  • Check pom.xml / source-code comments for drift introduced by the docs/inflight.mddocs/inflight/ rename
  • Post final review

Summary

Seventh pass, scoped to what changed since the last automated review: commit 9d5744fa ("one file per item, so PRs stop colliding on one ledger"), which deletes docs/inflight.md (682 lines) and replaces it with 17 single-topic files under docs/inflight/ plus a new docs/inflight/AGENTS.md rules file, and updates 6 other files' references to the old path. This is a large structural change, so I re-verified every file-path and cross-reference it introduces rather than spot-checking.

The rename left two dangling references this pass caught:

  1. Stale plan-doc link — docs/inflight/parked-upstream-issue-mirroring.md:9: cites docs/plans/2026-08-04-001-chore-mirror-upstream-issues-plan.md as "Full plan" for the bulk-mirror decision. That file does not exist anywhere in the repo (docs/plans/ currently holds only 6 files, none matching). Given this entry is brand-new content (the "decision changed 2026-08-04" section), this is the same class of defect the PR's own first review round caught and fixed (dead links to docs/solutions/ write-ups) — just not caught this time. Fix this →

  2. Three stale Javadoc/comment references to the deleted docs/inflight.md — the rename updated every doc and workflow reference but missed source comments:

    • parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/Quarantined.java:49
    • parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/offsets/RunLengthEncoderTest.java:250
    • parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessorTest.java:238

    All three still say {@code docs/inflight.md} / docs/inflight.md, pointing at a file this commit deletes. Low-stakes (comments, not build-breaking), but it's exactly the kind of drift this PR exists to eliminate. Fix this →

A pre-existing factual drift, carried forward unverified into new content — docs/inflight/deps-deferred-majors.md:9 and docs/inflight/pr-53-java-baseline-kafka4.md:17: both state kafka-clients is held at 3.9.1. pom.xml:121 currently has <kafka.version>3.9.2</kafka.version>, bumped by commit 8cc543a3 on 2026-07-31 — before every commit in this PR, including the original ledger rebuild (be7aa48b) and this split. CHANGELOG.adoc/README.adoc repeat the same "3.9.1" text, but those weren't touched by this PR beyond their link syntax, so they're out of scope here; the two docs/inflight/ files are newly-written/re-verified content in this PR and should have caught it. Minor in isolation (the decision to stay off Kafka 4.x is unaffected), but notable because the PR's stated bar is that every surviving claim was checked against the code. Fix this →

Everything else checked out:

  • docs/inflight/AGENTS.md (the new rules file) is well-formed, and its own guidance is followed by the 17 item files it governs (naming convention, one-item-per-file, no committed index).
  • Every other cross-reference between the 17 new files (pr-blockers-and-collisions.md, bug-857-family.md, test-load-tightness-flakes.md, branch-912-vertx-leak.md, etc.) resolves to a real sibling file.
  • docs/inflight/parked-docs-site.md's new claim — "that embed is being removed (docs(changelog): compact it for readers, and generate future releases from the commit log #113)" — checked against the actual PR: docs(changelog): compact it for readers, and generate future releases from the commit log #113 is open and its diff does remove the include::{project_root}/CHANGELOG.adoc[] line from src/docs/README_TEMPLATE.adoc. Accurate.
  • docs/inflight/release-0.6.0.0.md, docs/inflight/test-load-tightness-flakes.md's two solutions-doc links, docs/inflight/pr-57-metrics-leak.md's file-ownership list, and docs/inflight/next-candidates.md's #40 reference all still hold against current repo/GitHub state.
  • The 6 other changed files (AGENTS.md, CHANGELOG.adoc, README.adoc, .github/dependabot.yml, .github/workflows/maven.yml, bin/todo-index.sh) are simple, correct path-reference updates from docs/inflight.md to docs/inflight/.
  • One pre-existing, unchanged-by-this-commit oddity carried over from the old file: docs/inflight/pr-57-metrics-leak.md:9's closing sentence ("which is why feat: support virtual threads (#190, upstream #896) #51 and anything touching partition state sequences after it.") is grammatically incomplete — reads as a truncated clause. It predates this PR (present verbatim in the prior single-file version) and wasn't touched by the split, so it's a pre-existing nit rather than something this diff introduced — flagging since it survived several review passes.

Not independently verifiable in this sandbox (recurring, unchanged gap across all seven passes): gh api/git ls-remote/network-git commands require approval not available in this automated run, so I couldn't confirm the "78 open upstream issues" count in parked-upstream-issue-mirroring.md or GitHub ruleset state. gh pr view/gh pr diff/gh issue view did work and were used above.

@astubbs astubbs left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@astubbs astubbs changed the title docs: audit the in-flight ledger and the upstream map against reality docs: audit the in-flight ledger against reality, then split it so PRs stop colliding Aug 4, 2026
@astubbs
astubbs merged commit 0de96fc into master Aug 4, 2026
30 of 33 checks passed
astubbs added a commit that referenced this pull request Aug 4, 2026
Conflict: #112 split docs/inflight.md into docs/inflight/, one file per item,
because every PR edited the single file. This branch had rewritten that file,
so it conflicted structurally rather than textually.

Resolved master's way. The mutation note is now docs/inflight/ci-mutation-testing.md,
following the new <category>-<slug> convention and the directory's rules -
open items only, no FIXED/DONE narrative, no committed index.

Also swept master's own notes for claims this PR invalidates, rather than only
resolving my side of the conflict. ci-disabled-jobs-and-runner-load.md said
"the highcpu lane runs six suites per branch on one box, including mutation
sweeps ... consider moving mutation off-box. Mutation strategy is being
reconsidered wholesale in #111" - #111 is this branch, and it did exactly that:
the lane is down to two suites, both mutation entries are off-box, and
Unit/Integration went with them. Left the runner-lost-communication symptom
noted but marked for re-checking, since its stated cause is largely gone.

Two references in the plan doc pointed at ledger content that the #112 audit
dropped (the arcmutate shelved plan). Rather than leave a dangling pointer, the
plan doc now says it is itself the record of that.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Aug 4, 2026
…from the changelog

It was true until this PR removed the include::. README.adoc is still generated -
from README_TEMPLATE.adoc - but no longer from CHANGELOG.adoc, so the row
contradicted this PR's own Changelog section a few lines below it. The table is
the thing a reader skims first, by design, so a stale row there is worse than a
stale paragraph.

The row now also states the two facts a reader of that table needs: the file is
frozen up to 0.6.0.0 and generated from the commit log after it, and it is not a
per-PR chore.

Found by the review bot on the merge of #112, which is what put the two
statements in the same file.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
astubbs added a commit that referenced this pull request Aug 4, 2026
… from the commit log (#113)

The unreleased section had reached 15 entries and 1,828 words - longer than every
0.5.x release note combined - and every one was Build & CI. Median entry 104 words
against 8-15 in the upstream-era sections; the longest, at 316 words, explained
that a tool-grant string did prefix matching. That is a postmortem, and
postmortems belong in the commit message, the PR body and docs/solutions/, which
is where this project already puts them.

The problem was audience, not length. A changelog answers one question - should I
upgrade, and will anything change for me - so an entry now has to pass a test: can
a user or operator observe it without reading our repo? CI lanes, reviewer tool
grants, PR checklists and TODO indexes cannot, and are gone. What survives of that
work is a single Build & CI entry listing the five things that tell a reader how
carefully the library is tested.

Surviving entries are one sentence of about 25 words: what a reader would have
SEEN, plus who it hits when that is not everyone. The rule names both failure
modes, because the upstream-era entries show the other one - "fix: Paused
consumption across multiple consumers" is six words from which you cannot tell
whether you are affected. Section total: 2,570 words to 569.

Two headings that both meant "not released" are collapsed into one. Entries were
split between == Unreleased and == 0.6.0.0 while neither had shipped, which is how
#80's drain fix - the most user-visible change in the release - ended up filed
apart from everything else.

Beyond that, a PR now does nothing about the changelog at all. The file appeared
in 30 of the last 30 master commits and dragged the generated README.adoc with it,
and it forced an entry to cite a PR number that does not exist when the entry is
written. Everything up to 0.6.0.0 is frozen; from the next release an agent reads
git log <last-tag>..HEAD and drafts the section, and a human re-applies the same
judgement before it freezes. What is written down is that judgement - the entry
test, the one-sentence rule, and assembling the release as a SET, merging related
commits and dropping what did not matter, which no per-PR entry could ever do. The
cost is that a commit message now does double duty, so a lazy subject line becomes
a worse changelog.

The README stops embedding the changelog - 505 lines - and keeps a Change Log
section pointing at it. The checklist line goes too: with nothing to do per PR, a
box that always reads N/A is the ritual this removes.

Also corrects the "where things live" table, which still said README.adoc is
generated FROM CHANGELOG.adoc. It is still generated, from README_TEMPLATE.adoc,
but no longer from the changelog. That contradiction existed in neither change
alone - #112 rewrote the row, this PR removed the include - and appeared only when
the merge put both in one file.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
@astubbs
astubbs deleted the docs/audit-inflight-and-upstream-map branch August 4, 2026 21:40
@astubbs
astubbs restored the docs/audit-inflight-and-upstream-map branch August 4, 2026 22:09
@astubbs
astubbs deleted the docs/audit-inflight-and-upstream-map branch August 4, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant