1. Shiki → Pierre for all code highlighting in ThinkRail
Chat, diffs and the file editor each had their own highlighter. Now all three use Pierre. It runs in a web worker and has one WASM file for all languages.
- Web build: 34.9 MB → 18.0 MB (−48%)
- Lag between streamed code and its colors: 129 ms → 40 ms
- First color on a large diff: 2.3 s → 0.6 s
- 5,000-line file fully colored in the editor: 856 ms → 212 ms
Trade-off: colors shift a little. 60–83% of characters keep their Shiki color, depending on the language. PRs: #1274–#1281
2. Safari crash: repro in the morning, fix merged by evening
Drag-selecting text in a Pierre diff crashed the Safari tab. The issue was closed as "can't reproduce". I posted a one-page repro, and the same day the maintainer merged a fix. The root cause is a WebKit regression, which has its own fix.
3. ThinkRail type check: 85 s → 15 s
At first I moved ThinkRail to tsrs, a Rust port of the TypeScript 7 checker. tsrs is still in beta, so for now ThinkRail uses the official TypeScript 7 (tsgo). On this repo the difference is about 1 s. I use tsrs in all my personal projects and wait for its stable release. #1232
4. Smaller ThinkRail wins
- Translations load on demand: −22.7% startup JS (#1251)
- Slowest browser-test CI job: 626 s → 475 s (#1239)
- Lint now rejects floating promises (#1254)
5. Peektrace v0.12.0
Peektrace is a local inspector for Claude Code, Codex, Pi and OpenCode sessions. This release adds:
- MCP server, so an agent can query your past sessions
- Search across all sessions
- Session export to HTML, Markdown or JSON
- Estimated cost per session and usage per day or month
The inspector is also faster: a 15 s freeze on large sessions is gone. Release notes