Skip to content

feat: restore git as the main sync channel (dual-channel with couch)#96

Merged
vreshch merged 1 commit into
masterfrom
feature/restore-git-channel
Jul 17, 2026
Merged

feat: restore git as the main sync channel (dual-channel with couch)#96
vreshch merged 1 commit into
masterfrom
feature/restore-git-channel

Conversation

@vreshch

@vreshch vreshch commented Jul 17, 2026

Copy link
Copy Markdown
Member

Direction (2026-07-17)

Reverses the couch-only pivot: two channels - git is main, CouchDB becomes an optional channel for paid customers later. This reverts #89 before it ever ships (released 0.2.3 users are still on git; nothing user-facing regresses).

What

  • Reverts feat: delete git sync channel (couch-only device channel) #89: src/git/* + sync-controller + git deps (isomorphic-git, diff3) restored; git = default channel for every memory.
  • Couch stays fully intact at master's state (resilient syncNow returning {error}, missing-leaf pull abort, pendingCount, durable tombstones) - the revert's regressions to src/couch/* were dropped.
  • Routing unchanged in spirit: the server resolution decides per memory (channelForVault); a memory advertised on couch syncs via couch, everything else via git. Future: /api/me capabilities gate which users may have couch memories. No couch UI (fully hidden), per product call.
  • previewSync routes per channel: git = both-way controller preview; couch = the honest outgoing count from fix: honest first-sync preview count; drop Advanced testing UI #92 (SyncPreview.incoming now optional; modal hides the ↓ line for couch).
  • Harness: fake router now advertises git_endpoint (dual-channel server shape); lifecycle test 10 rewritten from "non-couch memory = error" to "non-couch memory routes to git and never touches couch".

Verify

  • npm run verify green - 170 tests / 31 files (restored git suite + couch suite + integration harness).
  • Not run end-to-end against a live vault yet; will dogfood the build in the test vault before the 0.3.0 release.

Reverts #89 (couch-only). Git = default channel for every memory; a memory
the resolution advertises on couch routes to the couch controller (server
decides per memory, future /api/me capabilities gate the paid couch tier).

- src/git/* + sync-controller restored; couch impl stays at master (resilient
  syncNow, missing-leaf abort, pendingCount)
- previewSync routes per channel: git = both-way controller preview, couch =
  honest outgoing count (#92 semantics kept); SyncPreview.incoming optional
- fake router advertises git_endpoint; lifecycle 10 rewritten for dual-channel
@vreshch
vreshch marked this pull request as ready for review July 17, 2026 22:49
@github-actions

Copy link
Copy Markdown

🎉 PR Validation ✅ PASSED

Commit: 9bf0fc13252f27f4b5cf6b11cd00b54bb10bf693
Branch: feature/restore-git-channel

Checks:

  • ✅ Dependencies installed
  • ✅ Type check passed
  • ✅ Linting passed
  • ✅ Format check passed
  • ✅ Tests + coverage passed
  • ✅ Build successful
  • ✅ Store-compliance checks passed
  • ✅ Bundle is mobile-safe

Ready to merge!


🔗 View workflow run

@vreshch
vreshch merged commit c31a151 into master Jul 17, 2026
1 check passed
@vreshch
vreshch deleted the feature/restore-git-channel branch July 17, 2026 22:53
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