feat(verify): add --strict to fail on skipped checks - #6
Merged
Conversation
mohn93
force-pushed
the
feat/verify-strict-exit
branch
from
September 6, 2026 19:29
d52996c to
4cf64b7
Compare
By default a run that skips the dashboard cross-checks (e.g. because no credentials were available) is reported as PARTIAL but still exits 0, so unauthenticated smoke tests and `curl | ulink verify` don't break. That leaves no way for CI to require a full verification. --strict makes verify exit non-zero (2) when any check was skipped, so a partial run fails instead of passing silently. Exit codes: 0 fully verified / passed with warnings, 1 errors, 2 strict + skipped. Builds on the skipped-check disclosure (hasSkipped / skippedCount).
…nal skips Rebased on the refined skip classification: --strict now exits 2 when report.isPartial (a check that would actually verify deep linking, e.g. the dashboard cross-check, was not performed), not on any skip. A CI run without a booted simulator or adb - which only skips optional probes - still exits 0 under --strict. Updated the exit message and README accordingly.
mohn93
force-pushed
the
feat/verify-strict-exit
branch
from
September 6, 2026 19:41
4cf64b7 to
0e99aa7
Compare
mohn93
changed the base branch from
fix/verify-disclosure-and-scheme-reporting
to
main
September 6, 2026 20:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Stacked on #3 (verify disclosure). #3 makes an unauthenticated / incomplete run read as PARTIAL but keeps it exiting
0, socurl | ulink verifyand unauthenticated CI don't break. That was the deliberate default — but it leaves no way for a pipeline to require a full verification.Change
ulink verify --strictexits non-zero when any check was skipped, so a partial run fails instead of passing silently.Exit codes:
0— fully verified (or passed with warnings)1— errors2—--strictand one or more checks were skippedThe default (no flag) is unchanged: PARTIAL still exits
0.Verification
Compiled binary against the example (Flutter auto-migrated), run unauthenticated so the dashboard cross-check is skipped:
ulink verify→ exit0ulink verify --strict→ exit2dart analyzeclean. The exit decision is a two-line branch on the existingreport.hasSkipped; it callsexit()directly (like the other verify exits) so it's covered by the integration run rather than a unit test. README documents the flag and exit codes.Note
Base is the #3 branch, not
main— merge #3 first (or this will retarget tomainautomatically once #3 lands).