Third‑party pull requests merged into coredevices/mobileapp and coredevices/PebbleOS between 2026‑03‑12 and 2026‑07‑12, excluding the core team (ericmigi, gmarull, jplexer, sjp4, crc-32) and bots. 93 PRs from ~30 external contributors. Descriptions inferred from PR titles.
| PR | Contributor | What changed | Benefit |
|---|---|---|---|
| mobileapp #132 | michaelthatsit | Health sync with Google Health Connect (Android) + Apple Health (iOS) | Watch health data flows into the phone health ecosystem |
| mobileapp #162 | leo60228 | Android VoIP call support via InCallService |
Handle internet calls (WhatsApp etc.) from the watch |
| mobileapp #119 | asyba | iOS Shortcuts: notifications, quiet time, watch prefs, launch app | Siri/Shortcuts automation on iOS |
| mobileapp #236 | jakmro | Gate the Cactus STT engine behind an FP16 CPU check | Stops a hard SIGILL crash on older arm64 phones |
| PebbleOS #1561 | alonmln | Fix stack overflow rendering Hebrew notifications | Prevents a firmware crash for RTL users |
| PebbleOS #1554 | ShinkoNet | Fix SF32LB speaker volume reset mid‑playback | Correct audio/alarm volume on new‑silicon watches |
| mobileapp #238 | bentemple | Defer BLE GATT server pre‑registration until a BLE watch is paired | More reliable Bluetooth setup |
| mobileapp #135 | aveao | Notification filtering by regex | Precise control over which notifications reach the watch |
| mobileapp #150 | matejdro | Fix requestConfigurationUrl hanging forever |
Watch‑app config screens stop freezing |
| mobileapp #147 | matejdro | Fix sendAppMessage erroring out on timeout |
Reliable PebbleKit messaging for 3rd‑party apps |
| PR | Contributor | What changed | Benefit |
|---|---|---|---|
| mobileapp #121 | jamsinclair | Japanese (ja_JP) language packs | Japanese localization |
| mobileapp #134 | alonmln | Hebrew (he_IL) language pack | Hebrew localization |
| PebbleOS #1333 | AhmedTheGeek | Arabic (ar_SA) language pack | Arabic localization |
| PebbleOS #1473 | OleksandrPanforov | Ukrainian (uk‑UA) localization | Ukrainian localization |
| PebbleOS #1623 | ikari-pl | Polish (pl_PL) localization | Polish localization |
| mobileapp #165 | asyba | iOS notification filter (app side) | Fine‑grained iOS notification control |
| PebbleOS #1161 | asyba | iOS notification filter rules (firmware side) | Firmware half of iOS notification filtering |
| mobileapp #168 | matejdro | Enable Timeline insertion from PebbleKit 2 | 3rd‑party apps can push Timeline pins |
| mobileapp #148 | asyba | Music player settings (app) | Better on‑watch music control |
| PebbleOS #1071 | asyba | Music settings: volume + progress bar (firmware) | Firmware half of music controls |
| mobileapp #149 | asyba | Notifications "Mute" status | Users can mute notifications |
| mobileapp #141 | ClusterM | Android custom canned replies for notifications | Personalized quick replies |
| mobileapp #133 | KonradIT | Google phone dialer support | Dial via Google's dialer from the watch |
| PebbleOS #1364 | srwareham | Quiet‑time auto‑dismiss option for notifications | Notifications clear during quiet time |
| PebbleOS #1498 | Mearman | BLE GATT "service‑changed" indication | Reliable reconnect after firmware updates |
| PebbleOS #1441 | yoxcu | Advertise "BR/EDR Not Supported" on BLE‑only watches | Fixes some phones failing to connect |
| PebbleOS #1525 | Mearman | Per‑glyph font fallback chain | Renders mixed‑script/emoji instead of blank boxes |
| mobileapp #146 | ClusterM | Fix DictationResult serialization for UTF‑8 | Voice dictation works with non‑ASCII text |
| mobileapp #144 | matejdro | Fix sendMessage cancellation handling |
Fewer stuck/failed PebbleKit sends |
| mobileapp #140 | matejdro | Move AppMessage broadcasting to the lifecycle manager | More reliable app‑message delivery |
| mobileapp #273 | bekriebel | Fix LAN dev‑connection leaking port 9000 on stop/reconnect | Reliable local app development |
| PR | Contributor | What changed | Benefit |
|---|---|---|---|
| PebbleOS #1455 | soxfox42 | Fix Timeline scrolling bugs | Smoother Timeline navigation |
| PebbleOS #875 | spr4bhu | Fix call‑duration timer showing on unanswered calls | Correct call UI |
| PebbleOS #1668 | OPerepadia | Preview alarm sounds when highlighted | Hear a tone before choosing it |
| PebbleOS #1435 | FouzR | Accel‑tap service showing a 5s progress bar | New tap‑gesture affordance for apps |
| PebbleOS #786 | rojas-claudio | New vibe triggers for hourly + disconnection alerts | More useful haptic notifications |
| mobileapp #214 | asyba | "No Vibration" option as a custom pattern | Silent‑but‑visible notifications |
| mobileapp #179 | cvuorinen | "Gentle" vibe option (app) | Subtler vibration choice |
| PebbleOS #1194 | cvuorinen | "Gentle" alarm vibration pattern (firmware) | Subtler alarm haptics |
| mobileapp #192 | aveao | Send "typical steps" to the watch | Richer step tracking |
| PebbleOS #1306 | aveao | Show current bin in typical‑step text | Clearer step context on watch |
| PebbleOS #1416 | FWeynschenk | Expose quick‑launch button + action to apps (SDK) | Apps can hook quick‑launch |
| PebbleOS #1534 | leifenberg-eyal | Expose alarm service to apps (SDK) | Apps can set alarms |
| PebbleOS #1560 | Coral-coder | Expose speaker playback limits to app SDK | Apps play audio within safe limits |
| PebbleOS #1452 | imax9000 | Make the SDK more C++‑friendly | Easier 3rd‑party app development |
| PebbleOS #1145 | krazer89 | Add Rebble emojis to the emoji font | More emoji render correctly |
| PebbleOS #1571 | leifenberg-eyal | GOTHIC_36 extended fonts for non‑Latin text | Larger‑font non‑Latin rendering |
| PebbleOS #1234 | AhmedTheGeek | Measure Arabic words using shaped widths | Correct Arabic layout/spacing |
| PebbleOS #1585 | kaluaim | Shape Arabic Lam‑Alef ligature | Correct Arabic ligatures |
| PebbleOS #1586 | kaluaim | Keep digit runs left‑to‑right when reversing RTL | Correct numbers in RTL text |
| PebbleOS #1587 | kaluaim | Align glyph baseline across base + extension fonts | Consistent text baseline |
| PebbleOS #1588 | kaluaim | Reorder bidi boundary spaces + measure Arabic ligatures | Correct bidirectional layout |
| PebbleOS #1622 | kaluaim | Treat Arabic diacritics as transparent for joining | Correct cursive joining |
| PebbleOS #1649 | kaluaim | Arabic pack: align extended‑font baseline, switch to Vazirmatn | Better Arabic font/rendering |
| PebbleOS #1118 | hellcp | Adjust watchfaces for Gabbro (new watch) | New hardware displays correctly |
| PebbleOS #1311 | aveao | Linearly ramp dynamic backlight intensity | Smoother auto‑backlight |
| PebbleOS #1325 | aveao | Show date below time on low‑power watchface | More info at a glance |
| PebbleOS #1303 | aveao | Scale SimpleDialog font on ≥200px displays | Readability on big‑screen watches |
| PebbleOS #1369 | aveao | Option to enlarge status‑bar font on notifications | Readability |
| PebbleOS #1308 | aveao | Draw clock with bold fonts by default | Clearer status‑bar clock |
| PebbleOS #1309 | aveao | Open Quick Launch setup on disabled‑button long‑press | Discoverable setup |
| PebbleOS #1450 | s00se | Quick‑launch shortcut to wipe notification history | One‑press clear |
| PebbleOS #1375 | s00se | Earlier version of the wipe‑notification‑history shortcut | Superseded by #1450 |
| PebbleOS #1319 | s00se | Turn quick‑launch backlight off immediately | Snappier feel / battery |
| PebbleOS #1617 | howeaj | Keep new quick‑launch shortcuts in "do not evict" cache | Shortcuts stay fast |
| PebbleOS #1350 | rojas-claudio | Invert back+up combo when display is flipped | Correct controls for flipped wear |
| mobileapp #173 | asyba | Quick‑launch up+down hold combo (app) | More shortcut gestures |
| PebbleOS #1214 | asyba | Quick‑launch up+down combo (firmware) | More shortcut gestures |
| PebbleOS #1307 | aveao | Drop HEALTH_HEIGHT_OFFSET causing wrong heights |
Fixes health‑card layout |
| mobileapp #143 | matejdro | Cancel PK2 send immediately on app close | Cleaner shutdown, fewer stuck sends |
| mobileapp #151 | asyba | Fix the iOS "Sign" button | Restores a broken iOS action |
| mobileapp #225 | jmsunseri | Convert ms timeouts to seconds in the UI | Correct/clear timeout values |
| mobileapp #191 | aveao | Allow disabling login buttons | Cleaner auth UX in some flows |
| mobileapp #153 | aveao | Group notification‑channel items with the title | Notification‑settings correctness |
| PebbleOS #1474 | jmsunseri | Extract day_picker as a reusable component |
Reuse/consistency for date pickers |
| PebbleOS #1624 | ikari-pl | Localize backlight & ambient‑sensor subtitles | Translated settings strings |
| PebbleOS #1374 | blu8 | Fix an Italian translation | Correct Italian string |
| PebbleOS #1165 | howeaj | Allow semver in package metadata (SDK) | Standard versioning for app packages |
| PebbleOS #1371 | aveao | Show actual scaling type under "Legacy Apps" | Clearer compatibility info |
| PR | Contributor | What changed | Benefit |
|---|---|---|---|
| PebbleOS #1497 | Mearman | Platform‑agnostic host tests + reproducible toolchain | More reliable CI/builds |
| PebbleOS #1481 | Mearman | Clear the BROKEN_TESTS quarantine list |
Test‑suite hygiene |
| PebbleOS #1479 | Mearman | Drop redundant duplicate emoji glyphs | Smaller font resources |
| PebbleOS #1072 | howeaj | SDK doc improvements + a missing log/function | Better developer docs |
| PebbleOS #981 | matthewwardrop | Nix flake: SVG conversion + Moddable build | Easier reproducible dev env |
| PebbleOS #1164 | jamsinclair | Docs: update action‑bar width per platform | Accurate SDK docs |
| PebbleOS #1157 | LostQuasar | Docs: fix readability in index.md | Docs polish |
| PebbleOS #1158 | LostQuasar | Add forum badge in place of Discord on README | Docs/community link |
| PebbleOS #1432 | ck-telecom | Remove a backslash from a test‑image filename | Cross‑platform test fix |
| PebbleOS #1305 | rojas-claudio | Vertically center the "Clear all" label | Cosmetic alignment |
| mobileapp #210 | aveao | Log resolved installer package at update check | Better update diagnostics |
| mobileapp #164 | aveao | Respect obfuscateContent toggle in PKJS console logs |
Privacy in dev logs |
| mobileapp #166 | asyba | Minor README update (iOS Health) | Docs |
These are still open. This is the queue we're working our way through and merging next (drafts are marked and still in progress).
| PR | Contributor | What it adds |
|---|---|---|
| #286 | puckipedia | Settings for Android NotificationListener hints |
| #283 | castawait | Clarify spoken‑language setting only affects cloud STT |
| #282 | castawait | Option to disable speech recognition |
| #280 | kaluaim | Arabic (ar_SA) language pack |
| #278 | sifounak | Resolve appstore deep links across sources |
| #268 | tim-becker | Native websockets for Android (draft) |
| #267 | 32bitx64bit | Blood oxygen (SpO2) support in the mobile app |
| #265 | nick1udwig | Day/night backlight color |
| #262 | tomaja18 | Initial Spanish translation |
| #261 | pluja | OpenAI‑compatible speech‑recognition provider |
| #260 | alonmln | Respect phone Do Not Disturb for incoming calls |
| #258 | kchinnasamy | Forward TimelinePin reminders to the timeline emulator |
| #248 | skylord123 | Android: trust user‑installed CA certs |
| #233 | SalvatoreT | libpebble3: make internal implementation classes internal |
| #232 | SalvatoreT | libpebble3: drop kable types from the public scan API |
| #231 | SalvatoreT | libpebble3: Compose‑free public API, extract Contacts, relocate fakes |
| #230 | SalvatoreT | libpebble3: pure‑Kotlin iOS location, drop LibPebbleSwift framework |
| #226 | jmsunseri | Fake‑watch setting and improved FakeLibPebble (testing) |
| #217 | nullstalgia | Music app prefs: disable launcher priority, configure vibe strength |
| #216 | asyba | Notify phone when the watch is fully charged |
| #209 | aveao | Android: tighten accepted mimetypes to application/octet‑stream |
| #206 | aveao | Skip Play in‑app update check for non‑Play installs (draft) |
| #201 | Fauxmage | Extended DataLogging API for 3rd‑party watch apps |
| #199 | asyba | iOS "find phone" |
| #197 | jwlarocque | File chooser in watch‑app settings (Android) |
| #194 | aveao | Send "typical sleep" to the watch |
| #193 | kchinnasamy | Calendar reminder vibration override |
| #172 | killdano | Notification subscription API for watchapps |
| #171 | killdano | Share‑intent target API for watchapps |
| #131 | jibraniqbal666 | Remote Rebble Timeline pins (draft) |
| PR | Contributor | What it adds |
|---|---|---|
| #1682 | Coral-coder | Reduce idle power draw (ALS, touch, stationary polling) |
| #1674 | ck-telecom | Contributing guide (draft) |
| #1670 | karthakon | HRV (heart‑rate variability) support for GH3X2X / obelix (draft) |
| #1666 | howeaj | Widen Gabbro action bar to match icon spacing |
| #1664 | aoshimak | Japanese message translation |
| #1662 | Coral-coder | tick_timer: minute granularity when no second‑subscribers (power) |
| #1661 | Coral-coder | regular_timer: arm for next callback vs ticking at 1 Hz (power) |
| #1660 | Coral-coder | Feed task‑liveness watchdog every 3 s instead of every second (power) |
| #1659 | Coral-coder | cron: one‑shot timer for next job vs 1 Hz polling (power) |
| #1658 | Coral-coder | clock: check DST + hourly chime once a minute (power) |
| #1641 | julpel8 | On‑device audio recording with playback + SDK API |
| #1631 | kaluaim | Mirror paired brackets when reversing RTL text |
| #1620 | ck-telecom | Obelix/Getafix program + flash memory map |
| #1619 | ck-telecom | Language documentation |
| #1607 | 32bitx64bit | Blood oxygen (SpO2) support (firmware) |
| #1598 | bekriebel | BLE heart‑rate monitor sharing for Pebble Time 2 |
| #1596 | nick1udwig | Day/night backlight color (firmware) |
| #1553 | gloriousCode | Show battery percent while charging |
| #1552 | Leask | CJK font fallback coverage |
| #1546 | ck-telecom | Add power‑management (pm) subsystem (draft) |
| #1524 | eldios | PIN lockscreen + a Security settings section |
| #1513 | lesserevil | Support concurrent BLE clients |
| #1511 | dbortz | LSM6DSO gyroscope driver |
| #1502 | deadbaed | Draw action bar left/right depending on orientation |
| #1500 | Mearman | Migrate remaining tests to freestanding compilation (draft) |
| #1499 | Mearman | Freestanding host‑test compilation (draft) |
| #1496 | Mearman | Container runners for host tests + firmware builds |
| #1495 | jmsunseri | Backlight blink and/or vibe on charge complete |
| #1493 | lesserevil | Share workout HRM over BLE |
| #1492 | lesserevil | Persistent HRM reconnect advertising |
| #1491 | lesserevil | NimBLE HRM (heart‑rate) BLE service |
| #1477 | phamson02 | Font fallback between base/extension on glyph miss |
| #1461 | ck-telecom | Developer doc for general development (draft) |
| #1447 | gloriousCode | Quick‑launch music actions |
| #1446 | ck-telecom | Hibernate mode for SF32LB |
| #1436 | jmsunseri | Quiet‑time improvements |
| #1431 | ck-telecom | Adjust GH3X2X FIFO watermark (HRM tuning) |
| #1413 | ck-telecom | i2c4 DMA support on SF32LB (draft) |
| #1410 | ck-telecom | DMA driver for SF32LB (draft) |
| #1326 | asyba | SDK music volume/sound (for iOS find‑phone and others) |
| #1174 | asyba | Add timeouts in more places (robustness) |
| #1156 | spr4bhu | Optional 80% charge limit to extend battery lifespan |
| #1119 | amcolash | System dark mode |
| #1068 | mkoperator | BMP390 barometer driver + pressure/altitude API |
Generated from the GitHub API via gh. Some prolific contributors (aveao, asyba, matejdro, kaluaim, Mearman) are community devs.
Congratulations, brother!