github kavinsood/yaos 1.0.0
1.0.0 🎉

latest releases: 1.6.1, 1.6.0, 1.5.1...
one month ago

This release marks the transition of YAOS from a PartyKit prototype to a hardened, native Cloudflare Worker system with an MVCC-inspired storage engine. It represents a complete rewrite of the underlying server infrastructure, the data persistence layer, and the user onboarding experience.

It is now faster, vastly more scalable, and requires absolutely zero terminal interaction to deploy and configure.

  • Zero-Terminal Deployment & Claim Flow: Self-hosting usually dies at the onboarding step. We have completely eliminated the need for CLI tools, OpenSSL secret generation, and .env files.
    • 1-Click Deploy: The server can now be deployed directly from the browser using Cloudflare's "Deploy to Cloudflare" button.
    • Browser Claim Flow: The Worker boots in an "Unclaimed" state. Visiting the URL provides a secure, single-use setup page that generates a hashed token on the edge.
    • Deep-link Pairing: The setup page generates an obsidian://yaos URI that instantly configures the plugin and boots the sync engine. No copy-pasting required.
  • Checkpoint & Journal Persistence: We have replaced the persistence layer with a true database engine model.
    • MVCC Architecture: The Durable Object now utilizes a chunked Checkpoint + Delta Journal storage engine.
    • The Math: Instead of writing a 5MB payload to disk every time you type a character, YAOS now appends a tiny, coalesced delta segment to a sequential journal.
    • Hibernation Safety: The baseline state vector is now cryptographically anchored (via SHA-256) into the checkpoint manifest, ensuring that the Durable Object reconstructs exact, mathematically sound state upon waking from hibernation.
    • Fail-Closed Integrity: Any gap, missing chunk, or hash mismatch during journal replay immediately halts the load, preventing partial state corruption.
  • Native Cloudflare Workers: We have ripped out the PartyKit framework wrapper and ported the entire transport layer to native Cloudflare Workers using y-partyserver.
    • The "Deploy to Cloudflare" button now flawlessly targets the server subdirectory, meaning you can spin up the backend directly from the GitHub repository in 15 seconds.
    • Native R2 Proxy: Deleted the complex two-phase S3 presigned-URL flow. The client now authenticates via Bearer token and PUTs bytes directly to the Worker, which natively proxies them to the bucket.
    • Graceful Degradation: Because Cloudflare requires a credit card to provision R2, the default 1-click deployment is now text-only. The server performs capability negotiation (GET /api/capabilities) and the plugin gracefully disables attachment UI if R2 is unbound.
  • Architectural & Performance Hardening
    • Hot-Start Attachments: The plugin now dynamically hot-starts the attachment engine if it detects capability changes, without requiring a full reload.
    • DOM-Containment Editor Binding: Replaced private CodeMirror access with safer DOM-containment resolution for editor stability.
    • Rename Chains: Hardened rename-batch chain resolution and pending-target tracking to survive complex directory restructures.
    • Fail-Closed Integrity: Journal replays now strictly enforce sequential ordering and SHA-256 hash validation. If a chunk is missing or tampered with, the system fails closed to protect the CRDT graph.
    • State Vector Anchoring: The CRDT state vector is now safely persisted alongside checkpoints, allowing the Durable Object to hibernate and wake up without losing its delta-sync baseline.
    • Optimized Chunking: Subarray-based chunking now batches payload writes for significantly lower CPU overhead during persistence.
  • Architecture Documentation: Added a comprehensive engineering/ documentation hub detailing the mathematical and operational tradeoffs of the system, including the monolithic vs. sharded CRDT debate, the filesystem bridge invariants, and the queue pool behavior.

Deploy to Cloudflare

Don't miss a new yaos release

NewReleases is sending notifications on new releases.