Logging and Recorders
The DevTools extension can collect app logs, inspect recent history, and record navigation sessions. Use logs for message-level debugging and recorders when you need a timeline of focus, navigation, CollectionView, handler, and render changes.
Logs Panel
Open Logs with l.
The Logs panel stores entries per connected app and supports:
- level filtering: all, debug, info, warn, error
- text search with search history
- time windows: 1 minute, 3 minutes, 5 minutes, 10 minutes, hour, day
- max retained logs per level: 50, 100, 1000, 3000, 10000
- auto-clear of old logs
- copying filtered logs
- exporting all logs to a text file
- clearing logs for the selected app or all apps
Settings can also disable individual console methods (trace, debug, info, log, warn, error) or set the minimum log level.
App Logs Through MCP
The same log stream is available to MCP agents:
logsget_app_logssearch_app_logsclear_app_logs
This lets an agent search errors, warnings, and timing output without asking a developer to copy the DevTools panel.
Screen Recorder
The Screen Recorder tab records a timeline of runtime state while you navigate.
Presets:
| Preset | Captures | Use for |
|---|---|---|
| Focus Only | focus and navigation context | quick focus path checks |
| CV Debug | focus, navigation, CollectionView rows/cells | scroll bugs and row positioning |
| Full Debug | focus, navigation, CV, handlers, render trace, watched views | deep "why did this change?" sessions |
| Custom | selected capture options | targeted investigations |
Each snapshot can include:
- focused view
- selected tab, screen, stack depth, and dialog state
- CollectionView
virtualY, visible rows, focused row/item, and row/cell translations - handler trace events for
onInputEvent,onFocus,onBlur, and focused-child changes - render trace data for
@statemutations andgetViews()rebuilds - watched Hosanna view fields
- watched SG node fields
After stopping, the timeline shows badges for focus, navigation, CV movement, handlers, render mutations, watched view changes, and SG changes. You can filter by badge, search steps, export JSON, export an HTML report, and copy individual steps for bug reports.
CollectionView Recorder
The CollectionView panel includes a focused recorder for row and cell behavior. It records:
- row Y translations
- cell X/Y translations
- focused row and item index
virtualYandtargetVirtualY- visible row window
- row enter/exit screen changes
- rendered cell counts
- animation frames sampled during the settle window
- animation verdicts: smooth, jump, overshoot, no change
The CV diagnostics pass checks common failure modes such as focused row outside the visible window, row positioning errors, gaps, empty visible rows, stuck animation, and stale virtual positions.
Choosing a Tool
Use this default order:
| Need | Use |
|---|---|
| See console output | Logs panel |
| Find what focus did after one key | Remote plus focused-view lookup |
| Record a short human session | Screen Recorder |
| Debug CollectionView row/cell movement | CollectionView Recorder |
| Automate a repeatable route | MCP diff_state, drive, or test |
| Produce CI artifacts | hst test:record, hst test:ui, and MCP test recording tools |