Receive source-owned depends_on edges through Forge projection (STATE-WP-0094-T05)
Derive frontmatter and task-block depends_on edges from the pinned commit and reconcile workplan_dependencies under an explicit ownership contract: only forge:<repo> rows are created or removed, external relations are preserved, missing/ambiguous/self targets are recorded and hold owned edges, failures roll back, and repeat receipts are noop. Additive migration b3c4d5e6f7a8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 671493@bnt-lap001 Assistant-Session: 60d7b11f-78f9-4731-9367-918511b2762d
This commit is contained in:
parent
b2af3c1c1d
commit
fceb5f27f0
6 changed files with 637 additions and 0 deletions
|
|
@ -91,6 +91,13 @@ class WorkplanDependency(Base, TimestampMixin):
|
|||
String(40), nullable=False, default="blocks", server_default="blocks", index=True
|
||||
)
|
||||
description: Mapped[str | None] = mapped_column(Text, nullable=True)
|
||||
# Source-edge ownership (STATE-WP-0094-T05, docs/forge-dependency-edge-receiving.md).
|
||||
# ``forge:<repo-slug>`` when normal Forge receiving derived this edge from
|
||||
# that repository's files; NULL for externally authored relations (API,
|
||||
# MCP, consistency fix path), which receiving never removes.
|
||||
source_owner: Mapped[str | None] = mapped_column(String(160), nullable=True, index=True)
|
||||
# Immutable source commit that first introduced the source-owned edge.
|
||||
source_commit: Mapped[str | None] = mapped_column(String(64), nullable=True)
|
||||
|
||||
from_workplan: Mapped["Workplan"] = relationship( # noqa: F821
|
||||
"Workplan", foreign_keys=[from_workplan_id]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue