• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ponder-lab / Hybridize-Functions-Refactoring / #2523
83%

Build:
DEFAULT BRANCH: main
Ran 16 Jul 2026 10:54PM UTC
Jobs 1
Files 33
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jul 2026 10:45PM UTC coverage: 81.815% (+0.05%) from 81.766%
#2523

push

github

web-flow
Report `SPECULATIVE_TENSOR_PARAMETER` when context supplies the tensor verdict (#784)

`inferTensorParameters`' speculative context analysis sets the function-level
`hasTensorParameter` to `TRUE` but writes no `Parameter.tensor`: every writer of
that field lives in `Parameter.classifyAsTensor`. `computeInputSignature`
dispatches on `Parameter.isTensor()`, so each parameter fell into the non-tensor
category and the function reported `NON_TENSOR_PARAMETER` with a per-parameter
INFO advising a source change. That contradicted the `SPECULATIVE_ANALYSIS` INFO
the same pass emitted, and the advice pointed at code the tool had just judged
tensor-typed by context. Speculation fires precisely because Ariadne could not
type the parameter, so the likely cause is analysis incompleteness rather than a
genuinely non-tensor parameter.

Record the provenance of the function-level verdict on a new
`tensorParameterFromSpeculation` field and short-circuit `computeInputSignature`
on it, reporting a new `AbsenceReason.SPECULATIVE_TENSOR_PARAMETER` with one
function-level INFO. Unlike the other constants it is not a per-parameter
dispatch branch, so it precedes them and leaves `getBlockingParameterReasons()`
empty.

The change is verdict-neutral. Speculation only fires when `hasTensorParameter`
is null, which means no parameter hit Phase 2, which means every parameter has
`isTensor() == FALSE` and an empty `getTensorTypes()`; the dispatch was already
guaranteed to return `Absent`. Only the reason and the messaging change. Placing
the short-circuit inside `computeInputSignature` covers both the eager P1 path
and the already-hybrid reconfigure path, which reaches the same dispatch through
`canEmitInferredInputSignature`.

`./mvnw verify` green: 585 tests, 0 failures, 0 errors, 0 skipped.

Closes #783.


Claude-Session: https://claude.ai/code/session_01K8tXuyy3YWhM7BzvmCxKAn

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

7 of 7 new or added lines in 2 files covered. (100.0%)

2146 of 2623 relevant lines covered (81.81%)

0.82 hits per line

Jobs
ID Job ID Ran Files Coverage
1 #2523.1 16 Jul 2026 10:54PM UTC 33
81.81
Source Files on build #2523
  • Tree
  • List 33
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 952f34c6 on github
  • Prev Build on main
  • Next Build on main
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc