Repository navigation
fix(coverage): publish complete scoped denominator - #550
Conversation
ecb69e7 to
6424634
Compare
61e659c to
fca1dd3
Compare
|
Review result: hold; do not merge the current metric model.\n\nI pushed the independently valid fix that keeps nested dependency, test, and harness roots such as src/dependencies and src/test out of the production-source inventory. The remaining blocker is metric fidelity: covered is authenticated as any positive DA hit in a declaration range, so a large function with one hit and many zero-hit lines can be counted as 1/1. That is neither broad declaration completeness nor a faithful representation of the pinned covg-eval result.\n\nA direct replacement with a full-line boolean is also not safe. Pinned covg-eval has a separate identity and filtering model: it recognizes only named Solidity functions/modifiers at physical line starts, collapses overloads by name, can collide same-basename contracts, ignores constructors/fallback/receive/getters, starts after the opening-brace line, treats no body DA rows as 100%, and suppresses internal/private missing reports. The current per-declaration schema cannot reproduce that denominator exactly.\n\nThe useful path forward is to publish covg-eval output as its own evaluator-specific typed inventory/result, and publish broad production coverage as a separately named metric. Until those identities and denominators are modeled independently, the PR can still emit misleading scoped scores. I am leaving it open and unmerged. |
049bc47 to
be7ba46
Compare
This reverts commit 4bf6173.
2c7415a to
2d60364
Compare
|
@aviggiano ready for human review. I kept this unmerged. The coverage prompt is now concise (151 lines), with schema/tool details replaced by guidance to confirm against pinned docs or direct CLI --help. Full local CI and the replacement GitHub CI run passed, and fresh Greptile reviewed exact head bec6ca2 at 5/5 with no blocking issues. |
|
Greptile’s current The separate zero-coverage point cannot soundly be added to offline reconciliation: No code change is warranted for either point. |
|
@aviggiano ready for human review on exact head The coverage prompt is now 151 lines (331 on Fresh Greptile is 5/5 with zero unresolved review threads, and all 9 exact-head checks are green, including the runtime, CLI/typecheck, package, release, Semgrep, and Socket lanes. |
* fix(coverage): publish complete scoped denominator * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * feat(coverage): model unavailable evidence * refactor(runtime): trust typed coverage evidence * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(coverage): finalize typed scoped evidence * fix(coverage): publish complete scoped denominator * docs(coverage): match private path sanitization * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(runtime): harden unscoped coverage detection * fix(cli): update finding diagnostic paths * fix(coverage): bound LCOV hit parsing * test: align current contract fixtures * fix(runtime): harden unscoped coverage detection * fix(coverage): publish complete scoped denominator * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(runtime): harden unscoped coverage detection * fix(runtime): close remaining coverage score bypasses * fix(coverage): reject disguised unscoped scores * fix(coverage): finalize scoped evidence validation * fix(runtime): bound styled coverage scanning * test(coverage): preserve zero-hit authority boundary * fix(report): preserve coverage markdown structure
* fix(coverage): publish complete scoped denominator * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * feat(coverage): model unavailable evidence * refactor(runtime): trust typed coverage evidence * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(coverage): finalize typed scoped evidence * fix(coverage): publish complete scoped denominator * docs(coverage): match private path sanitization * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(runtime): harden unscoped coverage detection * fix(cli): update finding diagnostic paths * fix(coverage): bound LCOV hit parsing * test: align current contract fixtures * fix(runtime): harden unscoped coverage detection * fix(coverage): publish complete scoped denominator * fix(coverage): authenticate complete scoped evidence * fix(coverage): harden denominator verification * fix(coverage): index bounded source verification * fix(runtime): recognize getters after modifier equality * fix(coverage): authenticate LCOV range evidence * fix(coverage): harden source and score attribution * fix: bind each coverage score to its scope * fix: reject additional unscoped coverage scores * fix: normalize formatted coverage scores * fix: inspect rendered coverage prose * fix(runtime): close rendered coverage scope bypasses * fix(coverage): exclude nested non-production roots * fix(coverage): close denominator and score bypasses * fix(coverage): require complete declaration hits * refactor(coverage): centralize contract validation guidance * fix(evals): keep coverage out of finding adjudication * Revert "fix(evals): keep coverage out of finding adjudication" This reverts commit 4bf6173. * fix(runtime): close rendered coverage bypasses * fix(coverage): bind every rendered score to its scope * fix(runtime): harden unscoped coverage detection * fix(runtime): close remaining coverage score bypasses * fix(coverage): reject disguised unscoped scores * fix(coverage): finalize scoped evidence validation * fix(runtime): bound styled coverage scanning * test(coverage): preserve zero-hit authority boundary * fix(report): preserve coverage markdown structure
Summary
report@3and one canonical scoped Markdown section, rejecting contradictory or unscoped coverage claimsRaw
covg-evalresults remain iteration-only and do not define either published declaration-completeness view.Fixes #532
Validation
pnpm -w run ciGreptile Summary
The PR adds typed scoped coverage evidence and carries it through artifact validation, runtime authentication, report publication, evals, and public bundles.
Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains.
Important Files Changed
Reviews (30): Last reviewed commit: "fix(report): preserve coverage markdown ..." | Re-trigger Greptile