Skip to content

fix: Review false positive implicit null input requiredness contradicts the actual Kotlin decoder (#807) - #818

Merged
efraespada merged 1 commit into
developfrom
bugfix/807-review-false-positive-implicit-null-input-requiredness-contradicts-the-actual-kotlin-decoder
Oct 30, 2026
Merged

efraespada merged 1 commit into
developfrom
bugfix/807-review-false-positive-implicit-null-input-requiredness-contradicts-the-actual-kotlin-decoder

Conversation

@efraespada

@efraespada efraespada commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

An omitted nullable Kotlin property without a default is accepted when the active Json instance uses explicitNulls=false. The current review baseline incorrectly rejected that input. Ground requiredness in the actual instance and inherited flags, with defaults evaluated before nullable/explicitNulls rules, and return no finding for accepted input. The consumer generator remains unchanged.

Add eight frozen owned cases for both flags, defaults, non-nullable omissions, inheritance, a different active instance and unavailable configuration. The 24 new deterministic cases cover observations, scorer controls, ordinary/partitioned/benchmark delivery and inert-input/privacy boundaries. Preserve all preceding 126 cases and thresholds; update the owner SDD, catalog and documentation together. Equivalent context/locale/finding-field framing preserves the existing 15,000-character limit.

Validation:

  • Seven focused suites: 238 passing tests. Both changed modules have 100% lines/statements/functions; prompt branches 100%, context builder branches 96.47%; no uncovered added statement or branch.
  • The published optional owned Kotlin probe compiles and passes eight observations with each public serialization runtime 1.6.3 and 1.7.3 using compiler 2.0.21/JDK 17. This adds no runtime prerequisite to mandatory Node CI and does not establish the consumer's Gradle resolution or execute consumer sources.
  • All 134 reference-corpus cases pass their existing evaluator floors. Types, lint, documentation, workflow/agent-doc contracts, specifications/catalog generation, Graphify, build, npm-package validation and isolated CLI/API/web package smoke pass.
  • Normal commit hooks pass: build, all 815 suites / 15,477 tests (35 pre-existing skips), and lint. Committed bundles validate and match the measured V3 CLI exactly.

Actual model evidence is retained completely in quality/bugbot/evidence/issue-807.json. The baseline has one false positive; V1 and V2 are rejected with one and two respectively. On the same frozen inputs/model/effort, selected V3 has zero false positives/negatives and matches all three genuine defects. Its exact locations are 2/3, below the unchanged 0.8 floor: this bounded sample does not pass all model-quality gates or guarantee future accuracy. No identical-prompt reruns or label/threshold changes are used to obtain green. Perfect reference predictions are separate scorer inputs.

Read-only consumer evidence distinguishes declared serialization 1.6.3, public Ktor 3.0.2's transitive request for 1.7.3, and the independently unknown consumer resolution. No private source or raw consumer log is published, and no consumer code, check or review thread is modified.

Closes #807

…tradicts-the-actual-kotlin-decoder: ground Kotlin Json input omission
@docs-page

docs-page Bot commented Oct 30, 2026

Copy link
Copy Markdown

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

docs.page/vypdev/copilot~818

Documentation is deployed and generated using docs.page

@vypbot vypbot added size: XXL Indicates an extremely large task or issue that requires significant time and effort to complete. 85% Progress: 85% state:ai-processing labels Oct 30, 2026
@vypbot vypbot changed the title Ground Kotlin Json requiredness in the active policy (#807) fix: Review false positive implicit null input requiredness contradicts the actual Kotlin decoder (#807) Oct 30, 2026
@vypbot
vypbot self-requested a review October 30, 2026 20:48
@vypbot vypbot added this to vypdev Oct 30, 2026
@vypbot vypbot moved this to In Progress in vypdev Oct 30, 2026
@vypbot
vypbot changed the base branch from develop to master October 30, 2026 20:49
@vypbot
vypbot changed the base branch from master to develop October 30, 2026 20:49
@vypbot

vypbot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Bugbot: review complete

Current status: No active findings on 6fbd1f6.

Pull request · Verified commit · Workflow run

@vypbot

vypbot commented Oct 30, 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: 6fbd1f6e9137; base: 132f2401d1c0; reason: protected-path.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

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

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #818      +/-   ##
===========================================
+ Coverage    94.50%   95.17%   +0.67%     
===========================================
  Files         1035     1104      +69     
  Lines        33299    36347    +3048     
  Branches      9824    10852    +1028     
===========================================
+ Hits         31468    34593    +3125     
+ Misses         699      673      -26     
+ Partials      1132     1081      -51     
Files with missing lines Coverage Δ
...secases/steps/commit/bugbot/build_bugbot_prompt.ts 100.00% <ø> (+6.55%) ⬆️
src/prompts/bugbot.ts 100.00% <100.00%> (ø)

... and 159 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.

@efraespada
efraespada merged commit 65f10a2 into develop Oct 30, 2026
13 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in vypdev Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

85% Progress: 85% size: XXL Indicates an extremely large task or issue that requires significant time and effort to complete. state:verified

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

🐛🧑‍💻 - Review false positive implicit null input requiredness contradicts the actual Kotlin decoder

3 participants