Skip to content

ci: report-only trivial-update diff-audit (inbox#20/#21) - #399

Merged
bryan-minimal merged 1 commit into
mainfrom
feat/trivial-update-audit
Jul 15, 2026
Merged

ci: report-only trivial-update diff-audit (inbox#20/#21)#399
bryan-minimal merged 1 commit into
mainfrom
feat/trivial-update-audit

Conversation

@bryan-minimal

Copy link
Copy Markdown
Member

Why

inbox#20's #trivial fast-path: an update is trivial when it changes nothing but the version and its source hash(es) and the version increases — no new features/deps/patches — so it can promote on a green build without functional re-validation. The criterion calls for a "CI diff-audit (only version/sha256 changed; version increases)" to back the #trivial label. This is that audit — the fifth report-only promotion signal, after #279 (version-age), #280 (closure), dwell (#397), and smoke-test coverage (#398).

What

trivial_update_report.py audits each changed package's build.ncl diff (base..head): every added/removed line must be a version = "..." or a *sha256 = "..." and the version must strictly increase — otherwise non-trivial, and it names the offending lines. Pure git diff: no minimal dump, no network, no secrets.

trivial-update.yml runs it on pull_request → main. Hardened like version-age.yml (pinned action SHA, contents: read, report-only); must not be a required check.

Conservative by design: a false "non-trivial" just means the normal review path, but a false "trivial" would wave through a functional change — so the bar is strictly "only version + hash, nothing else."

Validated against real history

commit audit verdict
abseil-cpp 20250814.1 → 20260526.0 + a gcc-15 patch 🔎 non-trivial — correctly names the 3 patch lines
fzf 0.72.0 → 0.74.0 ✅ trivial
yazi 26.1.22 → 26.5.6 ✅ trivial
jansson 2.14 → 2.15.1 ✅ trivial
codex 0.130.0 → 0.144.1 ✅ trivial

Notes

  • Report-only: never blocks, excluded from required checks. A #trivial PR label should be cross-checked against this audit before taking the fast-path.
  • Version-order is a loose numeric-tuple compare (handles semver, 2.46.1, and date-versions like 20260526.0); unparseable orderings are noted, not failed.

Building block for gominimal/inbox#20 (#trivial criterion) · gominimal/inbox#21.

🤖 Generated with Claude Code

inbox#20's `#trivial` fast-path: an update is trivial when only the version and
source hash(es) change and the version increases — no new features/deps/patches,
so it can promote on a green build without functional re-validation. This audits
each changed package's build.ncl diff and reports trivial vs non-trivial (naming
the lines that make it non-trivial), so a `#trivial` label can be cross-checked.

trivial_update_report.py: per package, every added/removed build.ncl line must
be a `version = "..."` or a `*sha256 = "..."` and the version must increase, else
non-trivial. Conservative by design — a false "trivial" would wave through a
functional change. Pure git diff; no dump, no network, no secrets. Runs on
pull_request into main. Hardened like version-age.yml; MUST NOT be required.

Fifth report-only promotion signal after #279/#280/dwell/smoke-test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 44 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2fa0a9e3-67ee-465f-b6b5-f7d551d47d44

📥 Commits

Reviewing files that changed from the base of the PR and between cd4b09d and 90cf1cb.

📒 Files selected for processing (2)
  • .github/scripts/trivial_update_report.py
  • .github/workflows/trivial-update.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/trivial-update-audit

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

@bryan-minimal
bryan-minimal added this pull request to the merge queue Jul 15, 2026
Merged via the queue into main with commit 42ad63d Jul 15, 2026
7 checks passed
@bryan-minimal
bryan-minimal deleted the feat/trivial-update-audit branch July 15, 2026 18:59
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.

2 participants