Skip to content

SMOODEV-4158: Harness fixes from the luna/haiku bench run - #848

Merged
brentrager merged 6 commits into
mainfrom
SMOODEV-4158-harness-fixes
Oct 24, 2026
Merged

brentrager merged 6 commits into
mainfrom
SMOODEV-4158-harness-fixes

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

I triaged the first gpt-6-luna and claude-haiku-5-5 bench run (SMOODEV-4125). Two of its failures were caused by Big Smooth itself rather than by the models.

  1. Sign-in contradiction. On a signed-out daemon, the persona and the th tool description told the model "you are already signed in to their active org". The account section said no session was readable. Asked to "mark the Anderson deal as won", both models went to the CRM, got the sign-in error and answered "run smoo auth login". They never read the deals.json in the workspace. ambiguous-target-asks failed 0/6.
  2. Narc redirect false positive. The shell detector looked only at the first > in a command and treated what followed as a file. npm install 2>&1 | tail therefore counted as truncating &1 | tail, and so did quoted arrows like node -e "x => x". With the judge unreachable, Narc failed closed and blocked every install, test and build Haiku ran, so the judge scored process at 3. With the judge reachable, every ordinary command still costs a judge round trip.

Solution

  • Only the account section states the sign-in state now.
    • The persona and the th tool description no longer assert it.
    • A signed-out request falls back to workspace data that fits it. The signed-in behaviour is unchanged.
  • has_truncating_redirect checks every unquoted >:
    • skipped: >>, >&N, /dev/ targets and anything inside quotes;
    • still counted: >|, &>, and a real truncation later in the line (cmd 2>&1 > out.txt).
  • The Narc true-positive tests are extended alongside the new false-positive cases.

The engine side, which re-asks an LLM call when its stream breaks mid-response, ships in smooth-operator-core 1.15.0 (SmooAI/smooth-operator-core#209 into #208). Smooth picks it up with the =1.15.0 pin.

Verification

  • Tests: th:: 24 pass, including a new description test. operator:: 67 pass, including the new persona and identity assertions. The Narc detector tests cover both the true-positive and false-positive sides.
  • Targeted bench reruns: run on a build of this branch merged with SMOODEV-4125: Bench app builds and code changes on luna + haiku #839, ×3 per model.
scenario model before after
ambiguous-target-asks gpt-6-luna 0/3 3/3
ambiguous-target-asks claude-haiku-5-5 0/3 3/3
  • In every passing trial the agent checked the workspace after the sign-in error, named both Anderson deals and asked which one (request_choices).

Jira: SMOODEV-4158

🤖 Generated with Claude Code

brentrager and others added 5 commits October 24, 2026 13:48
On a signed-out daemon, the persona and the th tool description told the model
"you are already signed in", while the account section said no session was
readable. On the bench, gpt-6-luna and claude-haiku-5-5 were both asked to
"mark the Anderson deal as won". Both went to the CRM, hit the sign-in error
and answered "run smoo auth login" without reading the deals file in the
workspace. Only the account section states the sign-in state now, and a
signed-out request falls back to workspace data that fits it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The shell detector looked at the first `>` in a command and treated whatever
followed it as a file. So `npm install 2>&1 | tail` "truncated" `&1 | tail`,
and so did quoted arrows like `node -e "x => x"`. With the Narc judge
unreachable, that failed closed and blocked every install, build and test that
claude-haiku-5-5 ran on the bench. With the judge up, it costs a judge round
trip per ordinary command.

Every unquoted `>` is now checked. `>>` (append), `>&N` (descriptor
duplication) and `/dev/` targets are skipped, and `>|` and `&>` count. A real
truncation later in the line (`cmd 2>&1 > out.txt`) is still caught.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7ef3caf

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/smooth Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager
brentrager enabled auto-merge (squash) October 24, 2026 19:59
@brentrager
brentrager merged commit 9441df2 into main Oct 24, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant