docs: plan passkey recovery, trusted-device introductions, and attestation (coven#788) - #877
Draft
CompleteDotTech wants to merge 1 commit into
Conversation
CompleteDotTech
force-pushed
the
agent/issue-788-plan-passkey-recovery-trusted-device-introductions
branch
9 times, most recently
from
August 30, 2026 19:10
aa0ef9e to
cc40048
Compare
…ation (coven#788) Signed-off-by: Timothy Wayne Gregg <5861166+CompleteDotTech@users.noreply.github.com>
CompleteDotTech
force-pushed
the
agent/issue-788-plan-passkey-recovery-trusted-device-introductions
branch
from
August 30, 2026 19:25
cc40048 to
f0198cd
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.
Summary
docs/design/mobile-recovery-and-introduction-plan.md— the#788plan and implementation contract for trusted-device introductions, passkey recovery, and optional attestation, sitting under the accepted#784mobile trust architecture and slotted to delivery-plan PR 7 ("Recovery and trusted-device introduction" indocs/architecture/mobile-device-pairing-delivery-plan.md).IntroductionRequest,IntroductionApproval,RecoveryPolicy,RecoveryEvent,AttestationClaim— plus their domain-separation labels for the registry inspec/device-pairing/v1/domain-separation.md(the implementation PR lands the schemas as files underspec/device-pairing/v2/and registers the objects in a v2 conformance manifest).RecoveryPolicy.introductionPolicy.rootMinApprovals(default 2, distinct approvers) gates root-level classes (identity.admin,devices.enroll|revoke, exports).access_restored,rotatesIdentity: false) separate from replacing/rotating identity (identity_rotated,rotatesIdentity: true,revocation_epochbump), and append-onlyRecoveryEventaudit records matching theaudit.rsstream discipline.unattested_device,verified_official_app,verified_hardware_key— reusing the v1 grant-restriction enum fromspec/device-pairing/v1/device-grant.schema.json) mapped from Apple App Attest / Android hardware key attestation / Play integrity signals, with owner-policy gating and full protocol participation for self-built, self-hosted, and dev builds.docs/design/mobile-device-trust.md(#788row of the issue-to-delivery mapping).crates/coven-cli/src/mobile_memory/*.rs,crates/coven-relay/src/ws.rs,crates/coven-cli/src/familiar_identity.rs,spec/device-pairing/v1/*).No product code changes — specification artifacts only; nothing in the diff can weaken v1 privacy, replay, revocation, canonicalization, or audit guarantees.
Issue
Refs #788 (parent #784; builds on #786, #787).
Closes #788is intentionally not used even though this is an upstream PR: the delivery plan's merge policy states plan issues close only when their acceptance criteria are demonstrated, not merely scaffolded, and #788 remains the umbrella for the implementation stages sequenced in the plan (§11).Test plan
python3 scripts/check-secrets.py— clean locallypython3 scripts/check-coven-privacy.py --staged— clean locally (2 files)additionalProperties/enum/pattern checks)cargo fmt --check,cargo clippy --workspace --all-targets -- -D warnings,cargo test --workspace --locked— deferred to CI; no Rust or TypeScript code is touched (docs-only diff)scripts/classify-ci-changes.py) should setdocs_onlyand skip the Rust/npm jobs.