cli/pkg
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
..
agentci feat(agentci): Clotho orchestrator and security hardening 2026-02-10 03:08:16 +00:00
agentic fix: resolve conflict markers and remove legacy code after branch consolidation 2026-02-08 22:08:35 +00:00
ai feat: infrastructure packages and lint cleanup (#281) 2026-02-04 11:34:43 +00:00
ansible feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
auth fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
build fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
cache Merge branch 'fix/io-migration-cache' into new 2026-02-08 21:28:25 +00:00
cli fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
collect feat: infrastructure packages and lint cleanup (#281) 2026-02-04 11:34:43 +00:00
config fix: resolve conflict markers and remove legacy code after branch consolidation 2026-02-08 22:08:35 +00:00
container fix: resolve conflict markers and remove legacy code after branch consolidation 2026-02-08 22:08:35 +00:00
crypt Merge branch 'feat/frankenphp-native-app' into new 2026-02-08 21:18:41 +00:00
deploy feat: wire release command, add tar.xz support, unified installers (#277) 2026-02-04 00:49:57 +00:00
devops fix: resolve conflict markers and remove legacy code after branch consolidation 2026-02-08 22:08:35 +00:00
forge feat(agentci): Clotho orchestrator and security hardening 2026-02-10 03:08:16 +00:00
framework fix: resolve conflict markers and remove legacy code after branch consolidation 2026-02-08 22:08:35 +00:00
git feat: git command, build improvements, and go fmt git-aware (#74) 2026-02-01 10:48:44 +00:00
gitea fix: restore packages accidentally deleted during PR #313 rebase (#333) 2026-02-05 11:16:23 +00:00
help feat(help): Implement full-text search (#294) 2026-02-05 10:26:16 +00:00
i18n updates 2026-02-09 01:27:40 +00:00
infra fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
io fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
jobrunner feat(agentci): Clotho orchestrator and security hardening 2026-02-10 03:08:16 +00:00
log feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
mcp fix(core-ide): use path-based routing for multi-window SPA, clean up formatting 2026-02-09 01:50:57 +00:00
plugin feat: infrastructure packages and lint cleanup (#281) 2026-02-04 11:34:43 +00:00
process feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
rag style: fix gofmt formatting across all affected files (#279) 2026-02-04 01:27:01 +00:00
release Merge branch 'feat/release-and-installers' into new 2026-02-08 21:59:18 +00:00
repos Merge branch 'fix/io-migration-repos' into new 2026-02-08 21:28:50 +00:00
session feat: add crypto, session, sigil, and node packages 2026-02-08 20:52:28 +00:00
unifi fix: restore packages accidentally deleted during PR #313 rebase (#333) 2026-02-05 11:16:23 +00:00
webview feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
workspace feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00
ws feat: BugSETI app, WebSocket hub, browser automation, and MCP tools (#336) 2026-02-05 17:22:05 +00:00