{% extends "base.html" %} {% block title %}Compare Traces - Memorizz{% endblock %} {% block head %}{% endblock %} {% block content %} {% from '_ui.html' import page_header, observability_tabs, empty_state %} {% from '_fmt.html' import tape, count %} {{ page_header('Compare recorded traces', 'Compare operations, source references, artifacts, parser results and delivery evidence. No actions are replayed.', 'Operations', nav=observability_tabs('compare', selection_urls)) }} {{ tape(compare_tape, 'Trace comparison summary') }}
{% if comparison %}Baseline: {{ comparison.baseline.headline }} ({{ count(comparison.baseline.normalized_events) }} events; {{ count(comparison.baseline.bundle_count) if comparison.baseline.bundle_count is not none else 'unknown' }} bundles). Candidate: {{ comparison.candidate.headline }} ({{ count(comparison.candidate.normalized_events) }} events; {{ count(comparison.candidate.bundle_count) if comparison.candidate.bundle_count is not none else 'unknown' }} bundles).
Root-local source totals use recorded event provenance. Deduplication and normalization diagnostics may describe the parent query, not an individual root.
{{ comparison.warning }}
| Side | Count | Captured structure (content-free) |
|---|---|---|
| Baseline only | {{ count(entry.count) }} | {{ entry.value|tojson(indent=2) }} |
| Candidate only | {{ count(entry.count) }} | {{ entry.value|tojson(indent=2) }} |