Ship 2026-05-06: 5 GH closed + 12 features + Bug #1 (squashed eb-branch)#30
Open
ballinbigE wants to merge 1 commit into
Open
Ship 2026-05-06: 5 GH closed + 12 features + Bug #1 (squashed eb-branch)#30ballinbigE wants to merge 1 commit into
ballinbigE wants to merge 1 commit into
Conversation
Single-commit squash of every commit on eb-branch ahead of main since the cont-2 filter-repo divergence. Cherry-pick was infeasible due to xcodeproj merge conflicts across all 19 today commits — this branch exists so a fresh PR can land cleanly on main without the hash-mismatch conflict that's been blocking PR #29. Tracks every commit's intent in the per-feature handoffs in docs/superpowers/handoffs/. Most recent canonical handoff is 2026-05-06-session-handoff.md (49 commits ahead summarized inline). Today's 19 substantive commits (all on eb-branch tip a103604): Tier-2 GH burn-down (5 closed): - 3817e2b GH #15 CloudflareTunnel audit — argv-array form, 7 tests - 32cb484 GH #14 PIN UserDefaults→Keychain + 8-digit entropy - a9e2c5a GH #19 Mac→iOS app-level heartbeat (15s interval) - babdc67 GH #20 arrange_windows.layout String→enum - 640b507 GH #24 APNsMetadataStore + requireAuth lock test coverage Sim-QA install-verified fix: - f779bd3 Bug #1 disconnect clears stale lastError + connectingStartedAt Connection + PTT visibility: - 0001371 Stories G+H — picker per-row reachability + PTT health banner Codex CLI integration (live-verified): - 6186fee Story I — Codex Cmd+V image paste path A11y + paste + scrollback + numbered prompts: - 13b69da §B15 slot-row a11y sweep + cont-5 wishlist Done entries - 4d1d21a §35 cross-app clipboard paste via keyboard long-press - 5fe7493 §38 iTerm scrollback nav (Shift+PageUp/Down, Cmd+Home/End) - 551ca20 §18 context-aware numbered-prompt chips (NumberedPromptDetector) Picker last-seen + top-bar enrichment + image upload recovery: - ab27a16 §J PairedBackend.lastConnectedAt + "Last seen Xm ago" caption - 43466d3 §K top-bar 4-state TopBarStatus pill - 95f2e52 §L ImageUploadFailure categorization + recovery affordance Diagnostic capture: - 8641ab7 §26 shake-to-diagnose ShakeDetector + DiagnosticsSheet Plus session handoffs (7481360, d8b4c40, a103604). Test suite end-of-day: Mac 256→298 (+42), iOS 195→275 (+80), combined 451→573 (+122 across 13 new test files), both schemes green. Branch memory feedback_no_filter_repo_main_conflict.md locks GH #16 filter-repo and PR #29 path A (force-push main) as do-not-do per user policy from 2026-05-06. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
What
Single-commit squash of every commit on
eb-branchahead ofmain, including 19 substantive commits from 2026-05-06's full-day session. Created as a fresh branch off currentmainso the diff applies cleanly without the hash-mismatch conflict that's been blocking PR #29.Today's changes (2026-05-06)
Tier-2 GH burn-down (5 issues closed)
Processinvocation audit — no shell-injection vector; argv-array form documented + 7 regression tests inCloudflareTunnelArgsTests.swiftPINStore, one-shot migration, 11 testsHeartbeatMessage/HeartbeatAckMessage, 15s server timer, iOS auto-acksarrange_windows.layoutString→enum — Codable now rejects unknown rawValues, ErrorMessage broadcastSim-QA fix (install-verified)
disconnect()now also clearslastError+connectingStartedAt(was leaking watchdog "Stalled Ns" into UI)Connection + PTT visibility
Connected/Connecting…/Unreachable/PIN required/Off)Codex CLI integration (live-verified)
CLIKindenum on WindowState;TerminalStateDetector.classifyCLIsniffs process names;KeystrokeInjector.pasteImagewrites NSImage to clipboard + Cmd+V into iTerm2A11y + paste + scrollback + numbered prompts
❯cursor marker to disambiguate from prosePicker last-seen + top-bar enrichment + image upload recovery
lastConnectedAtfield)Diagnostic capture
ShakeDetector+DiagnosticsSheetwith frozen iPhone snapshot, copy + Request Mac bundle buttonsTest coverage
All green across 13 new test files.
Why a squash + new branch
PR #29 blocked by hash-mismatch conflict from a
git filter-reporedaction of historical commit71af40e(device name leak). Per branch memoryfeedback_no_filter_repo_main_conflict.md, force-pushing main is permanently off the menu. This branch is the path-B/C alternative — fresh branch off current main with a single squash commit of all 49 ahead-of-main commits.Closes PR #29 (please close manually when this lands).
Test plan
docs/superpowers/handoffs/2026-05-06-session-handoff.md🤖 Generated with Claude Code