fix(agent): is_verify_command_inert misses mise's "unknown command" output — INERT build-gating warning never fires

Aperta Adatta ai principianti
#749 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia in agent/src/post_hooks.py, in is_verify_command_inert(), e riproduci alla lettera lo stderr di mise dell’issue. Controlla la gestione correlata in agent/src/repo.py, dove viene aggiunto l’avviso inert, quindi aggiungi un test di regressione che copra il codice di uscita e stderr; il lavoro è completo quando i casi inert di build e lint mostrano l’avviso ed evitano falsi fallimenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Component

Agent (Python runtime)

Describe the bug

is_verify_command_inert() (agent/src/post_hooks.py:77-99) fails to recognise mise's actual "task does not exist" phrasing, so a repository with no mise.toml at all is never classified as inert.

The most damaging consequence is not the wrong build_passed/lint_passed value — it is that the operator-facing warning at agent/src/repo.py:517-526 never fires:

if not config.build_command and is_verify_command_inert(result.returncode, result.stderr):
    build_gate_inert = True
    notes.append(
        "⚠️ Build-regression gating is INERT: no runnable `mise run build` task ..."
    )

Because the detector returns False, that note is never appended. A repo onboarded with no pipeline.buildCommand and no mise.toml therefore gets build-regression gating silently disabled with no warning to anyone — precisely the failure mode the warning exists to prevent.

Expected behavior

mise run build / mise run lint in a repo with no mise.toml should be detected as inert, so that:

  1. build_gate_inert / lint-inert is set,
  2. the "⚠️ Build-regression gating is INERT" note is appended and surfaced on the PR, and
  3. build_passed / lint_passed reflect inert-treated-as-passing rather than a bogus red.
Current behavior

The detector returns False, no inert warning is emitted, and lint_passed is persisted as false on every task against such a repo.

Reproduction steps

In any checkout with no mise.toml (e.g. a clone of aws-samples/sample-semantic-layer-structured):

$ mise run lint; echo "EXIT=$?"
mise ERROR unknown command: lint

Did you mean:
  mise install-into
  mise plugin-list
mise ERROR Version: 2026.8.4 macos-arm64
EXIT=1

Then feed that verbatim to the detector:

$ python3 -c "
import sys; sys.path.insert(0,'agent/src')
from post_hooks import is_verify_command_inert
print(is_verify_command_inert(1, 'mise ERROR unknown command: lint'))"
False

The heuristics check exit 127, "no tasks defined", "no task named", "mise" + "not found", and "command not found". Real mise emits unknown command with exit 1, matching none of them.

Observed in practice on task 01KZS7NFB480DGF2A6FZ5N3CZD and 01KZS86KNZPVK8FZXX757ADZ8S (both lint_passed=false, no inert note on the PR).

Possible solution

Add mise's real phrasing to the heuristic list in is_verify_command_inert:

or "unknown command" in s

Worth reviewing the full set of mise task-missing messages across versions rather than adding one string, and adding a regression test that feeds the verbatim stderr above. Note the mise version string is included in that stderr, so a test fixture should not match on version.

Related: the same detector is used for the post-agent gate in agent/src/post_hooks.py and for the lint inert path, so build and lint inert handling are both affected by the single missed match.

Lingua principale
TypeScript
Stelle
170
Fork
52
Merge medio
2g 21h
PR unite (30g)
11

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws-samples/sample-autonomous-cloud-coding-agents

Tutte le issue di aws-samples/sample-autonomous-cloud-coding-agents

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.