Skip to content

feat: gate template source formats before component rollout - #63

Merged
dapi merged 13 commits into
mainfrom
feat/141-source-format-bridge
Sep 7, 2026
Merged

feat: gate template source formats before component rollout#63
dapi merged 13 commits into
mainfrom
feat/141-source-format-bridge

Conversation

@dapi

@dapi dapi commented Sep 6, 2026

Copy link
Copy Markdown
Owner

A CLI predating component support could install an unfamiliar template as a legacy payload. Add a source-format gate shared by init, pull, resolution plans and doctor repair, plus a machine-readable capabilities handshake. The bridge accepts the pinned legacy template f1f04de and declared legacy/v1 sources; unknown manifestless and component sources fail before downstream mutation.

The canonical-source canary also exposed an existing ownership bookkeeping bug: locally adapted files must persist their ownership even when no payload bytes change. Git object reads now ignore local replacement refs, and the canary selects the canonical template independently of the CLI build revision.

Validation at 3b434fd:

  • Required CI is green: Validate, Local init/update E2E (28 scenarios plus actual-binary source-format fixtures), and Stable downstream smoke.
  • Canonical downstream canary passes using the CLI installed from that GitHub commit and template f1f04de843aef45a2425d4a7351d577bbf89e940. Authored changes survive; repeated pull, lint and doctor pass.
  • Independent code-converge review–fix cycles converged. Full implementation review and successive delta reviews are clean; the final delta and separate full simplification review completed cleanly on September 6, 2026 at 23:50/23:51 UTC.
  • Locally built final bridge SHA-256: 04a6b98ecec8728ac3be08a8740247e2b83470d966ce784396fd09c5a221c005. Go tests/vet and actual-binary preservation/rejection fixtures pass.

This is W1 of #62 and supports dapi/memory-bank#141. It closes neither issue. Release the bridge before the component-aware CLI and template. Custom manifestless sources outside the explicit allowlist must retain their previous CLI or add the declaration and deliberately repin. Release publication, merge and live downstream migration remain outside this PR.

* docs: define component runtime execution plan

* refactor: avoid repeating source JSON validation

* docs: define durable component recovery execution

* feat: add component contract validation primitives

* fix: enforce frozen validation and projection boundaries

* fix: distinguish historical replay from transition authorization

* feat: compose component installations and explicit document transactions

* feat: complete component migration and explicit adoption runtime

* fix: reject unsupported URI schemes before relocation

* ci: fetch legacy ancestry for component migration fixtures

* fix: clarify template ownership with compatible renderer v3

* fix: preserve draft links and recognize source projections

* refactor: remove duplicate evidence sorting
@dapi
dapi merged commit aafd1cf into main Sep 7, 2026
4 checks passed
@dapi
dapi deleted the feat/141-source-format-bridge branch September 7, 2026 09:28
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