Skip to content

fix: resolve issues #43, #46, #48, #49#51

Merged
AbirAbbas merged 2 commits intomainfrom
fix/open-issues-43-46-48-49
Apr 13, 2026
Merged

fix: resolve issues #43, #46, #48, #49#51
AbirAbbas merged 2 commits intomainfrom
fix/open-issues-43-46-48-49

Conversation

@AbirAbbas
Copy link
Copy Markdown
Collaborator

Summary

Addresses four open issues in a single PR:

Files changed

File Change
Dockerfile Add mkdir -p /workspaces && chmod 777 (#46)
swe_af/execution/fatal_error.py New — FatalHarnessError, check_fatal_harness_error(), is_fatal_error() (#49)
swe_af/reasoners/pipeline.py Add fatal error checks at 4 harness call sites (#49)
swe_af/reasoners/execution_agents.py Add fatal error checks at 16 call sites + re-raise in 17 except blocks (#49)
swe_af/execution/coding_loop.py Re-raise FatalHarnessError in 4 except blocks (#49)
swe_af/execution/dag_executor.py Re-raise FatalHarnessError in 5 except blocks (#49)
swe_af/execution/envelope.py Raise FatalHarnessError for fatal envelope errors (#49)
swe_af/app.py Generate build_id before clone, scope workspace path (#43)
docs/deployment.md New — deployment guide (#48)

New tests (59 total, 0 regressions)

Test file Count Coverage
tests/test_dockerfile.py 3 Dockerfile structure validation
tests/test_fatal_error.py 40 Pattern matching, exception propagation, envelope integration
tests/test_build_isolation.py 5 Workspace path isolation, build_id ordering
tests/test_deployment_docs.py 11 Doc structure, section completeness

Test plan

  • pytest tests/test_dockerfile.py — 3 passed
  • pytest tests/test_fatal_error.py — 40 passed
  • pytest tests/test_build_isolation.py — 5 passed
  • pytest tests/test_deployment_docs.py — 11 passed
  • Full suite: 769 passed, 0 new failures (12 pre-existing)
  • Docker build + container write test
  • Manual end-to-end verification of each fix

Closes #43, closes #46, closes #48, closes #49

🤖 Generated with Claude Code

AbirAbbas and others added 2 commits April 13, 2026 11:58
… fatal errors, docs

Addresses four open issues:

- #46: Pre-create /workspaces in Dockerfile with 777 permissions so named
  volume mounts don't fail with read-only filesystem errors on fresh deploys.

- #49: Add FatalHarnessError for non-retryable API errors (credit exhaustion,
  invalid key, disabled account). Detected at all harness call sites across
  pipeline.py, execution_agents.py, coding_loop.py, dag_executor.py, and
  envelope.py — prevents silent retry loops and surfaces the real error.

- #43: Scope workspace paths by build_id (/workspaces/<repo>-<build_id>)
  so parallel builds for the same repo get fully isolated git state,
  artifacts, and worktrees. build_id is now generated before clone logic.

- #48: Add docs/deployment.md covering prerequisites, quick-start,
  known issues (#43, #45, #46, #49), scaling, and troubleshooting.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
agentfield 0.1.67 includes the opencode CLI v1.4+ compatibility fix
(Agent-Field/agentfield#450, ref SWE-AF#45).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@AbirAbbas AbirAbbas merged commit 49ac306 into main Apr 13, 2026
1 check passed
@AbirAbbas AbirAbbas deleted the fix/open-issues-43-46-48-49 branch April 13, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment