feat: certify chat operator turns through loop-run

This commit is contained in:
thanhnv
2026-07-08 22:31:03 +09:00
parent 004afa73c9
commit 49d0363c6a
13 changed files with 423 additions and 26 deletions
@@ -173,6 +173,7 @@ export function Chat() {
<StatusBadge value={last.decision} />
{last.agent_binding && <StatusBadge value={last.agent_binding.agent_selected} />}
{last.agent_binding && <StatusBadge value={`L${last.agent_binding.delegation_level}`} />}
{last.loop_run && <StatusBadge value={last.loop_run.draft_certified ? 'loop certified' : 'loop held'} />}
<StatusBadge value={last.audit_verify.ok ? 'audit ok' : 'audit fail'} />
</div>
<div className="whitespace-pre-wrap text-sm leading-6 text-gray-800">{last.answer}</div>
@@ -234,6 +235,18 @@ export function Chat() {
</div>
</div>
)}
{last.loop_run && (
<div className="rounded border border-gray-200 p-3">
<div className="text-xs font-semibold uppercase text-gray-400">Loop run</div>
<div className="mt-1 font-medium text-gray-800 break-all">{last.loop_run.run_id}</div>
<div className="mt-2 flex flex-wrap gap-2">
<StatusBadge value={last.loop_run.decision} />
<StatusBadge value={last.loop_run.draft_certified ? 'draft certified' : 'draft held'} />
<StatusBadge value={last.loop_run.side_effect_released ? 'released' : 'held'} />
<StatusBadge value={last.loop_run.replay?.ok ? 'replay ok' : 'replay pending'} />
</div>
</div>
)}
<div>
<div className="text-xs font-semibold uppercase text-gray-400">Matched rules</div>
<div className="mt-1 flex flex-wrap gap-2">