M17-1: Multi-repo support #152
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#152
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?
As an operator, I want the webhook to route against a configurable list of repos, so that the same agent fleet serves
charles/loom,charles/proxmox-iac,charles/ws-rpc-testalongsidecharles/claude-hookswithout code changes per repo.Acceptance criteria
Config & validation
config/agents.jsongrows a top-levelrepos: [...]list (today one implicit entry)loadWebhookConfigvalidates each repo string asowner/namecharles/claude-hooksacrosssrc/*.ts— none should remain as a string literal. Parameterise off incoming webhook payload or config listLabel & sweeper iteration
labels.tsreconcile iterates every repo at startup, not just onejust labels-bootstrap <owner>/<repo>still works ad-hoc for repos outside the listarea:*+type:*labels on first reconcile; new area labels are additive (don't delete labels already present)sweeper.tsiterates every repo's cache clones + worktreesWebhook dispatch
payload.repository.full_nameagainst the config listbreakdownskill respects the out-of-scope rule "no cross-repo" — dispatches against whichever repo the/breakdowncall or trigger-comment originates from, matching one of the config's reposTests
webhook-config.test.ts: config with 3 repos loads, each accessible vialoadWebhookConfig().reposlabels.test.ts: reconcile applies the canonical set to 3 different repos in one startup passwebhook-handlers.test.ts: webhook from unknown-repo payload is rejected with a 404 log line, no dispatchDocs
Out of scope
dev-loom-specialist). Pool stays global; routing is on labels not repos.skills/) and apply to every dispatch.Dependencies
References
specs/m17-multi-repo-and-observability.md§Story M17-1