Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/nix/module-eval
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas a669cd96b6 swarm-controller: post the review classifier's verdict on a review request
Requesting the forge account `review-classifier` as a reviewer now runs the
repo's rules against the PR and posts the result as that account's review,
on the head commit the run read. A push starts no run; only a fresh review
request does.

- An instance-wide `pull_request_review_request` system hook delivers to
  `/webhook/forge/review-request`. A request for any other reviewer, or a
  removed request, does nothing.
- The controller reads the PR, loads the rules with the same reader as
  `GET /api/review-classifier/rules`, sends one request on the try-out
  subject, and posts APPROVED or REQUEST_CHANGES with the table as the body.
- With no clean verdict (PR or rules don't load, the run fails, or any
  classification has no answer) it posts a COMMENT saying why, never an
  approval. The event is one function, `no_clean_verdict_event`.
- Table cells are flattened, markup-escaped, and every `@` gets a
  zero-width space, so a model's reason can't break the table or mention
  anyone.
- At most two requested reviews run at once; the rest wait in memory.
- The account is minted the way hive accounts are: a five-minute pass
  queues a `MintClassifierForgeToken` node when the token at
  `swarm/services/review-classifier/forge/token` is missing or stale. The
  token is `write:repository`. The controller's bao policy gains that leaf
  (create/read/update), pinned in module-eval bao-grants. The classifier
  never sees the token.

The account gets no repo access automatically; a repo admin adds it by
hand. A re-request retires the account's earlier review: Forgejo clears
`official` on a reviewer's earlier reviews when it is requested again
(models/issues/review.go AddReviewRequest, v16.0.5), and approvals and
rejection blocks count official reviews only.

Refs #5137
2026-10-12 16:11:50 +02:00
..
agent-forge-bao.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-github-bao.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-icon.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-matrix.nix module-eval: accept the agent's live bao pair as a store path 2026-10-11 10:00:43 +02:00
agent-memory.nix agents: hand over the kept drop-in's cap, warn at boot without one 2026-10-12 10:59:12 +02:00
agent-otel.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
agent-plugins.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-queue-bao.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-runtime.nix agents: swap the agent's bao leaf in with one rename 2026-10-11 10:00:43 +02:00
agent-user.nix module-eval: agent-user test asserts the heal_own_dir form 2026-10-09 11:30:30 +02:00
bao-basics.nix matrix: drop the per-hive appservice and its unused token 2026-10-05 07:48:17 +02:00
bao-controller.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00
bao-grants.nix swarm-controller: post the review classifier's verdict on a review request 2026-10-12 16:11:50 +02:00
bao-matrix-reader.nix nix: the hive's leaf does not read every secret in the store 2026-10-12 01:37:46 +02:00
bao-otel-collector.nix nix: finish the current-behaviour comment sweep in touched files 2026-10-05 09:58:57 +02:00
core-toggle.nix nix: hand the review classifier its store leaf as an nspawn credential 2026-10-12 13:11:21 +02:00
forge-placement.nix forge: fetch the OIDC client secret from bao instead of a host-side copy 2026-10-10 14:07:31 +02:00
grafana.nix grafana: mint the admin password into the store and apply it on every start 2026-10-12 15:16:53 +02:00
hive-otel.nix module-eval/hive-otel: pin the fetch reviving a start-limited collector 2026-10-10 01:22:32 +02:00
hive-tls.nix hive-tls: the root fetch presents the hive identity, as on main 2026-10-06 14:54:07 +02:00
journald-severity.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
lib.nix module-eval: set the hive-controller option only in tests that need a hive 2026-10-05 09:58:13 +02:00
matrix-core.nix module-eval: set the hive-controller option only in tests that need a hive 2026-10-05 09:58:13 +02:00
name-guards.nix swarm-controller reads its forge token from the store, not a host file 2026-10-08 13:25:47 +02:00
nats-authelia.nix hive telemetry collector: fetch its OIDC secret from the store under the hive's own leaf 2026-10-10 01:10:31 +02:00
nats-tls.nix module-eval/nats-tls: evaluate the no-URL leaf fixture with hive-c0re on 2026-10-10 01:05:33 +02:00
secret-publisher.nix nix: run the review classifier in a container of its own when a host enables it 2026-10-12 13:11:21 +02:00
swarm-otel-core.nix nix: follow-ups from the service/deploy split 2026-10-05 19:12:46 +02:00
swarm-otel-identity.nix hive-tls: a gateway host without the services-issuer pair evaluates and goes red at runtime 2026-10-06 14:54:07 +02:00
swarm-services-switch.nix nix: allSwarmServices turns on the review classifier 2026-10-12 13:11:21 +02:00