scan.Run should always end with exactly one EventDone
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 65/100
Direzione di ricerca
Start in internal/scan/runner.go: read scan.Run, its early-exit paths, and the EventError documentation. Add coverage for each listed early exit and check that each produces exactly one EventDone; then review the CLI, TUI, and pkg/subenum consumers named in the issue. Done means all tests pass and no consumer handles a channel closing without EventDone.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why it matters
scan.Run has two shapes of ending, and every consumer has to know both. Three consumers now each handle it separately: the CLI (main.go), the TUI (internal/tui/model.go, scan_view.go), and pkg/subenum, which adds an extra KindDone so its callers see one shape.
Evidence
- On five early-exit paths,
scan.RunsendsEventErrorand returns withoutEventDone: an out-of-scope domain, the recursion ceiling, a failed preflight, a failed wildcard check, and a wildcard zone without-force(internal/scan/runner.go, about lines 434–495). Only the deferredclose(events)runs. EventErroris documented as "non-fatal error message" (runner.go:345). In practice, five of its six uses stop the scan. The sixth, the reliability guard at line 877, is followed byEventDone.- The CLI comment says "Early errors such as wildcard detection close the channel without EventDone". The TUI has a
closedflag for "the scan ended without EventDone".
Suggested approach
- Have
scan.Runalways send exactly oneEventDone, withStats(all zero when nothing was scanned), even after an earlyEventError. - Fix the
EventErrordoc comment to say it usually means the scan stopped. - Then remove the special cases: the CLI drain comment, the TUI
closedpath, and the synthesized event inpkg/subenum'sRun.
Done when
scan.Run always ends with one EventDone, a test covers each early-exit path, and none of the three consumers has to handle a channel that closes without one.
- Lingua principale
- Go
- Stelle
- 1
- Fork
- 1
- Merge medio
- 5g 2h
- PR unite (30g)
- 3
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un 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 TMHSDigital/subenum
-
area: cli enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
TMHSDigital/subenum#136 ·
I maintainer di solito rispondono entro 1 giorno
-
community documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
TMHSDigital/subenum#135 ·
I maintainer di solito rispondono entro 1 giorno
-
area: dns enhancement good first issue
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 90/100
TMHSDigital/subenum#134 ·
I maintainer di solito rispondono entro 1 giorno
-
community marketing priority: low
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TMHSDigital/subenum#132 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
feature priority: low
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
TMHSDigital/subenum#131 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TMHSDigital/subenum
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openimsdk/openim-sdk-core#1127 ·
-
github_actions
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
Hochfrequenz/aibap.mcp#578 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
mvanhorn/cli-printing-press#4980 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
lenaxia/LLMSafeSpaces#1644 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
automation code-quality cookie documentation improvement quick-win task-mining
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
github/gh-aw#67262 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno