DUNIN7 · LOOMWORKS · RECORD
record.dunin7.com
Status Current
Path investigations/loomworks-provenance-threads-finding-one-edge-one-end-v0_2.md

Loomworks — Provenance-Threads Reframe Finding — One Edge Is Visible From Exactly One End — v0.2

Version. 0.2 Date. 2026-07-27 Change from v0.1. CR number corrected from provisional CR-2026-146 to CR-2026-154, assigned from the record sequence (highest present: CR-2026-153). No other change. Status. Finding. Filed where provenance-threads reframe findings accumulate, per the graph-hygiene drafting handoff §6. Records a structural limitation for the reframe to absorb; designs no fix. Source. Graph-hygiene step-0 inspection report §B.8a (2026-07-27); CR-2026-154 CD-1.


The finding

A relationship's endpoint references are MemoryRef — exactly two fields, id: UUID and version: int | None (memory/base.py:94–103). MemoryRef carries no engagement id. The relationship object itself carries a single engagement_id (inherited from MemoryObject), and every relationship read filters on it: list_relationships_for_assertion (engagement/assertions.py:936–974) and GET /engagements/{eid}/relations/{rid} (relations.py:74–116) both scope to one engagement.

Consequence: a cross-engagement relationship is visible from exactly one end — the end living in the engagement the edge was written into. The far end cannot see the edge, and the edge cannot express where its far endpoint lives.

Where it bites today

The redirect edge (CR-2026-154, item 1a). The target engagement owns the edge (Operator decision D-1), so provenance walks from the living assertion reach the retracted source — but the source engagement cannot see that its retracted assertion was redirected anywhere. Source-side traversal survives only because the redirect_from_* metadata keys carry the engagement id the ref type cannot. The metadata is therefore load-bearing, not historical — a correction to the graph-hygiene scoping note, preserved in CR-2026-154 §5.

Why it belongs to the reframe

The provenance-threads model (seed v0.13 candidate) commits to threads that are walkable in both directions — outward to origin, inward from derived material. A reference type that cannot name its far endpoint's engagement, combined with engagement-scoped reads, makes cross-engagement threads walkable from one side only. Whatever shape the reframe lands — engagement-qualified refs, a cross-engagement relationship read, mirrored edges, or something else — it must resolve this, and the redirect edge plus its metadata keys are the live case to design against.

No fix is proposed here.


DUNIN7 — Done In Seven LLC — Miami, Florida Loomworks — Provenance-Threads Reframe Finding — One Edge Is Visible From Exactly One End — v0.2 — 2026-07-27