Skip to content

A Harness's cybersecurity refusal on a Security finding fails the Triage run and counts toward the Failure limit #1972

Open

Description

@JacobStephens2

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.

Activity

  1. JacobStephens2 commented on Nov 10, 2026

    @JacobStephens2
    OwnerAuthor

    This was generated by AI during triage.

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingready-for-humanRequires human implementation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions