Skip to content

Build, notarize and publish v0.5.0 #252

Closed

Description

@sudoHG

Goal

Build, notarize and publish v0.5.0 following ADR 0006 and the v0.4.0 receipt in #236.

Context

Executor: Codex, coordinated through Orca. Every gated step needs the maintainer's approval, relayed by the coordinator.

Steps

  1. Version PR. Set AskKeyVersion.current to 0.5.0 and turn CHANGELOG [Unreleased] into a 0.5.0 entry that lists every user-visible change since v0.4.0 in Added, Changed, Fixed and Security groups, verified against the merged PRs:

    • Added: the group timed allowance on read cards for grouped credentials (Details lists every covered credential; later additions are excluded); the timed-allowance list at the top of the library with countdown and Revoke; the End Timed Allow on Lock setting (off by default, system authentication in both directions).
    • Changed: clicking a pending-request reminder while management is locked opens the approval prompt directly and keeps management locked on its page (supersedes the 0.4.0 "after management unlocks" behavior); a credential covered by a group allowance shows Revoke Group Allowance, which ends the whole grant.
    • Fixed: clicking an agent write-failure notification brings Ask Key forward without jumping to Pending requests.
    • Security: what the setting ends and refuses (lock, sleep, user switch; unconsumed timed approvals and runs that include a timed credential), and the group allowance's scope and deadline, matching SECURITY.md.
    • Upgrade notes: no library migration and Agent access settings are kept without Resume. Downgrading to 0.4.0 with the setting off changes nothing. With it on, 0.4.0 pauses Agent access and its Resume restores all Agent access settings to defaults; upgrading again before Resume loses nothing. Advise turning the setting off before downgrading. Say "0.4.0", not "an older build".
    • README and README.zh-CN: add the group allowance and the lock setting to the timed-allowance description (~96 and ~134 in both), and replace the 0.3.2 → 0.4.0 upgrade paragraph with the notes above.
    • ADR 0002: the main Decision bullet (~18) still says timed allowances cover one credential; add a pointer to the group amendment.
    • docs/testing.md Pre-release checks: extend the upgrade (~136), language (~137), Touch ID (~139), read Details (~142) and short-screen (~146) items, rewrite the reminder-click item (~145) for Open approval reminders without unlocking management #245, and add lock, sleep, user switch and responsiveness items from step 3.

    Gate: maintainer approves the merge.

  2. Tag. After Keep the library empty state centred above the timed-allowance list #251 and the version PR are merged and the push CI on that commit is green, tag v0.5.0 on it. Gate: maintainer approves the tag push.

  3. Install and device check. No library backup is required (no migration). Build Release, quit the running 0.4.0, move it to the Trash and install the new build at /Applications/Ask Key.app. Launch it with a clean environment, not from a terminal with Orca or CODEX_HOME variables. Gate: maintainer approves the install.

    Then run the device check with the maintainer present, one request at a time with explicit instructions. The coordinator triggers agent requests with harmless commands that print no values, sending lock-timed requests with a delay so the maintainer never waits.

    • Upgrade. Version 0.5.0, Broker health, 请旨 display name; not paused, no Resume banner; read authentication and timed-allowance settings unchanged; End Timed Allow on Lock off; same after relaunch.
    • Setting. Turning it on asks for Touch ID; cancelling leaves it off; it stays on after relaunch; turning it off also asks.
    • Screen lock (⌃⌘Q), setting on. With one single and one group allowance active, lock for at least 5 seconds and unlock: the list is empty and the next read shows a card. A request sent just before locking stays pending and its reminder appears. The UI stays responsive through five quick lock/unlock cycles.
    • Setting off. Allowances survive a lock and no Keychain prompt appears.
    • Sleep, setting on. Apple menu > Sleep, wake and unlock: allowances are gone, and a new timed approval works right after wake.
    • Group card, English and Chinese. Details lists only eligible credentials and the Expires row when a member expires earlier; all buttons fit on a short screen; approving shows one list row; a member's inspector shows Revoke Group Allowance and revoking ends the whole grant.
    • Reminder click while management is locked. The approval card appears and management stays locked on the same page; with nothing pending the click only brings the window forward.
    • Empty states. Empty group, no search results: centred (Keep the library empty state centred above the timed-allowance list #251).
    • Carried over from v0.4.0 (still NOT_VERIFIED): clicking a delivered reminder while Ask Key is not running; the Dock icon during a file picker or alert.
    • Optional, maintainer decides at the time: fast user switch; passwordless wake.
    • Clients. Each installed client still reports Connected.
  4. Notarize. Run package-release.sh --notary-credential with the Ask Key release credential (two approvals in Ask Key). Verify all four files and both checksums, staple and Gatekeeper, and that the app inside the DMG has the same CDHash as the installed build.

  5. Publish. Create a draft release with bilingual notes in the style of v0.4.0, including the upgrade notes from step 1, and upload the four files. Gate: maintainer approves publication. Publish it, re-download releases/latest/download/AskKey.dmg anonymously and verify it, post a receipt here in the Build, notarize and publish v0.4.0 #236 format, and record v0.5.0 in the AGENTS.md status line.

Acceptance

The release is published with all four assets, and the receipt is posted. Signing identity, Team ID and credential contents never appear in GitHub.

Blocked by

#251 (step 2 onward).

Activity

  1. luoji-bot commented on Nov 3, 2026

    @luoji-bot

    Release receipt (Orca-coordinated, on the maintainer's Mac, with the maintainer's approval at every gated step). Signing identity, Team ID, notarization credentials and library contents are kept off this issue.

    • Released commit: 253daf66d787312c3191ec91c18277b436eb3521, annotated tag v0.5.0 (tag object c8836b72154100c33e497e9df328d570542bb6c2, tagger sudoHG). Version and documentation: PR #254, after the pre-release fix PR #253 (Keep the library empty state centred above the timed-allowance list #251).
    • Pre-release review: a read-only review of v0.4.0..5cf9bc3 found no P0/P1; its P2 (empty-state layout) was fixed in Keep library empty states centred below timed allowances #253. The maintainer kept the group button for single-credential groups and the current Settings subtitle.
    • Upgrade boundary: no library migration; 0.4.0 Agent access settings are read unchanged without Resume; End Timed Allow on Lock starts off. Downgrading to 0.4.0 with the setting on pauses Agent access there, and its Resume resets Agent access settings to defaults; the notes advise turning the setting off first.
    • Build: signed Release built from the tag, installed at /Applications/Ask Key.app after the maintainer's approval (0.4.0 moved to the Trash). App CDHash 021cf440d54fcfc87fd5d34f0fd5384bfb7accac; helper CDHash d697dcd4af93e1f91cf9f5086129ec250c7761ba. Clean launch environment; Broker health ok.
    • Device checks (maintainer present; harmless /usr/bin/true requests that print no values):
      • PASS: version 0.5.0, Broker health, Agent access not paused and no Resume banner, catalog unchanged, existing settings unchanged, End Timed Allow on Lock off.
      • PASS: turning the setting on asks for Touch ID; cancelling leaves it off; authenticating turns it on.
      • PASS: group read card offers "Allow Group … (2 credentials)", Details lists both members, approval shows one library row covering both, the member inspector shows Revoke Group Allowance, and revoking ends the whole grant.
      • PASS: with the setting on, a request sent 15 s into a ⌃⌘Q screen lock waited for approval (live lock confirmed), the allowance list was empty after unlock, and the card appeared. (An earlier attempt passed through only because the setting had been switched off by accident; with it off, the allowance survived the lock without a Keychain prompt.)
      • PASS: Apple menu > Sleep (pmset log: sleep 12:20:34, wake 12:20:48 local) ended the group allowance; the next request required approval, and a fresh group allowance granted right after wake auto-approved the following request.
      • PASS: with management locked, clicking the pending-request reminder in Notification Center after unlock showed the approval card without unlocking management.
      • PASS: no-results search empty state is centred; every installed client reports Connected.
      • NOT_VERIFIED: five quick lock/unlock cycles (responsiveness); setting persistence across relaunch; fast user switch; passwordless wake; cold-launch notification click and Dock-icon retention (both carried over from v0.4.0).
    • Package: scripts/package-release.sh --notary-credential with the Ask Key release credential. The executor's first run and two coordinator runs failed with "invalid JSON result" because notarytool requests to Apple intermittently timed out on this network (NSURLErrorDomain -1001; plain HTTPS to the same endpoint was fine). One of those runs left an orphaned Accepted app submission; no artifacts were produced or uploaded from them. After six consecutive successful probes, the next run completed with the maintainer's two Ask Key approvals.
      • Four assets: AskKey-0.5.0.dmg, AskKey-0.5.0.dmg.sha256, AskKey.dmg, AskKey.dmg.sha256. Both checksum files pass shasum -a 256 -c; the two DMGs are byte-identical: 9,987,748 bytes, SHA-256 44a0d6197ad9dfaa1f80db868cd88163e74e077d43f0872974e616cf80812e4d.
      • DMG and contained app are notarized and stapled; Gatekeeper reports Notarized Developer ID for both. A read-only mount shows version 0.5.0 and the same app CDHash as the installed, device-tested build.
    • Release: v0.5.0, published as latest on 2026-11-03 with the approved bilingual notes (including thanks to @lagiosv for Add one timed allowance for all credentials in a group #240 and Stop timed allowances when the screen locks #241) and all four assets, after the maintainer's explicit publication approval.
      • releases/latest/download/AskKey.dmg and its checksum were re-downloaded anonymously: checksum OK, SHA-256 matches, staple and Gatekeeper pass. Temporary mounts and downloads were removed.
    • Follow-ups: package-release.sh should tolerate transient notarytool network timeouts (retry polling instead of failing the whole run); to be filed separately.
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

    ready-for-agentFully specified; an agent may claim it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions