You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A Harness's cybersecurity refusal on a Security finding fails the Triage run and counts toward the Failure limit #1972
This was generated by AI while setting up scheduled Triage Passes on other repositories.
What happened
A scheduled Triage Pass (thirdshift 0.27.0, Harness codex) took a private Security finding labelled needs-triage. The session ended with Codex exiting 1 with its "flagged for possible cybersecurity risk" refusal, and thirdshift reported private Security finding triage failed (src/triage.rs:315).
As with any failed Triage run on an existing issue, the finding was left ready-for-human + agent-failed. In a repository whose needs-triage queue holds several Security findings, each Pass fails the same way, and the third agent-failed issue reaches pickup.failure_limit, stopping that repository's Pickup runs as well as its triage.
The same finding triaged with harness claude (--recommend-only) completed normally. The affected Passes now run with harness claude, and the failed finding was requeued by hand.
Why it matters
The refusal comes from the Harness provider's safety filter, not from the issue or the Base branch. The Failure limit exists to catch a broken Base branch or Harness; here the Harness works for everything except one kind of content, and a queue of findings can freeze unrelated factory work.
Decision for the Day shift
Some combination of:
recognise a Harness safety refusal (Codex's cybersecurity exit; Claude's cyber refusal, which src/harness already interprets for Security sessions) and end the Triage run without agent-failed, leaving a note naming the refusal;
triage security-finding issues with security.harness rather than the default Harness, as Security runs can, or let a Triage Pass pass over them;
say in docs/guide.md (Triage runs) which Harness a Triage Pass uses for private Security findings.
ready-for-human: it decides how Security findings and the Failure limit interact.
Related #1546 requests Harness fallback after a terminal cybersecurity refusal. At Base 0009a53, src/harness/interpretation_tests.rs:1200 confirms that typed Codex safeguard-refusal evidence is enabled for Security interpretation; ordinary interpretation still fails without that typed refusal context. src/session.rs:539 explicitly excludes typed safeguard refusals from Security-review fallback. These are locally checked code contracts, not a reproduction of the reported incident. Recommend deciding refusal outcomes here separately from #1546's temporary-service fallback configuration.
Activity
JacobStephens2 commentedon Nov 10, 2026
Related #1546 requests Harness fallback after a terminal cybersecurity refusal. At Base 0009a53, src/harness/interpretation_tests.rs:1200 confirms that typed Codex safeguard-refusal evidence is enabled for Security interpretation; ordinary interpretation still fails without that typed refusal context. src/session.rs:539 explicitly excludes typed safeguard refusals from Security-review fallback. These are locally checked code contracts, not a reproduction of the reported incident. Recommend deciding refusal outcomes here separately from #1546's temporary-service fallback configuration.