Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
315ec0e
DMShell: an on-board test client for the remote shell (#12111)
jp-bennett Oct 9, 2026
e5998ed
Bound RadioLib's BUSY wait to 50 ms (#12105)
jp-bennett Oct 9, 2026
e09cec6
Update pioarduino to v3.3.12-1 (#12052)
vidplace7 Oct 9, 2026
40a0178
fix(nodedb): keep deferred node saves pending instead of dropping the…
starlessoblivion Oct 9, 2026
8c97a11
Read received LoRa frames out from a FreeRTOS task (#11983)
jp-bennett Oct 9, 2026
9084439
test(nodedb): drive the deferred node save from a real peer (#12114)
starlessoblivion Oct 10, 2026
dbc7dae
feat(portduino): Adafruit Arcade Bonnet input driver (#12116)
jp-bennett Oct 10, 2026
e650149
Radio: run the main loop's missed-IRQ poll as one radio sequence
jp-bennett Oct 10, 2026
1a1eee6
Radio: read the airtime's chip state inside a radio sequence
jp-bennett Oct 10, 2026
48d8125
LR20x0: empty the RX FIFO when a frame is dropped unread
jp-bennett Oct 10, 2026
bd95150
Select InkHUD font code page with the OLED_* language flags (#11869)
caveman99 Oct 11, 2026
9015b22
Update portduino to gnu++20 (#12069)
vidplace7 Oct 11, 2026
373bff3
Actions: Update/pin to Ubuntu 26.04 (#11941)
vidplace7 Oct 11, 2026
b7513f4
fix: ESP32 light sleep crash due to DIO1 ISR storm (#12131)
mverch67 Oct 12, 2026
e75d85f
Drain pending notifications before standby on RF95 too (#12135)
jp-bennett Oct 12, 2026
8e4ccb0
Increase timeout for dput publish steps to 45 minutes (#12140)
vidplace7 Oct 12, 2026
b6c693e
Create the radio sequence lock before any sequence can start (#12134)
jp-bennett Oct 12, 2026
1e3a38f
Add native Portduino mDNS discovery with Avahi and Bonjour (#12032)
jake-b Oct 12, 2026
6e447f5
Don't light sleep while a USB host has the console open (#12141)
jp-bennett Oct 12, 2026
2e69aec
nRF52: Update gcc to v12.3.1 (same as nRF54) (#12027)
vidplace7 Oct 12, 2026
2148c62
Fix native discovery recovery, retry backoff, and worker logging (#12…
jake-b Oct 12, 2026
b48e1e0
Update RAKwireless RAK12034 library git ref (#12147)
vidplace7 Oct 13, 2026
d5638e6
Fix rak_wismeshtap build: replace non-standard uint with int (#12152)
vidplace7 Oct 13, 2026
c7df2e8
fix(traffic): round the default position dedup window to 6h, derive t…
garthvh Oct 13, 2026
aa40522
Disarm the PMU_IRQ light-sleep wake after the sleep (#12143)
jp-bennett Oct 13, 2026
04cb888
Wio Tracker L2 fixes (#12133)
mverch67 Oct 13, 2026
f7f66b4
Initial Elecrow ThinkNode M5 InkHUD port (#12097)
tornadus Oct 14, 2026
afdaccc
Makerfabs nomad terminal (#12112)
caveman99 Oct 14, 2026
0af1396
Let a configured ls_secs survive the phone API round trip (#12145)
jp-bennett Oct 14, 2026
a2984a5
ThinkNode M8: make button E the cancel button (#12150)
jp-bennett Oct 14, 2026
1c366c2
Radio: end a CAD handoff whose RX hits a damaged header (#12144)
jp-bennett Oct 14, 2026
660680c
Prepare the LoRa wake pin on every ESP32 variant, not just ESP32/S2/S…
jp-bennett Oct 14, 2026
2d61ca6
Latch the LoRa IRQ skip-sleep give-up until the line is seen low (#12…
jp-bennett Oct 14, 2026
bda9f8c
Add configurable USB console light sleep veto for ESP32 (#12160)
jp-bennett Oct 14, 2026
ed072eb
ThinkNode M8: switch the GPS to the AG3352Q (#12151)
jp-bennett Oct 15, 2026
e9c0465
LoRa: size the preamble hold for the worst-case frame, and let the CA…
jp-bennett Oct 15, 2026
dc99992
Don't let a stale RX flag re-arm RX over a live frame (#12153)
jp-bennett Oct 15, 2026
4964a0c
feat(raksensorhub): SensorHub uplink for WisMesh Hub (RAK2560) (#11817)
Ethan-chen1234-zy Oct 15, 2026
7579bfe
InkHUD: Feature/sdcard eink maps (#12118)
techtruth Oct 15, 2026
a2a27f4
Track meshtastic/Crypto with git-refs on rp2040/rp2350 and bump to 9c…
cvaldess Oct 15, 2026
57467f0
Fix Store & Forward first-enable crash (#12168)
ftc2 Oct 16, 2026
38ae9aa
Renovate: Fix lookup errors / tag formatting (#12176)
vidplace7 Oct 16, 2026
6d03617
Use github zip for ZinggJM/GFX_Root (#12174)
vidplace7 Oct 16, 2026
200aa42
Stop treating BATTERY_PIN -1 as a battery ADC (#12091)
jamesarich Oct 16, 2026
c4b08e8
CI: build no firmware in the merge queue; trim repeated CI work (#12162)
jp-bennett Oct 17, 2026
b33c337
feat(variants): add RAK WisMesh Dongle (USB Type-C) (#12009)
Ethan-chen1234-zy Oct 17, 2026
fad52bb
CI: let a running push run finish instead of cancelling it (#12182)
jp-bennett Oct 17, 2026
a12618f
fix esp32 shutdown: RTCIO number error and button pullup behavior (#1…
mverch67 Oct 18, 2026
6770269
SX126x: follow RadioLib's silent XTAL fallback and log the chip's sta…
NomDeTom Oct 18, 2026
9c119da
AG3352 GPS update for ThinkNode M5 (#12113)
mverch67 Oct 18, 2026
72edb49
Key verification: create the responder's NodeDB entry on commit (#12194)
jp-bennett Oct 18, 2026
31bcb2a
Fix RF95 optional pins and CannedMessage initialization (#11913)
uyseali Oct 18, 2026
8ebb698
fix(gps): match Airoha idle_int sleep to the documented sequence (#12…
jp-bennett Oct 19, 2026
97bf6e4
fix(motion): include NodeDB.h so MotionSensor always sees the global …
obabin Oct 19, 2026
20dc8e3
Key verification: refuse in licensed (ham) mode (#12201)
jp-bennett Oct 19, 2026
e069a8d
LR2021: time received frames on the configured coding rate (#12183)
jp-bennett Oct 20, 2026
329b7ea
Fail the native simulator job on a sanitizer fault, and fix the one i…
jp-bennett Oct 20, 2026
2cf97c1
Pin membrowse-action to a SHA to unbreak CI (#12209)
jp-bennett Oct 20, 2026
1dff54c
Actions: pin python to 3.14 where platformio is used (#12210)
vidplace7 Oct 20, 2026
a10c96f
T-Beam 1W: support the LR1121 and LR2021 radio modules (#12204)
jp-bennett Oct 20, 2026
7c30267
Update protobufs (#12214)
github-actions[bot] Oct 21, 2026
7fcbbe1
Add the Nodara nRF52840 board (#12211)
jp-bennett Oct 21, 2026
34cb8d5
Rework XEdDSA signing policy: Compatible stops signing, AES-CCM overr…
jp-bennett Oct 22, 2026
0d3da2d
Upgrade trunk (#12080)
github-actions[bot] Oct 22, 2026
e039e34
Reset into BLE OTA DFU instead of jumping from the DFU callback (#12220)
jamesarich Oct 23, 2026
95ff510
feat(beacon): per-target and offered frequency slots (#12126)
caveman99 Oct 24, 2026
1c456e4
Merge upstream develop (95ff510) into no-auto-writes
claude Oct 25, 2026
e9e588b
Format files touched by the upstream merge (trunk fmt)
claude Oct 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
libssl-dev \
libulfius-dev \
libyaml-cpp-dev \
libavahi-client-dev \
libjsoncpp-dev \
pipx \
pkg-config \
Expand Down
3 changes: 3 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ self-hosted-runner:
labels:
- arctastic
- test-runner
# GitHub-Hosted runners:
- ubuntu-26.04
- ubuntu-26.04-arm
2 changes: 1 addition & 1 deletion .github/actions/setup-base/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: 3.x
python-version: "3.14"
cache: pip
cache-dependency-path: |
.github/actions/**
Expand Down
5 changes: 3 additions & 2 deletions .github/actions/setup-native-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ runs:
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: 3.x
python-version: "3.14"
cache: pip
cache-dependency-path: |
.github/actions/**
Expand All @@ -25,7 +25,8 @@ runs:
sudo apt-get -y update --fix-missing
sudo apt-get install -y ccache lcov \
libbluetooth-dev libsdbus-c++-dev libgpiod-dev libyaml-cpp-dev libjsoncpp-dev openssl libssl-dev \
libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev libuv1-dev libcurl4-gnutls-dev
libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev libuv1-dev \
libcurl4-gnutls-dev libavahi-client-dev

- name: Install PlatformIO
shell: bash
Expand Down
7 changes: 5 additions & 2 deletions .github/actions/setup-native/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@ runs:

- name: Install libs needed for native build
shell: bash
run: |
sudo apt-get install -y libbluetooth-dev libsdbus-c++-dev libgpiod-dev libyaml-cpp-dev libjsoncpp-dev openssl libssl-dev libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev libuv1-dev libcurl4-gnutls-dev libnotify-dev
run: >
sudo apt-get install -y
libbluetooth-dev libsdbus-c++-dev libgpiod-dev libyaml-cpp-dev libjsoncpp-dev openssl libssl-dev
libulfius-dev liborcania-dev libusb-1.0-0-dev libi2c-dev libuv1-dev
libcurl4-gnutls-dev libnotify-dev libavahi-client-dev
6 changes: 3 additions & 3 deletions .github/workflows/build_debian_src.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permissions:

jobs:
build-debian-src:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
# Only pushes to the default branch (develop) populate the cache; PR / merge_group runs
# restore it but never save, so they stop filling up the repo's Actions cache storage.
env:
Expand All @@ -39,9 +39,9 @@ jobs:
# Build-tools (notably platformio) come from the Meshtastic project
# on the OpenSUSE Build Service:
# https://build.opensuse.org/project/show/network:Meshtastic:build-tools
echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/build-tools/xUbuntu_24.04/ /' \
echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/build-tools/xUbuntu_26.04/ /' \
| sudo tee /etc/apt/sources.list.d/network:Meshtastic:build-tools.list
curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:build-tools/xUbuntu_24.04/Release.key \
curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:build-tools/xUbuntu_26.04/Release.key \
| gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_build-tools.gpg >/dev/null
sudo apt-get update -y --fix-missing
sudo apt-get install -y build-essential devscripts equivs
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/build_one_target.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ jobs:
matrix:
arch:
- all
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: 3.x
python-version: "3.14"
cache: pip
- run: pip install -U platformio
- name: Generate matrix
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:

version:
if: ${{ inputs.target != '' }}
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- uses: actions/checkout@v7
- name: Get release version string
Expand All @@ -103,7 +103,7 @@ jobs:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
needs: [version, build]
steps:
- name: Checkout code
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_portduino_wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions: {}
jobs:
build-wasm:
name: Build PortDuino WASM
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
# Only pushes to the default branch (develop) populate the cache; PR / merge_group runs
# restore it but never save, so they stop filling up the repo's Actions cache storage.
env:
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/docker_manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
with:
distro: debian
platform: linux/amd64
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
push: true
secrets: inherit

Expand All @@ -30,7 +30,7 @@ jobs:
with:
distro: debian
platform: linux/arm64
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -39,7 +39,7 @@ jobs:
with:
distro: debian
platform: linux/arm/v7
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -48,7 +48,7 @@ jobs:
with:
distro: debian
platform: linux/riscv64
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -57,7 +57,7 @@ jobs:
with:
distro: alpine
platform: linux/amd64
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
push: true
secrets: inherit

Expand All @@ -66,7 +66,7 @@ jobs:
with:
distro: alpine
platform: linux/arm64
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -75,7 +75,7 @@ jobs:
with:
distro: alpine
platform: linux/arm/v7
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -84,7 +84,7 @@ jobs:
with:
distro: alpine
platform: linux/riscv64
runs-on: ubuntu-24.04-arm
runs-on: ubuntu-26.04-arm
push: true
secrets: inherit

Expand All @@ -100,7 +100,7 @@ jobs:
- docker-alpine-arm64
- docker-alpine-armv7
- docker-alpine-riscv64
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Checkout code
uses: actions/checkout@v7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/firmware-size-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
github.event.workflow_run.conclusion != 'cancelled' &&
github.repository == 'meshtastic/firmware'
continue-on-error: true
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: Download size report
id: download
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/first_time_contributor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions: {}

jobs:
welcome:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
permissions:
issues: write # Required to post comments and labels on issues
pull-requests: write # Required to post comments and labels on PRs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/flasher-link-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
github.event.workflow_run.conclusion != 'cancelled' &&
github.repository == 'meshtastic/firmware'
continue-on-error: true
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
# Per-board manifests carry the firmware's own metadata (activelySupported,
# displayName, ...) generated from each target's custom_meshtastic_* config.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/flasher-link-placeholder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
post-placeholder:
if: github.repository == 'meshtastic/firmware'
continue-on-error: true
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
steps:
- name: Post web flasher build-in-progress placeholder
uses: actions/github-script@v9
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hook_copr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:

jobs:
build-copr-hook:
runs-on: ubuntu-24.04
runs-on: ubuntu-26.04
steps:
- name: Checkout code
uses: actions/checkout@v7
Expand Down
Loading