Skip to content

docs(platform): design the Cotal fork-sync + branch-model reset - #14

Open
seal-agent wants to merge 1 commit into
mainfrom
upstream-cotal-fork-sync-design
Open

docs(platform): design the Cotal fork-sync + branch-model reset#14
seal-agent wants to merge 1 commit into
mainfrom
upstream-cotal-fork-sync-design

Conversation

@seal-agent

Copy link
Copy Markdown

sealedsecurity/Cotal has drifted too far to keep building on: origin/main (d55c6adb) is 815 commits behind upstream/main (8571c1bb) with 7 sealed commits, and origin/sealed-fork (0106d35c) is 33 ahead / 723 behind. This record designs the branch-model reset Matt decided: main becomes a clean upstream mirror, sealed-fork becomes the integration branch (new main + sealed changes reapplied via reviewed PRs).

What this is

A design record (the plan, not the implementation) at docs/designs/platform/cotal-fork-sync.md. Its merge freezes the contract executing agents read. The frozen intent — sync-then-reapply — is Matt's and is not relitigated here; the record designs the HOW: migration sequence, curated reapply inventory, coordination with in-flight branches, and per-feature verification.

Approach

Hard reset + curated cherry-pick reapply, human-gated at the two shared-branch moves (Matt force-moves main to upstream and resets sealed-fork to it; archive tags pin the old tips first so no history is lost). The ~40 sealed commits collapse into 4 reapply lanes (oh-my-pi connector, zellij runtime, KV-watch-leak port, mint identity-reuse port), each its own PR with its own build+smoke gate, plus an explicit drop list (@cotal-ai/pi superseded by upstream's parallel extensions/pi; yaml workarounds dead now that upstream declares yaml ^2.9.0; upstream-cotal-reconnect-logger subsumed by fe6d3ec1).

Red-team applied

Draft was adversarially reviewed (design-critic) and every load-bearing finding verified at source before folding. The decisive correction: the connector lane (T4) is not the cheap tree-copy it first looked — its loop.ts imports InboxTurn from @cotal-ai/connector-core, a seam upstream deleted and re-landed in extensions/pi with a different contract (tombstone ledger). T4 is a semantic port on par with the others. This is surfaced as OQ-7 (resurrect the old seam vs migrate onto upstream pi's exported ledger — recommend the latter).

Open Questions (Matt rules before freeze)

7 load-bearing forks, each with a stated assumption + recommendation: PR #13 disposition, reapply-set curation, connector reconciliation with zheng's parallel branch, main-move execution ownership, where sealed-only artifacts live across the reset, hard-reset-vs-rename-cutover, and the connector InboxTurn strategy (OQ-7).

Spec-impact: none. This is a process/branch-model design record under docs/designs/, not a change to docs/specs/.

Co-authored-by: Matt Wilkinson matt@sealedsecurity.com

`sealedsecurity/Cotal` has drifted too far to keep building on: `origin/main` (`d55c6adb`) is **815 commits behind** `upstream/main` (`8571c1bb`) with 7 sealed commits, and `origin/sealed-fork` (`0106d35c`) is **33 ahead / 723 behind**. This record designs the branch-model reset Matt decided: `main` becomes a clean upstream mirror, `sealed-fork` becomes the integration branch (new `main` + sealed changes reapplied via reviewed PRs).

## What this is

A design record (the plan, not the implementation) at `docs/designs/platform/cotal-fork-sync.md`. Its merge freezes the contract executing agents read. The frozen intent — sync-then-reapply — is Matt's and is not relitigated here; the record designs the HOW: migration sequence, curated reapply inventory, coordination with in-flight branches, and per-feature verification.

## Approach

Hard reset + curated cherry-pick reapply, human-gated at the two shared-branch moves (Matt force-moves `main` to upstream and resets `sealed-fork` to it; archive tags pin the old tips first so no history is lost). The ~40 sealed commits collapse into 4 reapply lanes (oh-my-pi connector, zellij runtime, KV-watch-leak port, mint identity-reuse port), each its own PR with its own build+smoke gate, plus an explicit drop list (`@cotal-ai/pi` superseded by upstream's parallel `extensions/pi`; `yaml` workarounds dead now that upstream declares `yaml ^2.9.0`; `upstream-cotal-reconnect-logger` subsumed by `fe6d3ec1`).

## Red-team applied

Draft was adversarially reviewed (design-critic) and every load-bearing finding verified at source before folding. The decisive correction: the connector lane (T4) is **not** the cheap tree-copy it first looked — its `loop.ts` imports `InboxTurn` from `@cotal-ai/connector-core`, a seam upstream **deleted** and re-landed in `extensions/pi` with a different contract (tombstone ledger). T4 is a semantic port on par with the others. This is surfaced as **OQ-7** (resurrect the old seam vs migrate onto upstream pi's exported ledger — recommend the latter).

## Open Questions (Matt rules before freeze)

7 load-bearing forks, each with a stated assumption + recommendation: PR #13 disposition, reapply-set curation, connector reconciliation with zheng's parallel branch, main-move execution ownership, where sealed-only artifacts live across the reset, hard-reset-vs-rename-cutover, and the connector InboxTurn strategy (OQ-7).

Spec-impact: none. This is a process/branch-model design record under `docs/designs/`, not a change to `docs/specs/`.

Co-authored-by: Matt Wilkinson <matt@sealedsecurity.com>
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