Skip to content

Fix relative schema path resolution in post-fix script under content-addressable cache #551

Description

@fullsend-ai-retro

What happened

On PR #5732, fix attempts 2, 3, and 4 (run 30488267454, run 30522112798, run 30525914229) all failed with the identical error: Cannot read schema /home/runner/work/.fullsend/.fullsend/.fullsend-cache/resources/sha256/<hash>/scripts/../schemas/fix-result.schema.json: [Errno 2] No such file or directory. The fix agent itself succeeded in all three runs (exit code 0). The failure occurred in post-fix.sh when it invoked process-fix-result.py, which resolves the schema path relative to its own location (scripts/../schemas/fix-result.schema.json). The content-addressable resource cache stores each fetched file under its own SHA256 hash path, so scripts/ and schemas/ are not sibling directories — the relative traversal resolves to a nonexistent path. This blocked all fix progress and required the human to manually rebase and re-trigger review.

What could go better

The process-fix-result.py script assumes a repository-like directory layout where scripts/ and schemas/ are siblings. This assumption held when resources were checked out as a git tree but breaks under the content-addressable cache that the fullsend harness uses to fetch agent resources. The bug is deterministic — it will affect every fix run that uses this script until the path resolution is fixed. Confidence is high: three consecutive identical failures with the same error message, and the log clearly shows the schema file was fetched successfully but stored at a different cache path.

Proposed change

Modify process-fix-result.py (or post-fix.sh which invokes it) in the fullsend-ai/agents repo to receive the schema file path via an environment variable or command-line argument instead of computing it relative to the script's own location. The harness already fetches schemas/fix-result.schema.json as a resource (visible in the run logs) — its resolved cache path should be passed to the script explicitly. Alternatively, validate-output-schema.sh could be updated to accept the schema path from the harness config rather than deriving it from $0. If FULLSEND_OUTPUT_SCHEMA is already set to the schema's cache path by the harness, the script should use that env var directly.

Validation criteria

The next 3 fix agent runs on fullsend-ai/fullsend should not fail with 'Cannot read schema ... No such file or directory'. Specifically, process-fix-result.py should successfully load the fix-result schema regardless of the resource cache layout.


Generated by retro agent from fullsend-ai/fullsend#5732

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions