Skip to content

fix(sync): backup, snapshot, Gate B and exodus opens run in sync mode off (T13336) - #2009

Merged
kryptobaseddev merged 11 commits into
mainfrom
feat/T13336-sync-mode-off
Oct 11, 2026
Merged

kryptobaseddev merged 11 commits into
mainfrom
feat/T13336-sync-mode-off

Conversation

@kryptobaseddev

Copy link
Copy Markdown
Owner

T13336: backup, snapshot, Gate B, exodus and bundle opens run in sync mode off

Stacked on #2007 (feat/T13366-retire-confirm). No CI until it is retargeted to main.

  • openDualScopeDbAtPath takes syncMode: 'live' | 'off'. It defaults to off for dedicated handles and for any path that is not <root>/.cleo/cleo.db or <cleoHome>/cleo.db. Off skips the capture open pass entirely: nothing is installed, verified or dropped, and there is no rebind. Live runs syncOpenPass once any sync.* flag is on. It is lazy-loaded, so the CLI startup graph is unchanged (gate 39 green).
  • Exodus migrate, on-open and reconcile opens, and the Gate B opener script pass off explicitly. Backup, snapshot, bundle staging and credential transfer open raw files, and a test pins each path.
  • 6124c80: since feat(T13305): row uids fill by default (canary); refusal is quiet; #1952 LOWs #1964 made row uids default-on, every open runs a structural bracket for the uid fill. That bracket, and the migration-runner hooks, reinstalled capture triggers whenever sync.capture was set, so a sync-off open gained triggers it never had. Both now regenerate only the triggers they dropped.

Tests: store-sync-mode.test.ts passes 18/18, including 2 new bracket tests. 5 mutation checks killed. The 59 sync and cloud test files pass; so do bracket-foreign-keys, capture, rewriters-capture, exodus-capture-bracket, migration-runner-fk/parity, sync-triggers-repair and repair (122). tsc -b, build, gate 39 and gates 28/36/37/38 pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VjjTKbQXyCFdkLBSeuyKLt

kryptobaseddev and others added 9 commits October 9, 2026 22:35
openDualScopeDbAtPath takes a sync mode (journal spec 1.5). A canonical,
non-dedicated open is live: the capture open pass runs and, once a sync flag
is on, the replica bind (syncOpenPass). Every dedicated handle and every
other path is off: no capture trigger installed, verified or dropped, no
bind or rebind. Exodus opens and the real-store Gate B opener pass off
explicitly; backup, snapshot, bundle staging and credential transfer open
raw files and never reach the open pass. A test pins each path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… dir (T13336)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…13336)

With row uids on by default (#1964), every open runs a structural bracket
for the uid fill. The bracket reinstalled capture triggers whenever
sync.capture was set, so a sync-off open (dedicated, Gate B copy) gained
triggers it never had. The structural bracket and the migration-runner
hooks now regenerate only what they dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VjjTKbQXyCFdkLBSeuyKLt
# Conflicts:
#	packages/core/src/store/exodus/reconcile.ts
…-family.ts (T13531)

Main moved buildFreshProjectStore into exodus/bare-family.ts without the
T13336 syncMode: 'off', and the pinning test listed only migrate, on-open
and reconcile. Add the option and pin the file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from feat/T13366-retire-confirm to main October 11, 2026 08:26
kryptobaseddev and others added 2 commits October 11, 2026 07:27
…est reads (T13336)

scripts/__tests__/ci-code-filter-script-deps (T13175) requires every
script a package test reads to be in the ci.yml and macos-main.yml code
filters; store-sync-mode.test pins scripts/row-identity-real-store-gate-b.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kryptobaseddev added a commit that referenced this pull request Oct 11, 2026
…est reads (T13466)

Same fix as #2009: this integration branch carries T13336's
store-sync-mode.test, which pins scripts/row-identity-real-store-gate-b.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kryptobaseddev
kryptobaseddev merged commit 5f4ac83 into main Oct 11, 2026
103 checks passed
@kryptobaseddev
kryptobaseddev deleted the feat/T13336-sync-mode-off branch October 11, 2026 16:50
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