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:
co-authored by
Claude Sonnet 4.6
parent
f74a5b6e42
commit
a8edbea534
@@ -60,6 +60,10 @@ case "$ACTION_NAME" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# T4: propagate step name so any nested model calls (model-call.py) log against the same step
|
||||
# name, enabling provider-cost-lookup.py to match real Ollama token counts in agent-metrics.sh.
|
||||
export CASAN_STEP_NAME="${CASAN_STEP_NAME:-$ACTION_NAME}"
|
||||
|
||||
# WP-S5: wrap command execution under a hard wall-clock timeout (tool-exec.sh).
|
||||
# Prevents runaway or hung tool calls from blocking the pipeline indefinitely.
|
||||
TOOL_TIMEOUT="${CASAN_TOOL_TIMEOUT_SECONDS:-30}"
|
||||
|
||||
Reference in New Issue
Block a user