镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

[DO NOT MERGE] chore(identity): DO NOT MERGE — isolated debug Keychain slot (full stack for native testing) - #1822

Closed
matt2e wants to merge 1 commit into
onboarding/08-settings-key-backup-rowfrom
onboarding/09-do-not-merge-keychain-slot
Closed

matt2e wants to merge 1 commit into
onboarding/08-settings-key-backup-rowfrom
onboarding/09-do-not-merge-keychain-slot

Conversation

@matt2e

@matt2e matt2e commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

DO NOT MERGE. #1821's tree plus one debug-only commit, so the native app can be built and exercised on the complete first-run flow. Nothing in it is meant to land.

Onboarding stack (merge in order, top to bottom):

  1. fix(navigation): run the visit deadline only while a presenter is attached #1814 navigation: visit deadline only while a presenter is attached (merged)
  2. refactor(communities): extract the join owner and add the pre-join relay lookup #1815 communities: join owner and pre-join relay lookup (merged)
  3. feat(identity): observable nsec backup status with pass tickets, explicit lock release, and refused-recovery copy #1816 identity: native nsec backup status (merged)
  4. feat(identity): first-run Builderlab account client and dev seed — bundled-grant sign-in, account reads, key link/unlink, backup, saved communities #1818 identity: first-run Builderlab account client and dev seed
  5. feat(identity): first-run setup store, step table and pages (composition follows in the next PR) #1819 identity: first-run setup store, step table and pages
  6. feat(identity): the first-run Welcome flow replaces the key-setup gate (FOUNDATION: App.tsx) #1820 identity: Welcome flow replaces the key-setup gate
  7. feat(settings): read-only Key backup row in Settings → Identity #1821 settings: read-only Key backup row
  8. [DO NOT MERGE] chore(identity): DO NOT MERGE — isolated debug Keychain slot (full stack for native testing) #1822 DO NOT MERGE: isolated debug Keychain slot (full stack for native testing) ← this PR

Diff over #1821: production +2/−2; tests +6/−3 — the isolated debug Keychain slot (xyz.block.buzz.desktop.identity.debug.onboarding) so a dev build of this branch does not share an identity with the primary checkout.

Native testing on this tree

Build and run the desktop app from this branch. Because of the debug slot, the first run starts from an empty identity without disturbing the primary checkout's Keychain item. To reset the slot between runs:

security delete-generic-password -s xyz.block.buzz.desktop.identity.debug.onboarding -a human

Native evidence (first-run recordings, hands-on checks) applies only to this tree; the PRs before it are unit/integration-tested only. No native run has been made since the rebase onto main without #1817.

Checks run

🤖 Generated with Claude Code

@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from d5a5ef2 to c1e4548 Compare October 28, 2026 14:18
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from c90322b to 1dbab3b Compare October 28, 2026 14:18
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from c1e4548 to 954be58 Compare October 28, 2026 14:21
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from 1dbab3b to 2bc85e8 Compare October 28, 2026 14:21
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from 954be58 to b4e66e5 Compare October 29, 2026 03:36
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch 2 times, most recently from 0735dbf to 5daa01f Compare October 29, 2026 23:48
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from b4e66e5 to 4ffb5a0 Compare October 29, 2026 23:48
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from 5daa01f to 2023f7d Compare October 30, 2026 00:30
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch 2 times, most recently from 1b6313a to 23e9e52 Compare November 2, 2026 04:21
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from 2023f7d to 09d89dc Compare November 2, 2026 04:21
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from 23e9e52 to f98b7e9 Compare November 2, 2026 05:55
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from 09d89dc to e8f9c9d Compare November 2, 2026 05:56
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from f98b7e9 to 417b71d Compare November 2, 2026 06:36
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from e8f9c9d to b310ab2 Compare November 2, 2026 06:37
…ychain slot

Every debug build of buzz-app, from any worktree, stores the human key in
the same Keychain item (service `dev.local.buzz.foundation.identity.debug`,
account `human`). That item already holds the real key from another
worktree, so on this branch "Creating keys…" fails with -25299 and the
first-run flow cannot be exercised without deleting that key.

This changes the debug slot name returned by `human_service(true)` in
crates/credential-store/src/lib.rs to
`dev.local.buzz.foundation.identity.debug.onboarding`. Everything that
restores, creates, imports, deletes or sign-out-marks the human key goes
through `HUMAN_SERVICE`, so this branch's dev identity is isolated and can
be reset safely:

    security delete-generic-password \
      -s dev.local.buzz.foundation.identity.debug.onboarding -a human

The release slot is unchanged. The two tests that pin the exact debug
string (`human_identity_slots_stay_separate`,
`development_and_release_items_are_separate`) move with it so CI stays
green. No TypeScript, fixture or script references the string;
docs/identity.md is left describing the real slot.

Revert or drop this commit before merging.

Validation: `cargo test -p buzz-credential-store human_identity_slots`
and `cargo test --manifest-path src-tauri/Cargo.toml
development_and_release_items_are_separate` pass; `cargo fmt --check`
clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
@matt2e
matt2e force-pushed the onboarding/08-settings-key-backup-row branch from 417b71d to 3bee161 Compare November 2, 2026 08:32
@matt2e
matt2e force-pushed the onboarding/09-do-not-merge-keychain-slot branch from b310ab2 to 3b6f086 Compare November 2, 2026 08:33
@matt2e matt2e closed this Nov 4, 2026
@matt2e
matt2e deleted the onboarding/09-do-not-merge-keychain-slot branch November 5, 2026 03:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant