From 211a05dbe44e2743464a5eaad21ca621ef4167ad Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Tue, 28 Jul 2026 12:14:36 +0200 Subject: [PATCH] grinder: recover an undeployed target-regex fix + widen bin/ matching Found while deploying tonight's mneme-embeddings grind: boltzmann's /usr/local/bin/bullpen-grinder had silently diverged from this repo since 2026-07-25 (never re-synced after any of tonight's commits -- meaning gaps #1/#2/#4 were only EVER live via the env-var-driven tier list, not the report()-side AUTO-REVIEW/ESCALATION-EVAL code, which boltzmann was still running the old version of). The deployed copy had its own hand-patched fix that never made it into git: exclude inclusionai/ling-prefixed strings from the target regex (a research ticket quoting a model name like "inclusionai/Ling-flash-2.0" looks exactly like a dir/file target otherwise), plus a bin/[\w.-]+ alternative so bullpen's own extensionless bin/bullpen-* scripts can be auto-inferred as targets at all. Recovered both into the regex here, properly commented, rather than losing them on the next deploy. The deploy-sync gap itself is fixed separately by converting boltzmann's /usr/local/bin/bullpen-grinder into a symlink into this repo (matching the noether coordinator pattern already used for triage/selfimprove/doctor) -- see the accompanying deploy step, not a code change. Co-Authored-By: Claude Sonnet 5 --- bin/bullpen-grinder | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/bin/bullpen-grinder b/bin/bullpen-grinder index d9b4176..fcdd2e3 100755 --- a/bin/bullpen-grinder +++ b/bin/bullpen-grinder @@ -762,8 +762,19 @@ def serve(nick): # Explicit targets only when they look like real files; anything else is # left to grind()'s git-backed inference, which sees the actual repo. # Never offer a test file as a target — the grinder must not edit the spec. - targets = [t for t in re.findall(r"\b[\w-]+(?:/[\w.-]+)*/[\w.-]+\.\w+\b", body) - if not t.startswith("tests/") and t != test_rel] + # `bin/[\w.-]+` alternative: bullpen's own scripts (bin/bullpen-*) have NO + # dot-extension, so the base dir/dir/file.ext pattern alone can never match + # them — meaning a ticket fixing bullpen's own code couldn't auto-infer its + # own target. tmp/ and absolute paths are excluded (never real repo targets); + # inclusionai/ling excluded because research tickets quoting model names like + # "inclusionai/Ling-flash-2.0" look exactly like a dir/file target to this + # regex otherwise. (Recovered 2026-07-28: this fix existed only as an + # undeployed hand-patch on boltzmann's /usr/local/bin copy, never committed — + # merged back in when that staleness was found.) + targets = [t for t in re.findall(r"\b(?:bin/[\w.-]+|[\w-]+(?:/[\w.-]+)*/[\w.-]+\.\w+)\b", body) + if not t.startswith("tests/") and t != test_rel + and not t.startswith("tmp/") and not t.startswith("/") + and not t.startswith("inclusionai") and not t.startswith("ling")] reply = _remote_grind(body, test_rel, targets) review_reason = _auto_review_reason(reply) posted = False