pnpm,uv,mise: mode=rw on /persist state binds (engine default is ro) #34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "glen/pnpm-persist-rw-bind"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
pnpm installin polymer on the thinkpad died mid-fetch withFailed to write cafs: /persist/store/v11/files/xx: Read-only file system. Root cause: the bubblebox engine's default bind mode isro(cli/src/config.rs default_mode), and thepnpm,uv, andmiseentrypoints omittedmodeon their$BUBBLEBOX_DATA_DIR → /persistbinds. The bind reads fine, so every existing smoke (--version,store path,cache dir) passed — the failure only surfaced on the first real write, deep inside pnpm's content-addressed store writer.Every other stateful package (nvim, tmux, atuin, pipx, tealdeer, zoxide, navi, osv-scanner, rust-dev) already carries
mode = "rw"— these three were the stragglers.What
mode = "rw"on the/persistbinds of pnpm, uv, mise (with WHY-comments naming the incident).create = truebind must carrymode = "rw"— this class of bug can't pass lint again.file:tarball fixture (real sha512 integrity, pnpm-generated lockfile) — exercises cafs writes + hardlinks; verified to reproduce the exact EROFS error on a ro bind and pass on rw.cache clean(a real write to/persist/cache).Evidence
Full
tools/verify.sh pnpm uv misegreen on bee (lint + build + smoke + footprint: 57/59/126 MB). Negative test: withmode = "rw"removed, the new pnpm smoke fails with the byte-exact incident error:After merge
CI republishes the signed default entrypoints; on the thinkpad:
bubblebox source update personal && bubblebox apply, then rerun the polymer install. (Interim workaround if needed sooner: a user-side override at~/.config/bubblebox/entrypoints/pnpm.tomlredeclaring the bind withmode = "rw".)