Repository navigation
Releases: rgon/ncrsDesktop
Releases · rgon/ncrsDesktop
Release list
ncrs: v0.1.93
ncrs: v0.1.92
ncrs: v0.1.91
0.1.91 (2026-10-24)
Features
- core: lock documents on the server while LibreOffice, Office, Vim or Kate has them open (a3bc075)
- core: upload large files early while keeping the whole local copy, falling back to a whole-file upload (61d5655)
- gui: setting to lock documents on the server while you edit them (9885873)
- gui: setting to respect Nextcloud file locks (97e5430)
- keep a cached local copy of saved files by default, cleared by purge and the cache limits (d74fec5)
Bug Fixes
- core: a finished early upload stays as the file's cached local copy (56ac097)
- core: an aborted restart resumes a low-disk upload, and a finished early upload hands its copy to a pending rename (b5836c0)
- core: an edit saved offline is read back instead of the older cached copy (6851184)
- core: keep a document's lock until our own save of it lands, and never mistake our lock for someone else's change (7c08466)
- core: saves follow renames and keep both versions on a server conflict instead of overwriting (8cc6522)
ncrs: v0.1.90
0.1.90 (2026-10-23)
Features
- core: register passthrough backing files through ncrs-passthrough and run the daemon without capabilities (96e5d7e)
- fuser: let a backing broker perform the passthrough backing ioctls (9729226)
- passthrough: add ncrs-passthrough, a capability-holding helper that only registers and releases FUSE backing files (001ad07)
Bug Fixes
- core: refuse control characters and parent segments in IPC paths, keep trailing spaces in path arguments, and strip control characters from server owner names (351c743)
- deb: grant cap_sys_admin to the passthrough helper only, strip it from /usr/bin/ncrs, and apply it when libcap2-bin arrives later (373a636)
- e2e: build the ncrs-passthrough binary too, since --bin ncrs limited every package to that one binary (758c53c)
- rpm: set cap_sys_admin on the passthrough helper with %caps instead of setcap on /usr/bin/ncrs in %post (c59f6b6)
ncrs: v0.1.89
ncrs: v0.1.88
ncrs: v0.1.87
0.1.87 (2026-10-22)
Features
- core: add a per-inode FIFO scheduler and a fixed fuse worker pool for FUSE requests (96807bf)
- core: add a setting to turn off streamed uploads and start streaming at 100 MB instead of 10 MB (2ae74c4)
- core: drain the per-inode scheduler before a planned restart hands the FUSE connection over (d677f78)
- core: keep the mount and open files alive across a daemon restart by handing the live FUSE connection to the next daemon (90ec216)
- core: make systemd the only restart keeper: drop the fd holder, hand over on SIGTERM, ping the watchdog, and fix the handoff review findings (ef0cd79)
- core: run FUSE requests on the fuse pool ordered per inode so one slow request no longer freezes the whole mount (dbe9b2b)
- core: stream a large new file only while the disk is low, and upload a long tail at close in chunk-sized pieces read one at a time (a4f3154)
- fuser: carry a reattach patch that runs a session on an already-initialised /dev/fuse connection (15841c5)
- gui: start the daemon as the ncrs.service user unit and wait out its restarts instead of showing Unmounted (6620382)
- packaging: run ncrs as a watched systemd user service that keeps the fd store across restarts only, and document restart survival (2dd375a)
Bug Fixes
- core: address the per-inode scheduler review: cut the sent chunk out in place, keep fuse workers warm, park uncached lookups, move a renamed folder's subtree, apply stream settings live (c834513)
- core: address the restart-survival and disk-reserve review: one streamed chunk per write, keep streaming once started, small copies where chunks can't be cut out, bound a stalled takeover, restore signals after a failed exec (1461071)
- core: find an older writer behind newer clean or failed handles, answer EIO for already-streamed bytes, probe hole punching at mount, and drop the unshipped snapshot compatibility (c9d48ac)
- core: keep a streamed file's first chunk local until close for muxer trailers, read a writer's whole-file staging before its first write instead of downloading again, and stage write() data outside the open-files lock (447b9f8)
- core: leave a reattached connection in the systemd fd store instead of storing it again, and never FDSTOREREMOVE a copy of the one taken (cbceaed)
- core: let MIME sniffs and queued streamed finishes read correctly, fail a failed writer's own reads, agree on the newest writer for size, and remember only unsupported hole punching (533f39f)
- core: punch sent chunks out of a staging file laid out at the file's own offsets instead of cutting or copying, give up a stalled takeover from the watchdog, and re-exec with execve directly (0f550aa)
- core: resolve a read's queued upload as the newest one for the path again, share the staged-size lookup, and rate-limit the streamed-away warning per file (534cf39)
- core: resolve a read's queued upload newest-first and stop at a delete, take rename's staged size before the cache lock, share one newest-writer rule, and throttle the hole-punch probe (3d67e65)
- core: route handoff threads through bg and point the lockfile at the vendored fuser (3c95403)
- core: send one streamed chunk per write as a sliding window so crossing the threshold no longer freezes the mount while 100 MB uploads (bc7c06a)
- core: stage in full where holes can't be punched, never serve or extend a failed handle, version the handle snapshot, and only exit on a takeover that is still stalled (5c99976)
- core: stop a read's queued-upload search at a delete unless a rename onto the path came after it, and take rename's staged size from the source inode (6232460)