Skip to main content

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:

  • logs
  • get_app_logs
  • search_app_logs
  • clear_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:

PresetCapturesUse for
Focus Onlyfocus and navigation contextquick focus path checks
CV Debugfocus, navigation, CollectionView rows/cellsscroll bugs and row positioning
Full Debugfocus, navigation, CV, handlers, render trace, watched viewsdeep "why did this change?" sessions
Customselected capture optionstargeted 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 @state mutations and getViews() 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
  • virtualY and targetVirtualY
  • 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:

NeedUse
See console outputLogs panel
Find what focus did after one keyRemote plus focused-view lookup
Record a short human sessionScreen Recorder
Debug CollectionView row/cell movementCollectionView Recorder
Automate a repeatable routeMCP diff_state, drive, or test
Produce CI artifactshst test:record, hst test:ui, and MCP test recording tools