[feature] nine CLIs that patchbay refused to verify are now verified - #16
Merged
Conversation
YJack0000
force-pushed
the
claude/d2-verify-nine
branch
from
August 17, 2026 08:51
4a307dd to
70f98c2
Compare
YJack0000
force-pushed
the
claude/d2-verify-nine
branch
from
August 17, 2026 08:55
70f98c2 to
bac1232
Compare
|
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.



probe.rs:47-49states the contract: "Handing back a command for the user to paste is not an answer — if a CLI has to be invoked, patchbay invokes it." Nine probes were violating it, each answeringverifywith "patchbay does not run X yet" and a command to paste. The excuses were "it's a network call" and "that CLI is slow to start"; neither survives the fact that verify is tier 2 and only runs when the user presses the button.wrangler whoamivercel whoamineon me --output jsonsupabase projects list --output jsonfly auth whoami --jsondoctl account get -o json --context <ctx>hf auth whoami --format jsonstripe whoami --format jsonfirebase login:list --non-interactiveNew private module
probes/cli_verify.rsholds what all nine needed: a realheadline()(first line —CmdOutput::message()joins with;, which is the bug gcloud's author hit), and a failure classifier that checks transport evidence FIRST. A DNS/TLS/timeout failure returns "could not reach X, so the credential was not tested" — neverInvalid. An unreachable network must not be reported as a dead login.verify_profileis implemented where the CLI has a real per-invocation selector: doctl--context, stripe--project-name, firebase by checking the named account against the list.Two hang hazards found and closed.
neon mewith no credential opens an OAuth browser flow and waits — that state is now answered from the tier-1 read with nothing executed.fly auth whoamioffers an interactive login unless the literal--jsonflag is passed; that flag is there to prevent the hang, not for the parse.stripe's command changed from the plan.
stripe config --listprints the config file back includingtest_mode_api_keyin plaintext and makes no API call.stripe whoami --format jsonis the same local read with a documented schema, anauthenticatedboolean, and no key material in the output.STRIPE_CLI_TELEMETRY_OPTOUT=1avoids a 3s telemetry beacon on exit.Two verifies are local reads and say so. stripe's
whoamiand firebase'slogin:listname the credential the CLI would use without exercising it; both carry that caveat inline rather than letting a green tick imply more.firebase projects:list --jsonwas tested as the network alternative and rejected — it writesfirebase-debug.loginto the working directory and its failure text is just a pointer to that file.Research corrected two assumptions:
hf auth whoamiexits 1 when logged out, and its default--format autosniffs env vars for an AI-agent harness and changes shape (pinned);doctl -o jsonwrites errors to stdout as{"errors":[…]}, hoisted out bysurface_error.581 lib tests (up from 532) — each probe gets success-parse, logged-out, rejected-vs-offline, garbage-output and binary-absent cases, plus 7 for the classifier. fmt + clippy
-D warnings+cargo test --workspace --lockedclean.Live read-only runs for the four installed here: wrangler, vercel, neon, firebase all return the identity as designed. The other five are unit-tested against source-verified output shapes only.
Not done: doctl's
--http-retry-max 0(would fail fast when offline instead of retrying ~6 times) — the flag could not be tested here and a wrong flag name would break every doctl verify.Lands after the note/expiry type refactor; will rebase.