Skip to content

docs(adr-0007): document retained parent ancestry across implementations - #20

Merged
enmand merged 1 commit into
mainfrom
docs/adr-0007-adoption
Sep 14, 2026
Merged

enmand merged 1 commit into
mainfrom
docs/adr-0007-adoption

Conversation

@enmand

@enmand enmand commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Closes #19.

Documents the now-implemented retained-parent-ancestry rule across the knowledge base and closes the adoption tracking issue.

Changes

  • dwn/protocols.md — new "Parent ancestry" subsection: a child's structural parent is proven by the parent's retained initial write in the expected protocol, not current liveness; a soft delete does not remove ancestry; prune removes it and is terminal; roles/grants stay current-state. New common trap for soft-deleted ancestry.
  • enbox/records.md — new "Parent ancestry and deletes" section for current TypeScript and Rust behavior, including that a pruned parent's rejected descendant settles terminally (superseded, no dead letter).
  • conformance/protocols-and-authorization.md — checklist items: retained-initial-write ancestry for soft-deleted parents, terminal rejection for pruned parents, and arrival-permutation equality.
  • decisions/0007-retained-parent-ancestry.md — status now "implemented in Enbox #1685 and Rust #304"; the parity-divergence note is closed; references dwn-spec#70.
  • implementation/dependency-resolution.md — resolution section updated to reflect that both implementations retain ancestry and that the interim terminal classification for soft deletes is superseded.

Adopters

Issue #19 checklist

  • ADR 0007 recorded
  • implementation/dependency-resolution.md updated
  • DWN-REC-004 sources/related updated
  • Retained-ancestry rule documented in dwn/protocols.md and enbox/records.md
  • Conformance checklist items added
  • dwn-spec clarification filed (enboxorg/dwn-spec#70)
  • Upstream Enbox implementation landed (fix(dwn-sdk-js): preserve parent ancestry after soft deletes enbox#1685)

Records the now-implemented rule in dwn/protocols.md and enbox/records.md, adds conformance checklist items, and updates ADR 0007 to reflect that Enbox and Rust both resolve structural ancestry from the retained initial write (soft delete preserves ancestry; prune removes it and is terminal). References dwn-spec#70.
@enmand
enmand merged commit fd1b120 into main Sep 14, 2026
1 check passed
@enmand
enmand deleted the docs/adr-0007-adoption branch September 14, 2026 14:48
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.

Track ADR 0007 (retained parent ancestry) adoption across implementations and spec

1 participant