Skip to content

feat(verify): add --strict to fail on skipped checks - #6

Merged
mohn93 merged 2 commits into
mainfrom
feat/verify-strict-exit
Sep 6, 2026
Merged

feat(verify): add --strict to fail on skipped checks#6
mohn93 merged 2 commits into
mainfrom
feat/verify-strict-exit

Conversation

@mohn93

@mohn93 mohn93 commented Sep 6, 2026

Copy link
Copy Markdown
Member

Why

Stacked on #3 (verify disclosure). #3 makes an unauthenticated / incomplete run read as PARTIAL but keeps it exiting 0, so curl | ulink verify and 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 --strict exits 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 — errors
  • 2--strict and one or more checks were skipped

The 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 → exit 0
  • ulink verify --strict → exit 2

dart analyze clean. The exit decision is a two-line branch on the existing report.hasSkipped; it calls exit() 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 to main automatically once #3 lands).

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
mohn93 force-pushed the feat/verify-strict-exit branch from 4cf64b7 to 0e99aa7 Compare September 6, 2026 19:41
@mohn93
mohn93 changed the base branch from fix/verify-disclosure-and-scheme-reporting to main September 6, 2026 20:13
@mohn93
mohn93 merged commit 56326ff into main Sep 6, 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