Skip to content

docs: oracle sweep over 5 new OSS repos, 8 precision-gap follow-ups (issue #201)#226

Merged
PhysShell merged 6 commits into
mainfrom
claude/oracle-sweep-201
Jul 11, 2026
Merged

docs: oracle sweep over 5 new OSS repos, 8 precision-gap follow-ups (issue #201)#226
PhysShell merged 6 commits into
mainfrom
claude/oracle-sweep-201

Conversation

@PhysShell

Copy link
Copy Markdown
Owner

Что и зачем

Прогон differentiation-oracle по 5 новым OSS C#-репозиториям (issue #201): ShareX (WinForms-приложение), MahApps.Metro / MaterialDesignInXamlToolkit / AvalonEdit (WPF UI-тулкиты и контролы) и ClosedXML (обычная библиотека без UI — контроль на «чистом» коде). Каждая own-only находка сверена с реальным исходным кодом целевого репозитория; черновые вердикты — только для очевидных случаев, спорные вынесены в явный список "needs maintainer review". Финальные TP/FP-вердикты — за мейнтейнером.

Тип изменения

  • feat — новая возможность
  • fix — исправление бага
  • docs — документация
  • refactor / chore / test / ci — без изменения поведения

Как проверено

  • python tests/run_tests.py
  • ruff check . и mypy
  • селфтесты затронутых скриптов (python scripts/<...>.py --selftest)

Дополнительно: python tests/test_corpus.py (33/33, включая новый фикстур) и cd rust && cargo test — оба зелёные. tests/fixtures/cfg_parity.json перегенерирован под новый corpus-кейс.

Связанные issue

Closes #201

Чеклист

  • изменение покрыто тестом/селфтестом (или объяснено, почему нет) — новый corpus-фикстур sharex-shapemanager-menuform-leak прогнан через test_corpus.py/run_tests.py/cargo test
  • README/docs обновлены при необходимости — новая заметка docs/notes/oracle-sweep-2026-07-10.md, 9 новых паттернов в field-notes-patterns.md
  • коммиты в conventional-commit стиле (feat:, fix:, docs: …)

Детали

Метод. workflow_dispatch недоступен этому токену (403), поэтому использован уже существующий push-triggered dev-loop oracle.yml (тот же приём, что и в real-world-mining.md) — временно на этой ветке; оба файла (oracle.yml, corpus/oracle-target.txt) возвращены к состоянию main перед мержем.

Итоги по репозиториям (own-only / oracle-only, agree):

  • ShareX/ShareX — 230/65, agree 5. 2 подтверждённых реальных бага (Form-тулбар без Dispose, ContextMenuStrip-менеджер вообще без Dispose) + 3 класса ложных срабатываний.
  • MahApps.Metro — 3/0, agree 0. Все 3 — ложные срабатывания, 3 новых паттерна.
  • MaterialDesignInXamlToolkit — 18/4, agree 0. Подтверждает один из паттернов MahApps + 2 новых.
  • AvalonEdit — 14/8, agree 0. Третье подтверждение самого частого паттерна (6+ точек в 3 репо) + 2 новых идиомы + 2 реальных бага.
  • ClosedXML — 5/8, agree 0. Один корень (no-op Dispose() на пользовательском типе) — чистый контрольный результат.

Без изменений в анализаторе. Все найденные precision-дыры оформлены отдельными issues #218-#225, самая ценная (и трижды подтверждённая) — ротация подписки old/new при смене DependencyProperty/свойства.


Generated by Claude Code

claude added 6 commits July 10, 2026 21:19
The automation token can't workflow_dispatch (403 Resource not
accessible by integration), same limitation recorded in
real-world-mining.md. Reuse the existing push-triggered scaffolding
(oracle.yml's push path + corpus/oracle-target.txt) on this branch to
run the issue #201 sweep. Dev-loop only — reverted before merge.
Runs the cross-tool oracle over 5 repos never mined before — ShareX (WinForms
app), MahApps.Metro / MaterialDesignInXamlToolkit / AvalonEdit (WPF UI toolkits
and controls), and ClosedXML (plain library, the clean-code control) — and
triages every own-only finding against the target's real source.

Per the triage boundary: draft verdicts only for obvious, source-verified
cases; anything ambiguous is listed explicitly under "needs maintainer
review" rather than self-certified. No analyzer code changes here — every
confirmed precision gap is filed as its own follow-up issue (#218-#225),
the most corroborated being a DependencyProperty/property-changed old-new
subscription-rotation false positive confirmed in 3 separate repos.

Nine new idioms ledgered in field-notes-patterns.md (entries 11-19). One
flagship true positive (ShareX's ShapeManager.menuForm — a full annotation
toolbar Form leaked every capture session) is reduced to a corpus/real-world/
regression fixture; cfg_parity.json regenerated to match.

The push-triggered oracle dev-loop scaffolding used to run these sweeps
(workflow_dispatch isn't available to this token) is reverted to its
pre-sweep state, per the existing dev-branch-only convention.

Closes #201

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D6Naf8CcezjCbikueKdeYv
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@PhysShell, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 15 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: faee2718-60e9-434e-8fd8-e2dd42a91d95

📥 Commits

Reviewing files that changed from the base of the PR and between a5d611c and 232a697.

📒 Files selected for processing (8)
  • corpus/real-world/sharex-shapemanager-menuform-leak/after.cs
  • corpus/real-world/sharex-shapemanager-menuform-leak/before.cs
  • corpus/real-world/sharex-shapemanager-menuform-leak/case.own
  • corpus/real-world/sharex-shapemanager-menuform-leak/expected-diagnostics.txt
  • corpus/real-world/sharex-shapemanager-menuform-leak/notes.md
  • docs/notes/field-notes-patterns.md
  • docs/notes/oracle-sweep-2026-07-10.md
  • tests/fixtures/cfg_parity.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/oracle-sweep-201

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@PhysShell
PhysShell merged commit c029e8d into main Jul 11, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Prove value: oracle sweep over new OSS repos + draft triage table

2 participants