{% extends "base.html" %} {% import "_links.html" as links with context %} {% block title %}History — Cairn Dashboard{% endblock %} {% block content %}

History

{{ calls | length }}
calls shown
{{ window }}
time window
{{ calls | selectattr('status', 'equalto', 'error') | list | length }}
error calls
{% include "window_control.html" %} {#- FR-005: exports ride the view's current filters (the selected store rides links.url); before/after are page cursors, not filters. -#} {%- set export_q = {} %} {%- if tool %}{% set _ = export_q.update({'tool': tool}) %}{% endif %} {%- if session %}{% set _ = export_q.update({'session': session}) %}{% endif %} {%- if source %}{% set _ = export_q.update({'source': source}) %}{% endif %} {%- if window != "all" %}{% set _ = export_q.update({'window': window}) %}{% endif %}

Export: CSV JSON

{% if calls %} {% for h in calls %} {% endfor %}
Tool Timestamp Duration Status Session Source Est. tokens (req/resp) Arguments
{{ h.tool_name }} {{ h.invoked_at | epoch }} {{ h.duration_ms | duration }} {{ h.status }} {{ links.view_link('chains', 'session', h.session_id, window) }} {{ h.source }} {{ h | tokens }} {{ h.args_summary or "—" }}
{% if prev_cursor or next_cursor %} {#- FR-003/FR-006: paging links keep the active filters AND the selected store (links.url); empty selection keeps the bare hrefs. -#}

{%- if prev_cursor %} {%- set q = {'after': prev_cursor} %} {%- if tool %}{% set _ = q.update({'tool': tool}) %}{% endif %} {%- if session %}{% set _ = q.update({'session': session}) %}{% endif %} {%- if source %}{% set _ = q.update({'source': source}) %}{% endif %} {%- if window != "all" %}{% set _ = q.update({'window': window}) %}{% endif %} Newer {%- endif %} {%- if prev_cursor and next_cursor %} · {% endif %} {%- if next_cursor %} {%- set q = {'before': next_cursor} %} {%- if tool %}{% set _ = q.update({'tool': tool}) %}{% endif %} {%- if session %}{% set _ = q.update({'session': session}) %}{% endif %} {%- if source %}{% set _ = q.update({'source': source}) %}{% endif %} {%- if window != "all" %}{% set _ = q.update({'window': window}) %}{% endif %} Older {%- endif %}

{% endif %} {% else %}

No matching calls{% if not tool and not session and not source %} recorded yet{% endif %}.

{% endif %}
{% endblock %} {% block scripts %}{% endblock %}