Problem. Today, tracking writes happen as a side effect of the attack loop and silently fail. Either they're load-bearing (and a failure should fail the run) or they're best-effort (and the user should opt in knowing the audit may be incomplete).
Actions.
Acceptance: strict mode raises on tracking failure; best-effort mode logs at WARN and records tracking_status="partial".
Problem. Today, tracking writes happen as a side effect of the attack loop and silently fail. Either they're load-bearing (and a failure should fail the run) or they're best-effort (and the user should opt in knowing the audit may be incomplete).
Actions.
tracking_mode: Literal["strict", "best_effort"] = "strict"parameter toHackAgentor the relevant orchestrator entry point.RunRecord(new fieldtracking_status).Acceptance: strict mode raises on tracking failure; best-effort mode logs at WARN and records
tracking_status="partial".