cli/pkg/forge
Claude d92762ecdc
feat(agentci): Clotho orchestrator and security hardening
Adds the Clotho dual-run verification system and hardens the entire
agent dispatch pipeline against command injection, token exposure,
and SSH MitM attacks. Breaks the agentci→handlers circular dependency.

Security:
- SanitizePath (regex whitelist + filepath.Base) for all dispatch inputs
- EscapeShellArg for shell argument safety
- SecureSSHCommand (StrictHostKeyChecking=yes, BatchMode=yes)
- ForgeToken removed from ticket JSON, transferred via .env with 0600
- ssh-keyscan on agent add populates known_hosts before first connection

Clotho:
- Spinner orchestrator determines Standard vs Dual execution mode
- Config-driven via ClothoConfig (strategy, validation_threshold)
- Agent runner supports claude/codex/gemini backends with dual-run
- Divergence detection compares thread outputs via git diff

API:
- LoadActiveAgents() returns map[string]AgentConfig (no handlers import)
- LoadClothoConfig() reads clotho section from config
- Forge helpers: AssignIssue, EnsureLabel, AddIssueLabels

32 tests pass (19 agentci + 13 dispatch).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 03:08:16 +00:00
..
client.go feat(jobrunner): port from GitHub to Forgejo using pkg/forge 2026-02-09 00:40:49 +00:00
config.go feat: add Woodpecker CI pipeline and workspace improvements (#1) 2026-02-08 13:25:06 +00:00
issues.go feat(agentci): Clotho orchestrator and security hardening 2026-02-10 03:08:16 +00:00
labels.go feat(agentci): Clotho orchestrator and security hardening 2026-02-10 03:08:16 +00:00
meta.go feat: add Woodpecker CI pipeline and workspace improvements (#1) 2026-02-08 13:25:06 +00:00
orgs.go feat: add Woodpecker CI pipeline and workspace improvements (#1) 2026-02-08 13:25:06 +00:00
prs.go fix(agentci): use log.E() error pattern, add Charm SSH TODOs 2026-02-09 11:15:11 +00:00
repos.go feat: add Woodpecker CI pipeline and workspace improvements (#1) 2026-02-08 13:25:06 +00:00
webhooks.go feat: add Woodpecker CI pipeline and workspace improvements (#1) 2026-02-08 13:25:06 +00:00