Repository navigation
Conversation
The pane mark outlives the program it was set for. Once that program
exits, the nudge typed `continue` at the shell prompt and, with Enter on,
ran it as a command, and the outage notification still counted the pane
as nudged.
The live runner now reads #{pane_current_command} with the other pane
flags and skips a pane whose foreground program is a shell (basenames in
/etc/shells plus common ones). An empty program name fails closed like a
missing flag. Test fixtures wait until their program has replaced the
`sh -c` wrapper tmux starts it under.
check(paneState:shells:) and makeLiveRunner(shells:) take the shell names; nil keeps TmuxNudge.shellNames, so the app still reads /etc/shells and no test touches /etc.
…nds nothing iOS names a Personal Hotspot after the device with a typographic apostrophe, `Name’s iPhone` (U+2019), and a Mac keyboard types a straight one (U+0027). CoreWLAN's directed scan matches the SSID's exact bytes, so a name typed into Settings never found the iPhone and every join of an outage failed. A scan that finds nothing is now tried again with the name's apostrophes swapped, straight for typographic and back (HotspotSSID.scanCandidates); a name without one is scanned once, as before, and insomnia.log says when the other spelling was found. The password is still the one saved for the SSID as typed. Fixes #87.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Two fixes for a Mac left running away from the desk. A tmux pane marked for nudges that is back at its shell prompt no longer gets "continue" typed into the shell (#68). When Wi-Fi drops and the scan does not find the hotspot by its configured name, the failover also looks for it with the other apostrophe, because an iPhone names its hotspot with a typographic one (#101).
This lands #68 by @bIackr0se at 108e38a and #101 by @aldikosh23 at 71c4eee. Both commits are merged here unchanged, so GitHub marks both pull requests merged when this one merges and their authors keep the credit. Each conflicts with #147 (Settings on one page), which lands first, so neither can merge as it is.
To @bIackr0se and @aldikosh23: please don't push to your branches now. A new commit on one isn't in this pull request, so that pull request would stay open instead of showing as merged.
The base is
integration/wave1-base: main with #146 and #147 (which carry #145) merged, as main will be once they land. When #147 merges, this pull request's base changes to main and nothing else changes.Conflicts resolved
HotspotSSID, one after the other.No maintainer changes beyond the merges.
Tests
The full suite at this tree: 1394 tests, 0 failures, on macOS 26.2. Hosted CI runs on macOS 26 and 27.
Review
Clean at 1931a85, the same tree as this head; only commit messages changed since. It checked both resolutions and how #101's candidates meet #147's suggestions: a suggestion fills in the exact remembered name, the failover scans that name first, and the Keychain lookup uses the configured name whichever apostrophe the scan matched.
Evidence
To run on the owner's MacBook at the final head: an iPhone hotspot whose name has a typographic apostrophe, configured with a straight one, found and joined when Wi-Fi drops during a session; and a marked tmux pane that is back at its shell prompt gets no "continue".


Confidence Score: 5/5
The PR appears safe to merge; no actionable issues were found.Summary
The PR skips tmux nudges when the pane’s foreground program is a recognized shell. Hotspot joins now try the other apostrophe spelling when the configured name finds nothing.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Hotspot join attempt] --> B[Read password under configured name] B --> C[Scan configured spelling] C --> D{Network found?} D -->|Yes| E[Join returned network] D -->|No| F[Try alternate apostrophe spelling] F --> E G[Network recovers] --> H[Read tmux pane state] H --> I{Recognized shell?} I -->|Yes| J[Skip pane] I -->|No| K[Require pane mark before sending keys]Reviews (1) · Last reviewed commit: "Merge #101: look for the SSID with the o..." · Reviewed by Greptile