Skip to content

feat(relation): refuse a template copy as the source identity - #143

Open
seonghobae wants to merge 4 commits into
mainfrom
agent/copy-identity
Open

feat(relation): refuse a template copy as the source identity#143
seonghobae wants to merge 4 commits into
mainfrom
agent/copy-identity

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

A template or pasted copy keeps a distinct identity for relation-aware splits (ADR 0003). It cannot reuse the source document identity or become a state transition. Recovery is the computed share of recovered kinds that match known truth versus collapsing every copy to the source.

Complementary to #136 translation, #139 summarizes, and #75 method_effects (copied-text as a method source, not an identity). This crate owns copy-versus-source identity.

Local gates:

  • `cargo test -p copy_identity --all-targets` GREEN after RED (package did not exist)
  • clippy `-D warnings` PASS
  • workspace contract PASS
  • docstring contract PASS
  • lines 14/14; nightly-2026-08-01 branches 6/6

Does not allocate migration `0008`. Does not recreate `payload_semantics`, `validation_core` claim promotion (#57), or other in-flight crates.

Keep this PR draft. Preferred merge remains #46 only when exact-head required Checks pass and a qualifying independent (non-Cursor/CodeRabbit) APPROVE exists. Do not empty-commit.

A template or pasted copy keeps a distinct identity for relation-aware
splits (ADR 0003). It cannot reuse the source document identity or
become a state transition. Recovery is the computed share of copy
kinds that match known truth versus collapsing every copy to the source.
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

Next review available in: 9 minutes

Limit details: You’ve used the included review currently available.

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?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d564c41-5114-4aeb-8be4-b7021f486b5c

📥 Commits

Reviewing files that changed from the base of the PR and between 7c29e7c and fc9dec9.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (18)
  • ARCHITECTURE.md
  • CHANGELOG.md
  • Cargo.toml
  • README.md
  • crates/copy_identity/Cargo.toml
  • crates/copy_identity/src/error.rs
  • crates/copy_identity/src/kind.rs
  • crates/copy_identity/src/lib.rs
  • crates/copy_identity/tests/copy_identity_contract.rs
  • crates/copy_identity/tests/crate_contract.rs
  • docs/TRACEABILITY.md
  • docs/adr/0003-relational-event-multiple-membership.md
  • docs/adr/README.md
  • docs/research/copy-identity.md
  • docs/research/standards-and-literature.md
  • docs/validation/temporal-event-foundation.md
  • scripts/check_workspace_contract.py
  • tests/quality/test_check_docstrings.py

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 20, 2026 18:02
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current head 37d8697 merges protected main and fixes the previous exact-head CI root cause: repository rustfmt ordering in the copy-identity exports/tests. Focused proof passed: cargo fmt --all -- --check, cargo test -p copy_identity --offline (6 tests), workspace contracts, documentation validation, Rust docstring contract, and git diff --check. The exact-head Checks are rerunning; merge remains gated by one qualifying independent approval.

@devin-ai-integration devin-ai-integration 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@seonghobae

Copy link
Copy Markdown
Contributor Author

Please perform an exact-head OpenCode review of 37d8697 against base main at 7c29e7c. Review only this SHA; do not merge or update the branch.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head validation update (fc9dec9): fixed the quality contract to derive the Rust crate count from scripts/check_workspace_contract.py instead of hard-coding 10. Local evidence: 89 quality tests passed; coverage 100% (991/991 statements, 442/442 branches); workspace, docstring, documentation, and diff checks passed. Please review and rerun Checks against this exact head; merge remains subject to the repository's two independent approvals and protected rules.

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