Releases: kavinsood/yaos
1.6.1
1.6.0
This release hardens YAOS against frontmatter corruption, based on real incident traces and follow-up stress testing.
Fixed
- Stopped recovery-path amplification where stale editor content could be re-applied after disk-authority repair.
- Added containment guards for unsafe frontmatter transitions on both disk->CRDT ingest and CRDT->disk flush.
- Reduced repeated frontmatter pause-notification churn.
- Hardened handling of transient Obsidian file-metadata race rejections.
Reliability
- Added regressions for bound recovery non-amplification, frontmatter guard/quarantine behavior, external edit policy decisions, and inline task icon + adjacent-line boundary diff safety.
- Added a manual Obsidian vault stress harness for frontmatter/inline-task race scenarios.
Compatibility
- Migration required: no
- Schema compatibility: unchanged
1.5.1
Small quality-of-life patch.
Highlights
- Added a one-time in-app notice when you add an image, PDF, or other attachment without R2 configured, so the gap is visible instead of silent.
- Added a callout in YAOS settings explaining attachment sync isn't active yet, with a direct link to the 1-minute R2 setup video.
1.5.0
This release hardens the Durable Object hot path, reduces reconnect overhead, and fixes a real production crash caused by observability storage. For large vaults and reconnect-heavy usage, especially on mobile or unstable networks, the server should feel more stable and cheaper to wake.
Highlights
- Added lightweight room metadata for schema admission, so websocket compatibility checks no longer need to decode the full vault document in the common case.
- Added single-flight room loading, so concurrent cold-start requests share one startup load instead of duplicating work.
- Moved trace and debug handling off the hydration-critical path, so observability requests no longer wake the full room unnecessarily.
- Serialized daily snapshot “maybe” creation inside the room, preventing duplicate work under concurrency.
- Replaced the old single-value debug trace ring with bounded per-entry trace storage.
- Made trace persistence fail-open, so observability failures cannot take down the sync engine.
Fixes
- Fixed the SQLITE_TOOBIG crash loop caused by the old trace-ring storage model.
- Added bounded trace-entry sizing so oversized trace payloads are truncated safely.
- Added regression coverage for trace sizing, cold-start concurrency, and serialization behavior.
Upgrade
If you already use the GitHub Actions update flow introduced in 1.4.0, update normally through the YAOS server update path. No manual data migration is required.
1.4.0
This release turns server updates into a first-class workflow. YAOS now has a cleaner zero-ops update pipeline, better server capability and update-metadata wiring, safer plugin-side metadata hydration, and clearer compatibility/update errors.
Highlights
- Added reusable GitHub Actions workflows for YAOS server update and revert operations
- Wired update metadata through the server capabilities surface
- Improved plugin-side metadata hydration and provider inference, with safer legacy behavior
- Added explicit compatibility floors and clearer updater error messages
- Documented the canonical deploy/update flow and the zero-ops update pipeline
1.3.1
This release carries the marketplace review fixes on top of the 1.3.0 startup work. It keeps the fast local-first startup path, the attachment startup gate, and the stale queued-download cleanup, and additionally clears the remaining required ObsidianReviewBot findings.
Fixes
- Cleared the remaining required review-bot findings in the worker and plugin code
- Removed unnecessary async signatures from synchronous code paths
- Simplified blob reconcile typing and its call sites
- Tightened the worker CORS response typing around websocket upgrade responses
1.3.0
This release fixes the slow startup path that could trigger Obsidian’s “plugin is taking too long to load” warning on cold or flaky
networks. Core sync startup now begins immediately, while server capabilities are refreshed in the background and cached for later
boots.
Attachment startup is also more conservative and reliable. YAOS now waits until both Obsidian’s layout and YAOS startup are ready
before draining startup-time attachment downloads, which avoids false attachment downloads and create races during early boot.
Fixes
- Removed blocking server capability fetches from the plugin load path
- Cached last-known server capabilities locally and reused them on startup
- Deferred the initial debug server-trace fetch so it no longer competes with boot
- Added startup timing traces for capability refresh and sync initialization
- Gated startup attachment downloads until the vault model is warm enough to trust
- Added a narrow filesystem race fallback for attachment create collisions
- Pruned stale queued attachment downloads at gate-open when local cached hashes already match
Notes
- This release keeps the intentional sync-core hard-delete behavior used for replicated deletes and conflict cleanup
- Existing startup and worker validation passed before release:
npm run buildnpm run lintwith0 errors, 3 warningsnpm run test:regressionsnpm run test:integration:worker
Full Changelog
Full Changelog: 1.2.1...1.3.0
1.2.1
Beta release focused on marketplace review fixes.
Breaking change for beta users: command IDs were normalized to remove the plugin prefix. Rebind any custom hotkeys once after updating.
Also includes the Obsidian review cleanup, UI/settings compliance fixes, configDir-aware exclusions, and plugin-side requestUrl hardening.
1.2.0
Full Changelog: 1.1.6...1.2.0
1.1.6
Full Changelog: 1.1.5...1.1.6