Reasoning Steps
A collapsible thinking log with a live "Thinking…" header while running and "Thought for 12s" when done, steps appearing one by one along a rail, auto-collapse and sparse screen-reader announcements.
Preview
Can we move the nightly export to 2am without breaking the EU reports?
Gathering context…
- Comparing the two retry policies in the queue worker
- Exponential backoff caps at 5 attempts; the linear one never gives up
- Linear retries explain the 3am spike in duplicate emails
Switch the worker to the exponential policy; it stops after five tries.
Both policies are configured in queue.config.ts.
Install
Pro source requires Pebble Pro. Try the full preview above.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| steps | ReasoningStep[] | — | Steps { id, text, detail? }; detail renders in mono. |
| running | boolean | false | Live state: spinner, shimmering label and running clock. |
| duration | number | — | Seconds; overrides the measured time. |
| label | string | "Thinking…" | Header text while running. |
| doneLabel | (seconds: number | null) => string | "Thought for {time}" | Header text when done; "Finished thinking" when no time is known. |
| open | boolean | — | Controlled open state; pair with onOpenChange. |
| defaultOpen | boolean | running | Initial open state when uncontrolled. |
| onOpenChange | (open: boolean) => void | — | Called on every toggle, including auto-collapse. |
| autoCollapse | boolean | true | Collapse 700 ms after the run ends unless the reader toggled it. |
| announceSteps | boolean | true | Announce new steps politely, at most one every 5 s. |
Pro component
Try the full preview above. Editable source and build guides require Pebble Pro.
