Skip to content

fix: Bugbot predicts failing test despite indirect participant binding and passing typed fault assertion (#738) - #757

Merged
efraespada merged 2 commits into
developfrom
bugfix/738-bugbot-predicts-failing-test-despite-indirect-participant-binding-and-passing-typed-fault-assertion
Oct 28, 2026
Merged

efraespada merged 2 commits into
developfrom
bugfix/738-bugbot-predicts-failing-test-despite-indirect-participant-binding-and-passing-typed-fault-assertion

Conversation

@efraespada

@efraespada efraespada commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Bugbot can incorrectly claim that a test necessarily fails when it inspects only the public method and misses an indirect binding call. Review now selects the concrete parameterized case, traces delegates and bound callbacks through the fixture guards, and follows the typed failure to the exact assertion before retaining that claim.

What changed

  • Share the call-path/fault-evidence contract across ordinary and partitioned review and the existing product benchmark. Preserve real bypassed stubs, empty loops and swallowed errors; require a demonstrated contract mismatch before replacing the tested operation.
  • Keep corpus text inert with statically compiled TypeScript test factories, selected only after exact identity/text matching. Two boundary regressions reject modified text and unknown identities.
  • Add six controlled quality scenarios and seventeen regression cases. Native test oracles verify assertion outcomes and exact collaborator counts. The versioned corpus now has 65 cases; SDD/catalog and operator documentation are synchronized.

Validation

  • Full coverage passes 772 Jest suites / 14,117 tests, with 35 existing skips; all global/module budgets and setup acceptance pass. All 267 extension tests pass at 100% in four metrics. Local changed-code audit has zero misses or uncovered branches.
  • Directed tests: 62 pass; reference evaluator/oracle tests: 51 pass. Types, lint, Graphify, specifications/catalog/docs, full build, package validation (87 files) and real CLI/typed API/local web smoke pass. Normal hooks repeat build, full Jest and lint.

Review notes

The actual six-case product-runtime comparison is retained separately from reference predictions in issue-738.json. Both observed runs fail the full default model score. The corrected sample has zero matched false positives/negatives, but exact location accuracy is 1/3: two anchors are off by one. Inputs, expected findings and thresholds were unchanged. This is not reproduction of the historical false positive, an all-thresholds-passed model result or a statistical improvement claim.

This is model guidance using the existing bounded read-only capabilities and publication/resolution protections. The native oracles run compiled authored test factories, with corpus text compared only as data; they do not execute the consumer's Kotlin/JDK/database tests. No resolver service, permission, schema, configuration or lifecycle surface is added.

Closes #738.

…binding-and-passing-typed-fault-assertion: ground test failure claims in delegated call and error paths
@docs-page

docs-page Bot commented Oct 28, 2026

Copy link
Copy Markdown

To preview the documentation for this pull request, visit the following URL:

docs.page/vypdev/copilot~757

Documentation is deployed and generated using docs.page

@vypbot vypbot changed the title Ground test failure claims in delegated call and error paths fix: Bugbot predicts failing test despite indirect participant binding and passing typed fault assertion (#738) Oct 28, 2026
@vypbot
vypbot self-requested a review October 28, 2026 08:55
@vypbot vypbot added the size: XL Indicates that the issue or task is extra large in scope and complexity. label Oct 28, 2026
@vypbot vypbot added this to vypdev Oct 28, 2026
@vypbot vypbot moved this to In Progress in vypdev Oct 28, 2026
@vypbot
vypbot changed the base branch from develop to master October 28, 2026 08:56
@vypbot
vypbot changed the base branch from master to develop October 28, 2026 08:56

@vypbot vypbot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current status: All findings originating in this review are resolved.
Last reconciled on c4f4642. See aggregate Bugbot status.

🤖 Bugbot review snapshot

Bugbot reported 1 potential problem when commit d7d541c was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.

Findings

  • high: Corpus snippets execute as code in the test process — src/tooling/__tests__/bugbot_benchmark.test.ts:150

@vypbot

vypbot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Bugbot: review complete

Current status: No active findings on c4f4642.

Pull request · Verified commit · Workflow run

@vypbot

vypbot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Copilot approval · Human review needed

Status: A protected workflow, policy, or trust-boundary file changed.
Completed: 1/1 observed checks succeeded; Bugbot complete.
Action required: Ask a human reviewer to decide.
Impact: No new approval is confirmed for this revision.
See checks

Technical evidence

Revision: c4f46425ea2d; base: b33e841b1e4b; reason: protected-path.

@codecov-commenter

codecov-commenter commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.79%. Comparing base (5b3664f) to head (c4f4642).
⚠️ Report is 36 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #757      +/-   ##
===========================================
+ Coverage    94.50%   94.79%   +0.28%     
===========================================
  Files         1035     1078      +43     
  Lines        33299    34858    +1559     
  Branches      9824    10354     +530     
===========================================
+ Hits         31468    33042    +1574     
+ Misses         699      684      -15     
  Partials      1132     1132              
Files with missing lines Coverage Δ
src/prompts/bugbot.ts 100.00% <100.00%> (ø)
src/tooling/bugbot_benchmark_runner.ts 77.77% <100.00%> (ø)

... and 33 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…binding-and-passing-typed-fault-assertion: keep benchmark corpus inert with compiled call-path oracles
@efraespada
efraespada merged commit e450113 into develop Oct 28, 2026
15 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in vypdev Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

75% Progress: 75% size: XL Indicates that the issue or task is extra large in scope and complexity. state:verified

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

🐛🧑‍💻 - Bugbot predicts failing test despite indirect participant binding and passing typed fault assertion

3 participants