Skip to content

docs(crdt): recover durable link intent decision - #196

Open
christian-byrne wants to merge 2 commits into
mainfrom
recovery/cmprec-5-durable-design
Open

christian-byrne wants to merge 2 commits into
mainfrom
recovery/cmprec-5-durable-design

Conversation

@christian-byrne

@christian-byrne christian-byrne commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Preserves the proposed durable-link design from frontend PR #16819. Design and human review history only; runtime remains separate.

Full context for agent readers

Scope

  • Adds the standalone durable-link-intent architecture decision on current CMP main.
  • Preserves presence-gated node deletion, terminal tombstones only for explicit removed_links, kind-specific concrete/promoted/autogrow eligibility, host-owned v2 to v3 migration, compaction retention, and the permanent test matrix.
  • Retains the source checkpoint's Proposed status under CMP's existing decision numbering. The initial recovery revision incorrectly marked it Accepted; that inference was corrected. Recovery authorization does not change architectural decision status. Frontend relocation PR #16644 remains deferred and is not imported.
  • Affected invariants: deterministic/idempotent application (KA-4), common-snapshot replica forks (KA-10), and schema-version read discipline (KA-11). The runtime implementation and frontend consumer work remain separate.

Review carryover

The original approval remains attributable historical evidence only and does not approve this replacement. DrJKL's approval reviewed original commit 72952823f37fe0c3d1242551ea907024e4f49ac6, not this PR.

All six human inline records from three unresolved, outdated source threads are accounted for against original reviewed commit 72952823f37fe0c3d1242551ea907024e4f49ac6:

  • PRRC_kwDOMIrOxs7qPGJz, DrJKL, 2026-09-04: imported v2 baseline and malformed-only refusal. Fixed in the source final and carried into the migration clauses here; replacement text verified.
  • PRRC_kwDOMIrOxs7qQIGp, christian-byrne, 2026-09-04: source response documenting that fix. Context-only provenance; its claims were rechecked against this ADR.
  • PRRC_kwDOMIrOxs7qPGJ5, DrJKL, 2026-09-04: model concrete, promoted, and autogrow eligibility separately. Fixed in the source final and carried into the eligibility table here; replacement text verified.
  • PRRC_kwDOMIrOxs7qQIH7, christian-byrne, 2026-09-04: source response documenting that fix. Context-only provenance; its claims were rechecked against this ADR.
  • PRRC_kwDOMIrOxs7qPGJ_, DrJKL, 2026-09-04: clear cannot create link tombstones without explicit link IDs. Fixed in the source final and carried into the clear transition here; replacement text verified.
  • PRRC_kwDOMIrOxs7qQIJd, christian-byrne, 2026-09-04: source response documenting that fix. Context-only provenance; its claims were rechecked against this ADR.

The source threads remain unresolved and outdated. No thread state or approval is fabricated here. The later runtime alternative in frontend PR #16866 remains a dependency/resume record; this bounded checkpoint does not implement or adopt that runtime patch.

Provenance

Source final: 0fa26a3908f6b7fd74bdb8d8bf097ff4a73804f8; source base: 0e3d52bae389c36f0698a0d588e30f4f3b8dd9ab. The source file was transferred alone, not with its frontend parent. After correcting the status inference, its content is byte-identical to the source final. Raw collaboration exports remain private.

Runtime completion still requires the ADR's full schema-v3 implementation gates, migration and compaction behavior, packed-package/consumer validation, and affected QA reruns. No package is published or deployed by this PR.

Verification

  • git diff --check
  • Exact source-to-replacement content comparison, including Proposed status
  • Existing node-presence, normalized-link-identity, deterministic application, common-snapshot, and schema-version anchors resolve
  • npm run build
  • npm run check:purity
  • npm run check:imports
  • npm run check:pins
  • npm run check:profile-claims
  • npm run check:coderabbit
  • npm run verify:corpus
  • npm test

The full suite of 985 tests ran at the initial recovery head. The follow-up status-only correction received an exact archived-file comparison and diff check; hosted checks must be evaluated at the new head.

@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Warning

Review paused — included plan limit reached

Keep your review moving with free on-demand reviews.

  • Run this review for free

On-demand reviews are free for the next 23 days.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Promotion and pricing details

On-demand reviews are free for the next 23 days. After that, they cost $0.25 per reviewed file.

Review limit details

Or wait 28 minutes for your next included review.

Check out review usage here.

Limit details: You’ve used the included review currently available. Your 113 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: f0d6933c-98fc-4ef2-9046-14726dc40b91

📥 Commits

Reviewing files that changed from the base of the PR and between 6648ed9 and 07c3550.

📒 Files selected for processing (1)
  • docs/decisions/ADR-022-durable-link-intent.md

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

@christian-byrne

Copy link
Copy Markdown
Contributor Author

Exact-head Fallow audit for 07c355031b76ed29402ca1b3d6d350570e432154: the pinned base 6648ed9d222a2ba8fce62cde81fd5fd79f295176 has no Fallow workflow/configuration, so no Fallow-triggering rebase applies. Fallback Fallow 3.24.1 passed against merge-base 0e7d13fea4cf87d11a2fcd67f02135c903f843bc with zero introduced findings. Build, purity, import graph, pins, profile claims, CodeRabbit config, corpus verification, and diff checks passed; the hosted build / purity / test check is green. A local full Vitest rerun produced no result before the bounded wait and was stopped. No product edit, push, or merge was performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:R1 PR risk grade (advisory shadow check; grader-owned)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant