{% extends "base.html" %} {% block title %}Decision Traces — Agent Wasp{% endblock %} {% block content %}

Decision Traces

{{ total }} traces · last 200 retained · 7d TTL

Reset
{% for t in traces %} {% else %} {% endfor %}
When Path Chat Tier Lang Guards Latency
{{ t.start_ts | int | string }} {{ t.path }} {{ t.chat_id or '—' }} {{ t.request_tier }} {{ t.detected_language }} {% if t.guard_actions %} {{ t.guard_actions | length }} {{ t.guard_actions | join(', ') | truncate(60) }} {% else %} {% endif %} {{ t.latency_ms or 0 }}ms json
No traces match the filters.

Each row is one user request. Click "json" for full payload (blocked skills, all guards, notes). Operator answer to "why did WASP do this?" lives here.

{% endblock %}