[Meta] Hexagonal: AgentDispatchPort migration #513
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#513
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tracking
Lift the agentic stack (agent-runner + container lifecycle + MCP wiring) behind a single domain port —
AgentDispatchPort— mirroring the maturity already reached byForgePort(Phase 2).After this milestone, flow-runner / foreman / webhook handlers never see SDK messages, container IDs, or MCP server specs — only
dispatch(type, request) → { taskId, worker }.Why now
Forge layer fully hexagonalised. Agentic layer is the remaining gap. Audit findings (2026-04-28):
ClaudeAgentPortexists butagent-runner.ts:715–780still calls SDK directSDKMessageimport leak atagent-runner.ts:24, PR-extract regex at:679agent-runner.ts:543–548mcp-config.tsdual-mounts forgejo-mcp + forge-mcp without a port<type>:<repo>:<issue>does not bind forge → cross-forge collision riskforeman.tsbuilds SDK options directlyScope
Out of scope
References
docs/agents-architecture.mddocs/foreman.mddocs/containers.md