annie.pages.logs

Log tab — browse, filter, copy and report recorded events (UI).

A consumer of annie.logbook.LOG. Shows the most recent events (newest first) with a level/text filter and, per row, a Copy button (to the clipboard) and a Details dialog with the full text / traceback. Errors also get a Report button: it previews exactly what will be emailed to Annie’s developer, lets the user add a note, and after sending turns into a disabled green Sent (see annie.core.bugreport). A per-client poller surfaces new errors as auto-dismissing toasts so a background failure is visible without watching the terminal.

Classes

LogFilter

One browser tab's Log filter.

Functions

filtered(→ list[annie.core.logbook.LogEvent])

Return the events passing spec, newest first, capped.

render(→ None)

Build the Log tab body.

refresh(→ None)

Rebuild the event table (called when the tab is opened).

start_toasts(→ None)

Start a per-client poller that shows new errors as auto-dismissing toasts.

Module Contents

class annie.pages.logs.LogFilter[source]

One browser tab’s Log filter.

level

"all" or a level name.

text

Free-text substring (matched against time, message and details).

annie.pages.logs.filtered(spec: LogFilter) → list[annie.core.logbook.LogEvent][source]

Return the events passing spec, newest first, capped.

The text filter matches the timestamp, message, and details — so a query like 14:30 or 2026-06-26 narrows by time as well as content.

annie.pages.logs.render() → None[source]

Build the Log tab body.

annie.pages.logs.refresh() → None[source]

Rebuild the event table (called when the tab is opened).

annie.pages.logs.start_toasts() → None[source]

Start a per-client poller that shows new errors as auto-dismissing toasts.