{% extends "base.html" %} {% block title %}aide - Session {{ detail.started_at[:10] }}{% endblock %} {% block content %}
← Back to sessions

{% if detail.custom_title %} {{ detail.custom_title }} {% else %} Session: {{ detail.started_at[:10] }} {% endif %} · {{ detail.project_name }}

{% if detail.custom_title %}

{{ detail.started_at[:10] }} {{ detail.started_at[11:16] }}

{% endif %}
Active Time
{% set active = detail.active_duration_seconds or detail.duration_seconds or 0 %} {% if active %} {% set a_hours = active // 3600 %} {% set a_minutes = (active % 3600) // 60 %} {% if a_hours > 0 %}{{ a_hours }}h {{ a_minutes }}m{% else %}{{ a_minutes if a_minutes > 0 else 1 }}m{% endif %} {% else %}—{% endif %}
{% if detail.duration_seconds and detail.active_duration_seconds and detail.duration_seconds != detail.active_duration_seconds %} {% set w_hours = detail.duration_seconds // 3600 %}{% set w_minutes = (detail.duration_seconds % 3600) // 60 %}wall: {% if w_hours > 0 %}{{ w_hours }}h {{ w_minutes }}m{% else %}{{ w_minutes }}m{% endif %} {% endif %} {% if detail.work_blocks and detail.work_blocks|length > 1 %} {{ detail.work_blocks|length }} blocks {% endif %}
Messages
{{ detail.message_count }}
{{ detail.user_message_count }} user, {{ detail.assistant_message_count }} assistant
{% if not subscription_user %}
Cost
{{ "${:,.2f}".format(detail.estimated_cost_usd) }}
{% if detail.unique_files and detail.unique_files > 0 %}
{{ detail.unique_files }} files touched
{% endif %}
{% else %}
Files
{{ detail.unique_files or 0 }}
unique files touched
{% endif %}
Errors
{{ detail.tool_error_count or 0 }}
{% if detail.error_breakdown %}
{% for e in detail.error_breakdown[:3] %}{{ e.category }}: {{ e.count }}{% if not loop.last %}, {% endif %}{% endfor %}
{% endif %}
{% if detail.git_branch %}
Branch: {{ detail.git_branch }}
{% endif %} {% if detail.permission_mode %}
Mode: {{ detail.permission_mode }}
{% endif %} {% if detail.first_prompt_len and detail.first_prompt_len > 0 %}
First prompt: {{ "{:,}".format(detail.first_prompt_len) }} chars
{% endif %} {% if detail.total_thinking_chars and detail.total_thinking_chars > 0 %}
Thinking: {{ "{:,}".format(detail.total_thinking_chars) }} chars ({{ "{:.0%}".format(detail.thinking_ratio) }} of turns)
{% endif %} {% if detail.source_file %}
Log: {{ detail.source_file }}
{% endif %}

Tokens

{% macro format_tokens(value) -%} {%- if value >= 1000000000 -%}{{ "%.1f"|format(value / 1000000000) }}B {%- elif value >= 1000000 -%}{{ "%.1f"|format(value / 1000000) }}M {%- elif value >= 1000 -%}{{ (value / 1000)|round|int }}K {%- else -%}{{ value }} {%- endif -%} {%- endmacro %}
Input
{{ format_tokens(detail.total_input_tokens) }}
Output
{{ format_tokens(detail.total_output_tokens) }}
Cache Read
{{ format_tokens(detail.total_cache_read_tokens) }}
Cache Creation
{{ format_tokens(detail.total_cache_creation_tokens) }}
{% if detail.turn_count and detail.turn_count > 0 %}

Turns

Turn Count
{{ detail.turn_count }}
Total Wait
{% set total_s = detail.total_turn_duration_ms // 1000 %} {% set t_min = total_s // 60 %} {% set t_sec = total_s % 60 %} {% if t_min > 0 %}{{ t_min }}m {{ t_sec }}s{% else %}{{ t_sec }}s{% endif %}
Avg Turn
{% set avg_s = (detail.total_turn_duration_ms // detail.turn_count) // 1000 %} {{ avg_s }}s
Max Turn
{% set max_s = detail.max_turn_duration_ms // 1000 %} {% if max_s >= 60 %}{{ max_s // 60 }}m {{ max_s % 60 }}s{% else %}{{ max_s }}s{% endif %}
{% endif %} {% if detail.work_blocks and detail.work_blocks|length > 1 %}

Work Blocks

{% for wb in detail.work_blocks %}
{{ wb.block_index + 1 }} {{ wb.started_at[11:16] }}{% if wb.started_at[:10] != detail.started_at[:10] %} {{ wb.started_at[:10] }}{% endif %} {{ wb.ended_at[11:16] }}{% if wb.ended_at[:10] != wb.started_at[:10] %} {{ wb.ended_at[:10] }}{% endif %} {% set wb_h = wb.duration_seconds // 3600 %} {% set wb_m = (wb.duration_seconds % 3600) // 60 %} {% if wb_h > 0 %}{{ wb_h }}h {{ wb_m }}m{% else %}{{ wb_m if wb_m > 0 else "<1" }}m{% endif %} {{ wb.message_count }} msgs
{% endfor %}
{% endif %}

Tool Usage

{% if detail.tool_usage %}
{% for tool in detail.tool_usage %} {{ tool.tool_name }} ({{ tool.count }}) {% endfor %}
{% else %}

No tool calls recorded.

{% endif %}
{% if detail.error_breakdown %}

Error Breakdown

{% set category_colors = { "Test": "bg-blue-50 text-blue-700 border-blue-200", "Lint": "bg-emerald-50 text-emerald-700 border-emerald-200", "Build": "bg-amber-50 text-amber-700 border-amber-200", "Git": "bg-purple-50 text-purple-700 border-purple-200", "Edit Mismatch": "bg-red-50 text-red-700 border-red-200", "File Access": "bg-orange-50 text-orange-700 border-orange-200", "Other": "bg-gray-50 text-gray-700 border-gray-200" } %} {% for e in detail.error_breakdown %} {{ e.category }} ({{ e.count }}) {% endfor %}
{% endif %} {% if detail.files_touched %}

Files Touched

{% for f in detail.files_touched %} {% endfor %}
File Reads Edits Writes Total
{{ f.file_path }} {{ f.read_count }} {{ f.edit_count }} {{ f.write_count }} {{ f.total }}
{% endif %} {% endblock %}