Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
590 commits
Select commit Hold shift + click to select a range
ca35418
feat: send device ID in token and file-token request bodies
dtkav Apr 11, 2026
9b82737
fix: set wsconnected=false immediately on provider disconnect
dtkav Apr 11, 2026
97c5c24
fix: reconnect provider in acquireLock after idle fork reconciliation
dtkav Apr 11, 2026
9f2917e
fix: add destroyed flag to Canvas and SyncFile
dtkav Apr 11, 2026
f3321d4
fix: always sync and markUploaded in uploadDoc regardless of enrollment
dtkav Apr 11, 2026
a33381b
fix: remove user-based echo filter in handleDocumentUpdateEvent
dtkav Apr 11, 2026
8219536
refactor: simplify initializeFromRemote, add setLCA
dtkav Apr 11, 2026
a173e07
fix: use string search for conflict hunk positioning
dtkav Apr 11, 2026
5c7ac71
fix: sync lastKnownEditorText after resolveHunk DISPATCH_CM6
dtkav Apr 11, 2026
80c3873
ci: clear stale repo-local slots before Linux run (#87)
mgmobrien Apr 11, 2026
9143c7b
fix: silence unused CSS selector warnings in PluginSettings
dtkav Apr 13, 2026
c2588e5
fix: use Obsidian CSS variables for diff view colors
dtkav Apr 13, 2026
c8910da
fix: destroy Canvas IndexedDB persistence on teardown
dtkav Apr 13, 2026
e48160f
fix: use cross-platform path separators in jest config
dtkav Apr 13, 2026
9d965d4
feat: add PromiseTracker with recent-completions buffer for debugging
dtkav Apr 14, 2026
1b35030
fix(HasProvider): reset _providerSynced on disconnect/reconnect
dtkav Apr 14, 2026
8bbb51b
fix(SyncStore): only clear pendingUpload when the incoming meta's gui…
dtkav Apr 14, 2026
a2fee83
fix(BackgroundSync): evict destroyed docs from queues; share in-fligh…
dtkav Apr 14, 2026
6607d13
fix(BackgroundSync): guard destroyed docs in sync path; propagate fai…
dtkav Apr 14, 2026
e563b42
feat: per-hunk conflict regions for two-way merge (no LCA)
dtkav Apr 14, 2026
3345cbe
refactor: revocable path proxy; revoke on SharedFolder destroy
dtkav Apr 14, 2026
2561bbf
fix: destroy cas and clear references on SharedFolder teardown
dtkav Apr 14, 2026
06e7be2
fix: wrap plugin onunload steps with error-handling and null references
dtkav Apr 14, 2026
3517cb5
fix: null references in Settings and FolderNavigationDecorations destroy
dtkav Apr 14, 2026
7ba2131
fix: guard async work in UpdateManager, MergeManager, and RelayDebugA…
dtkav Apr 14, 2026
3f87afd
fix: delegate Document persistence state to MergeHSM
dtkav Apr 14, 2026
06f293f
feat: gate PermanentUserData behind enablePermanentUserData flag
dtkav Apr 14, 2026
75cd242
feat: structured EditorHandle for debug editor API
dtkav Apr 14, 2026
5abf0fa
refactor: extract Conflict class from MergeHSM
dtkav Apr 14, 2026
80e7fc8
ci: shard Linux standard suite (#89)
mgmobrien Apr 14, 2026
e718361
refactor: add isEmptyDoc helper for empty-doc detection
dtkav Apr 14, 2026
f20e117
chore: instrument editor/view promises with trackPromise
dtkav Apr 14, 2026
ac98e32
feat: SyncStore forEachWithPending and getCommittedMeta
dtkav Apr 14, 2026
75144d4
fix: unwedge stuck WebSocket connect attempts
dtkav Apr 14, 2026
ab20566
feat: server-authoritative GUID resolution for concurrent creates
dtkav Apr 14, 2026
d0c52cb
refactor: decouple editor plugins from LiveViewManager via editorContext
dtkav Apr 14, 2026
d88a936
fix: bound syncDocWS provider-sync wait with 10s timeout
dtkav Apr 14, 2026
7bacab2
feat: seed tracked remote SVs from the provider's subdoc index
dtkav Apr 14, 2026
dc84d7a
feat: RelayDebugAPI editor handle robustness
dtkav Apr 14, 2026
0c59150
feat: RelayDebugAPI Relay server CRUD
dtkav Apr 14, 2026
2fb0683
feat: RelayDebugAPI folder sync-status queries
dtkav Apr 14, 2026
b2a6be7
fix: HSM handles late-arriving PERSISTENCE_LOADED
dtkav Apr 14, 2026
dfb2ad4
feat: HSM recovery-mode PERSISTENCE_SYNCED synthesis
dtkav Apr 14, 2026
b56c8b4
fix: HSMEditorPlugin tolerates getDoc throwing
dtkav Apr 14, 2026
8603a91
chore: trackPromise on MergeManager.awaitCleanup
dtkav Apr 14, 2026
acaf934
style: scrollable flag list with pinned Apply footer
dtkav Apr 14, 2026
ab251df
feat: SharedFolder safety-net syncFileTree on folder YDoc updates
dtkav Apr 14, 2026
34c8469
refactor: clean up SharedFolder init sequence + trackPromise wraps
dtkav Apr 15, 2026
ef85c26
refactor: Document eager HSM init + LiveViewManager owns lock holders
dtkav Apr 15, 2026
bfec031
chore: remove ShareLinkPlugin (dead code)
dtkav Apr 15, 2026
f212577
feat: close diff view when source file disappears
dtkav Apr 15, 2026
3714790
fix: harden reload/teardown with Promise.allSettled and ordered cleanup
dtkav Apr 16, 2026
2a447f7
chore: remove dead types and orphaned JSDoc
dtkav Apr 16, 2026
1de7e95
fix: RelayDebugAPI lookupDocument rewrite and docstring correction
dtkav Apr 16, 2026
93957ee
fix: downloadDoc uses downloadByGuid to prevent stale content
dtkav Apr 16, 2026
66a292a
fix: decouple editor content from ACQUIRE_LOCK
dtkav Apr 16, 2026
7eff5ae
feat: seed lastKnownEditorText from OBSIDIAN_LOAD_FILE_INTERNAL
dtkav Apr 16, 2026
bec23a3
fix: async robustness guards for connectivity and stale state
dtkav Apr 16, 2026
7d4480f
feat: multi-tab user-edit propagation via viewId-tagged DISPATCH_CM6
dtkav Apr 16, 2026
569746b
fix: conflict hunk repositioning with clamped search
dtkav Apr 16, 2026
83347e8
fix: remove stale "click to check" hint from layers icon
dtkav Apr 16, 2026
6cc37f7
fix: defer disconnect when broadcastMessage updates are pending
dtkav Apr 16, 2026
ab81a5b
feat: add Yjs snapshot helpers for delete-set-aware comparison
dtkav Apr 17, 2026
b9e3fd5
feat: delete-set-aware remote update classification in MergeManager
dtkav Apr 17, 2026
fb126b6
feat: delete-set-aware equality in SyncBridge and idle-merge noop check
dtkav Apr 17, 2026
87459c0
refactor: verify LCA hash patch by content instead of state vector
dtkav Apr 17, 2026
942e35e
refactor: resolve hunk API uses ours/theirs/both/neither
dtkav Apr 17, 2026
2726fae
style: remove stale comment in machine-definition awaitingPersistence…
dtkav Apr 17, 2026
3153e91
fix: Document connect/destroy robustness
dtkav Apr 17, 2026
6aa17d8
refactor: InvalidLinkExtension waits for document.whenSynced
dtkav Apr 17, 2026
cc44ba9
fix: defer document download/remap when server advertises guid withou…
dtkav Apr 17, 2026
491e518
fix: y-indexeddb open-timeout/failure plumbing + PermanentUserData re…
dtkav Apr 17, 2026
9c13c6b
test: disconnect clears stale synced state on HasProvider
dtkav Apr 17, 2026
572a8b6
test: integration replay helpers for JSONL recordings
dtkav Apr 17, 2026
908f3bf
feat: fresh conflict snapshot option for banner display
dtkav Apr 17, 2026
55a044c
fix: seed editor content on plugin reload without OBSIDIAN_LOAD_FILE_…
dtkav Apr 17, 2026
c5588a3
feat: signal persistence readiness from editor seed events
dtkav Apr 17, 2026
8b49dc3
fix: CM6 dispatch recovers from invalid-range / wrong-length errors
dtkav Apr 17, 2026
5b79b24
fix: LiveView release idempotency and destroyed-safe sharedFolder access
dtkav Apr 17, 2026
8981311
feat: RelayDebugAPI listEditors + canonical vault paths
dtkav Apr 17, 2026
039411a
fix: adopt committed GUID after pending upload
dtkav Apr 17, 2026
ae7f819
fix: use app-specific HSM DB name in idb_fork
dtkav Apr 17, 2026
ef4dfbc
fix: stop LoginManager.openLoginPage from resolving false prematurely
dtkav Apr 8, 2026
c7f029b
fix: cancel Document.requestSave debounce on destroy
dtkav Apr 8, 2026
d0f0db8
fix: ensure ResourceMeter mounts only one DOM instance
dtkav Apr 8, 2026
6ef31cd
fix: enqueue newly enabled file types for syncing in syncFileTree
dtkav Apr 6, 2026
f43456b
fix: dedup PocketBase realtime subscriptions and stop retry loop offline
dtkav Apr 8, 2026
b7bd710
fix: handle PROVIDER_SYNCED in idle.{remoteAhead,diskAhead,diverged}
dtkav Apr 8, 2026
965b10c
fix: flush inbound on reconnect in active.tracking
dtkav Apr 8, 2026
beef776
fix: track connectForForkReconcile state listener in unsubscribes
dtkav Apr 8, 2026
75cdc4f
test: seed editor content in HSM test helpers
dtkav Apr 17, 2026
afb314b
test: use acquireLock factory correctly in MergeHSM.test.ts
dtkav Apr 17, 2026
824026a
test: drop removed editorContent from ACQUIRE_LOCK recording fixture
dtkav Apr 17, 2026
c241572
fix: require server consultation before advancing an empty IDB
dtkav Apr 17, 2026
b2926b2
test: cover DISK_CHANGED LCA behavior against the editorViewRef feature
dtkav Apr 17, 2026
48fdd7a
test: make mockEditorViewRef live to mirror production
dtkav Apr 17, 2026
b30a085
test: update duplicate-hunk resolve to ours/theirs API
dtkav Apr 17, 2026
68d98cc
fix: don't hang IndexeddbPersistence.destroy on unresolved open
dtkav Apr 17, 2026
81c1a19
chore: silence svelte css deprecation warning
dtkav Apr 17, 2026
73090ba
fix: preserve frontmatter key order via Obsidian's primitives
dtkav Apr 20, 2026
e7ce81f
fix: coalesce adjacent delete+insert pairs in CM6 dispatch diffs
dtkav Apr 20, 2026
7743eeb
fix: centralize LCA capture via _setLCA chokepoint
dtkav Apr 20, 2026
5daf41f
fix: route "set" CM6 changes via docText DMP
dtkav Apr 20, 2026
2fa89ce
feat: adopt setViewData as ingest point; run two/three-way merge as a…
dtkav Apr 20, 2026
e50dd77
feat: wire canvas embed views through HSM
dtkav Apr 20, 2026
5ae25fd
fix: Y.Map dispatch uses fresh editor read and contiguous diff
dtkav Apr 21, 2026
0020a44
feat: gate folder IDB migration behind flag and self-clean empty husks
dtkav Apr 21, 2026
b12e5b1
fix: route open TextFileView saves through HSM
dtkav Apr 21, 2026
af126f1
fix: preserve markdown save contract in view hooks
dtkav Apr 21, 2026
07debbe
feat: per-folder Canvas and Bases sync toggles
dtkav Apr 21, 2026
ea690a8
fix: validate HSM editor identity against active view
dtkav Apr 21, 2026
54f3cb6
feat: render presence avatars in canvas views
dtkav Apr 21, 2026
bf8f95e
feat: swap folder-nav pill and canvas toolbar icon to Activity in dra…
dtkav Apr 21, 2026
7d2dafb
fix: compute resolve patches from current editor text
dtkav Apr 21, 2026
1b82c9b
fix: bootstrap newly attached CM6 editors
dtkav Apr 21, 2026
8112454
fix: route canvas widget edits through open-view save path
dtkav Apr 21, 2026
d532b04
fix: preserve view id when replaying buffered edits
dtkav Apr 21, 2026
9a468de
chore: clean up stale imports and test formatting
dtkav Apr 22, 2026
541a284
chore: Remove simpleHash
dtkav Apr 22, 2026
23c3a2d
fix: avoid stale pending disk snapshots on reopen
dtkav Apr 23, 2026
4e0364f
fix: bypass preview frontmatter transaction filters
dtkav Apr 23, 2026
f15a42c
feat: stamp `relay: {v: 0}` header on enrollment
dtkav Apr 23, 2026
52e842d
feat: user-attribution highlighting with per-user filtering
dtkav Apr 23, 2026
9d8a574
fix: stabilize conflict resolution after reopen
dtkav Apr 23, 2026
b617502
fix: harden provider sync lifecycle
dtkav Apr 23, 2026
9705b1b
fix: classify remote updates from applied state
dtkav Apr 23, 2026
f21fae6
fix: order conflict diff sides by semantic role
dtkav Apr 23, 2026
cf06acf
fix: absorb text-preserving remote updates
dtkav Apr 24, 2026
e6b8083
fix: preserve editor text through release
dtkav Apr 24, 2026
3588639
fix: capture frontmatter map in text observer
dtkav Apr 24, 2026
485f5ea
fix: avoid websocket reconnect hot loop
dtkav Apr 24, 2026
89d9883
fix: encode empty subdoc query payload
dtkav Apr 24, 2026
cef7acd
feat: query selective subdoc index
dtkav Apr 25, 2026
d875b8d
fix: preserve remote parent paths during cleanup
dtkav Apr 25, 2026
0daefd2
feat: add sync status side pane
dtkav Apr 25, 2026
4d1f71d
fix: stabilize metadata renders while editing
dtkav Apr 25, 2026
fd42b6a
fix: provider backoff prevents hotloops
dtkav Apr 26, 2026
f63de60
fix: skip disk reads for unchanged files
dtkav Apr 26, 2026
ee65390
fix: resolve sync activity authors
dtkav Apr 26, 2026
0b9bb64
fix: skip unchanged sync status updates
dtkav Apr 26, 2026
61c8e35
fix: propagate SyncFile upload failures
dtkav Apr 27, 2026
c3f8195
fix: render SyncFile pills from attachment state
dtkav Apr 27, 2026
2ecfa6b
fixup! fix: propagate SyncFile upload failures
dtkav Apr 27, 2026
0764ded
fix: show not-synced pill without storage
dtkav Apr 27, 2026
63017ad
fix: clean stale folder pills before rendering
dtkav Apr 27, 2026
14cd45c
Add always-on markdown sync setting
dtkav Apr 28, 2026
e2fd1d5
Bootstrap no-LCA docs from synced remote state
dtkav Apr 28, 2026
6c33615
Skip synced docs in folder-wide sync
dtkav Apr 28, 2026
112f9af
Track failed user-visible downloads
dtkav Apr 28, 2026
a5cb358
fix: avoid replaying immediate Postie deliveries
dtkav Apr 28, 2026
30579a7
fix: reduce folder nav sync status fanout
dtkav Apr 28, 2026
8e28c46
fix: resolve conflict hunks by content ID
dtkav Apr 28, 2026
3968811
fix: remove permanent user data tracking
dtkav Apr 29, 2026
98fbeb5
fix: enable device management by default
dtkav Apr 29, 2026
2b994c1
refactor: remove always-on feature flags
dtkav Apr 29, 2026
2b08f64
refactor: remove editor tweens flag
dtkav Apr 29, 2026
143ba54
fix: don't recreate Y.Doc and provider in Canvas.destroy
dtkav Apr 29, 2026
3f03149
fix: clear IDBDatabase IDL handlers and observers in IndexeddbPersist…
dtkav Apr 29, 2026
89a6fa3
fix: clear IDBDatabase IDL handlers in HSMStore.destroy
dtkav Apr 29, 2026
ab118b7
fix: capture HSMStore reference before nulling field in onunload
dtkav Apr 29, 2026
7183cae
fix: don't resurrect PostOffice singleton during plugin teardown
dtkav Apr 29, 2026
6bc6cbd
feat: short-circuit hibernate timers and tear down HSM persistence on…
dtkav Apr 29, 2026
d704ef9
feat: thread TimeProvider through YSweetProvider for timer cleanup
dtkav Apr 29, 2026
9f47191
fix: don't abort onunload when a single teardown step throws
dtkav Apr 29, 2026
0e212fb
chore: route reloadAwait error logging through curryLog
dtkav Apr 29, 2026
3a5d4c8
refactor: remove enableDocumentHistory flag
dtkav Apr 29, 2026
24db0f6
fix: wait for enrollment before provider sync
dtkav Apr 29, 2026
99d8e1d
fix: keep converged disk events synced
dtkav Apr 29, 2026
3b6093c
feat: improve feature flag modal
dtkav Apr 29, 2026
3224a5e
refactor: remove unused HSM sync index
dtkav Apr 29, 2026
8b2353b
fixup! feat: improve feature flag modal
dtkav Apr 30, 2026
459db5c
feat: show link status in diff view
dtkav Apr 30, 2026
6324c15
feat: support subdoc snapshots
dtkav Apr 30, 2026
c779ffa
fix: preserve conflict state across fork reconciliation
dtkav Apr 30, 2026
2c9a8ac
fix: Check download response status before writing file content (#80)
petergaultney Apr 10, 2026
3506a06
fix: show releases outside debugging
dtkav Apr 30, 2026
e97a84b
chore: enable selective subdoc query by default
dtkav Apr 30, 2026
12825e4
fix: Show bug report command outside debug mode
dtkav Apr 30, 2026
d000715
fixup! fix: don't resurrect PostOffice singleton during plugin teardown
dtkav May 1, 2026
570ae8f
fix: compact hibernated HSM state
dtkav May 1, 2026
9a43994
fix: harden HSM resource contracts
dtkav May 1, 2026
4419f4c
fix: recover LCA through merge HSM
dtkav May 4, 2026
5b7621e
fix: detach harness checkout in e2e standard workflow (#98)
mgmobrien May 5, 2026
9b2a239
fix: surface actionable idle conflicts
dtkav May 6, 2026
43f58a9
fix: repair merge hsm no lca recovery and backfill
dtkav May 7, 2026
bd70b7f
fix: quiet expected compacted lca persist noops
dtkav May 7, 2026
340df34
fix: compare canvas data by item id
dtkav May 7, 2026
4a4196c
fix: surface background sync failures
dtkav May 7, 2026
f3f781a
fix: detect local canvas sync mismatches
dtkav May 7, 2026
95cea47
fix: show queue backed syncing and actionable errors
dtkav May 7, 2026
abe4df9
refactor: require merge hsm ydoc persistence factory
dtkav May 7, 2026
5c71098
fix: clear completed merge hsm async invokes
dtkav May 7, 2026
d3bbced
fix: apply cm6 ytext changes from the end
dtkav May 7, 2026
f50002f
fix: resolve connected provider waits
dtkav May 8, 2026
102e302
fix: control background sync queue work
dtkav May 8, 2026
2938e2f
chore: reduce noisy hsm logs
dtkav May 8, 2026
2bbab0e
fix: persist remote activity for sidebar
dtkav May 8, 2026
a20d480
chore: ignore bug report exports
dtkav May 8, 2026
79a3a2d
fix: complete lca enrollment before recovery
dtkav May 8, 2026
ef0108e
fix: set remote download LCA before disk flush
dtkav May 8, 2026
bae3766
fix: smooth folder sync status updates
dtkav May 8, 2026
155cab5
ci: run standard suite for rc tags
mgmobrien May 8, 2026
fc61f9b
ci: publish report site after standard suite
mgmobrien May 8, 2026
f58a88a
ci: refresh report-site target summaries
mgmobrien May 9, 2026
dc58e42
fix: normalize sync error messages
dtkav May 8, 2026
243c356
fix: count terminal sync outcomes in progress
dtkav May 11, 2026
daa3722
fix: log duplicate guid details explicitly
dtkav May 11, 2026
3ca1c8d
fix: humanize internal sync errors
dtkav May 11, 2026
06eb2fc
fix: Support longer X time ago in UI
dtkav May 11, 2026
0e38b93
fix: reject persistence readiness failures
dtkav May 11, 2026
c51976d
fix: open sync sidebar items in new tabs
dtkav May 11, 2026
9aff893
fix: suppress unchanged folder sync snapshots
dtkav May 12, 2026
08e4c39
fix: rebuild missing local document state
dtkav May 12, 2026
3b99565
fix: ingest provider-synced remote snapshots
dtkav May 12, 2026
5d1f3fd
fix: repair stale canvas text during sync
dtkav May 12, 2026
5145351
perf: batch background sync queue notifications
dtkav May 12, 2026
30040c8
fix: keep active sync visible with errors
dtkav May 12, 2026
9228060
fix: show sync issue counts in modal
dtkav May 12, 2026
b83f48d
fix: reset local persistence during document rebuild
dtkav May 13, 2026
8ee9d80
chore: track document rebuild metrics
dtkav May 13, 2026
9318acb
fix: refresh server heads from provider sync
dtkav May 13, 2026
45f1759
fix: persist local heads as snapshots
dtkav May 13, 2026
80e48a7
fix: await teardown during update reload
dtkav May 13, 2026
7e3e740
fixup! fix: y-indexeddb open-timeout/failure plumbing + PermanentUser…
dtkav May 13, 2026
cbee0e9
fix: wait for provider sync before no-LCA conflicts
dtkav May 13, 2026
b9979b8
fix: bound provider sync retries
dtkav May 14, 2026
ba03df7
fix: enqueue remote heads from subdoc index
dtkav May 14, 2026
bcc6908
fix: respect Obsidian trash preferences
dtkav May 15, 2026
38986d2
fix: route timers through time provider
dtkav May 15, 2026
52ff010
fix: qualify browser timer globals
dtkav May 15, 2026
4908564
fix: avoid global object access in runtime
dtkav May 15, 2026
fe78148
fix: move inline Obsidian styles to CSS
dtkav May 15, 2026
32e32a8
fix: align Obsidian UI labels
dtkav May 15, 2026
1056e04
test: move merge HSM fixture loaders out of source
dtkav May 15, 2026
a63e15c
fix: serialize indexeddb compaction
dtkav May 15, 2026
292b518
fix: avoid global document in UI code
dtkav May 15, 2026
83a70b7
chore: clear package lint baseline
dtkav May 15, 2026
1791c20
fix: tighten utility lint types
dtkav May 15, 2026
ff932d8
fix: make lint promise handling explicit
dtkav May 15, 2026
fc35cf8
fix: make UI async handlers lint-safe
dtkav May 15, 2026
8845347
fix: expose persisted fork state in HSM metadata
dtkav May 15, 2026
82360dd
fix: wake no-LCA docs before LCA backfill
dtkav May 15, 2026
9d593c1
fix: wait for full LCA before active merge
dtkav May 16, 2026
969fef4
fix: cold-start synced HSMs safely
dtkav May 16, 2026
ac9a798
feat: record HSM residency metrics
dtkav May 16, 2026
3db830d
refactor: remove Relay self-reload command
dtkav May 18, 2026
1b220af
refactor: open GitHub releases instead of installing updates
dtkav May 18, 2026
585ead9
test: fix Jest timer harness
dtkav May 18, 2026
78a4e63
ci: attest release artifacts
dtkav May 18, 2026
ec8d549
version: bump the beta version to 0.8.0
dtkav May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules/

main.js
archive/
11 changes: 10 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,14 @@
]
}
]
}
},
"overrides": [
{
"files": ["__tests__/**/*.ts", "unit/**/*.ts"],
"rules": {
"no-restricted-imports": "off",
"@typescript-eslint/no-var-requires": "off"
}
}
]
}
275 changes: 0 additions & 275 deletions .github/workflows/e2e-smoke.yml

This file was deleted.

Loading
Loading