Repository navigation
Move Noura to an all-Rust desktop app and server - #15
Merged
Merged
Conversation
…hority, and keep retries from reopening ended links
…ge never reads the fragment
…eckpoint, and refuse forged policy changes on both sides
…r the push, and test each role's rights and removal at seam 4
…ur role allows, open invitations with role and status, invite, copy, revoke and leave
…nifest, blobs and frames
…new domain's epoch 1 and envelopes
…lds at valid roots, sign profiles at the verified head
…he own-head rule in the validity list, with fixture cases
…nt, and test the workspace limits on both stores
…and add set_access, hand-off and delete_domain on the client
…nt off the chain in a restricted domain
…s section, and test removal across domains
…velope waits for its entry
… and recovery, and refuse a member taken off from rotating or wrapping
… and let a root's own objects outrank a waiting one
…s readers, keep the moved-in warning, and say what waits outside Settings
…the app, and refresh the Members section while it's open
…nt rule and bounded deferred records; add a note's parts in text mode
doc_state called encode_state_as_update_v1, which merges yrs's pending update into the state. A pending struct that repeats clocks the document holds gets cut there, and the cut part names the element before it in place of the origin it waits for. A device that booted from that state, or took a snapshot of it, showed text that devices holding the same records didn't. The state now comes from encode_diff_v1 and holds what the document integrated. Records yrs holds pending stay live under snapshot_covers, so a booted device still takes them. This changes the guest, so the module, its hash and the fixture change with it. The module is built on x86-64 Linux.
Destructuring the setup with .. dropped the unbound server guard at once, which deleted its folder while the server kept answering. A new read connection then failed with SQLite's code 14 and a 500.
Name what never finished when the app's background work times out.
Search reads the index, so it can find the edit before the watch thread announces it.
A background thread can hold the session a moment after the last window goes, and a launch right after then read the tree's folders from before its last change.
A background thread that wakes the windows could hold the session as the last window went, so the workspace's index stayed open on that thread a moment longer. The last window's drop now waits for it, up to a second.
The limiter's windows end at fixed times, so the hour could end between the two requests, as it did at 13:00 on a CI run.
Each workspace open expires old chats on a thread of its own, which held the workspace's index open after the last window went.
A test waiting for a download listed the folder as the download replaced a file, and the read of the file it listed found nothing.
The test forges a refusal for every push, and a checkpoint whose random wait ended went out first and took it.
lobbystack
marked this pull request as ready for review
November 4, 2026 22:09
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.
This pull request moves Noura to an all-Rust desktop app and a Rust sync server. Do not merge it yet: it exists to run CI on macOS, Windows and Linux, and the parity checks still need to pass.
What it adds
noura mcp, served from the desktop binary--smokecheck that fails if one is missingThe legacy app stays in place as a read-only reference until parity holds.
Test status
At
e5a862e8on macOS,cargo fmt, Clippy with warnings denied,cargo denyand both plugin builds passed. So did 3,847 workspace tests, with 0 failures and 26 ignored. This pull request's merge of that commit changed no files.This is the first CI run for this work. Windows and Linux have not built or run it, so expect failures there. The scale and soak jobs in
scale.ymlrun separately, and the notarization check needs Apple secrets on av*tag.