- Fix entry type names: branch_summary, custom_message (snake_case)
- Fix toolResult role (was 'tool')
- Count all entry types: user, assistant, tool results, custom, compactions, branch summaries
- Use global stats for tokens/cost (all entries), not just current branch
- Make help bar more prominent (12px, full opacity)
- Remove Esc shortcut from help bar
- Header h1 font size now 12px (matches body)
- Token/cost stats now computed for all entries, not just current branch
- Token display matches footer format: ↑input ↓output Rcache Wcache
- Cost display uses 3 decimal places like footer
- Scroll to target uses requestAnimationFrame for DOM readiness
- Initial load and Escape scroll to bottom, tree clicks scroll to target
- Add --line-height CSS variable (18px = 12px font * 1.5)
- Convert all padding/margin to use var(--line-height)
- Remove fractional values for terminal-like consistency
- Fix gap between consecutive tool executions
- Remove extra padding from error-text and model-change
- Fix thinking toggle to show 'Thinking ...' when collapsed
- Remove top padding after timestamps in assistant messages
- Remove bottom padding from assistant-text
- Fix UTF-8 decoding with TextDecoder for base64 session data
- Use toolOutput color for expand hints (not borderAccent)
- Remove '- click to expand' text to match TUI
- Ctrl+O toggles expanded state (not visibility) on tool outputs
- Edit diffs always visible (not affected by Ctrl+O)
- Remove Ctrl+F override to allow browser search
- Replace tabs with 3 spaces in all tool outputs
- Fix syntax highlighting default color to use --text
- Add more hljs token selectors (property, punctuation, operator)
- Compaction uses customMessageBg/Label/Text colors
- Model change uses dim color without background
- Scroll to end on initial load
- Pointer cursor on expandable elements
- Display images from read tool results (base64 encoded)
- Add ellipsis for truncated tree entries
- Make mobile hamburger button more subtle
- Add X close button in sidebar header on mobile
- Hide hamburger when sidebar is open
- Add deriveExportColors() to compute page/card/info backgrounds from userMessageBg
- Use luminance detection to adapt colors for light/dark themes
- Use info-bg for model-change, compaction, system-prompt sections
- Use selectedBg for hover states and summary backgrounds
- Add scroll-to-message with highlight when clicking tree nodes
- Fix mobile overlay to close sidebar on click
- Wider sidebar (400px) with search and filter controls
- Add tree sidebar with search and filter (Default/All/Labels)
- Client-side markdown/syntax highlighting via vendored marked.js + highlight.js
- Base64 encode session data to avoid escaping issues
- Reuse theme.ts color tokens via getResolvedThemeColors()
- Sticky sidebar, responsive mobile layout with overlay
- Click tree node to scroll to message
- Keyboard shortcuts: Esc to reset, Ctrl/Cmd+F to search
Added glob pattern support (e.g., github-copilot/*, *sonnet*) to --models
and enabledModels. Patterns are matched against both provider/modelId and
just modelId, so *sonnet* works without requiring anthropic/*sonnet*.
The existing fuzzy substring matching for non-glob patterns is preserved.
fixes#337
- Add configurable thinkingText color for thinking blocks (defaults to muted)
- Make 'Thinking...' label italic when collapsed
- Fix Ctrl+T during streaming hiding the current message
- Track streamingMessage to properly re-render on toggle
Based on #366 by @paulbettner
- Add setEditorText() and getEditorText() to HookUIContext for prompt generator pattern
- custom() now accepts async factories for fire-and-forget work
- Add CancellableLoader component to tui package
- Add BorderedLoader component for hooks with cancel UI
- Export HookAPI, HookContext, HookFactory from main package
- Update all examples to import from packages instead of relative paths
- Update hooks.md and custom-tools.md documentation
fixes#350
When creating a new session, initial model and thinking level were set
on the agent but never saved to session file. This caused --resume to
default thinking level to 'off'.
fixes#342
- Simplify compaction section, link to docs/compaction.md for details
- Clarify that branch summaries are optional (user is prompted)
- Change /branch to /tree in compaction note
- Mark as breaking for custom themes
- Explain that custom themes must add new tokens or fail to load
- Note total color count increased from 46 to 50
- Reference theme.md and built-in themes
- New tui.md covers component system for hooks and custom tools
- Update hooks.md intro with 'Key capabilities' highlighting UI
- Update custom-tools.md intro with 'Key capabilities' highlighting UI
- Reference tui.md from both docs
- Remove timeout logic from HookRunner
- Remove hookTimeout from Settings interface
- Remove getHookTimeout/setHookTimeout methods
- Update CHANGELOG.md and hooks.md
Timeouts were inconsistently applied and caused issues with
legitimate slow operations (LLM calls, user prompts). Users can
use Ctrl+C to abort hung hooks.