{% extends "base.html" %} {% block content %}

Dev activity feed

Streaming live updates
{{ stats.sessions }}
Sessions
{{ stats.turns }}
Turns
{{ stats.changes }}
Changes
${{ "%.2f"|format(stats.cost) }}
Total Cost
{{ stats.blobs }}
Blobs

Recent Dev Turns

Filter Actor:
Sort By:
{% if recent_turns %}
{% for t in recent_turns %}
{{ loop.index }}
{% if t.actor == 'agent' %} agent {% elif t.actor == 'user' %} user {% else %} system {% endif %} in session {{ t.session_id[:12] }} · {{ t.formatted_timestamp }}

{{ t.summary or "Conversation Turn Detail" }}

{% if t.preview %}

"{{ t.preview }}"

{% endif %}
{% if t.files_changed %}
Changed: {% for f in t.files_changed[:2] %} {{ f.file_path.split('/')[-1] }} ({% if f.lines_added > 0 %}+{{ f.lines_added }}{% endif %}{% if f.lines_removed > 0 %}-{{ f.lines_removed }}{% endif %}) {% if not loop.last %}, {% endif %} {% endfor %} {% if t.files_changed|length > 2 %} +{{ t.files_changed|length - 2 }} more {% endif %}
{% endif %} {% if t.tools_called %}
Tools: {{ t.tools_called|join(', ') }}
{% endif %}
{% if t.model and t.model != "-" %} Model: {{ t.model }} {% endif %} {% if t.ide %} IDE: {{ t.ide }} {% endif %} {% if t.tokens_in or t.tokens_out %} Tokens: {{ "{:,}".format(t.tokens_in) }} in / {{ "{:,}".format(t.tokens_out) }} out {% endif %} Cost: ${{ "%.4f"|format(t.cost) }}
{% endfor %}
{% else %}

No turns recorded yet. Run jung watch to start capturing.

{% endif %}
{% endblock %}