fix(review-residue): the Tests line's printed command reproduces the class beside it (doMock, vi.mock(import()), the prose rule) and rendered paths are shell-quoted
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- git, typescript
Direzione di ricerca
Start in src/lib/workflow/review-residue.ts at the Tests line command and the rendered path commands; compare the command’s matching rules with MOCK_CALL_RE and isProseGate in src/lib/prose-gate.ts. Read the printed-command cases in src/lib/workflow/review-residue.test.ts and run the Vitest filters named in the issue. Done when both command reproduction cases pass, paths with spaces work, and the command table in docs/reference/review-residue.md reflects the updated Tests command.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Follow-up of #1520 (PR #1587); from QA 3's advisory notes and the independent code review.
Problem
R-3 on #1520 says every residue and test line carries the command that produced it, so a reviewer can re-run it. Two things break that promise on the Tests lines:
- The printed command is
grep -nE 'vi\.mock|jest\.mock|SKILL\.md' <path>(src/lib/workflow/review-residue.ts:294), but the class beside it comes fromMOCK_CALL_RE(:186), which also matchesdoMockand vitest's typedvi.mock(import("x")), and fromisProseGate(src/lib/prose-gate.ts), which needs a read of aSKILL.mdplus an assertion. A file classedmockbecause ofvi.doMock("child_process")prints a grep that returns nothing; a file with// see SKILL.mdprints a grep that hits while the class saysreal. The command does not reproduce the classification it sits beside. Today the command string names none ofdoMock,import(or the read rule (sed -n 294p … | grep -c doMock→0). - Paths in every rendered command (
numstatCmd, the hot-filegit log, the test-line grep) are interpolated bare. A path with a space or a shell metacharacter breaks the copy-paste command.
Acceptance Criteria
- AC-1: Each Tests line's command, run on the test file's text, agrees with the class shown: it hits exactly when the class is
mockorprose, and reports nothing forreal. A case runs the printed command (throughsh -con fixture sources written to a temp dir) for avi.doMockfile, avi.mock(import(...))file, a prose gate and a// see SKILL.mdmention, and compares. Evidence:npx vitest run src/lib/workflow/review-residue.test.ts -t "printed command"→≥ 1 passed, 0 failed(new case; today the filter matches 0 of 13 tests) - AC-1 is classified as a gate test by
isGateTestEvidence; the PR body carries itsSEQUANT_MUTATIONrecord (revert the command string to the current grep → thedoMockcomparison fails; restore). - AC-2: A diff path containing a space renders inside every command single-quoted (or otherwise shell-escaped), and
sh -con the rendered numstat command for that path exits 0 against a fixture repo. Evidence:npx vitest run src/lib/workflow/review-residue.test.ts -t "space"→≥ 1 passed, 0 failed(new case; today 0 of 13) - AC-3:
docs/reference/review-residue.md's command table shows the new test-line command. Evidence:grep -c 'doMock' docs/reference/review-residue.md→≥ 1(today0)
May touch
src/lib/workflow/review-residue.ts (the command strings and a shared quoting helper), review-residue.test.ts, docs/reference/review-residue.md, CHANGELOG.
Non-Goals
- Changing the seam classes or the rule behind them (#1566 for prose).
- Quoting anything other than paths.
- No edits under
plugin/,.claude/skills/,templates/skills/(plugin freeze).
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 1
- Merge medio
- 11h 3m
- PR unite (30g)
- 84
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sequant-io/sequant
-
graph-2026-11-simplify
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sequant-io/sequant#1650 ·
I maintainer di solito rispondono entro 1 giorno
-
run: --phases does not suppress the UI-label test phase (determinePhasesForIssue adds it to an explicit list)Forse già presa @admarble l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
sequant-io/sequant#1631 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
sequant-io/sequant#1601 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
sequant-io/sequant#1582 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
sequant-io/sequant#1381 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di sequant-io/sequant
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
danielw-sudo/agentuto#63 ·
I maintainer di solito rispondono entro 1 giorno
-
idea-scout idea:341
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
jeanibarz/agent-notebook#341 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue roadmap
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
nightgauge/nightgauge#3077 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
LibreChat-AI/LibreChat#17915 ·
I maintainer di solito rispondono entro 1 giorno