Skip to content

Align ops-alerts / selftune / maintainer-recap scoping with the regate sweep's isInstalled pattern #5023

Description

@JSONbored

Part of #5016. Depends on #5028 (isInstalled reliability).

Problem

opsScanRepos (src/review/ops-wire.ts:149-165), selfTuneRepos (src/review/selftune-wire.ts:91-119), and recapScanRepos (src/review/maintainer-recap-wire.ts:98-113) all still filter listRepositories().filter(isRegistered) before narrowing to isAgentConfigured. Their own comments claim parity with the regate sweep ("same scoping ... the regate sweep uses" / "SAME scoping the ops scan + regate sweep use") — but that's now stale. fanOutAgentRegateSweepJobs (src/queue/processors.ts:822-900) already dropped the isRegistered prefilter entirely: it unions ALL listRepositories() with the GITTENSORY_REVIEW_REPOS allowlist, then narrows via isConvergenceRepoAllowed || isAgentConfigured. These three were never updated to match when that fix landed.

Target

Drop the isRegistered prefilter in all three, mirroring the regate sweep exactly: start from all repos, narrow via isAgentConfigured (effectively isInstalled-gated in practice, since only installed repos have meaningful autonomy settings).

Risk note

Ops-alerts and maintainer-recap are pure observability/digest — low risk. Selftune is different: it can tighten qualityGateMinScore, which feeds the auto-merge/auto-close gate. Under-scoping selftune (missing installed-but-unregistered repos) doesn't cause a WRONG action, only a missed tightening opportunity — but give this one its own careful test pass given its adjacency to the write/action gate. No direct write/action permission was found gated on isRegistered anywhere in the codebase — this is the only indirect touch-point worth flagging.

Deliverables

  • Updated scoping in all three files, comments corrected to stop claiming stale parity.
  • Regression tests for each: an installed-not-registered repo is now included in the scan/tune/recap pass.
  • Full local gate green, 99% patch coverage on the diff.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions