{% extends "base.html" %} {% block title %}Event Timeline — AgentPulse{% endblock %} {% block content %} {% macro ev_icon(t) %} {% if t=='config_change' %} {% elif t=='version' %} {% elif t=='release' %} {% elif t=='drift' %} {% elif t=='impact' %} {% else %}{% endif %} {% endmacro %} {% set fqs %}{% if component %}&component={{ component }}{% endif %}{% if version_f %}&version={{ version_f }}{% endif %}{% if rng %}&range={{ rng }}{% endif %}{% if request.args.get('db') %}&db={{ request.args.get('db') }}{% endif %}{% endset %} ← Back to Drift Investigation
Event Timeline
Track every config change, version snapshot, and drift-related event across your agent workflows.
Timeline · {{ total }} event{{ 's' if total != 1 else '' }}
{% if selected %}
{{ ev_icon(selected.type) }} {{ selected.title }} {{ selected.type_label }}
Event type
{{ selected.type_label }}
Affected component
{{ selected.component_label or '—' }}
{% if selected.component_role %}
{{ selected.component_role }}
{% endif %}
First seen
{% if selected.run_index < 100000 %}Run {{ selected.run_index }} · {% endif %}{{ selected.ts|et('%Y-%m-%d') if selected.ts else '—' }}
Related drift
{% if selected.related_drift %}{{ selected.component_label }}{% else %}—{% endif %}
{% if selected.before or selected.after %} {% if selected.dim == 'prompt' %}
This change happened around the drift window and affects the {{ selected.component_label }}.
{% endif %}
Before
{% if selected.dim == 'prompt' %}“{{ selected.before }}”{% else %}{{ selected.before }}{% endif %}
After
{% if selected.dim == 'prompt' %}“{{ selected.after }}”{% else %}{{ selected.after }}{% endif %}
{% endif %}
{% if selected.hash_before or selected.hash_after %}
Prompt hash{{ selected.hash_before }} → {{ selected.hash_after }}
{% endif %} {% if selected.author %}
Author{{ selected.author }}
{% endif %}
Source{{ selected.source or '—' }}
{% if selected.changed_fields %}
Changed fields{{ selected.changed_fields }}
{% endif %}
In versionv{{ selected.version }}
{% if selected_impact %}
Impact & context (since this change)
{% for m in selected_impact %}
{{ m.label }}
{{ m.val if m.val else m.pct }}
{% endfor %}
{% endif %}
{% else %}
Select an event to see its details.
{% endif %}
{% endblock %}