feat(B-0737): zflash + Touch ID PAM + short challenge + ISO auto-discovery — 'I execute, you fingerprint' (carry-over from #4997)#5010
Merged
Conversation
…overy — 'I execute, you fingerprint' (squash; all 7 review-thread fixes incl.) Aaron 2026-05-25: 'minimize for humain to easy to type one liners and add sudo via touch and then maybe even you can executie and i have to approve with my fingerprint.' Squash of B-0737 substrate + all fixes from prior PR #4997's iteration trail. Onto current origin/main (3843fee) to avoid the rebase conflicts on docs/BACKLOG.md regeneration. Shipping state: - flash-usb.ts: existing destructive-tool contract (B-0728) + new --short flag for 'yes <4-hex>' challenge format + strict flag allowlist - zflash.ts: thin Bun wrapper; auto-discovers newest ~/Downloads/ zeta-installer-*.iso; invokes flash-usb --short with stdio inheritance; strict allowlist for -h/--help + bail on >1 positional - zflash-setup.ts: idempotent Touch ID PAM installer; prepends 'auth sufficient pam_tid.so' to /etc/pam.d/sudo via sudo tee (CR/LF preserved via heuristic); optional --install-alias adds shell-quoted alias to ~/.zshrc; documents that sudo tee is not crash-atomic + the trade-off rationale - All 3 files use fileURLToPath() for safe filesystem path derivation (handles spaces + unicode in checkout paths) - Shell-quoted alias via shellQuoteForAlias() helper (bash double-quoted + backslash-escape for ' \ $ ` chars) - All spawnSync('sudo'/'tee', ...) calls have eslint-disable-next-line sonarjs/no-os-command-from-path with rationale After this PR merges + 'bun full-ai-cluster/tools/zflash-setup.ts --install-alias' runs once, operator's flow becomes: $ zflash (~5 chars) > yes a3f9 (~8 chars; per-run nonce) [Touch ID] (1 fingerprint) Flash complete. Or agent-driven: 1 fingerprint, no keystrokes (agent types nonce; Touch ID PAM is the irreversible-action consent gate the agent cannot spoof). PR #4997 was force-pushed to no-diff state earlier in error + GitHub auto-closed it + refused reopen; this fresh PR carries the same content. Co-Authored-By: Claude <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
5 tasks
This was referenced May 25, 2026
This was referenced May 25, 2026
Merged
Merged
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
Carry-over from PR #4997 which got force-pushed to no-diff state in error + GitHub auto-closed + refused reopen. This PR carries the same B-0737 zflash substrate + all 7 Copilot+Codex review fixes from the original PR's iteration trail, squashed onto current origin/main.
Aaron 2026-05-25 verbatim: "minimize for humain to easy to type one liners and add sudo via touch and then maybe even you can executie and i have to approve with my fingerprint."
What ships
full-ai-cluster/tools/flash-usb.ts— existing destructive-tool authoring contract (B-0728) + new--shortflag foryes <4-hex>challenge format + strict flag allowlist (P0 fix)full-ai-cluster/tools/zflash.ts— thin Bun wrapper; auto-discovers newest~/Downloads/zeta-installer-*.iso; invokes flash-usb--shortwith stdio inheritance; strict allowlist for-h/--help; bails on >1 positional argfull-ai-cluster/tools/zflash-setup.ts— idempotent Touch ID PAM installer; prependsauth sufficient pam_tid.soto/etc/pam.d/sudoviasudo tee(CR/LF preserved via heuristic); optional--install-aliasadds shell-quoted alias to~/.zshrc; documents thatsudo teeis not crash-atomic + trade-off rationalefileURLToPath()for safe filesystem path derivation (handles spaces + unicode in checkout paths)shellQuoteForAlias()helperspawnSync("sudo"/"tee", ...)calls haveeslint-disable-next-line sonarjs/no-os-command-from-pathwith rationaleAfter merge + one-time setup
Agent-driven mode: 1 fingerprint, no keystrokes (agent types nonce; Touch ID PAM is the irreversible-action consent gate the agent cannot spoof).
Composes with
Test plan
bun -e "import('...').then(...)")BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts🤖 Generated with Claude Code