How to see each change side by side and tick it off. Two kinds of
evidence: text dumps under demo/ that tests/demo.test.ts writes, and
live steps in Ghostty that only a session can show.
What 0.10.0 brings, and 0.9.1 before it:
- 0.9.1
turn.startignores subagents' and teammates' turns. Engine 2.1.299 raises it for them too; 0.9.0 reset its live turn on each, so the dots line undercounted, tool rows landed under the agent's turn and the finished-agent notification stopped. - 0.10.0 A
viewButton on every row of the background band opens that agent's transcript in the main view ($.ui.view, engine 2.1.300); the row in view readsbackand its name takesaccent. - 0.10.0 The
crimsonpalette: Empryo's crimson world ("the heart"), from empryo.com's own CSS, besidewaterandundertow.
Engine: 2.1.301 (updated 2026-10-16; the typings were regenerated on it).
Before = the installed glass@glass 0.9.1 from the marketplace cache.
After = the repo's working tree. Two enabled plugins with one name make the
engine skip one's hooks, so switch between them, never run both:
# before
claude plugin enable glass@glass
claude
# after
claude plugin disable glass@glass
command claude --plugin-dir ~/Documents/codes/packages/glass
Text dumps: claude plugin test . runs tests/demo.test.ts, which wrote
demo/before/*.txt on the 0.9.1 tree (captured once from git archive,
committed) and writes demo/after/*.txt on the working tree
(scripts/demo-dump.sh after). Compare with diff -u demo/before demo/after or open both.
bun scripts/show.ts every fixture that differs, water
bun scripts/show.ts band the band: no button, then [view]
GLASS_PALETTE=crimson GLASS_BEFORE_PALETTE=water bun scripts/show.ts --all reply palette quote lists
water on the left block, crimson on the right, same tree
GLASS_PALETTE=crimson bun scripts/show.ts --all
every fixture under crimson (before falls back to tidepool:
0.9.1 has no crimson)
Before is the installed 0.9.1 in the plugin cache (GLASS_BEFORE points
elsewhere), after is this tree. Theme slots resolve through the custom
theme settings.json names.
The dumps are trees flattened to text: a row's children are joined with
no gap, so a right-aligned duration or button sits flush against the text.
Colors are listed by what the tree names: a hex is a palette color, a
bare word such as planMode is a theme slot the engine resolves.
| fixture | before | after |
|---|---|---|
band.txt |
rows end on the file column | every row ends [view]; the file column is five cells shorter |
reply-crimson.txt |
no such file | the reply fixture under crimson: crimson #f43a6b marks and bars, violet #ab7bf0 code, amber #f2a94c strings |
reply-water.txt |
no such file | the same reply under water, for the eye |
palette-crimson.txt |
no such file | every crimson role, one row each, its hex |
palette-water.txt |
no such file | every water role, one row each |
The fixtures that did not change (reply, summary, dots line, tree rows, diff card, hint modes, server tools) are dumped too, so a diff that touches them is a regression to look at.
Tick each in the after session unless it says otherwise.
V1. View. Start two background agents (Agent with tasks of a minute
or more, run in the background). The band shows a view at the right end
of each row. Click one: the main view switches to that agent's transcript,
as choosing it from /tasks does; the band stays, that row now reads
back and its name is in accent. Before: no button; /tasks is the
only way in.
Result: pass / fail ________
V2. Back. Click back: the main conversation returns, the row reads
view again. Also try Esc from the agent view and note whether it
returns on its own.
V3. Denied. Let an agent finish while its row still shows (the band
drops it at its turn.complete; be quick, or view an agent that stops
right after). A press the engine declines shows a toast glass: <reason>
and the view stays. If no deny can be provoked, this step stays open.
V4. Older engine. Not testable here (2.1.301 is installed): on an
engine without $.ui.view the button draws and a press toasts glass: viewing an agent needs Claude Code 2.1.300 or newer.
C1. Crimson. /config, Glass, palette crimson. Inline commands turn
crimson, builtins violet, flags pink, strings amber, paths soft sky; the
reply bullet, tool names and the Bottom line bar are crimson; the code
and Bottom line cards sit on the plum #301a34. Before: the option is
not offered.
C2. Crimson theme. /glass-theme under crimson: a toast glass: theme glass-crimson on; the prompt border, the mode words and the spinner take
crimson's colors; ls ~/.claude/themes/ shows glass-crimson.json.
Check the plum card tint and the #664468 rules on your own ground
(the audit ground is #0d1117); note a value to lift in SPEC.md.
C3. Water stays. Switch back to water: nothing in water moved
(the water dumps are byte-identical before and after).
G. Guard (0.9.1, both sessions on 2.1.301). Ask for a task that
spawns a subagent in the turn and runs two or three tools of its own
after. Before (0.9.0 from the cache, if kept): the dots line's tool count
restarts when the agent's turn starts, and the tools after it land under
no tree. After: the count runs on and every tool row sits in the turn's
tree. Then let a background agent finish after the turn ends, unfocused:
the <description> · <duration> notification fires (it did not on 0.9.0
under 2.1.299 or later).