Rust, Python, TS: a write through a live link at the store path is refused (store-link-rs-py-ts) #150

Merged
libby merged 8 commits from store-replace/link-rs-py-ts into main 2026-11-13 00:01:44 +00:00
Member

Cut variants:cut_spec:cut-store-link-rs-py-ts.r2, ruling variants:ruling:store-live-link-write-refuse (steward, option c). Report variants:cut_report:cut-store-link-rs-py-ts.h1.

A write (push, push_all, delete, flush) at a store path that is a live symlink is refused with StoreLinkedError before the lock or the replace; the link and target are untouched and reads through the link keep working. The R3 tests that pinned replace-the-link now pin refusal; dangling-link writes now report StoreLinkedError (a dangling link is a link), reads keep ENOENT.

Fix batch (report variants:cut_report:cut-store-link-rs-py-ts.h2): Python JsonLinesBackingStore writes and both Rust redb stores (at open) refuse a link too; StoreLinkedError is exported from the TS package entry; CHANGELOGs and the Rust README updated. Windows reparse points unrun.

🤖 Generated with Claude Code

Cut `variants:cut_spec:cut-store-link-rs-py-ts.r2`, ruling `variants:ruling:store-live-link-write-refuse` (steward, option c). Report `variants:cut_report:cut-store-link-rs-py-ts.h1`. A write (push, push_all, delete, flush) at a store path that is a live symlink is refused with `StoreLinkedError` before the lock or the replace; the link and target are untouched and reads through the link keep working. The R3 tests that pinned replace-the-link now pin refusal; dangling-link writes now report `StoreLinkedError` (a dangling link is a link), reads keep ENOENT. Fix batch (report `variants:cut_report:cut-store-link-rs-py-ts.h2`): Python `JsonLinesBackingStore` writes and both Rust redb stores (at open) refuse a link too; `StoreLinkedError` is exported from the TS package entry; CHANGELOGs and the Rust README updated. Windows reparse points unrun. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-rs: a write at a store path that is a link is refused before lock and replace (StoreLinkedError)
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
db7aa6df8a
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-rs: redb stores refuse a link at open; fix the stale link README line; changelog
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
2f18f4a42a
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultcache-rs: redb stores are exempt from link refusal (they keep reading a live link's target); cultcache-py changelog states the dangling-link history truly
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
cf4dd83124
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby force-pushed store-replace/link-rs-py-ts from cf4dd83124
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
to af982659bd
Some checks failed
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
2026-11-12 22:41:10 +00:00
Compare
cultcache-py: the replace docstring says absence to a reader is rare on NTFS, not impossible
All checks were successful
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 21m25s
5600eb3a99
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit 3a8de542de into main 2026-11-13 00:01:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!150
No description provided.