One systemd daemon watches GitHub and Gitea and routes each PR to an aoe session: `land` for PRs you authored, `review-pr` for everyone else's. It reads metadata only and sends a single inert hint line, so untrusted PR text never passes through the thing that types into agent prompts. Routing is derived from `aoe list --json --all` by worktree branch, so no claim files and no daemon database. Dedupe stays in the session via `pr-<N>-seen`, which makes hints idempotent and a swallowed send self-healing. `land` loses its watcher machinery to the daemon and keeps the policy and per-event handlers; `pr-common` holds what both skills share. Review sessions run non-yolo without trusted hooks and never run the branch's code. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
42 lines
836 B
JSON
42 lines
836 B
JSON
{
|
|
"pollSeconds": 60,
|
|
"reconcileSeconds": 120,
|
|
"maxSessionsPerTick": 2,
|
|
"reviewProfile": "review",
|
|
"reviewTool": "pi",
|
|
"group": "pr",
|
|
"webhookPort": 7474,
|
|
"notifyWaiting": true,
|
|
|
|
"pathRoots": ["/home/you/code", "/home/you/work"],
|
|
|
|
"forges": {
|
|
"gitea": {
|
|
"api": "https://git.example.com/api/v1",
|
|
"tokenEnv": "REVIEWER_GITEA_TOKEN",
|
|
"webhookSecretEnv": "REVIEWER_GITEA_SECRET",
|
|
"self": "you"
|
|
},
|
|
"github": {
|
|
"api": "https://api.github.com",
|
|
"tokenEnv": "REVIEWER_GITHUB_TOKEN",
|
|
"webhookSecretEnv": "REVIEWER_GITHUB_SECRET",
|
|
"self": "you"
|
|
}
|
|
},
|
|
|
|
"repos": [
|
|
{
|
|
"forge": "gitea",
|
|
"repo": "*",
|
|
"mode": "drive",
|
|
"tool": "claude"
|
|
},
|
|
{
|
|
"forge": "github",
|
|
"repo": "acme/webapp",
|
|
"mode": "review"
|
|
}
|
|
]
|
|
}
|