chore: release 2.4.0 #52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-2.4.0"
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?
Version bump only —
package.json+package-lock.json, matching every prior release commit.What 2.4.0 ships
Custom colors (CLFY-21, #49).
accentColoranduserMessageBoxnow accept a user hexalongside their existing keywords, reusing the
footerColortext-row machinery. Custom valuesconvert to ANSI escapes through pi's own quantizer (a throwaway
PiThemedelegating tofgAnsi/bgAnsi) and are never stored as hex — the 2.3.0 crash class.It also fixes an accent-restore bug latent since the original
claudeaccent: pi hands thetheme over as both an instance and a forwarding Proxy, and keying the snapshot on the theme
object meant the second identity recorded claudify's own override as the theme's original,
permanently stranding it. Now keyed on the
fgColorscontainer.Per-setting descriptions (CLFY-22, #50). All 31
/claudifysettings carry a one-liner,rendered dimmed under the selected row only. A deliberate divergence — Claude Code's
/confighas no such affordance — recorded in
docs/plans/2026-07-16-claudify-setting-descriptions.md.Docs (#51). The theme-Proxy trap and the corrected pi-session rule.
Pre-release live smoke — done, per CLAUDE.md
Run against this release checkout (footer confirmed
⎇ release-2.4.0) in a real pi sessionon pi 0.80.10, with both
~/.pi/agent/settings.jsonand.pi/settings.jsonswapped to thelocal path so the npm build could not be smoked by mistake:
#E01B2438;2;224;27;36, an escape, not literal hexAccent: theme38;2;138;190;183— the bug fixed in #49#1B6E2448;2;27;110;36bun run test15/15 green andnpx tsc --noEmit --strict …clean on this branch.npm publish --dry-run: 12 files, everyextensions/*.tsthatindex.tsimports is present.Caveat
Smoked on pi 0.80.10 (it auto-updated from 0.80.6 mid-session). The risk class here is
pi-internal format contracts, so this is not evidence about older pinned pi versions.
After merge
npm publishfrom a checkout at 2.4.0 — barenpm publish, nevernpm publish <name>@<version>.Needs Berto's npm OTP; agents get EOTP.