test(#5715): commit agent fixtures when registering local custom harness - #5719
Conversation
|
🤖 Finished Review · ✅ Success · Started 2:08 PM UTC · Completed 2:20 PM UTC |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ReviewFindingsLow
Labels: PR modifies behaviour test harness registration logic in pkg/behaviourtest/steps/ |
c196a69 to
5802cfd
Compare
|
/fs-fix rebase onto main |
|
🤖 Finished Fix · ❌ Failure · Started 4:40 AM UTC · Completed 4:45 AM UTC |
givenCustomHarness and givenDisabledCustomHarness commit the harness YAML and register it in config.yaml but never create the agent (or policy) MD file referenced by the harness's agent: field. After scaffold agent files were removed (#5552 / #5588), clean pool repos fail at harness validation with "no such file or directory" for .fullsend/agents/triage.md. Add commitLocalHarnessResources that parses the harness YAML for relative agent and policy paths and commits minimal stub files under .fullsend/ on the config repo. This mirrors commitRelativeResources in url_dispatch.go (used by URL-sourced harnesses) but writes to the config repo with the .fullsend/ prefix. Closes #5715 Signed-off-by: Barak Korren <bkorren@redhat.com>
|
The fix agent completed, but the post-fix script failed before finishing. Workflow run: https://github.com/fullsend-ai/.fullsend/actions/runs/30514420193 Details: |
5802cfd to
bccce6c
Compare
|
🤖 Finished Retro · ✅ Success · Started 7:10 AM UTC · Completed 7:23 AM UTC |
Retro: PR #5719 —
|
| Time (UTC) | Event |
|---|---|
| Jul 29 13:38 | Issue #5715 created by ifireball |
| 13:39–13:43 | Triage run #1 — found draft PR #5714, proposed it as a solution |
| 13:48 | Human re-triggered triage with instructions to disregard draft PR |
| 13:49–13:56 | Triage run #2 — proper root-cause analysis, applied ready-to-code |
| 13:56–14:06 | Code agent — created PR #5719 (187 additions, 2 files) |
| 14:06–14:20 | Review agent — approved with one low-severity finding |
| 14:18 | Human (ifireball) approved |
| 19:50 | Fix run #1 — failed at podman install step (5.x installed, 4.x required) |
| Jul 30 04:38 | Fix run #2 — agent succeeded (rebase + push), but post-fix script failed on schema path resolution |
| 07:07 | PR merged by ifireball |
What went well
- Code agent first-try quality: The code agent produced a clean, well-tested fix that mirrored the existing
commitRelativeResourcespattern fromurl_dispatch.go. 8 new test functions, 100% coverage on changed lines per Codecov. - Review accuracy: The review agent found a valid edge case (
http://URLs not filtered alongsidehttps://) and correctly classified it as inherited from the existing pattern, not a regression. Final verdict aligned with the human reviewer. - Review challenger value: The challenger sub-agent caught a high-severity false positive ("incomplete implementation") that the intent sub-agent produced because it received a condensed diff with placeholder comments. Without the challenger, this false positive could have blocked approval.
Evidence for existing open issues
- Review orchestrator should not abbreviate source file content with placeholder strings in sub-agent context packages agents#462 (review orchestrator placeholder abbreviation): This workflow produced a concrete example — the intent sub-agent flagged a fully-implemented function as "incomplete" because the orchestrator replaced the function body with placeholder comments before passing to the sub-agent. The challenger caught it, but this wasted tokens ($3.28 total review cost, 30 turns, 81 tool calls) and would have been a blocking false positive without the adversarial check.
- Post-fix failure comment should distinguish pre-push from post-push failures agents#534 (post-fix failure comment clarity): Fix run 30514420193 successfully rebased and force-pushed the branch, but the PR received a "Fix agent run failed" comment that didn't distinguish the post-script failure from actual agent failure. The human had to independently verify the rebase landed.
- Enable post-script-only retry when agent succeeds but post-script fails #2138 (post-script-only retry): The agent work completed successfully but the overall run was marked as failure because
post-fix.shcouldn't findfix-result.schema.jsonat the expected relative path in the content-addressed cache. No retry was attempted despite the agent succeeding. - Triage agent: check related issues for active PRs before labeling ready-to-code #2000 (triage + draft PRs): The first triage run found draft PR test(#5707): fix missing harness agent fixtures and timeout diagnostics #5714 and concluded the issue was already being addressed, requiring the human to re-trigger with explicit instructions to ignore it. This added ~13 minutes and a manual intervention.
Already-resolved issues encountered
- Post-fix schema path bug (post-fix: read FULLSEND_OUTPUT_SCHEMA from env instead of relative path agents#526, runner: inject FULLSEND_OUTPUT_SCHEMA into post-script environment #5722): Both closed July 29, but the fix had not propagated to the agents commit (
8b9e25e) used by the July 30 fix run. Normal deployment lag. - Podman version pinning (Pin podman version in action.yml to prevent runner image upgrade breakage #5733, PR ci(#5733): pin podman to 4.x to avoid crun incompatibility #5738): The first fix run failed because podman 5.8.4 was installed when 4.x was required. PR ci(#5733): pin podman to 4.x to avoid crun incompatibility #5738 was merged July 29 at 19:44 UTC but the fix run at 19:50 UTC still hit the issue (likely the runner image hadn't been rebuilt yet).
Proposals
No new proposals — all identified improvement areas are already covered by existing open issues. The workflow performed well overall, with the primary friction coming from infrastructure issues (podman version, schema path) that have already been addressed.
Summary
givenCustomHarnessandgivenDisabledCustomHarnessindispatch.gocommit the harness YAML and register it inconfig.yaml, but never create the agent/policy MD files referenced by the harness'sagent:field. After scaffold agent files were removed (#5552 / #5588), clean pool repos fail at harness validation withstat .../.fullsend/agents/triage.md: no such file or directory.Related Issue
Fixes #5715
Changes
commitLocalHarnessResourceshelper indispatch.gothat parses harness YAML for relativeagent:andpolicy:paths and commits minimal stub files under.fullsend/on the config repogivenCustomHarnessandgivenDisabledCustomHarnessafter committing the harness YAMLcommitRelativeResourcespattern inurl_dispatch.go(used by URL-sourced harnesses) but writes to the config repo with the.fullsend/prefixminimalAgentContentconstant for agent stubsTesting
go test ./pkg/behaviourtest/steps/passes (all existing + new tests)go vet ./pkg/behaviourtest/steps/passesgivenCustomHarnesswith agent, agent+policy, absolute/URL paths (skipped), disabled harness, andcommitLocalHarnessResourcesdirectly (agent, URL skip, absolute skip, no-agent-field, invalid YAML)Checklist
!for breaking changes)Note: pre-commit could not run in sandbox (network restriction on git fetch). The post-script runs it authoritatively.
Closes #5715
Post-script verification
agent/5715-custom-harness-agent-fixture)a6da8a87d71713bdf4e517cc2c65dae1997972c5..HEAD)