test(outbox): assert cold-poller tracestate co-carry (PR #24 R3 follow-up) #25
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "test/outbox-poller-tracestate-assert"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Header
im2be-platform-libs · PR #24 R3 follow-up (cold-poller tracestate co-carry test) ·
test/outbox-poller-tracestate-assert→mainTL;DR
Closes the lone MINOR from PR #24 R3 (which landed after #24 merged): the cold-poller test asserted only
traceparent, leaving thetracestateco-carry wiring (OutboxPollerWorker→kafkaHeadersFor(..., record.getTraceState())) unguarded against a silent refactor.Summary
GC-23 (b) producer carry merged in #24. R3's minor:
coldPublishReEmitsPersistedTraceparentAndOmitsWhenAbsentsettraceParentbut nevertraceState, so the poller's second-arg wiring was unasserted. Added a persistedtracestateto the row + a verbatimtracestate-header assertion. Unit-level co-carry is already covered byOutboxTraceContextTest.kafkaHeadersForTraceParentAndStateEmitsBothHeaders; this is the narrow poller-wiring guard.Verification
mvn -pl outbox-publisher test -Dtest=OutboxPollerWorkerTest→ 14 green, 0[WARNING].Verdict
NEEDS_REVIEW — test-only; no production change.
Footer
im2be-platform-libs · GC-23(b) R3 follow-up · test-only · 14 green · 2026-06-01
Show previous round
hib-pr-reviewer review — PR #25 (affinity-intelligence-rework/im2be-platform-libs)
Round 1 — head
dcbf1f9a3265, basemain, triggeropenedTL;DR: CONDITIONAL_APPROVE — 1 agreed minor finding kept (stale method name/Javadoc); no blocking issues.
Summary
Reconciliation
No prior run history found in Memora for this PR — this is round 1.
Both A and B independently raised the same finding at the same file (
OutboxPollerWorkerTest.java) and same line (376), both identifying that the enclosing method namecoldPublishReEmitsPersistedTraceparentAndOmitsWhenAbsent(line 340) and its Javadoc (lines 331–337) no longer describe the full scope of the test after the tracestate co-carry assertions were added in this PR. Verification viaReadconfirmed:coldPublishReEmitsPersistedTraceparentAndOmitsWhenAbsent— mentions onlytraceparent.traceparentcontract; no mention oftracestate.tracestateco-carry.The agreed finding is kept with severity minor (both reviewers). B's additional detail about the Javadoc staleness is incorporated into the body as it strengthens the same grounded finding. Run summary persisted to Memora (memory id 491).
Blast Radius
The diff touches a single test file within the outbox-publisher module. No production code is modified. Impact is limited to test discoverability and future maintainability of the tracing assertions.
BLAST_SCORE: 1/10
CI status (head
dcbf1f9a3265)Overall: ⏳ pending
2 checks: 2 pending
Related PRs
Findings (1)
[MINOR] Method name and Javadoc are stale — tracestate co-carry coverage is invisible from both
outbox-publisher/src/test/java/com/aim2be/platform/outbox/OutboxPollerWorkerTest.java:376
The new assertions at lines 376–385 extend the test to verify
tracestateco-carry, but the enclosing methodcoldPublishReEmitsPersistedTraceparentAndOmitsWhenAbsent(line 340) and its Javadoc (lines 331–337) mention onlytraceparent. A reader scanning test results or grepping for tracestate tests will not find this method, and a CI failure report will name only 'traceparent'.Concrete options:
coldPublishReEmitsPersistedTraceparentAndTracestateAndOmitsWhenAbsentand add a sentence such as "When atraceStatewas persisted it is co-carried verbatim as thetracestateKafka header." to the Javadoc.@Test void coldPublishCoCarriesPersistedTracestate()so both concerns are individually discoverable in test reports.coldPublishReEmitsPersistedTraceContextAndOmitsWhenAbsent()if the intent is to group all W3C trace fields together under a single umbrella.Verdict
CONDITIONAL_APPROVE
hib-pr-reviewer • round 1 • 1 finding (1m) • 2026-06-01T14:35:46.853Z → 2026-06-01T14:36:34.819Z • posted-as: pr-reviewer-bot • model: auto
hib-pr-reviewer review — PR #25 (affinity-intelligence-rework/im2be-platform-libs)
Round 2 — head
620185367309, basemain, triggersynchronizeTL;DR: CONDITIONAL_APPROVE — kept 1 verified unique-to-A minor Javadoc style finding; R1 finding confirmed resolved; no blocking issues.
Summary
Round 2 Arbitration — CONDITIONAL_APPROVE
Memora recall returned no prior run history (both queries empty); this is treated as the first arbitration record for PR #25. Memora persistence attempted but failed due to tag-allowlist restrictions.
Reconciliation:
{@code traceState}Java camelCase with{@code tracestate}W3C lowercase in same sentence, lines 335–336)Verification of unique-to-A finding:
Readat offset 328 confirms lines 335–336 read exactly as A described —When a {@code traceState} was persisted it is(line 335) followed byco-carried verbatim as the {@code tracestate} header.(line 336). The mixed capitalisation within a single sentence is factually present. Finding kept.Prior R1 finding: Both reviewers agree it is fully resolved (method renamed, Javadoc updated, assertions added). Not re-raised.
Kept 1 unique-to-A verified finding. Dropped 0.
Blast Radius
The diff touches a single test file only — no production classes, no exported interfaces, no migration files. The change is entirely additive (new assertions + Javadoc update). Blast radius is effectively zero beyond the test suite.
BLAST_SCORE: 1/10
CI status (head
620185367309)Overall: ⏳ pending
2 checks: 2 pending
Related PRs
Findings (1)
[MINOR] Javadoc mixes
{@code traceState}(Java field) and{@code tracestate}(W3C header) in the same sentenceoutbox-publisher/src/test/java/com/aim2be/platform/outbox/OutboxPollerWorkerTest.java:335
Line 335 reads
When a {@code traceState} was persisted it iswhile line 336 continuesco-carried verbatim as the {@code tracestate} header.The first token uses the Java setter capitalisation; the second uses the W3C spec name. Both are individually correct but switching conventions mid-sentence causes readers who scan@codetokens as spec names to see two apparently different identifiers for the same concept.Proposed fix — use the W3C lowercase name throughout, since the Javadoc describes the observable Kafka-header contract rather than the Java API:
Alternatively, if calling out the Java field is intentional, prefer the linked form:
{@link OutboxRecord#getTraceState() tracestate}.Verdict
CONDITIONAL_APPROVE
hib-pr-reviewer • round 2 • 1 finding (1m) • 2026-06-01T14:39:31.591Z → 2026-06-01T14:40:52.088Z • posted-as: pr-reviewer-bot • model: auto