Repository navigation
Description
Goal
Build, notarize and publish v0.5.0 following ADR 0006 and the v0.4.0 receipt in #236.
Context
- Contents since v0.4.0: Open approval reminders without unlocking management #245, End timed allowances on screen lock or sleep when enabled #244, Add one timed read allowance for a credential group #246, Harden timed allowance sleep tracking coverage #249, Move timed allowance lock handling off the main thread #250 (
v0.4.0..5cf9bc3), plus the pre-release fix Keep the library empty state centred above the timed-allowance list #251. - Why 0.5.0: two user-facing features (one timed read allowance for a credential group; the opt-in End Timed Allow on Lock setting) and a stored settings field that 0.4.0 cannot verify once the setting is turned on.
- Pre-release review: a read-only review of
v0.4.0..5cf9bc3found no P0/P1 and one P2 (empty-state layout, fixed in Keep the library empty state centred above the timed-allowance list #251). There is no library migration, and a 0.4.0 Agent access policy is read unchanged with the setting off, so no Resume is expected. The maintainer decided to keep the group button for single-credential groups and the current Settings subtitle wording.
Executor: Codex, coordinated through Orca. Every gated step needs the maintainer's approval, relayed by the coordinator.
Steps
-
Version PR. Set
AskKeyVersion.currentto0.5.0and turn CHANGELOG[Unreleased]into a0.5.0entry 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.mdPre-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.
-
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.0on it. Gate: maintainer approves the tag push. -
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 orCODEX_HOMEvariables. 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.
-
Notarize. Run
package-release.sh --notary-credentialwith 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. -
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.dmganonymously 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
luoji-bot commentedon Nov 3, 2026
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.
253daf66d787312c3191ec91c18277b436eb3521, annotated tagv0.5.0(tag objectc8836b72154100c33e497e9df328d570542bb6c2, 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).build-and-test,basic-ui-flowsandrelease-sdk-window-checkall passed.v0.4.0..5cf9bc3found 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./Applications/Ask Key.appafter the maintainer's approval (0.4.0 moved to the Trash). App CDHash021cf440d54fcfc87fd5d34f0fd5384bfb7accac; helper CDHashd697dcd4af93e1f91cf9f5086129ec250c7761ba. Clean launch environment; Broker health ok./usr/bin/truerequests that print no values):scripts/package-release.sh --notary-credentialwith the Ask Key release credential. The executor's first run and two coordinator runs failed with "invalid JSON result" becausenotarytoolrequests 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.AskKey-0.5.0.dmg,AskKey-0.5.0.dmg.sha256,AskKey.dmg,AskKey.dmg.sha256. Both checksum files passshasum -a 256 -c; the two DMGs are byte-identical: 9,987,748 bytes, SHA-25644a0d6197ad9dfaa1f80db868cd88163e74e077d43f0872974e616cf80812e4d.Notarized Developer IDfor both. A read-only mount shows version 0.5.0 and the same app CDHash as the installed, device-tested build.releases/latest/download/AskKey.dmgand its checksum were re-downloaded anonymously: checksum OK, SHA-256 matches, staple and Gatekeeper pass. Temporary mounts and downloads were removed.package-release.shshould tolerate transientnotarytoolnetwork timeouts (retry polling instead of failing the whole run); to be filed separately.