Skip to content

File Tools Telemetry

BMO’s core file primitives (view, edit, write, multiedit) emit paired structured events on every invocation:

  • file_tool.fired at entry
  • file_tool.action for each terminal or per-edit outcome

Events are written to slog and a process-scoped ring buffer (capacity 16) so operators and agents can inspect recent activity without scraping logs.

ActionSeverityMeaning
appliedinfoSuccessful mutation or read completion
resolver_invokedinfoModel-assisted edit resolver started
resolver_failedwarnResolver could not produce content
backup_failedwarnPre-write backup failed; write proceeded (best-effort contract)
history_failedwarnFile-history persistence failed
redactedinfoSensitive path; content not exposed
truncatedinfoRead output truncated (view)
path_rejectedwarnPath outside configured scope
stale_smart_apply_failedwarnSmart-apply repair failed
stale_clean_mergeinfoSmart-apply merged stale base
phase_errorwarnNon-fatal phase failure
cancelledinfoExpected cancellation

Aliases: /files-status, /ft. Read-only. Shows ring capacity, action histogram, and the last 10 events.

Same snapshot as /files for the current process (CLI and TUI share the ring only when run in the same process).

The TUI sidebar shows Files: with idle, last: <action>, or warn: <action> derived from the ring.

list_recent_file_tool_events returns JSON { "ring_capacity", "returned", "events" } with snake_case event fields. Optional session_id filter and limit (default: full ring; capped at ring capacity, currently 16).

Paths matching sensitive patterns (for example .env, credentials*, id_rsa) are labeled <redacted> in telemetry and emit a redacted action on view.