Repository navigation
v1.2.3
An installer that no longer signs off on work it did not do.
The rc it could not write
A read-only .bashrc produced this:
canary: added the PATH line to ~/.bashrc
canary: added the hook to ~/.bashrc
open a new shell (or: . ~/.bashrc) to meet it.
Nothing had been written. The bird never appeared, the install said it had
worked, and there was nothing to go on.
The installer now checks the append, names the file it could not write, prints
the line to add by hand, and exits non-zero. The binary still installs, because
downloading it did work. There is a test for it, and it compares the rc byte
for byte afterwards.
Error messages that name the real cause
Three different broken settings.json reported the same sentence, about
comments: a directory in place of the file, a file with no read permission, and
valid JSON that is not an object. Somebody with a permission bit set wrong went
looking for a comment that was never there.
canary: ~/.claude/settings.json cannot be read (is a directory) — left untouched.
canary: ~/.claude/settings.json is JSON, but not an object — left untouched.
canary: ~/.claude/settings.json is not plain JSON (comments?) — left untouched.
What was already fine
The same pass threw hostile input at the rest of it: malformed and 2 MB JSON
payloads, a binary transcript, an unwritable ~/.canary, twenty concurrent
writers, COLUMNS of 0 and 1, a second uninstall, fish. All of it held.