Skip to content

fix(qavis): record outcomes and attribute strict ship blocks [sc-2570] - #606

Merged
norvalbv merged 1 commit into
mainfrom
codex/qavis-gate-outcomes
Sep 6, 2026
Merged

fix(qavis): record outcomes and attribute strict ship blocks [sc-2570]#606
norvalbv merged 1 commit into
mainfrom
codex/qavis-gate-outcomes

Conversation

@norvalbv

@norvalbv norvalbv commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Qavis advisory telemetry previously recorded bypasses but omitted ordinary clearance, unmet QA requirements and self-run outcomes. That made Frink's recorded Qavis events look entirely bypassed and prevented measuring which changes actually needed QA.

Emit a terminal outcome and duration for SILENT, required QA, unavailable routing and self-run rechecks. Preserve the existing contract: valid unmet requirements block strict ships; ordinary commits remain advisory; unavailable classification fails open visibly. A SILENT gate result is gate clearance, not a fabricated visual-test pass. Include the self-run exit code and keep bypass flag events distinct. Strict Qavis blocks are attributed in the terminal ship summary, and unavailable-classifier reasons survive into its digest. Compiled consumer artifacts are included.

Validation: typecheck/build, 86 Qavis advisory, ship-capture and digest tests, staged anti-slop and normal commit gates. Tests cover strict/advisory results, all self-run rechecks, unavailable classification and a broken telemetry sink. Fallow reports the existing branch-heavy advisory function; the branching is unchanged. Clone checking and the normal commit reviewers passed.

Completes the telemetry portion of sc-2570. Companion Qavis PR #105 rejects malformed classifier verdicts instead of inventing ADVISE, skips universally inert deltas, and speeds transport/CLI loading. No production bypass-rate claim is possible until normal outcome events accumulate.

Full local pre-push validation: 6,734 tests passed; one reship receipt-isolation test hit its 150s timeout during the 59-minute run. The exact test passed alone in 25.73s. Publication uses the standard devkit ship workflow; PR CI remains responsible for its full-suite result. No assertion or timeout threshold was changed.

Summary by CodeRabbit

  • New Features

    • Added detailed telemetry for Qavis advisory outcomes, including strict-gate failures, successful self-checks, unavailable routing, exit codes, and timing.
    • Ship results now identify Qavis strict-gate rejections separately from comment-related blocks.
    • Unavailable routing details are preserved in ship reporting.
  • Documentation

    • Updated decision records to document Qavis outcome and ship-result attribution.
  • Tests

    • Expanded coverage for Qavis telemetry, gate attribution, bypass handling, and failure scenarios.

Qavis advisory telemetry previously recorded bypasses but omitted ordinary clearance, unmet QA requirements and self-run outcomes. That made Frink's recorded Qavis events look entirely bypassed and prevented measuring which changes actually needed QA.

Emit a terminal outcome and duration for SILENT, required QA, unavailable routing and self-run rechecks. Preserve the existing contract: valid unmet requirements block strict ships; ordinary commits remain advisory; unavailable classification fails open visibly. A SILENT gate result is gate clearance, not a fabricated visual-test pass. Include the self-run exit code and keep bypass flag events distinct. Strict Qavis blocks are attributed in the terminal ship summary, and unavailable-classifier reasons survive into its digest. Compiled consumer artifacts are included.

Validation: typecheck/build, 86 Qavis advisory, ship-capture and digest tests, staged anti-slop and normal commit gates. Tests cover strict/advisory results, all self-run rechecks, unavailable classification and a broken telemetry sink. Fallow reports the existing branch-heavy advisory function; the branching is unchanged. Clone checking and the normal commit reviewers passed.

Completes the telemetry portion of [sc-2570](https://app.shortcut.com/benordlabs/story/2570). Companion [Qavis PR #105](benord-labs/qavis#105) rejects malformed classifier verdicts instead of inventing ADVISE, skips universally inert deltas, and speeds transport/CLI loading. No production bypass-rate claim is possible until normal outcome events accumulate.

Full local pre-push validation: 6,734 tests passed; one reship receipt-isolation test hit its 150s timeout during the 59-minute run. The exact test passed alone in 25.73s. Publication uses the standard devkit ship workflow; PR CI remains responsible for its full-suite result. No assertion or timeout threshold was changed.
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 1aedb614-7d88-48fa-94c2-31e30520b48f

📥 Commits

Reviewing files that changed from the base of the PR and between 9b08577 and 1064d4d.

⛔ Files ignored due to path filters (3)
  • dist/cli/lib/ship/commit-with-gate-capture.sh is excluded by !**/dist/**
  • dist/gate-engine/qavis-advisory/check.mjs is excluded by !**/dist/**
  • dist/gate-engine/qavis-advisory/telemetry.mjs is excluded by !**/dist/**
📒 Files selected for processing (8)
  • cli/__tests__/commit-with-gate-capture.test.mts
  • cli/lib/ship/commit-with-gate-capture.sh
  • docs/decisions/gate-telemetry-self-describing.md
  • docs/decisions/qavis-advisory-gate.md
  • gate-engine/judge/__tests__/gate-bypass-telemetry.test.mts
  • gate-engine/qavis-advisory/__tests__/telemetry.test.mts
  • gate-engine/qavis-advisory/check.mts
  • gate-engine/qavis-advisory/telemetry.mts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Qavis gate execution now emits structured outcome and timing telemetry, records self-run exit codes, preserves unavailable-route details, and marks strict blocks in ship results. Tests cover these paths and update ship attribution expectations.

Changes

Qavis telemetry and attribution

Layer / File(s) Summary
Qavis outcome telemetry
gate-engine/qavis-advisory/telemetry.mts, gate-engine/qavis-advisory/check.mts
Qavis outcomes now emit gate results, infrastructure failures, timing events, and optional QA exit codes.
Telemetry validation and digest preservation
gate-engine/qavis-advisory/__tests__/telemetry.test.mts, gate-engine/judge/__tests__/gate-bypass-telemetry.test.mts
Tests cover outcome types, self-run results, timing, sink failures, bypass events, and unavailable-route details.
Strict Qavis ship attribution
cli/lib/ship/commit-with-gate-capture.sh, cli/__tests__/commit-with-gate-capture.test.mts, docs/decisions/*.md
Ship capture recognizes the strict Qavis marker. Parameterized tests verify comments, Qavis, and unknown gate classifications. Decision records document the telemetry behavior.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 1064d

Qavis now records terminal gate outcomes, timings, routing details, self-run exit codes, and strict-block ship attribution while retaining existing strict and advisory behavior. The covered paths show no current merge-blocking risk.

Sequence Diagram(s)

sequenceDiagram
  participant ShipCommand
  participant runQavisAdvisory
  participant TelemetrySink
  participant ShipDigest
  ShipCommand->>runQavisAdvisory: run Qavis gate
  runQavisAdvisory->>TelemetrySink: emit outcome and timing events
  runQavisAdvisory-->>ShipCommand: return gate result
  ShipCommand->>ShipDigest: capture strict Qavis marker
  ShipDigest-->>ShipCommand: record blocked_gate=qavis-advisory
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 6 files. (2 skipped: 2… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the Qavis changes: recording outcomes and attributing strict ship blocks. It is concise and directly reflects the main pull request objective.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 6 files. (2 skipped: 2 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/qavis-gate-outcomes

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.

@norvalbv
norvalbv merged commit 547c70b into main Sep 6, 2026
1 of 2 checks passed
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