From dcaefff7568603b337f28049731fc9a8eab99241 Mon Sep 17 00:00:00 2001 From: Steve Dudenhoeffer Date: Sat, 27 Jun 2026 10:44:22 -0400 Subject: [PATCH] ci(gadfly): add M1/M5 Macs back to the reviewer pool (full fleet) Re-adds the local Macs (m1/qwen3:14b, m5/qwen3.6:35b-mlx) via their foreman endpoints alongside the 3 cloud models. Cloud keeps lens fan-out (ollama-cloud=1 model + lens=3); each Mac runs one model with lenses serial (foreman serializes anyway); all provider lanes parallel. Bumps the job timeout 30->90m for the slow local lanes. With findings telemetry now on, gadfly-reports can quantify whether the Macs earn their keep. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitea/workflows/adversarial-review.yml | 34 +++++++++++++++---------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/adversarial-review.yml b/.gitea/workflows/adversarial-review.yml index 03d69a3..8c13d64 100644 --- a/.gitea/workflows/adversarial-review.yml +++ b/.gitea/workflows/adversarial-review.yml @@ -41,25 +41,33 @@ jobs: || github.actor == 'fizi' || github.actor == 'dazed')) runs-on: ubuntu-latest - # 3 cloud models, all concurrent, 3-lens suite. ~12 min typical. - timeout-minutes: 30 + # Full fleet: 3 cloud (lens fan-out) + M1/M5 Macs via foreman. The slow local + # lanes dominate wall time, so allow plenty of headroom. + timeout-minutes: 90 steps: - uses: docker://gitea.stevedudenhoeffer.com/steve/gadfly:sha-d7f364d env: GITEA_API: ${{ github.server_url }}/api/v1/repos/${{ github.repository }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} OLLAMA_CLOUD_API_KEY: ${{ secrets.OLLAMA_CLOUD_API_KEY }} - # executus uses CLOUD MODELS ONLY. The local Macs (m1/m5) were dropped: - # on a P2-review measurement they took 26–29 min (with lens timeouts) - # and contributed ZERO real findings — the two cloud models found every - # genuine bug in 6–12 min. Cloud-only is faster AND higher-signal. - # 3 cloud models. Concurrency now lives in the LENSES, not the models: - # one model runs at a time (PROVIDER_CONCURRENCY=1) with its 3 lenses - # concurrent (PROVIDER_LENS_CONCURRENCY=3). So the first model's - # comment lands sooner and each model finishes a bit faster, at the - # cost of the other two models' comments arriving in series after it. - GADFLY_MODELS: "minimax-m3:cloud,deepseek-v4-flash:cloud,glm-5.2:cloud" - GADFLY_PROVIDER_CONCURRENCY: "ollama-cloud=1" + # Local Macs, reached through their foreman queues (native Ollama on the + # wire). GADFLY_ENDPOINT_M1 registers provider "m1", _M5 registers "m5", + # each a foreman-preset Ollama client at the secret's URL, of the form: + # foreman|https://| + # Needs an image with foreman provider-type support (this one). If a Mac + # is offline that model's comment shows an error and the others still post. + # (Gitea secrets aren't auto-exposed — map each explicitly.) + GADFLY_ENDPOINT_M1: ${{ secrets.GADFLY_ENDPOINT_M1 }} + GADFLY_ENDPOINT_M5: ${{ secrets.GADFLY_ENDPOINT_M5 }} + # Full fleet: 3 cloud + M1 Pro + M5 Max. The Macs are back so the + # gadfly-reports scoreboard can quantify whether they earn their keep + # (they previously took 26–29 min for ZERO real findings — now measured). + # Cloud concurrency lives in the LENSES: one cloud model at a time + # (ollama-cloud=1) with its 3 lenses concurrent (LENS ollama-cloud=3) so + # its comment lands sooner; each Mac runs one model, lenses serial (its + # foreman queue serializes anyway). All three provider lanes run parallel. + GADFLY_MODELS: "minimax-m3:cloud,deepseek-v4-flash:cloud,glm-5.2:cloud,m1/qwen3:14b,m5/qwen3.6:35b-mlx" + GADFLY_PROVIDER_CONCURRENCY: "ollama-cloud=1,m1=1,m5=1" GADFLY_PROVIDER_LENS_CONCURRENCY: "ollama-cloud=3" # Default => the 3-lens suite (security, correctness, error-handling). # Set the repo var GADFLY_SPECIALISTS to override (csv / "all" / "auto").