The spinner can narrate what Claude is drafting on a workshop page, like "drawing figure 3".
Live authoring-progress spinner text for .workshop.html writes is wired into the REPL but requires an internal workshop-mode predicate; CLAUDE_WORKSHOP_PROGRESS=false disables it.
What's wrong with this entry?
The spinner can narrate what Claude is currently drafting in a workshop design page, driven by the partial tool input as it streams in. It is gated on an environment variable and on workshop mode being active.
- A new module (exporting isWorkshopProgressEnabled, deriveAuthoringProgress, onInputJsonDelta) hooks tool-use start, input-JSON deltas and content_block_stop for Write and Edit on
.workshop.htmlfiles - Messages include "authoring the design page", "wiring up the decisions", "drawing figure N" and "drawing decision N", the latter including the decision id
- Output is throttled and truncated to the terminal width, and cleared when the tool use ends
- The stream handler only calls it when the caller passes
authoringProgressSurface: !0, which the main REPL does - Turned off when
CLAUDE_WORKSHOP_PROGRESSis set to false, and it also requires an internally registered workshop-active predicate to return true - Hook failures are swallowed and logged as "workshop authoring-progress hook failed"
authoring the design page, wiring up the decisions, workshop authoring-progress hook failed
Strings lifted out of the shipped bundle, so the claim above can be checked against them.