`brew install gnu-sed --with-default-names` fails with "invalid option"
- Homebrew dropped per-formula option flags years ago. The flag existed
to install GNU sed as `sed` rather than `gsed`, which is now the
opposite of what we want, so drop it and note why in the comment.
`oven-sh/bun/bun` no longer resolves; bun has since moved into
homebrew-core, so install it by its plain name. This line has been
failing on every bootstrap, which is why bun was never actually
installed.
Neither aborted the script (there is no `set -e`), they just failed
their own install and carried on. Verified all 47 formulae and 6 casks
now resolve and none are deprecated or disabled.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Prepending the coreutils/findutils/gnu-sed/grep gnubin dirs put GNU
stat, date, sed, grep and find on the PATH under their un-prefixed
names, which silently breaks any script written against the macOS
versions. Portable scripts typically probe BSD-first and fall back to
GNU, so the BSD probe succeeds against a GNU binary that means something
else entirely and the fallback never fires.
The Claude Code statusline was a live example: it reads a cache file's
mtime with `stat -f %m`, which GNU stat parses as a *filesystem* format
string. That emits a multi-line blob, the following arithmetic hits a
syntax error, and because an arithmetic error aborts the shell the
enclosing function returned early - so the git branch segment silently
vanished on every warm-cache render. Its `date -j -r` reset timestamps
failed the same way.
Homebrew installs the g-prefixed variants into $HOMEBREW_PREFIX/bin
regardless, so gstat / gdate / gsed / ggrep / gfind still give GNU
behaviour on demand. Note BSD sed needs `sed -i ''` rather than `sed -i`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Hue 226 (#ffff00) has a contrast ratio of 1.05 against the tangere-light
background (#fdfdfa), below the minimum-contrast = 1.1 set in the ghostty
config. Ghostty then substitutes the foreground for whichever of black or
white has more contrast, so against a near-white background that letter of
the model name rendered black.
Swap 226 for 184 (#d7d700, ratio 1.51 light / 9.60 dark) in the Opus ramp
and the unknown-model fallback, the only two palettes that used it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Keep the previous statusline as statusline.original.sh and add
statusline.burnrate.sh from Gui-Gou/claude-statusline-burnrate, which
shows weekly/5h plan usage and a sustainable burn rate.
bootstrap.sh now links the burnrate script unconditionally - the old
`test -L` guard would have left an existing symlink pointing at the
previous script. jq is a hard dependency of the new script, so add it
to brew.sh.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>