Skip to content

SecureState (Keychain) dogfood key #16

Closed

Description

@0xLeif

Dogfood the remaining persisted state kind: AppState SecureState backed by the Keychain.

Candidate: a secret demo key (String) set/get/reset through the CLI. Was an explicit v1/v1.1 non-goal, so landing this means updating GOAL.md scope first.

Acceptance criteria

  • New DemoKey backed by SecureState with round-trip tests
  • Keychain item lives in a well-named service/account; reset deletes it
  • Behavior on headless/CI runners documented (Keychain availability)
  • specs updated in the same change

Activity

  1. added this to the v1.2 milestone on Jul 18, 2026
  2. added
    dogfoodExercises an AppState feature surface
    agent:cursorTicket claimed by a Cursor agent. One agent per ticket; remove when the PR is up or work stops.
    on Jul 18, 2026
  3. 0xLeif commented on Jul 18, 2026

    @0xLeif
    OwnerAuthor

    Claimed by agent:cursor.

    Working branch: cursor/issue-16-secure-state
    Worktree: ../aps-cli-wt/issue-16

  4. removed
    agent:cursorTicket claimed by a Cursor agent. One agent per ticket; remove when the PR is up or work stops.
    on Jul 18, 2026
  5. 0xLeif commented on Jul 18, 2026

    @0xLeif
    OwnerAuthor

    Implemented in PR #27.

    Claim label agent:cursor removed; branch cursor/issue-16-secure-state.

  6. 0xLeif commented on Jul 18, 2026

    @0xLeif
    OwnerAuthor

    Direction update from the 2026-07-18 design interview: the Keychain-backed approach is superseded by #35 (encrypted-file secret store via swift-crypto, tri-OS, prompt-free). The per-run macOS Keychain password prompt is structural for an ad-hoc signed CLI. PR #27's read-back verification pattern, tests, and Linux gating remain the reference; the backend changes. Hold further Keychain-specific work here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dogfoodExercises an AppState feature surface

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions