{% extends "settings_base.html" %} {% import "_connection_summary.html" as summaries %} {% import "_status_badge.html" as badges %} {% block summary_cards %} {{ summaries.summary_card("DB", "Stored rows", summary.stored_rows | compact_number, "Captured requests") }} {{ summaries.summary_card("FS", "Database file", storage_stats.database_file_size | compact_number if storage_stats.database_file_size is not none else "-", "SQLite bytes on disk") }} {{ summaries.summary_card("OLD", "Older than " ~ days ~ " days", trim_count | compact_number, "Preview before trimming", true) }} {{ summaries.summary_card("FB", "Fallback", fallback.provider_name | default("No provider", true), fallback.model | default("No model", true)) }} {% endblock %} {% block settings_content %}

Storage Stats

Current database and request-record range.

{{ badges.status_badge("Active") }}
Total stored rows{{ total | compact_number }}
Database file size{{ storage_stats.database_file_size | compact_number if storage_stats.database_file_size is not none else "-" }} bytes
Oldest record date{{ storage_stats.oldest_record_at | default("-", true) }}
Newest record date{{ storage_stats.newest_record_at | default("-", true) }}
{% if storage_stats.database_path %}

{{ storage_stats.database_path }}

{% endif %}

Data Retention

Delete captured rows older than the selected retention window.

{{ badges.status_badge("Warning") }}

Older than {{ days }} days: {{ trim_count | compact_number }} row{{ "" if trim_count == 1 else "s" }} will be deleted.

Refresh count

Export Options

Reserved for future snapshot/export workflows.

{{ badges.status_badge("Planned") }}

The proxy remains record-only. Export controls will be added separately so local captures can be moved without changing proxy behavior.

{% endblock %}