feat: delete git sync channel (couch-only device channel)#89
Merged
Conversation
Remove the git device channel entirely (isomorphic-git + diff3, the git/ client, sync-controller, 3-way merge driver). Couch is now the sole channel: a memory the server has not advertised on couch resolves to an explicit error (Notice + red status dot), never a silent git fallback. - resolve-host: VaultChannel is couch|error; drop buildRepoUrl/gitMemoryFromConfig - main: strip git controller wiring + git-bound-folder guard; route non-couch to error - sync preview modal: couch pending-push count (incoming needs a pull, so omit it) - README/CLAUDE.md: git -> live couch sync; drop isomorphic-git/diff3 attribution - bundle: main.js 344KB -> 40KB (-88%) Merge only after the server-side couch flip ships.
|
🎉 PR Validation ✅ PASSED Commit: Checks:
Ready to merge! ✨ |
vreshch
marked this pull request as ready for review
July 8, 2026 22:53
vreshch
added a commit
that referenced
this pull request
Jul 17, 2026
…96) 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Delete the git device channel from the Obsidian plugin entirely. CouchDB is now the only device channel. A server bridge continues to commit couch edits to git, so the store stays one bare git repo per memory — this change is purely about how the plugin talks to the server.
Why
Simplicity over backward support (owner decision). The git client was the heaviest part of the bundle and duplicated a device channel that couch already covers end-to-end.
Changes
src/git/(git-client, merge-note, backup-ref, http-requesturl, vault-fs, stream-utils, git-test-server + tests),src/sync-controller.ts,src/types/diff3.d.ts, and theisomorphic-git+diff3dependencies. Nothing outsidemain.ts/sync-controller.tsimported them; couch does not sharevault-fs, so no file needed to be kept.resolve-host.ts—VaultChannelis nowcouch | error. Removed git routing (buildRepoUrl,gitMemoryFromConfig) and thegitEndpoint/vaultsfields. Discovery + 1h caching kept; a memory absent fromcouch_vaultsresolves tochannel: 'error'.main.ts— Removed the git controller lifecycle, the git-bound-folder guard, the merge driver, and the git preview path. A chosen memory that is not on the couch channel now surfaces a clear Notice + red status dot ("This memory is not on the new sync channel yet - server update pending"), never a silent no-op or git fallback. Couch sync drives the status dot (syncing/idle/error).pending= queued live pushes + deletes), read from the live controller without a network round-trip.esbuild.config.mjs— node-builtin externals kept (still needed for the desktop~/.agentageconfig mirror + the loopback OAuth listener); only the isomorphic-git comment was dropped.check:bundlegreen.check:hosts+check:docsupdated (isomorphic-git requirement → js-yaml) and green.sync.agentage.iostays a required host (still the discovery endpoint).Deltas
src/git/+ sync-controller alone.main.js344 KB → 40 KB (-88%).Verify
npm run verifyfully green (type-check + lint + format + 109 tests + build + check:hosts/docs/bundle). Version intentionally not bumped (release is a separate step).Do not merge until the server-side couch flip ships. Until every memory is advertised on the couch channel, memories not yet migrated will hit the new error state instead of syncing. This PR stays DRAFT by design.
Follow-up