Fix the test gaps found by mutation testing (13 triaged, ~180 untriaged)
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
- 70/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- testing-qa
Direzione di ricerca
Read docs/evals/mutation-baseline.md to see the full list of gaps. Choose one of the 13 triaged items and find the corresponding function in agent_loop.rs, context.rs, llm_compaction.rs, provider/model.rs, or prices.rs. Write a test that would have detected the surviving mutant, then run cargo test to verify.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Follow-up to #163. The first full weekly mutation run (36480327733) left 202 of 797 viable mutants undetected. docs/evals/mutation-baseline.md has the per-module table and the full list.
Triaged real gaps (from the 1-in-10 sample)
These are confirmed test gaps: code that runs under test, but nothing checks what it does. Line numbers are at 9d060c7; the baseline page has the reasoning for each.
-
agent_loop.rsrun_loop:turn_delayis never exercised by any test (turn_number > 0→<survives). -
agent_loop.rsrun_loop: the loop never checks that compaction uses the headroom-adapted ratio (!=→==survives). -
agent_loop.rsrun_loop: steering messages queued during tool execution could be dropped undetected (delete !in!steering.is_empty()). -
agent_loop.rsstream_assistant_response: no test streams an SSE-embedded error and checks forMessageStart/MessageEnd. The GASP recorder depends on thatMessageEnd. -
context.rsmessage_tokens: extension-message estimate (+ 4→- 4; could underflow). -
context.rslevel2_summarize_old_turns: no test checks what a level-2 summary says. -
context.rssafe_head_end: the head boundary is never placed right after an assistant message that opens tool calls. -
context.rssafe_turn_start: a split is never placed on a tool result to check that the turn stays together. -
context.rssignature_hash: no session has two different repeated signatures (a constant hash survives). -
llm_compaction.rsclip: nothing checks that a clipped block keeps its firstmaxbytes (&&→||clips everything to""). -
provider/model.rsContextTier::is_configured: an all-zero tier is never tested. -
provider/model.rs: presetmax_tokensisn't pinned (claude_fable_5,claude_sonnet_5, and probably others). A test next topreset_prices_testwould cover them all.
Two boundary cases are real but low priority: llm_compaction.rs choose_cut < → <=, and compact > → >=.
Untriaged
About 180 other survivors from the full run haven't been sorted into real gaps and equivalent mutants yet. Per module:
| Module | Missed |
|---|---|
context.rs |
69 |
llm_compaction.rs |
45 |
provider/model.rs |
40 |
agent_loop.rs |
39 |
prices.rs |
9 |
Triage them by module. Add acceptable ones to exclude_re in .cargo/mutants.toml with the reason, and fix the rest with assertions that fail for the stated reason. The weekly run's summary shows the effect.
🤖 Generated with Claude Code
- Lingua principale
- Rust
- Stelle
- 327
- Fork
- 46
- Merge medio
- 2h 25m
- PR unite (30g)
- 159
Preparare l'ambiente
- Nessun Dockerfile né 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 yologdev/yoagent
-
enhancement P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
yologdev/yoagent#223 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement P3
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement P3
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement P3
Difficoltà 4/5 1-2 giorni Idoneità per principianti 56/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di yologdev/yoagent
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Negative subscript on a sparse array counts from the number of elements, not from the highest indexApertaarea: compat bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
reubeno/brush#1570 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
longbridge/gpui-kit#3620 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
mongodb/kingfisher#564 ·
I maintainer di solito rispondono entro 1 giorno