Skip to content

docs(upstream): account for the 2023 administrative sweep, and give the sweep tool a mode that could have caught it - #258

Merged
astubbs merged 14 commits into
masterfrom
docs/mirror-2023-admin-sweep
Aug 12, 2026
Merged

astubbs merged 14 commits into
masterfrom
docs/mirror-2023-admin-sweep

Conversation

@astubbs

@astubbs astubbs commented Aug 7, 2026 •

Copy link
Copy Markdown
Owner

Description

Upstream ran two bulk clearouts before going quiet, and neither was a triage:

When Who What Comment
2023-06-15 eddyv 35 unmerged PRs closed (34 ours) "Closing - Stale."
2023-07-07 johnbyrnejb 28 issues closed "Closing Issue"

Every one of the 28 was marked COMPLETED rather than "not planned". That is why nobody noticed
for three years: GitHub renders completed as resolved, so they read as done at a glance, and no
symptom search surfaces them. scripts/upstream-sweep.sh searches updated:>=last_swept, so
anything last touched in 2023 could never appear in a sweep either - the cohort was structurally
invisible to our own tooling, and none of the 28 were in the manifest.

What this PR contains

The manifest section (upstream-map.yaml) - 13 grouped work-item entries plus the sweep history.
Grouped rather than 28 near-duplicate entries, because several want designing together: per-topic
handlers with separate consume/produce types, seek with subscription changes, retry expiry with
stall detection.

--audit, a mode that can see what the window search cannot. No time window. Asks "which closed
upstream items are neither tracked in the manifest nor mirrored in the fork?", and flags days where
an implausible number of things closed at once. Run against the real repo it rediscovers both sweeps
from scratch and reports zero unaccounted, which is also an end-to-end check that the new
fork_issues linkage is correct.

Three docs/inflight/ notes recording what is not done - see "Deliberately not in scope".

The 28 mirrors themselves are already live as #227 - #254
under the new upstream-admin-closed label; this PR is the tracking and tooling half.

Verification, not inference

All 28 issues were re-read in full - bodies plus all 58 comments - and each checked against fork
source rather than trusted from its thread. That mattered: four issue bodies point at PRs that
"fix" them, and every one of those PRs was itself swept unmerged.

Issue says Reality
confluentinc#372 "Implemented in confluentinc#390" PR closed unmerged
confluentinc#319 "solved by confluentinc#270" PR closed unmerged
confluentinc#203 fixed by confluentinc#345 PR closed unmerged
confluentinc#191 fixed by confluentinc#346 PR closed unmerged

Outcome: 2 already fixed (confluentinc#41, confluentinc#319 -
mirrored and immediately closed, carrying the evidence), 6 partially addressed, 20 fully open.

Strongest evidence for the "still open" verdicts: confluentinc#29 still blocks on
futureSend.get(...) beside a source comment naming the unmerged PR; confluentinc#144's
retry loop is bounded by a constant named arbitrarilyChosenLimitForArbitraryErrorSituation; and
confluentinc#183's ShardKey.KeyWithEquals.equals returns true for two null keys,
collapsing every null-key record into one shard - exactly the live defect that reporter described and
never got a reply to.

All swept PR head commits were checked and are still reachable, so the drafts are recoverable;
entries cite branch and SHA rather than just a PR number.

Bots are excluded from the PR analysis

Dependabot self-closes superseded bumps in batches that look identical to a sweep - 2022-08-16,
2022-10-20, 2023-11-03 and 2024-01-25 are all dependabot - and unfiltered they buried the two real
sweeps. Filtering them surfaced two human PRs sitting inside those batches:
confluentinc#508 (our own docs work, closed with a CLA-not-signed comment) and
confluentinc#650 (closed with no comment at all). Both recorded for review.

Discussions

A third content type, invisible to every mode here and to the manifest. Not swept - 74 of them,
no bulk closure, and the largest day is all answered=true housekeeping. The failure mode is
different: questions nobody answered, somewhere no issue search reaches. --audit now lists
zero-reply discussions, excluding release-announcement threads by title, which would otherwise put 9
false positives at the top of the report.

Two finds justify the check on their own. Discussion 542 (zero replies since 2023) is a field report
of a transactional consumer evicted from the group after failing to acquire the produce lock
during rebalance, the reporter suspecting the revoke-time flush - the same lock lifecycle as
docs/inflight/bug-producing-lock-double-release.md, and they raised the timeout without effect,
which is evidence about the mechanism rather than the duration. Discussion 883 (zero replies) is the
same complaint as #187 but with a runnable reproducer, which that issue lacks.

We do not mirror discussions. Where reading one makes us think there is an issue, we raise a
normal fork issue on its merits, citing the discussion as its source. That keeps upstream-mirror
meaning exactly "an upstream issue we carry", which is what makes the cutoff verifiable.

Mirror the whole cohort, including the items we rate as worthless

An earlier revision of these notes recommended declining three of the 28. That was optimising for
the wrong thing and has been removed. The point is a clean, known cutoff - "every issue upstream
closed administratively is accounted for" - not a curated pick. A set filtered by our own judgement
is not a cutoff: the next reader cannot tell "not mirrored because it was junk" from "not mirrored
because it was missed". Carrying a few items nobody actions costs almost nothing. Fork issues can
always be closed later on their merits, which leaves a visible record; pruning before mirroring does
not. The reasoning is recorded in the manifest section header so a later tidy-up does not re-prune.

Deliberately not in scope, and recorded rather than fixed

Ruled out and written down so they are not re-investigated: wiki disabled, no security advisories,
all open-milestone issues already mirrored, orphan branches accounted for (v0.6.x-dev is the
lambda-actor work already captured via swept PRs; 0.5.3.x's regression fix is on master as
a908e1663), and "upstream pushed today" being a pushed_at artefact rather than new activity.

Checklist

  • Docs updated - the manifest section, its schema block (new fork.fork_issues key), and three
    docs/inflight/ notes. docs/inflight/AGENTS.md needed no change.
  • Tests added/updated - N/A for unit tests: this is a manifest edit plus a read-only reporting
    mode with no assertable product behaviour. Verified by running it against the live repo, where
    it rediscovers both sweeps and reports zero unaccounted, and by python3 scripts/upstream-map.py validate (OK: 27 entries, no schema errors) plus refs/table still rendering. Running that
    validator is what the first review round caught me not doing - an ad-hoc yaml.safe_load check
    passed a group: value the schema rejects. Three real bugs were found and fixed this way: gh api --slurp already wraps pages, so .[][] iterated a level too deep and the
    discussions section silently printed "(none)" - it failed closed, not loud - and unfiltered bot
    batches drowned the signal. bash -n and shellcheck -S warning are clean; the only
    shellcheck hit is pre-existing, on the untouched drift block.
  • Title & body reflect the final content of this PR
  • Self-hosted runner / security implications considered - N/A. No workflow or runner changes.
    --audit is read-only, posts nothing, and adds no credentials; it reads more of the upstream
    API than the default mode, so it is not wired into any scheduled job.

astubbs added 6 commits August 7, 2026 22:56
Upstream ran two bulk clearouts before going quiet, and neither was a triage:
2023-06-15 `eddyv` closed 35 unmerged PRs with "Closing - Stale." (34 of them
ours), and 2023-07-07 `johnbyrnejb` closed 28 issues with "Closing Issue" -
every one marked COMPLETED rather than "not planned".

That state reason is why the cohort was invisible. GitHub renders `completed`
as resolved, so the issues read as done at a glance, and `upstream-sweep.sh`
searches `updated:>=last_swept`, so anything last touched in 2023 can never
appear in a sweep. None of the 28 were in this manifest; the mirroring that
produced the other 78 fork mirrors only ever sampled *open* upstream issues.

All 28 were re-read in full - bodies plus all 58 comments - and each verified
against fork source rather than trusted from its thread. That mattered: four
issue bodies point at PRs that "fix" them (#372->#390, #319->#270, #203->#345,
#191->#346) and every one of those PRs was itself swept unmerged.

Result: 2 already fixed (#41 offset-scan removal, #319 shutdown CME), 6 partly
addressed, 20 fully open. Grouped into work items rather than 28 near-duplicate
entries, since several want designing together - per-topic handlers with
separate consume/produce types, seek with subscription changes, retry expiry
with stall detection. #57 folded into the existing log-noise entry.

Swept PR head commits were checked and are all still reachable, so the drafts
are recoverable; entries cite branch and SHA, not just the PR number.

Upstream-Issue: confluentinc#154
Forwarded: no
Applied-Upstream: no
The point of mirroring is a clean, known cutoff - "every issue upstream closed
administratively is accounted for here" - not a curated pick of the good ones.
A set filtered by our own value judgement is not a cutoff: the next person
cannot tell "not mirrored because it was junk" from "not mirrored because it
was missed", and that ambiguity is worth far more than the cost of carrying a
few items nobody will ever action.

Drops the decline recommendations from #53, #199, #246 and #57 in favour of
neutral statements of the trade-off, and renames sweep-2023-decline-candidates
to sweep-2023-small-items (status wontfix -> none). The facts that informed
those recommendations are kept - they are useful to whoever picks the issue up
- but they are now framed as input to that person's decision rather than as our
verdict delivered in advance. Fork issues can always be closed later on their
merits, which leaves a visible record; pruning before mirroring does not.

Records the principle in the section header so a later pass does not re-prune.

Upstream-Issue: confluentinc#154
Forwarded: no
Applied-Upstream: no
The 28 mirrors are live as #227-254 (label `upstream-admin-closed`),
with confluentinc#41 -> #233 and confluentinc#319 -> #252 created
and immediately closed as completed, carrying the code evidence that they are
genuinely fixed.

Records the fork numbers on each entry so the mapping is queryable rather than
re-derived, which is the reason this file exists. Adds `fork.fork_issues` (the
plural of the existing `fork_issue`) because several entries deliberately group
upstream items that want designing together, and documents it in the schema
block. Verified: all 28 mirrors are referenced, none missing, no strays.

Also snapshots each upstream title verbatim into its mirror body header, dated
2026-08-07 - the fork titles may drift as these are worked, and the original
wording is what makes an old thread findable.

Upstream-Issue: confluentinc#154
Forwarded: no
Applied-Upstream: no
…er saw

The default sweep is a window search - `updated:>=$since` - so it structurally
cannot see an item whose last activity predates the window, and `last_swept`
only moves forward, so the blind spot grows. That is why upstream's 2023
administrative closures went unnoticed for three years: 28 issues closed with
"Closing Issue" and 35 unmerged PRs closed as "Closing - Stale.", all marked
COMPLETED, none of it triage, none of it visible to us.

Adds `--audit`: no time window, asks "which closed upstream items are neither
tracked in the manifest nor mirrored in the fork?", and flags days where an
implausible number of things closed at once. Run against the real repo it
rediscovers both sweeps from scratch and reports zero unaccounted, which is
also an end-to-end check that the new fork_issues linkage is correct.

Bots are excluded from the PR analysis. Dependabot self-closes superseded
bumps in batches that look exactly like a sweep - 2022-08-16, 2022-10-20,
2023-11-03 and 2024-01-25 are all dependabot - and unfiltered they buried the
two real sweeps in noise. Filtering them surfaced two human PRs that had been
sitting inside those batches (confluentinc#508, confluentinc#650), now recorded
for review.

The report says outright that a bulk day is not proof of a sweep, because a
release triage looks identical from here, and that stateReason COMPLETED is not
evidence of a fix - that assumption is what made this cohort invisible.

Known remaining hole, recorded not fixed: a PR closed alone on a quiet day is
still invisible, since detection keys on bulk.

Upstream-Issue: confluentinc#154
Forwarded: no
Applied-Upstream: no
…ver checked

Discussions were invisible to everything: not in the manifest, not mirrored,
not in any sweep mode. 74 of them upstream, and nothing we run would ever have
mentioned one.

They were NOT swept - no bulk closure, and the largest day (2024-04-02, six
threads) is all answered=true housekeeping. So the failure mode is different
from the 2023 cohort: not administrative closure, just questions nobody
answered, in a place no issue search reaches. Handling differs accordingly -
these want answering or converting, not mirroring wholesale.

The audit now lists zero-reply discussions, excluding release-announcement
threads by title: those legitimately have no replies, and counting them as
neglect would put 9 false positives at the top of the report.

Two finds justify the check on their own. Discussion 542 (zero replies) is a
field report of a transactional consumer stuck in rebalance because it cannot
acquire the produce lock, with the reporter suspecting the revoke-time flush -
the same lock lifecycle as bug-producing-lock-double-release, and they raised
the timeout without effect, which is evidence about the mechanism rather than
the duration. Discussion 883 (zero replies) is the same complaint as fork
mirror #187 but with a runnable reproducer, which #187 lacks.

Upstream-Issue: confluentinc#154
Forwarded: no
Applied-Upstream: no
…eam item

Two notes, both about what is NOT done.

Discussions are not a queue to be converted. There is no pipeline turning
threads into issues, and most should never become one. The rule is a judgement:
if reading a discussion makes us think there is an issue, we raise one - a
normal fork issue on its own merits, citing the discussion as where it came
from. It exists because we believe the problem is real, not because a thread
existed. That also keeps `upstream-mirror` meaning exactly "an upstream issue
we carry", which is what makes the 2023 cutoff verifiable.

The wider obligation is now written down: every upstream issue, PR and
discussion must be accounted for - carried, declined, or genuinely resolved
upstream - not sampled. The 2023 cohort was found only because it was a *bulk*
event; `--audit` keys on bulk closures and zero-reply threads, and both are
proxies that miss whole shapes of problem (a PR closed alone on a quiet day, a
discussion with one dismissive reply, an issue marked COMPLETED with no linked
PR). The audit narrows the field; only reading discharges the obligation.

Also records what has been ruled out, so it is not re-investigated: wiki
disabled, no advisories, all open-milestone issues already mirrored, the orphan
branches accounted for (v0.6.x-dev is the lambda-actor work already captured
via swept PRs; 0.5.3.x's regression fix IS on master as a908e16), and
"upstream pushed today" being a pushed_at artefact rather than new activity.
Left open: project boards need a read:project scope we do not have, and 169
forks are unexamined.
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Dependency Review

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

Scanned Files

None

@claude

claude Bot commented Aug 7, 2026 •

Copy link
Copy Markdown

Claude finished @astubbs's task in 6m 40s —— View job


Claude finished reviewing

  • Gather context (diff, changed files, PR description)
  • Review scripts/upstream-sweep.sh changes (--audit mode)
  • Review src/docs/development/upstream-map.yaml manifest additions
  • Review new docs/inflight/ notes
  • Post review feedback

Summary

This is careful, well-cross-checked work — I traced the manifest's own bookkeeping (the 28 upstream issue numbers, the 28 fork mirror numbers 227–254, and the "2 already fixed / 6 partially addressed / 20 fully open" split) and every count reconciles exactly against the individual sweep-2023-* entries. Good sign the numbers weren't just asserted in the PR body.

One concrete bug found by static analysis (I could not execute anything in this sandbox — see note at the end):

🔴 Two new manifest entries use a group value that isn't in the schema's allow-list

src/docs/development/upstream-map.yaml:435 and :498:

  - id: sweep-2023-null-key-ordering
    group: batching-ordering
    ...
  - id: sweep-2023-topic-priority
    group: batching-ordering

scripts/upstream-map.py (untouched by this PR) defines the allowed set at lines 35–37:

GROUPS = {"rebalance-stability", "metrics-observability", "vertx",
          "java-baseline-kafka4", "features", "deps-security", "deps-major",
          "deps-routine", "build-tooling", "logging-ux", "release", "governance"}

batching-ordering isn't in it, so python3 scripts/upstream-map.py validate will report:

INVALID:
  sweep-2023-null-key-ordering: bad group 'batching-ordering' (allowed: [...])
  sweep-2023-topic-priority: bad group 'batching-ordering' (allowed: [...])

There's no CI job wired to this validator yet, so it won't fail the build, but AGENTS.md tells contributors to run it manually before committing manifest changes ("Validate/render with scripts/upstream-map.py {validate,table,refs}"), and it's currently broken by this diff. Either add batching-ordering to GROUPS in upstream-map.py (if it's meant to be a new category — both entries are genuinely about record ordering/batching, which doesn't fit any existing group well) or reassign these two entries to an existing group.

Fix this →

Things I checked and found sound

  • --audit's fork-mirror title regex (^confluentinc#(?<n>[0-9]+):) matches the current live mirror-title convention. I initially suspected this was stale (an older doc mentioned mirrors shipped as upstream #NNN:), but AGENTS.md confirms docs #167: fix the retry-delay example, and the reference conventions it ran into #196 retitled all 78 mirrors back to confluentinc#NNN:, which is the convention still documented as live. Not a bug.
  • Bot-filtering regex in the PR-sweep jq (test("\\[bot\\]$|^app/") | not) is reasonable for excluding dependabot/GitHub Apps.
  • Cross-reference qualification: all three new docs/inflight/*.md files consistently use confluentinc#NNN / astubbs#NNN qualified forms, satisfying .github/scripts/issue-ref-gate.js (and upstream-map.yaml itself is exempt from that gate).
  • No fork-issue-number collisions: the newly assigned fork_issues: [227..254] don't overlap any pre-existing fork_issue/fork_issues values in the manifest (119, 120, 181).
  • Minor, not worth a fix: sweep-2023-broker-disconnect-commit lists PR 345 in both prs: [345] and related: [185, 345] — harmless redundancy since upstream-map.py refs dedups by (kind, number) and the sweep script sort -us the result anyway.

Not independently verified

This sandbox doesn't allow me to execute python3/gh/shellcheck (all attempts required approval that wasn't available), so I could not:

  • Confirm --audit actually reproduces "zero unaccounted" against the live upstream repo, as claimed.
  • Run shellcheck -S warning / bash -n on upstream-sweep.sh to verify the PR's claim they're clean.
  • Run python3 scripts/upstream-map.py validate myself — the batching-ordering finding above is from reading GROUPS and the new entries side-by-side, not from executing the validator.

Branch: docs/mirror-2023-admin-sweep

@github-actions

github-actions Bot commented Aug 7, 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 28 28 ➖ 0
Duplicated lines 850 850 ➖ 0
Duplication 2.47% 2.47% ➖ 0
Rule Limit Status
Max duplication 5% ✅ Pass (2.47%)
Max increase vs base +0.1% ✅ Pass (+0.00%)

No new clones introduced by this PR.

✅ jscpd (language-agnostic)

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

No new clones introduced by this PR.

Powered by astubbs/duplicate-code-cross-check

@github-actions

github-actions Bot commented Aug 7, 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.36
parallel-consumer-core/src/test/java/io/confluent/csid/utils/CollectionUtils.java 33.28
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.56
parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java 35.36
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.24 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 39.85
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java 36.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 36.58
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 34.97
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 34.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 34.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 34.65
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 61.15 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 54.84 ⚠️
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 40.41
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 37.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 32.75
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 31.49
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 61.15 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 50.86 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 36.87
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 32.51
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 31.74
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 30.28
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.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 32.98
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.24 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 52.94 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 44.54
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 34.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 34.13
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 30.85
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 30.38
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 30.38
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.39
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.84 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 50.86 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 45.55
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 33.98
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/AbstractParallelEoSStreamProcessor.java 32.96
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/TestParallelEoSStreamProcessor.java 31.13
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.55
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 37.14
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 36.87
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 32.71
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.56
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 32.23
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.98
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/RecordContextInternal.java 33.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 32.75
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContext.java 32.23
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 31.74
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.56
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PollContextInternal.java 33.15
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.27
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelEoSStreamProcessor.java 32.96
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.27
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.53
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.36 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 52.94 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 52.13 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 48.5
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 39.85
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 39.69
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 36.9
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 33.31
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 33.31
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/PCRetriableException.java 32.98
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.69
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 31.51
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 30.85
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.21
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.39
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ProducerManagerTest.java 30.71
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.35 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 37.06
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 37.06
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 36.9
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 34.97
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 34.6
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 33.31
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.36 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 51.35 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 49.4
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 46.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 46.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 46.27
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 44.54
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 36.58
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalRuntimeException.java 31.51
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.5
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 46.27
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 46.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 37.45
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 37.45
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 52.13 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 49.4
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 46.15
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 34.65
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 34.13
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 33.31
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV1EncodingNotSupported.java 31.76
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/RunLengthV2EncodingNotSupported.java 31.76
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.03 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 46.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 37.45
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 37.06
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 34.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 33.31
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 31.76
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 30.38
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.03 ⚠️
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/EncodingNotSupportedException.java 46.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/NoEncodingPossibleException.java 37.45
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/BitSetEncodingNotSupportedException.java 37.06
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ExceptionInUserFunctionException.java 34.72
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/InternalException.java 33.31
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/offsets/OffsetDecodingError.java 31.76
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelConsumerException.java 30.38
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.23
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.65
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/state/PartitionState.java 30.23
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.7
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.7
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.65
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/BrokerIntegrationTest.java

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

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/state/LatestResetTailNudgeIT.java 30.5
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.16
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.18
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.41 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 46.98
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 38.64
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.16
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionAndCommitModeTest.java 41.13
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 38.64
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.36
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.36
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.7 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 46.98
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 41.13
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionTimeoutsTest.java

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

File Similarity (%)
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/internal/ProducerManagerTest.java 30.79
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.7 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceHighVolumeTest.java 55.41 ⚠️
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/MultiInstanceRebalanceTest.java 44.16
parallel-consumer-vertx/src/test-integration/java/io/confluent/parallelconsumer/vertx/integrationTests/VertxConcurrencyIT.java 39.09
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.75
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 35.63
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.75
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosScenarioBase.java 38.05
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosRevokeUnderWorkIT.java 30.12
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.04
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.04
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/AbstractRevokeUnderWorkScenario.java 35.63
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/chaostests/ChaosChurnStormIT.java 30.12
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.05
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/state/LatestResetTailNudgeIT.java

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

File Similarity (%)
parallel-consumer-core/src/test-integration/java/io/confluent/parallelconsumer/integrationTests/BrokerIntegrationTest.java 30.5
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.56
parallel-consumer-core/src/main/java/io/confluent/csid/utils/Java8StreamUtils.java 33.28
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.18
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.63
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 49.81
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java 48.03
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.41
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 32.33
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.06 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java 50.76 ⚠️
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.63
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.17 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 56.45 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 49.4
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java 32.33
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.17 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 54.88 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 52.84 ⚠️
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.84 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerCommitTimeoutTest.java 49.4
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerTest.java 46.72
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.45 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerEarlyCloseTest.java 54.88 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/MockConsumerSaslAuthenticationTest.java 46.72
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CommitRejectionTestBase.java 32.41
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.73
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.73
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 49.81
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineRegistryScriptTest.java 33.39
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 48.03
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/QuarantineLaneReportScriptTest.java 33.39
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.26 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java 89.59 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 89.59 ⚠️
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.16
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.21
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/test-integration/java/io/confluent/parallelconsumer/integrationTests/TransactionTimeoutsTest.java 30.79
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ProducerManager.java 30.71
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.13
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 39.22
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 39.22
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.45
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.45
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.26 ⚠️
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 79.0 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 50.76 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java 49.08
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.16 ⚠️
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.53
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.27
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.06 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 90.38 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 89.59 ⚠️
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.26 ⚠️
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 79.0 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 52.06 ⚠️
parallel-consumer-vertx/src/test/java/io/confluent/parallelconsumer/vertx/VertxBatchTest.java 50.32 ⚠️
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.16 ⚠️
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.53
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.27
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.06 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/TestConventionsArchTest.java 90.38 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 89.59 ⚠️
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.51
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 40.41
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 39.9
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java 35.46
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 32.51
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.9
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/VertxParallelStreamProcessor.java 39.37
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/ParallelStreamProcessor.java 32.71
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelEoSStreamProcessor.java 31.49
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/JStreamParallelStreamProcessor.java 30.28
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.67
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 41.51
parallel-consumer-core/src/main/java/io/confluent/parallelconsumer/internal/ExternalEngine.java 39.53
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.67
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelStreamProcessor.java 39.37
parallel-consumer-vertx/src/main/java/io/confluent/parallelconsumer/vertx/JStreamVertxParallelEoSStreamProcessor.java 35.46
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.09
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.06 ⚠️
parallel-consumer-reactor/src/test/java/io/confluent/parallelconsumer/reactor/TestConventionsArchTest.java 91.06 ⚠️
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/TestConventionsArchTest.java 90.26 ⚠️
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.32 ⚠️
parallel-consumer-mutiny/src/test/java/io/confluent/parallelconsumer/mutiny/MutinyBatchTest.java 49.08
parallel-consumer-core/src/test/java/io/confluent/parallelconsumer/CoreBatchTest.java 44.86

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

✅ SpotBugs Report

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

Two new entries used `group: batching-ordering`, which is not in the GROUPS
allow-list in scripts/upstream-map.py, so `upstream-map.py validate` failed on
them. Caught in review on #258.

My mistake was validating the wrong way: I checked the file with an ad-hoc
yaml.safe_load plus a duplicate-id check, which passes happily on a group the
schema rejects, instead of running the project's own validator that AGENTS.md
tells contributors to run before committing manifest changes.

Reassigned both to `features` rather than widening GROUPS. The rest of this
cohort's feature entries already use `features`, so this keeps the cohort
internally consistent, and the ordering/batching distinction is not lost - it
lives where it belongs, on the issues themselves via the `area/batching-ordering`
label (#244, #236). Adding a vocabulary term to a shared schema as
a side effect of a mirroring PR is the larger, less reversible change.

Also drops the redundant 345 from sweep-2023-broker-disconnect-commit's
`related` list, where it already appears in `prs`.

Verified: `upstream-map.py validate` reports OK on 27 entries, and `refs` and
`table` both still render.
@astubbs

astubbs commented Aug 7, 2026

Copy link
Copy Markdown
Owner Author

batching-ordering isn't in it, so python3 scripts/upstream-map.py validate will report: bad group 'batching-ordering'

Correct, and confirmed by running it — thank you. This was a real failure on my side: I validated the manifest with an ad-hoc yaml.safe_load plus a duplicate-id check, which passes happily on a group the schema rejects, instead of the project's own validator that AGENTS.md tells contributors to run before committing manifest changes.

Fixed in 7072a4d. I took the second of your two options — reassigning both entries to features rather than adding batching-ordering to GROUPS:

python3 scripts/upstream-map.py validate now reports OK: 27 entries, no schema errors, and refs / table both still render.

Minor, not worth a fix: sweep-2023-broker-disconnect-commit lists PR 345 in both prs: [345] and related: [185, 345]

Agreed it was harmless, but I was editing the file anyway so I dropped the duplicate — it reads as if 345 is two different things otherwise.

On the three items you flagged as unverified: bash -n and shellcheck -S warning are clean (the single shellcheck hit is pre-existing, on the untouched drift block), and --audit does reproduce zero-unaccounted against the live upstream — that run is what surfaced the two human PRs buried in dependabot batches, confluentinc#508 and confluentinc#650, now recorded in docs/inflight/. Worth noting your read of GROUPS beat my execution of the wrong check, which is the more useful lesson here.

@claude

claude Bot commented Aug 7, 2026 •

Copy link
Copy Markdown

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


Claude finished re-reviewing after fix commit

  • Gather context (diff, changed files, PR description, prior review + fix commit)
  • Re-review PR after fix commit 7072a4d
  • Verify the batching-ordering → features reassignment resolves the schema issue
  • Confirm groups used in the manifest against GROUPS allow-list (static check; validator execution still unavailable — see note)
  • Check the duplicate 345 reference cleanup
  • Post final review feedback

Summary

Commit 7072a4d1 correctly fixes the one concrete bug from the earlier review pass.

batching-ordering group issue — fixed. Both sweep-2023-null-key-ordering and sweep-2023-topic-priority (src/docs/development/upstream-map.yaml:435, :498) are now group: features. I re-read GROUPS in scripts/upstream-map.py:35-37 and diffed it against every group: value currently in the yaml — all 10 distinct values used (build-tooling, deps-major, deps-routine, deps-security, features, governance, java-baseline-kafka4, logging-ux, metrics-observability, rebalance-stability) are members of the allow-list, and there are no remaining batching-ordering occurrences anywhere in the file. Entry count is 27, matching the author's reported validate output (OK: 27 entries, no schema errors).

The chosen fix (reassign to features rather than widen GROUPS) is the more conservative option and reasonable: it keeps this cohort consistent with sibling entries (sweep-2023-api-shape, sweep-2023-async-produce, etc.) that already use features, and it avoids growing a shared schema vocabulary as a side effect of a mirroring PR — a judgment call I agree with rather than the alternative I offered.

Duplicate 345 reference — also cleaned up. sweep-2023-broker-disconnect-commit (upstream-map.yaml:484) now lists 345 only in prs, with related: [185]. This was the "minor, not worth a fix" item from the previous pass; harmless either way, but tidier now.

Not independently re-verified

Same sandbox constraint as before: python3, bash -n, and shellcheck invocations require interactive approval that isn't available here, so I could not execute scripts/upstream-map.py validate myself this round either — the confirmation above is from statically diffing GROUPS against every group: value in the current yaml, not from running the validator. The author's own report (OK: 27 entries, no schema errors, refs/table still render) is consistent with what the static check shows, so I have no reason to doubt it, but it's worth noting as unexecuted.

Verdict

No outstanding issues. The fix is scoped exactly to what was flagged, doesn't touch unrelated content, and the commit message accurately documents both the root cause (wrong validation method used pre-push) and the reasoning behind the features vs. widen-GROUPS choice. Good to merge from a correctness standpoint.

Branch: docs/mirror-2023-admin-sweep

@github-actions

Copy link
Copy Markdown

🧪🔒 Quarantine Lane Report

Quarantined test Outcome Owner Meaning
PCMetricsTest.metricsRegisterBinding 🟡🎲 passed (flapper) #265 proves nothing - passes most runs by nature
ProducerManagerTest.producedRecordsCantBeInTransactionWithoutItsOffsetDirect 🟡🎲 passed (flapper) #262 proves nothing - passes most runs by nature
OffsetEncodingBackPressureTest.backPressureShouldPreventTooManyMessagesBeingQueuedForProcessing 🟡🎲 passed (flapper) ⚠️ unowned 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.

astubbs and others added 2 commits August 12, 2026 16:52
… inflight

The three inflight notes stay - they hold undischarged work - but they were
also carrying permanent content, and inflight is transient by its own charter.

Moved to durable homes, each citing the manifest rather than restating it:

- docs/upstream.md gains the upstream-admin-closed cohort note (with the
  "do not trust 2023-era closure states" rule), the discussions non-mirroring
  policy decided 2026-08-07, documentation of --audit and its known blind
  spots, and the ruled-out upstream surfaces (wiki, advisories, milestones,
  orphan branches, pushed_at).
- docs/solutions/ gains the transferable lesson: a closure state is a
  rendering choice not a triage, "fixed by #N" must be checked against the
  merge bit, windowed watchers need a no-window audit, and bots must be
  filtered before hunting bulk events.
- upstream-pr-analysis.adoc is corrected: it claimed issues were never
  bulk-closed, which the 2023-07-07 sweep disproves, and the PR sweep is
  now confirmed rather than suspected.

The inflight notes now hold only open work, pointing at the new homes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nifest (the state)

docs/upstream.md's opening enumerated everything it owns except the
editorial analysis, and neither source-of-truth reference was a clickable
link. Now the two roles are named explicitly: the .adoc is the plan, the
manifest is the state tracker.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@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 commented Aug 12, 2026

Copy link
Copy Markdown
Owner Author

@codex review this

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d08c5d3c21

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/upstream-sweep.sh Outdated
Comment thread src/docs/development/upstream-map.yaml
Comment thread src/docs/development/upstream-map.yaml Outdated
Comment thread src/docs/development/upstream-map.yaml Outdated
Comment thread docs/inflight/next-upstream-coverage-completeness.md Outdated
…nd correct the sweep cohort

Address PR review feedback (#258).

- upstream-sweep.sh: `gh --paginate` only substitutes a variable named
  `endCursor`; calling it `$cursor` meant the cursor was never fed back and gh
  re-requested page 1 forever (reproduced: 469 identical pages at first:2).
  It only looked healthy because 74 discussions fit in one page of 100. The
  failure was also swallowed by `2>/dev/null || true`, which would have printed
  a clean "(none)" for a broken query - the one answer this mode must never
  invent. Fail loudly instead.

- upstream-map.yaml: the sweep cohort listed 36 PRs against a documented count
  of 35. Upstream closed exactly 35 unmerged PRs on 2023-06-15; confluentinc#66
  (closed 2022-10-19) was carried in by mistake. Listing a ref here marks it
  accounted for, so it was hiding an unrelated PR from every future audit.
  Recorded PR 258 and moved the entry to `pr-open` per the lifecycle rule.

- next-upstream-coverage-completeness.md: dropped the cached counts - inflight
  notes must not record what a command can answer, and the "~100 partially
  mirrored" line already contradicted docs/upstream.md, which says all 78 open
  upstream issues are mirrored with backlinks. Kept only what the audit cannot
  say: what nobody has read yet.

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

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

… say why

The rule said "the manifest tracks upstream PRs only", so mirroring the 2023
sweep cohort into it read as a violation. The rule is what is out of date.

An archived upstream's closed issue numbers and closure events are frozen. Caching
them locally is a read-path optimisation, not a second tracker: grepping one file is
instant, while the same answer from the mirrors costs dozens of API round-trips and
burns rate limit shared across agents. The usual objection to duplication - the copy
silently diverges - needs a source that can still move, and this one cannot.

So the boundary is redrawn where it actually bites: the mirror owns an issue's *live
state* and remains the only place you update it; the manifest may cache what is frozen
(number, cohort, owning mirror). Cache what is frozen; never mirror what is moving.

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

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

The previous commit wrote the rule into AGENTS.md, which is the one place it
does not belong. AGENTS.md's own preamble calls itself a router - "if it only
matters once you are already in a topic... it goes in that topic's doc" - and
docs/upstream.md line 7 already claims ownership explicitly: "AGENTS.md carries
only the pointer and the one-line rule that manifest upkeep is the agent's job."

The rule was in fact already stated twice before this branch (AGENTS.md:442 and
docs/upstream.md:23), so growing the AGENTS.md copy deepened a fragmentation that
was already there. Now stated once, where an agent editing the manifest will
actually be looking, with AGENTS.md left holding the pointer and the one binding
rule whose failure is silent (keep the fork side in sync).

Net effect on the router: one line shorter than master, despite covering more.

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

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

…nearby

Diagnosed from a live miss. A reviewer cited AGENTS.md's "the manifest tracks
upstream PRs only", so that section was read and treated as authoritative - while
docs/upstream.md had been stating the same rule, and claiming ownership of it, the
whole time. The duplicate was then grown in the router rather than fixed at source.

Nothing in the reading path revealed the mistake. AGENTS.md stated a complete-looking
rule and followed it with a pointer listing four adjacent mechanics ("the manifest
schema, the mirrors, the commit trailers and the upstream sweep"), which reads as
*further detail*, not as *this is a summary and that doc wins*. The contract was
written down - docs/upstream.md:7 - but only on the side nobody enters from, since
AGENTS.md is what loads every session.

The anti-duplication rule already existed here ("Never state a fact twice"). What was
missing is the half that makes it discoverable: a cross-reference must name the owner
and say the owner wins, so a reader can tell a stub from the whole rule before editing
the copy. Applied to the rule itself and to the upstream pointer that failed.

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

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@astubbs
astubbs merged commit 66da1cc into master Aug 12, 2026
30 checks passed
astubbs added a commit that referenced this pull request Aug 12, 2026
#291)

AGENTS.md is a router: it holds what binds every session and points at the doc
that owns the rest. That only works if a reader can tell which side is
authoritative from the side they entered on, and most pointers did not say.

It failed that way on #258. A reviewer cited AGENTS.md's
"the manifest tracks upstream PRs only", so that copy was read as authoritative
and amended there - while docs/upstream.md had been stating the same rule, and
claiming ownership of the topic in its own opening, the whole time. Both copies
read as complete; neither said who won.

Two pointers already did it right - docs/ci.md ("stated in one place only... Do
not restate the rule here; it has drifted before") and the refactoring pointer
("see the table above for what it owns"). The rest listed adjacent topics, which
reads as further detail rather than a hand-off. Converted those: testing,
releasing, issue-references, copyright, citations now name the owner and say it
wins on conflict.

Three routed docs never stated their half, so entering from the doc gave no
signal either: bin/AGENTS.md, docs/refactoring.md and docs/inflight/AGENTS.md.
They do now, matching the eight that already did.

Left alone: pointers already carrying the signal, and plain citations, where the
phrasing would be noise. The goal is that a reader can find the owner, not that a
template appears everywhere.

Rejected alternative: a bin/check-doc-ownership.sh gate enforcing the reciprocal
half in CI. Reviewing it found the guard silently skipped a routed doc
(bin/AGENTS.md - fixed by hand here instead), and that its self-test could not
detect the guard checking only one doc of nine. Enforcement machinery for a
documentation convention was not worth its own maintenance burden, let alone its
own bugs. The convention is a review call, which is what the rule now says.

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

Six entries in `src/docs/development/upstream-map.yaml` were stale or about to be.

#204 merged while its entry still said `status: pr-open`, which is what prompted
this. Checking the rest found two more already wrong - #31 (merged the same
morning) and #258 (merged 2026-08-12, stale for a week) - and three belonging to
this PR that would have gone the same way at merge.

**The rule is now: write `merged` in the branch and push it before you merge.** That reads
like claiming something untrue and is not - branch content is visible to nobody until it
lands, and the moment it lands the entry is correct. There is no observable instant where
the manifest is wrong, and nothing to clean up afterwards. Doing it in the other order is
what costs: the branch is gone, the correction becomes a commit straight to master, and
until someone remembers, the manifest lies.

An earlier draft of this took the framing that `merged` is impossible to write honestly
before the merge, and built a `bin/check-upstream-map.sh` plus a scheduled workflow to
detect the resulting staleness on master. That premise was wrong, and everything built on
it was solving a problem that does not need to exist. Deleted in favour of the hook.

`.claude/hooks/check-upstream-map-merged.sh` refuses a `gh pr merge <N>` while an entry
naming that PR still says `pr-open`, and says what to do instead. It gates on the status
rather than on mere mention, so it is silent once the entry is right - a guard that fires
on correct behaviour teaches people to route around it. It fails open on every uncertainty
(no PyYAML, unparseable manifest, no PR number on the command line), because a hook that
blocks on its own bug jams the tool shut.

It is deliberately small and deliberately disposable: all of this exists only until the
last upstream link is closed out, and then it is one file to delete with nothing else to
unpick. The manifest's schema is already validated by `scripts/upstream-map.py validate`,
so this adds no second copy of any rule.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012J2KjzpiUKg2tGFT7B2D2e
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