Two tests covering the fix from PR #60:
1. test_agent_tool_uses_subprocess_backend_and_task_is_pollable
- Spawns an agent via AgentTool
- Asserts backend=subprocess in the output (not in_process)
- Asserts the returned task_id has no "in_process_" prefix
- Asserts get_task_manager().get_task(task_id) finds the record,
proving that task tools (TaskGet, TaskOutput, etc.) would succeed
2. test_send_message_swarm_path_uses_subprocess_backend
- Patches SubprocessBackend.send_message as an AsyncMock
- Calls SendMessageTool with a name@team task_id
- Asserts the mock was called (i.e. SubprocessBackend was used,
not InProcessBackend)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update prompt assertions to match new OpenHarness system prompt
- Update agent definition tests (verification not verifier, tools=['*'])
- Add pytest.mark.skipif for tests needing real API or AutoAgent workspace
- Fix agent tool test for InProcessBackend same-name spawn conflict
- Fix flaky worktree test for CI environments
A lightweight open-source Python implementation of the Agent Harness architecture.
44x lighter than Claude Code (11K vs 512K lines), 98% core tool coverage.
- 43 tools with Pydantic validation and parallel execution
- Skills system compatible with anthropics/skills (17+ tested)
- Plugin system compatible with claude-code/plugins (12+ tested)
- API retry with exponential backoff
- Multi-level permissions with path rules
- React/Ink TUI with "Oh my Harness!" branding
- 114 unit tests + 6 E2E test suites
- MIT License