Skip to content

Conversation

@wesbillman
Copy link
Collaborator

Summary

Replace the CLI-based AI integration (shelling out to goose run -t) with proper ACP (Agent Client Protocol) communication. This provides a more robust and extensible foundation for AI features.

Changes

  • Add agent-client-protocol dependency for ACP communication
  • Create acp_client.rs module to handle ACP connections
  • Support both Goose (default) and Claude (claude-code-acp) agents
  • Run ACP session in dedicated thread with LocalSet (handles !Send futures required by ACP)
  • Find agents via login shell to handle GUI apps not inheriting PATH
  • Add kill_on_drop(true) to ensure child processes are cleaned up on early exit
  • Update test binary to use async API

Why ACP?

  • More reliable than parsing CLI output
  • Streaming support (though not used yet)
  • Foundation for future AI features that need persistent sessions
  • Consistent protocol across different AI agents

- Add agent-client-protocol dependency for ACP communication
- Create acp_client.rs module to handle ACP connections
- Update analyze_diff to use ACP instead of shelling out to CLI
- Run ACP session in dedicated thread with LocalSet (handles !Send futures)
- Find goose via login shell to handle GUI apps not inheriting PATH
- Update test binary to use async API
- Support both Goose (default) and Claude (claude-code-acp) agents
- Add kill_on_drop(true) to ensure child processes are cleaned up on early exit
- Each agent specifies its own ACP args (goose uses 'acp', claude runs in ACP mode by default)
@wesbillman wesbillman merged commit 467bd12 into main Jan 28, 2026
1 check passed
@wesbillman wesbillman deleted the wesb/add-acp-support branch January 28, 2026 17:27
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.

2 participants