fix T1+T4: wire rollback into pipeline; real Ollama telemetry in metrics

T1 (H7): casan-step.mjs now calls rollback-manager.sh checkpoint before
overwriting plan.md at attempt-2, writes tx-id to plan.checkpoint.txid
sidecar, and executes rollback on REJECTED verdict. rollback-transactions.jsonl
records a real cp restore command. Adversarial test: checkpoint exists,
real cp command recorded, plan hash matches pre-overwrite content.

T4 (H6): casan-harness.sh exports CASAN_STEP_NAME=$ACTION_NAME before
agent-metrics.sh so nested model calls (model-call.py) and the provider-
cost-lookup.py query share the same step label. metrics.jsonl now writes
cost_source=provider_telemetry instead of word_count_estimate when a real
Ollama call is made within the same step. Adversarial test: verified with
CASAN_STEP_NAME=t4-telemetry-test end-to-end.

adversarial-harness-tests.sh: 40 → 44 PASS / 0 FAIL (+3 T1, +1 T4)
security-gate.sh: PASS=10 FAIL=0 SKIP=0 (verified, local ornith:9b)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-01 11:25:50 +09:00
co-authored by Claude Sonnet 4.6
parent f74a5b6e42
commit a8edbea534
18 changed files with 284 additions and 159 deletions
@@ -1,5 +1 @@
šýnäŒI#w¯ZkçaÑU ô —
ü$q¤öð9˘Xè—¦«îƪÔ<±>±Î‰ä�îVpÂ␍~€9·'ÌLľ¶_Ý Ý,§lôÚŽØýrL©¼lÛ²Wc0W“â—£õ“åߤ·Ø.Ë ²Yžs>Æ»ÀÚ”’b‰–�e£b¶™j�¼?À,s›Œ€k¥XÏ£/ä ÿN:ª"(Úš‹|yÅõGNs␍ÒÖYþkû„_ÈÞ%¢i
=Å-s¹üÁš
eþ:èÒ({RrÃTPÁ±
£\’3ý�„ùM�™V€ëLb=}‡cBJ#fwБÏ>œ÷~ú3¨Ô¾+€
f G� УД��-ЁжЄ\­GЌЮ'6Ы{duМК-аVл�GЮyd�ТЌgЃ�рЬу:o(Wѓ'vb�~[Цѕ)"]�Њџєу�Ь��О�/tТPЯDi8�\rTwЛп�Ѓ[�BЬ5%9 ��зqЪ1oљ�ё�kЊeM�pLв*оьџЌ>Q|§В;іsBe'дg|С� vIuхY%2V%)��ЇЅ!юљ`Эх�уWю[�К)XЄ.{в(лЩMнHeРгИ�В�и��fќ+Р51а�IЂ �mхR�ЕHXЯ-ЬULyз�­ОьdЄкЪ?ђ�1Ќ'��>5жz