scan.Run should always end with exactly one EventDone
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 65/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Go
- Estrelas
- 1
- Forks
- 1
- Merge médio
- 14d 9h
- PRs com merge (30d)
- 1
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TMHSDigital/subenum
-
documentation testing
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 88/100
TMHSDigital/subenum#103 ·
Mantenedores costumam responder em até 1 dia
-
area: release bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
TMHSDigital/subenum#102 ·
Mantenedores costumam responder em até 1 dia
-
community marketing priority: low
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
TMHSDigital/subenum#132 ·
Mantenedores costumam responder em até 1 dia
-
feature priority: low
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
TMHSDigital/subenum#131 ·
Mantenedores costumam responder em até 1 dia
-
documentation marketing priority: medium
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
TMHSDigital/subenum#127 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de TMHSDigital/subenum
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
shukiv/jabali-panel#2029 ·
Mantenedores costumam responder em até 1 dia
-
[submenu] nil issue on ubuntu 26.04Talvez já em andamento @egoist assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
prime-radiant-inc/evener#3873 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
v2fly/domain-list-community#4127 ·
Mantenedores costumam responder em até 2 dias
-
extract_llm_sweep / cache_aware_summarizer prefix ask 400s when thinking.budget_tokens exceeds PrefixAskMaxTokensTalvez já em andamento @amiddavid assumiu hoje. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
rossoctl/context-guru#405 ·
Mantenedores costumam responder em até 1 dia