Commit Graph

10 Commits

Author SHA1 Message Date
Miguel Palhas ca02107d42 fix(pr): pin agent-meta marker, add harness field
ci / nix (push) Successful in 10s
ci / lint (push) Failing after 12s
2026-08-26 10:34:52 +01:00
Miguel Palhas e818cfea8b feat(config): one agent roster for daemon and blitz
ci / lint (push) Successful in 1m12s
ci / nix (push) Successful in 18s
The reviewer pool was the only place naming harness+model combos, and
blitz kept its own table inline. `reviewers` becomes `agents`, gains
`roles` and `tiers`, and blitz routes from it via scripts/roster.sh.

Config path moves to ~/.config/agent-skills/; the reviewer path stays
readable so a box migrates with a mv.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-25 12:37:04 +01:00
Miguel Palhas 8313842de8 fix(review-pr): resolve any addressed thread, not only your own
Bot and other-reviewer threads block land the same way. The guard that
matters is whether the finding is addressed, not who opened it.
2026-08-24 11:23:53 +01:00
Miguel Palhas c7becda233 feat(review-pr): resolve own threads, post without approval
Trust comes from a repos[] entry in the reviewer config, not from the
forge. Listed repos post findings directly; only an unlisted repo still
holds findings for approval. The old text tied gating to github and
misread the config's mode field, which is the daemon's land/review
switch.

Adds §3.1: resolve a thread once the author addresses the finding.
Unresolved findings pile up for the life of the PR and block the
author's land session, which never declares a PR ready over an open
thread. Approval is still not the reviewer's to give.
2026-08-24 11:07:23 +01:00
Miguel Palhas 0f131f00a4 docs(pr-common): name the session's forge token
ci / nix (push) Successful in 8s
ci / lint (push) Successful in 11s
Every codex review session so far reached for REVIEWER_GITEA_TOKEN,
the name it found in the daemon's config.json, got an empty header and
a 401, then retried with GITEA_TOKEN. The config file now says which of
its fields the session may use, and COMMON.md says why the other name
is not the one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:15:09 +01:00
Miguel Palhas eb4db68dcb fix(review-pr): post findings on the PR, not rev
ci / nix (push) Successful in 10s
ci / lint (push) Successful in 12s
Reviewers followed the box's global "code reviews go to the rev server"
rule over the skill's posting step. Findings for maestro #45, #47 and #50
went into rev's DB under the review worktree path; the merge deleted the
worktree, rev now answers "not a known repo", and the PRs read as never
reviewed.

The rev rule is now scoped to changes the agent wrote itself, review-pr
names the forge as the only destination, and the daemon's opening prompt
repeats it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 19:05:34 +01:00
Miguel Palhas 085363e393 feat(pr-daemon): sandbox review sessions instead of prompting
ci / nix (push) Successful in 10s
ci / lint (push) Successful in 11s
Review sessions stopped at a permission prompt on every command, which
parks an unattended reviewer on a dialog nobody answers. They now run
confined: Claude gets a generated settings file (dontAsk + bash sandbox,
writes limited to the worktree and its git dir, network limited to the
forge API hosts, credentials unreadable), Codex gets --sandbox
workspace-write --ask-for-approval never plus a profile declaring the
repo untrusted, which also answers its trust prompt without granting it.

Claude Code treats .git as a protected path no allow rule opens, so the
seen and findings files are written with a shell redirect.

review-pr now always posts one review per head SHA, an ack when it has
no findings, so the author side gets a signal either way.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 13:48:55 +01:00
naps62-yolo 51fd18b23e feat(pr): hidden agent-meta marker on posted bodies (#16)
ci / nix (push) Successful in 8s
ci / lint (push) Successful in 9s
2026-08-21 16:36:40 +01:00
Miguel Palhas 5d1a81ec48 fix(review-pr): anchor findings to diff lines
The gitea posting snippet used the issue-comment endpoint, which has no
path or line, so findings named `path:line` in prose instead of landing
on the code. Both forges now post one COMMENT review carrying anchored
findings in comments[] and loose ones in the body.

land's gitea baseline missed review-comment ids, which would replay
every code comment on the first hint.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 10:24:00 +01:00
Miguel Palhas 787f133fdc feat: PR daemon + reviewer/author skill split
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>
2026-08-19 18:51:43 +01:00