{#- SPDX-License-Identifier: Apache-2.0 -#} {#- The read-only /stats page (ADR 0013). Context is oaken.api.stats.StatsCollector.collect(): counts and health only — never mail content. Offline: all styling is inline (no CDN), no scripts (pure-CSS tabs), so it works with no network and under a strict CSP. -#} {#- Live updates come from the one same-origin script below (stats.js): it re-fetches the counts and swaps them in place, so the open tab never jumps. The page is complete without it. -#} Oaken Mail — status

Oaken Mail — status

{{ core.version }} {% if core.uptime_seconds is not none %}· up {{ (core.uptime_seconds // 60) | int }} min{% endif %} · {{ generated_at }}
{# ---- General ---- #}

Headline health

Accounts
{{ mail.accounts }}
Messages
{{ "{:,}".format(mail.messages) }}
Indexed
{{ "{:,}".format(mail.indexed) }}
index {% if mail.index_stale %}stale{% else %}fresh{% endif %}
Queue depth
{{ mail.queue_depth if mail.queue_depth is not none else "—" }}

Connected accounts

{% for a in accounts %} {% else %} {% endfor %}
AccountProviderSync
{{ a.display_name }}
{{ a.account_id }}
{{ a.provider }} {% if a.paused %}paused {%- elif a.failures %}{{ a.failures }} failing {%- else %}ok{% endif %}
No accounts configured.
{# ---- Ingest ---- #}
{% if pipeline %}

Pipeline

{{ "{:,}".format(pipeline.docs) }} docs · {{ "{:,}".format(pipeline.chunks) }} chunks · {{ "{:,}".format(pipeline.vectors) }} vectors · {{ pipeline.quarantined_files }} quarantined {% if pipeline.llm_paused %}· model paused{% endif %} {% if pipeline.backfill_paused %}· backfill paused{% endif %} {% if pipeline.embeddings_stale %}· embeddings stale{% endif %}

{% for name, s in pipeline.stages.items() %} {% endfor %}
StagePendingRetryingRunningFailedOldestPer secETA
{{ name }} {{ s.pending }}{{ s.retrying }} {{ s.running }} {% if s.failed %}{{ s.failed }}{% else %}0{% endif %} {% if s.oldest_pending_seconds is not none %}{{ s.oldest_pending_seconds | int }}s{% else %}—{% endif %} {{ "%.2f" | format(s.per_second) }} {% if s.eta_seconds is not none %}{{ s.eta_seconds | int }}s{% else %}—{% endif %}
{% if pipeline.parked %}

Parked jobs

{% for j in pipeline.parked %} {% endfor %}
JobStageMessageAttemptsError
{{ j.job_id }}{{ j.stage }} {{ j.message_id or "—" }}{{ j.attempts }} {{ j.error }}
{% endif %} {% else %}
The ingest pipeline is not running.
{% endif %}
{# ---- AI & Models ---- #}

Model & token usage

{% for u in usage %} {% else %} {% endfor %}
WorkspaceStageModelCallsCachedTokens inTokens outSaved
{{ u.workspace }}{{ u.stage }}{{ u.model_id }} {{ "{:,}".format(u.calls) }}{{ "{:,}".format(u.cached_calls) }} {{ "{:,}".format(u.tokens_in) }}{{ "{:,}".format(u.tokens_out) }} {{ "{:,}".format(u.tokens_saved) }}
No model usage recorded yet.
{% if pipeline %}

Models

Embedder: {{ pipeline.embedder_model or "—" }} · Vector model: {{ pipeline.vector_model or "—" }}

{% endif %}
{# ---- Plugins ---- #}

Plugins

{% for p in plugins %} {% else %} {% endfor %}
PluginKindVersionCapabilitiesHealth
{{ p.name }}{{ p.kind }}{{ p.version }} {{ p.capabilities | join(", ") or "—" }} {% if p.healthy %}healthy {%- elif p.started %}{{ p.detail or "unhealthy" }} {%- else %}{{ p.detail or "not started" }}{% endif %}
No plugins installed.
{# ---- Audit log ---- #}

Recent audit log

{% for e in audit %} {% else %} {% endfor %}
WhenActorOperationCountReasonState
{{ e.ts }} {{ e.actor }} {{ e.op }} {{ e.count }} {{ e.reason }} {% if e.undone_by %}undone{% else %}applied{% endif %}
No audit entries yet.

Ids and metadata only — the audit log never records message text.

{# ---- Reference (the operation registry) ---- #}

Operations reference

{% for o in operations %} {% else %} {% endfor %}
OperationPermissionMCPSummary
{{ o.name }} {% if o.permission == "mutate" %}mutate {%- elif o.permission == "send" %}send {%- else %}read{% endif %} {% if not o.mcp_allowed %}never {%- elif o.mcp_enabled %}on {%- else %}off{% endif %} {{ o.summary }}
No operations.

Generated from the operation registry — what this core can do, and what MCP clients may call.