Skip to content

ci: require exact-head production coverage evidence - #147

Closed
seonghobae wants to merge 6 commits into
mainfrom
ci/exact-head-coverage-evidence-v2
Closed

ci: require exact-head production coverage evidence#147
seonghobae wants to merge 6 commits into
mainfrom
ci/exact-head-coverage-evidence-v2

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Purpose

Make DiskSage's 100% production coverage requirement an exact-head, fail-closed CI contract instead of a local or predecessor-head assertion.

This extracts the generic coverage-evidence mechanism from stale PR #133 onto the exact current protected main tip 4b2f5d30c1f1961e017a84aa1c785d3f1b1bb9af without carrying any Podman-specific formatting, source, UI, or test changes.

Test-first history

  • RED c5aac76a6e76f0e5be0ccb93ad37c9071ee58ef9: adds a source-level workflow contract requiring exact-head checkout, real Rust branch measurement, unpruned production graph measurement, bounded privacy-safe diagnostics, and fail-closed success evidence while protected main does not yet implement those requirements.
  • GREEN c7c5d61063a566e714d63edb9ef579f4d502c263: updates the Test workflow to run frontend coverage/checks and an independently inspectable Rust cargo llvm-cov job on the exact pull-request head.
  • Doctoring 3afe2fdd52e77846a3eb64780e0ff19ec75cc529: records evidence identity, measurement semantics, failure diagnostics, and operating rules.
  • Changelog eca6140867907971dcb35ec7cc7e4601d77123d2.

Exact ancestry and bounded diff

Current exact head: eca6140867907971dcb35ec7cc7e4601d77123d2

Current exact base: 4b2f5d30c1f1961e017a84aa1c785d3f1b1bb9af

The branch is four commits ahead and zero behind. Its four-file diff is limited to:

  • .github/workflows/test.yml;
  • CHANGELOG.md;
  • docs/development/coverage-evidence.md;
  • src/lib/coverageEvidenceWorkflow.test.ts.

Coverage contract

  • exact PR head is explicitly checked out and bound into the evidence identity;
  • Rust coverage is measured with cargo llvm-cov --branch from an immutable dated nightly;
  • --no-cfg-coverage and --no-cfg-coverage-nightly keep the production graph from disappearing behind coverage-only cfg pruning;
  • LLVM regions are used as the source-based statement-equivalent metric, alongside branch, function, and line totals;
  • all four metrics must be non-empty and exactly 100%;
  • failures produce a bounded coverage-diagnostic-<head> artifact and step summary with repository-relative gap paths only;
  • coverage-evidence.json is produced only on complete exact-head success;
  • normal frontend CI also executes npm run coverage and npm run check before build.

Required before merge

Keep Draft while the new coverage job is discovering real current-main gaps. Merge only when the unchanged exact head itself proves Test, Release, Security Scan, SAST, exact 100% production coverage, packaging/provenance/release acceptance, actionable current-head review closure, and actual repository/ruleset policy. A diagnostic artifact is evidence of failure, not success. No #133 CI/review/approval evidence transfers.

No version is bumped and no release is published by this change.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cab3f391-0f8a-4ed1-9c29-5b734249d034

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Contributor Author

Superseded by clean current-main PR #152 after protected main advanced to 7dd950b92de7c84e80be430451a286cf99c6c19d and this branch became non-mergeable. Immediately before this handoff, #147 remains at 7fbadc0a2cb8c16045fb08452d3b61d93a10af93; #152 is mergeable on exact current main at 70ec75de00352dcea1cb71204a17d7ea932aac7b, with the same six-file bounded coverage concern and no unrelated product/security/release changes. The coverage workflow, evidence doctoring, workflow contract, frontend coverage-scope contract, and broad production TypeScript coverage configuration were reconstructed from current main rather than force-rebased; the CHANGELOG entry was reapplied onto the newer integrated history. No checks, reviews, approvals, or synthetic-merge evidence from this head transfer to #152. Closing this stale replacement to keep one canonical coverage owner.

@seonghobae seonghobae closed this Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant