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

ponder-lab / Hybridize-Functions-Refactoring / #2644
83%
main: 84%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-839-bec98e60d02a62ff3310e77d8139c0a57fbebb0c
DEFAULT BRANCH: main
Ran 01 Aug 2026 06:00AM UTC
Jobs 1
Files 36
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

01 Aug 2026 05:56AM UTC coverage: 83.462% (-0.07%) from 83.528%
#2644

push

github

web-flow
Add the caller-coverage advisory (#824)

* Add the caller-coverage advisory (issue 767, phase 1)

A function whose every known call path is dominated by a hybridized caller is already traced, since `tf.function` inlines its transitive callees, so decorating it adds trace-time cost without additional speedup. Phase 1 ships the measurement, not the enforcement: `CallerCoverageAnalysis` computes the covered set as a least fixpoint over the call graph (covered iff at least one known caller and every caller is hybrid or covered), the P1 path gains an advisory INFO, and the evaluator gains a `caller covered` column, so the flagged population is inspectable corpus-wide before any decision rides on it.

The polarity is deliberately inverted from the safety family: cycles and every indeterminate state (no call-graph node, an unresolvable or module-level or library predecessor, a synthetic hop reaching no known function) block coverage rather than granting it, so mutually-recursive eager functions never cover each other and incomplete evidence never claims coverage. Predecessor classification hops through Ariadne's trampolines; a hop that reaches no real caller blocks, which also handles the synthetic root. The hybridization pass is hoisted ahead of the per-function loop, since coverage is a whole-set property consulted while checking each individual function.

`testCallerCoverageAdvisory` pins both directions: `inner`, called only from the hybridized `outer`, is covered, still converts (P1), and carries the INFO; `mixed`, also called at module level, is uncovered and carries none.

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

* Address review: reattach the setter Javadoc; scope the advisory to known paths

The setter's Javadoc had drifted onto `computeCallerCoverage`, leaving a spurious `@param` (CodeQL) and the setter undocumented; it is reattached. The advisory no longer says ... (continued)

54 of 67 new or added lines in 4 files covered. (80.6%)

2917 of 3495 relevant lines covered (83.46%)

0.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
13
75.0
edu.cuny.hunter.hybridize.core/src/edu/cuny/hunter/hybridize/core/analysis/CallerCoverageAnalysis.java
Jobs
ID Job ID Ran Files Coverage
1 #2644.1 01 Aug 2026 06:00AM UTC 36
83.46
Source Files on build #2644
  • Tree
  • List 36
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • e051c54e on github
  • Prev Build on gh-readonly-queue/main/pr-823-ec22c753ef090d829a4e65bf5c67dd7e014bb74f
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