eval: corpus recall 3/9 → 4/9 — self-contained loaded-subscription fixture (P-012)#51
Conversation
…(P-012) The benchmark scored screentogif-loaded-subscription a miss, but it is a *subscription* leak — our strongest class. The cause was the fixture, not the extractor: before.cs subscribed to `_viewModel.ShowErrorRequested` but never declared VideoSourceViewModel, so the type-aware extractor could not bind the `+=` to an event and honestly emitted OWN050 (unresolved) — a note, not a verdict. The reduction was understating our own detection. Make it self-contained (a minimal VideoSourceViewModel with the three events + a StatusBand stub, mirrored in after.cs) so the extractor resolves it and flags the leak (warning-tier: an injected DataContext source) exactly as it does on the full ScreenToGif repo; the matching `-=` in after.cs's Window_Closing keeps the fix silent. Recall is now 4/9 and the corpus-benchmark floor is raised to match. Lesson recorded (corpus-benchmark.md + P-012): a benchmark fixture that references an undeclared type silently degrades to OWN050; self-contained fixtures, like the samples, measure honestly. The remaining 5 misses are genuine frontend extraction gaps (pool double-return/use-after-return, interprocedural handoff, a cross-method use-after-dispose, a region-escape shape) — the tracked recall backlog. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rg8kSk1YT14x7A1vo5zgED
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThe ChangesCorpus fixture fix and recall gate ratchet
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
What
Ratchets the corpus benchmark recall 3/9 → 4/9 by fixing a fixture that was understating our own strongest class.
screentogif-loaded-subscriptionis a subscription leak — the class the extractor is best at — yet it scored a miss. The cause wasn't the extractor: the reduction'sbefore.cssubscribed to_viewModel.ShowErrorRequestedbut never declaredVideoSourceViewModel, so the type-aware extractor couldn't bind the+=to an event and honestly emittedOWN050(unresolved) — anote, not a verdict. The fixture, not the analyzer, was the problem.Making the reduction self-contained (a minimal
VideoSourceViewModelwith the three events + aStatusBandstub, mirrored inafter.cs) lets the extractor resolve it and flag the leak — warning-tier, an injectedDataContextsource it can't prove outlives the window — exactly as it does on the full ScreenToGif repo. The matching-=inafter.cs'sWindow_Closingkeeps the fix silent.The proof (benchmark scorecard, CI)
loaded-subscriptionflipped MISSED → caught: OWN001; specificity stays perfect (9/9 clean, 0 FP). Thecorpus-benchmarkfloor is raised to--min-recall 4so it can't regress.Lesson recorded
A benchmark fixture that references an undeclared type silently degrades to
OWN050; self-contained fixtures (like the samples) measure honestly. Documented incorpus-benchmark.md+ P-012.The remaining 5 misses are genuine frontend extraction gaps — pool double-return (
OWN003) / use-after-return (OWN002), the interprocedural ownership-handoff, a cross-method use-after-dispose, and a region-escape shape — the tracked recall backlog the floor ratchets up to as each lands.🤖 Generated with Claude Code
https://claude.ai/code/session_01Rg8kSk1YT14x7A1vo5zgED
Generated by Claude Code
Summary by CodeRabbit
Chores
Tests
Documentation