4 months ago
c112fbethe run page dumped a raw evidence <pre> for every rule — the exact developer artifact the §10 evidence split was built to replace. it now consumes what run_steps already store. - the statement is the stored `summary` (plain english). for most rules that is the whole story. - detail blocks ONLY for rules that point at THINGS, in ai-review's visual language: honeypot ⇒ touched files as file rows (dir dim · basename bright · github blob link); crypto-address ⇒ a card per match (address chip + where). every other rule is summary-only — no invented evidence UI for rules that point at nothing. - one set of primitives: the file-row/path/link pieces moved to evidence-parts.tsx, shared by ai-review findings and rule evidence. - raw is maintainer-only, collapsed, and shows the inner `evidence` (thresholds, ai-review trace) — NOT the RuleResult envelope — and never renders for a public visitor. - a pre-projection run (null summary) falls back to the rule's blurb — never blank, never raw json, never echoing the header id. - evidence-view.tsx deleted. the demo seed now generates the REAL per-rule projection (ruleProjection, shared by the year-long story and the single-run/public path) so every run reads real, not the fallback. fixed a latent seed bug: a decided review's decided_at could land in the future, counting in queue depth but not pending (broke series[23] === value) — clamped to now. checks: typecheck all, biome, boundaries, 216 tests.
Parentabbd43f