annie.pages.logs ================ .. py:module:: annie.pages.logs .. autoapi-nested-parse:: Log tab — browse, filter, copy and report recorded events (UI). A consumer of :data:`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 :mod:`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 ------- .. autoapisummary:: annie.pages.logs.LogFilter Functions --------- .. autoapisummary:: annie.pages.logs.filtered annie.pages.logs.render annie.pages.logs.refresh annie.pages.logs.start_toasts Module Contents --------------- .. py:class:: LogFilter One browser tab's Log filter. .. attribute:: level ``"all"`` or a level name. .. attribute:: text Free-text substring (matched against time, message and details). .. py:function:: filtered(spec: LogFilter) -> list[annie.core.logbook.LogEvent] 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. .. py:function:: render() -> None Build the Log tab body. .. py:function:: refresh() -> None Rebuild the event table (called when the tab is opened). .. py:function:: start_toasts() -> None Start a per-client poller that shows new errors as auto-dismissing toasts.