Attribute violations to the causing step and render witness evidence (#59)

* feat(ltl): attribute violations to the obligation origin step

* feat(verifier): label evaluator observations with the runner step index

* feat(trace): carry the causing step in violation witnesses and summary

* feat(replay): move the violation marker to the causing step

* feat(replay-ui): render witness evidence in the violations panel

* feat(replay-ui): wire witnesses and step jump into violation panels

* fix(ltl): treat next obligations as vacuous at run end

* fix(runner): give the finalize trace record its own step index
This commit is contained in:
pj authored and GitHub committed 2026-06-05 23:46:36 +05:30
1 parent 19a470121f
commit 9958b0ddc8
15 files changed
+719 -85

No files matched your search

+51
View File
@@ -97,6 +97,57 @@
font-size: 13px;
}
.violations-panel-witness {
margin-top: 6px;
display: flex;
flex-direction: column;
gap: 4px;
font-size: 12px;
}
.violations-panel-witness-line {
display: flex;
align-items: baseline;
gap: 8px;
margin: 0;
}
.violations-panel-witness-key {
flex-shrink: 0;
min-width: 96px;
color: var(--text-muted);
font-size: 11px;
text-transform: lowercase;
}
.violations-panel-witness-value {
word-break: break-all;
white-space: pre-wrap;
margin: 0;
}
.violations-panel-witness-step {
font-family: var(--font-mono);
font-size: 11px;
padding: 1px 6px;
background: var(--surface);
color: var(--text-primary);
border: 1px solid var(--border);
border-radius: 3px;
cursor: pointer;
}
.violations-panel-witness-step:hover {
border-color: var(--border-strong);
}
.violations-panel-witness-evidence {
display: flex;
flex-direction: column;
gap: 3px;
margin: 0;
}
.violations-panel-residual {
margin-top: 6px;
font-size: 12px;