Fixes a JavaScript timer invocation bug that can prevent all phone-to-watch
responses and stop mailbox requests before they are sent on Android WebView.
The watch can appear connected while Pigeon reports Bridge unavailable or
No phone confirmation, even though the phone has received and saved the note.
Both outgoing messages and mailbox requests now invoke the platform timers
correctly. Existing credentials, drafts, mailbox data, app identity and support
report formats are preserved. The v0.51 startup improvements and diagnostics
remain included.
The released v0.51 package reproduced this failure with real Chromium timers.
The corrected package is checked with the same browser runtime, including local
note acknowledgement, a simulated mailbox upload and a lost-callback retry.
These use fixture data; success on the affected physical phone remains unverified.
Testing
1. Update the existing app; do not uninstall or clear app data.
2. Open the Pebble phone app and Pigeon on the watch. Check that Bridge is ready.
3. If a draft is still present, retry that draft once. Check mailbox arrival and
a subsequent reply through your existing automation.
4. If it still fails, open watch Settings > Actions > Support code, then reopen
Pigeon settings on the phone and copy the complete support report.
Startup change
Pigeon no longer requests unused Pebble account/watch tokens while starting or
opening settings. Those synchronous calls could prevent the phone bridge from
becoming ready. Settings code loads only when needed. A controlled test that
blocks the token call prevents v0.5 from reaching READY; v0.51 avoids that call
and continues to settings and local note confirmation.
Better support information
- Watch: Settings > Actions > Support code. A compact 43-character data string
(47 including PC2-) records 32 checkpoint states, versions, transport results,
retries, timing and memory information. It works without a phone reply.
- Watch: Support code > Actions > Event trace keeps the last 32 events.
- Phone: open Pigeon Settings and tap Copy support report. This adds up to 128
phone events, the preserved failure/prior session and available watch evidence.
- Exact errors and entry/completion checkpoints help locate where progress stops.
- Reports contain numeric diagnostics, not notes, repository names or tokens.
They are shared only when you copy or photograph them; there is no new upload.
Testing this version
1. Update the existing app. Its UUID, mailbox format and draft storage remain
unchanged. Do not uninstall or erase data to perform this test.
2. Open the Pebble phone app, then open Pigeon on the watch. Wait about 20 seconds.
3. Check Settings. Try a harmless short note if the bridge becomes ready. If you
already have a draft, retry that draft rather than creating duplicate notes.
4. If it still fails, open Settings > Actions > Support code. Photograph the
current code and, if present, Last saved failure. Scroll for the older code.
5. After visiting the watch Support code screen, reopen Pigeon Settings on the
phone and tap Copy support report. Paste the complete PR2- string into your
reply. Report whether the phone page would not open or no watch snapshot was
received. The code is case-sensitive; copying or a clear photo is best.
Each page is a frozen capture. Reopen it after reproducing a problem. A missing
checkpoint means “not observed,” and a transport acknowledgement does not prove that Pigeon saved the note. Old failure codes are explicitly labeled as older.
Codex Pigeon 0.5.0
25 September 2026
For Pebble Time 2 and Pebble Round 2
More reliable phone connection
The watch now automatically retries the phone-bridge handshake on startup and
when the phone reconnects. This fixes a case where Settings could remain stuck
on "Bridge unavailable" after a temporary startup communication failure, even
though Bluetooth was connected. Retries stop when the bridge responds. If it
stays unavailable, the watch asks you to open the Pebble phone app and tap Refresh.
Clearer settings
Phone settings now use readable text, light panels and contrasting buttons in
both light and dark browser modes. Verify mailbox now explains that successful
repository verification checks read access, not the watch connection. Write
access is confirmed when a note is successfully uploaded.
Visible app icon
The watch launcher icon is now black, making it visible on the white background
of the app list.
Updating
Install this update over your existing Codex Pigeon app. The app identity,
mailbox format and storage schema are unchanged. No repository or token changes
are required for this update. Automatic handshake retries do not resend drafts
or poll GitHub. If a draft still needs sending, retry the existing draft.
Validation
The startup recovery fix was tested on a physical Pebble Time 2 with firmware
4.38.2. Under the same simulated eight-second outage, the original code stayed
unavailable until Refresh; the patched code reconnected automatically. It also
recovered after three rapid restarts. This targeted test does not establish that
every reported phone/watch communication issue is resolved. Round 2 is included
in the build; physical Round 2 acceptance remains untested.
Recoverable drafts with re-dictation and append. Stable retry identity and matching delivery acknowledgements. Mailbox-specific queues, safer storage and migration, paged local history, bounded refresh, and clearer error messages.
Full pending notes, unread and clarification states, Summary and Read details, View question, consistent Top/Bottom scrolling, labeled Actions, Hide/Restore, larger text, quiet mode and reduced animation.
Private mailbox verification, easier repository setup, explicit history restore, and local diagnostics. Updated Time 2 and Round 2 layouts and a new Store banner.
Codex Pigeon 0.3.3 is a reliability and polish release for Pebble Time 2 and Pebble Round 2.
The dictation preview now remains on the watch until the phone confirms that the note was saved locally. Delivery failure, phone-storage failure, disconnection, or a missing confirmation leaves the dictated text visible with a clear Send-again route.
Replies now prefer the explicit watch_summary supplied by the mailbox worker. Without one, Codex Pigeon uses a bounded plain-text version of the reply. The watch header is the model-neutral Reply, while the complete Markdown response remains in GitHub and Obsidian.
Phone-side reply storage is bounded, summary-only replies are cached correctly, and Refresh no longer repeatedly downloads older replies outside the visible window. The watch Refresh allowance is longer for serialized uploads and downloads.
A dedicated pigeon-and-microphone icon now appears in the watch launcher instead of Pebble's generic app placeholder.
The mailbox structure, request IDs, follow-up threading, private-repository setup, and local-worker contract are unchanged. One PBW contains both Emery and Gabbro binaries, with complete touch and physical-button controls.
Codex Pigeon 0.3.2 adds Pebble Round 2 support while keeping Pebble Time 2 in the same app package.
Pebble Round 2 now has a dedicated 260 x 260 circular interface with Round-sized artwork, inset lists and notes, and touch targets fitted to the visible screen. The dashboard, Pending and Replies lists, note reading, Send, Follow up, Dismiss, and the Keep-first dismissal confirmation all adapt to the round display.
Both watches support direct touch and retain complete physical-button controls. List taps are limited to visible rows, reply dismissal remains local and non-destructive, and the highlight animation uses safe ownership so screen changes do not leave stale animation warnings.
The GitHub and Obsidian mailbox format is unchanged. Existing repositories, fine-grained token settings, immutable request and reply files, follow-up threading, and optional local workers continue to work as before.
This release contains one PBW with both Pebble Time 2 (Emery) and Pebble Round 2 (Gabbro) binaries.
- A bold new interface inspired by Pebble’s bright, high-contrast design language.
- Touch controls throughout the app, while retaining complete button support.
- Tap dashboard tiles, swipe through lists, and drag longer notes and replies.
- Follow up directly from a reply while preserving the conversation thread.
- Safely dismiss replies with a Keep-first confirmation. Dismissal is local and never deletes GitHub or Obsidian history.
- New icons, animated highlights, card transitions, speech pulses, and refresh animation.
- More reliable refresh behavior when the phone bridge reconnects.
- Improved dictation failure handling with clear, bounded feedback.
- Reduced unnecessary network and background activity.
- Refresh now waits for the Pebble phone bridge and runs automatically when a background-connected bridge becomes ready.
- The watch reports a disconnected phone instead of waiting on a silent refresh.
- Select starts a reply follow-up; Down opens a safe Keep/Dismiss confirmation.
- Dismissed replies stay hidden on that phone without deleting or editing the GitHub/Obsidian mailbox history.
- Hold Down to continue paging through long replies.
- Rapid navigation no longer leaves stale Pebble animation handles.
Initial v0.1 release for Pebble Time 2 (Emery).
- Dictate, review, and send Markdown requests through a private GitHub repository.
- Refresh and read short replies on the watch.
- Continue a reply as a threaded voice follow-up.
- Browse pending requests and completed replies.
- Configure repository access through the Pebble phone app.
- Uses one immutable Markdown file per request and reply to reduce Git conflicts.