fix(auth): bound macOS Keychain status probes - #10
Conversation
|
GitHub Actions created CI run https://github.com/wormforce/sustech-cli/actions/runs/33626389782, but it completed as action_required without starting jobs because this is a fork PR. Maintainer approval is needed to run it. Local macOS arm64 gates passed: typecheck, 314/314 tests, prepack dry-run, production audit with 0 vulnerabilities, and a real metadata-only synthetic Keychain status probe returned in 0.28 s. I have not retriggered the workflow. |
pentaoa
left a comment
There was a problem hiding this comment.
Reviewed the metadata-only macOS status path, helper-process timeout handling, and credential status error projection. Status uses the optional existence probe instead of retrieving a password; the timeout has a stable reason code and does not retry the operation. No blocking implementation issue found.
During verification, the new Linux fixture failed during an ordinary write because it applied a 50 ms timeout to every helper invocation. Pushed 1e39512 to this maintainer-editable branch: normal operations now use the production timeout, while only the deliberately hanging lookup uses 50 ms. The build and all 16 credential/keyring/dashboard tests pass, including the bounded hanging-helper test.
Ready to merge once the updated cross-platform CI checks pass.
Summary
SecretStore.has()operation and use it for credential status probes/usr/bin/security find-generic-passwordwithout-w, so it never requests the stored passwordreasonCode: CREDENTIAL_STORE_TIMEOUTFailure and compatibility semantics
auth statusremains read-only and does not retry credential-store operationsreasonCodeand the optional store method are additiveValidation
v26.8.1npm run checknpm test— 314/314 passednpm pack --dry-run --json— passednpm audit --omit=dev— 0 vulnerabilitiesCREDENTIAL_STORE_TIMEOUTstatus with no automatic retryCloses #9