Parent: #9. Umbrella design: docs/phase2-passkey-design.md. Type contract: docs/phase2-interfaces.md §1.
Scope
Extend the core↔extension NaCl protocol with four new action verbs:
passkey-create-entry
passkey-get-by-rp
passkey-sign
passkey-update-counter (optional — see design §1)
Add TypeScript types to both sides (mirrored):
packages/extension/src/background/protocol/types.ts
packages/core/app/scripts/comp/extension/protocol-impl.ts
Types are exactly as in docs/phase2-interfaces.md §1. Do not drift.
New error codes
PASSKEY_RP_MISMATCH, PASSKEY_VAULT_LOCKED, PASSKEY_NO_MATCH, PASSKEY_USER_CANCELLED, PASSKEY_COUNTER_REGRESSION, PASSKEY_UNSUPPORTED_ALG, PASSKEY_WRITE_FAILED.
Owner
SWE-Core + SWE-Ext jointly. Whichever lands first must stub the other side so CI stays green.
Acceptance
Blocks
B-2, B-3, B-4 (all downstream work).
Parent: #9. Umbrella design:
docs/phase2-passkey-design.md. Type contract:docs/phase2-interfaces.md§1.Scope
Extend the core↔extension NaCl protocol with four new action verbs:
passkey-create-entrypasskey-get-by-rppasskey-signpasskey-update-counter(optional — see design §1)Add TypeScript types to both sides (mirrored):
packages/extension/src/background/protocol/types.tspackages/core/app/scripts/comp/extension/protocol-impl.tsTypes are exactly as in
docs/phase2-interfaces.md§1. Do not drift.New error codes
PASSKEY_RP_MISMATCH,PASSKEY_VAULT_LOCKED,PASSKEY_NO_MATCH,PASSKEY_USER_CANCELLED,PASSKEY_COUNTER_REGRESSION,PASSKEY_UNSUPPORTED_ALG,PASSKEY_WRITE_FAILED.Owner
SWE-Core + SWE-Ext jointly. Whichever lands first must stub the other side so CI stays green.
Acceptance
e2e/extension/passkey-protocol-contract.spec.tsexercises each verb end-to-end through the existing NaCl transport with fixture payloads@ts-ignore/no-explicit-anyintroducedbun testpasses for both packagesBlocks
B-2, B-3, B-4 (all downstream work).