refactor(biometric): gate the vault read through localauthentication.Gate - #277
Merged
Conversation
…Gate The darwin authenticate path was Available+Evaluate composed by hand — exactly the convenience contract the library now ships as Gate (v0.1.0): prompt when the owner check is evaluable, return nil without prompting when it is not, so a person with no Touch ID or passcode is never locked out of their own vault. Delegating removes the duplicated policy logic and pins the dependency to a released tag (was a pre-Gate pseudo-version). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
The macOS
authenticatepath ininternal/biometricwasAvailable+Evaluatecomposed by hand — precisely the convenience contract thatgo-macos/localauthenticationnow ships asGate(released as v0.1.0):nilwithout prompting when it is not — so a person with no biometric or passcode is never locked out of their own vault,This delegates to
la.Gate, removing the duplicated policy logic, and bumps the dependency from a pre-Gate pseudo-version to the released v0.1.0 tag.No behaviour change: the previous hand-rolled logic and
Gateare byte-identical in intent. Coverage is unaffected — the Linux coverage gate exercisesbiometric_other.go(100%); the darwin path is a cross-compile build check, which passes.🤖 Generated with Claude Code