Skip to content

test(cdc): rebuild canonical record snapshot RED on live develop - #289

Merged
github-actions[bot] merged 2 commits into
developfrom
test/cdc-canonical-record-snapshot-106add
Aug 11, 2026
Merged

test(cdc): rebuild canonical record snapshot RED on live develop#289
github-actions[bot] merged 2 commits into
developfrom
test/cdc-canonical-record-snapshot-106add

Conversation

@seonghobae

Copy link
Copy Markdown
Collaborator

Replacement execution lane for #221 from exact live protected develop@106add38465937f6eb4e4accc185fd30aab4446f; stale-base PR #222 is preserved until unique-work equivalence and fresh RED are proven.

Exact test-only head 63cbeb051efc55aee60a5c10c7dc2e00e9ca6b4f adds only the previously proven CanonicalChangeRecordTest. It exercises the real production value object and requires construction-time snapshots for mutable before, after, and pk maps, stable hash identity after caller mutation, continued unmodifiable getters, preservation of null database-row values, and null-map normalization.

Protected production still wraps caller-owned maps with unmodifiable views instead of copying them, so valid hosted RED must compile normally and fail specifically because mutation of a caller-owned backing map changes the constructed record. Setup/import/path/dependency failure is not valid RED.

No production mutation is included. Keep Draft until exact-current-base RED is observed. The eventual GREEN must preserve null row values, insertion order, scalar/public API semantics and use a shallow snapshot rather than Map.copyOf (which rejects null values). Shared exact-source, non-vacuous coverage, dependency/security, governance and independent-review gates remain separate.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 57 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 28cef9b8-fb99-4817-be37-270e5ba8366e

📥 Commits

Reviewing files that changed from the base of the PR and between 106add3 and df287bb.

📒 Files selected for processing (2)
  • cdc-service/src/main/java/com/xtrmetl/cdc/spi/CanonicalChangeRecord.java
  • cdc-service/src/test/java/com/xtrmetl/cdc/spi/CanonicalChangeRecordTest.java

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as ready for review August 11, 2026 17:13
@github-actions
github-actions Bot merged commit ae4efe6 into develop Aug 11, 2026
35 checks passed
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