Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e528fa9
Add QMP6988 telemetry sensor type
mokjpn Apr 24, 2026
a588ab5
docs(Position): correct ground_speed unit to km/h (matches firmware)
Yeraze Jun 26, 2026
032b7df
Rename Seeed Tracker and add sensor (#967)
caveman99 Jun 30, 2026
0b7ab7f
Add LORA_OTA_APP portnum for firmware updates
caveman99 Jul 1, 2026
9cb134b
Merge pull request #969 from meshtastic/lora-ota
thebentern Jul 1, 2026
40ee668
Add is_unmessagable and is_licensed as fields for DeviceProfile exports
ianmcorvidae Jul 1, 2026
aa53c96
Merge pull request #971 from ianmcorvidae/deviceprofile-unmessagable-…
thebentern Jul 1, 2026
5ae1b2c
Set up a basic coderabbit yaml
ianmcorvidae Jul 2, 2026
e1c7453
Merge pull request #973 from ianmcorvidae/coderabbit
thebentern Jul 2, 2026
f68e94f
Add Heltec RC series boards
Quency-D Jul 3, 2026
93b6436
Merge pull request #974 from Quency-D/heltec-rc-boards
thebentern Jul 3, 2026
678281c
Fix formatting in portnums.proto (#976)
jp-bennett Jul 6, 2026
9da731f
ci: make KMP snapshot versions sort by recency
jamesarich Jul 6, 2026
993ae85
docs: sync snapshot-versioning docs to git-describe --long scheme
jamesarich Jul 6, 2026
d77b460
Merge pull request #977 from meshtastic/fix/sortable-snapshot-versions
thebentern Jul 6, 2026
ecf2ed4
ci: separate snapshot count with a dot so it outranks legacy SHA snap…
jamesarich Jul 6, 2026
f55e85a
Merge pull request #978 from meshtastic/fix/snapshot-count-after-dot
thebentern Jul 6, 2026
1ae3be3
Merge pull request #979 from meshtastic/develop
thebentern Jul 7, 2026
a505634
Add MEDIUM_TURBO modem preset
thebentern Jul 11, 2026
9d589c1
Merge pull request #984 from meshtastic/add-medium-turbo-preset
thebentern Jul 11, 2026
da2fc41
Indicator (#721)
caveman99 Jul 13, 2026
821d89b
interdevice: SD card mount, eject and format commands (#986)
caveman99 Jul 15, 2026
223e20e
feat: add packet signature policy schema
RCGV1 Jul 9, 2026
5f16928
Deprecate EU_868 region code
sashko Jul 15, 2026
7b46dfb
Add HM330X sensor
oscgonfer Jul 16, 2026
baf93e5
Merge pull request #988 from oscgonfer/feat/add-hm3301
thebentern Jul 16, 2026
f5b94bc
Merge pull request #987 from sashko/master
thebentern Jul 16, 2026
f1c8403
Update plugin com.squareup.wire to v6.4.5
renovate[bot] Jul 17, 2026
39a6670
feat: add FAB firmware edition
thebentern Jul 18, 2026
5ba1936
Merge pull request #995 from meshtastic/feat/fab26-firmware-edition
thebentern Jul 18, 2026
8f9aa65
Update plugin org.jetbrains.kotlin.multiplatform to v2.4.10
renovate[bot] Jul 18, 2026
7d8373b
Update bufbuild/buf-action action to v1.4.0
renovate[bot] Jul 18, 2026
d02a963
Merge pull request #996 from meshtastic/renovate/kotlin-monorepo
thebentern Jul 19, 2026
9d54463
Merge pull request #997 from meshtastic/renovate/bufbuild-buf-action-1.x
thebentern Jul 19, 2026
bdfd7fc
Update dependency bufbuild/buf to v1.72.0
renovate[bot] Jul 19, 2026
e1455d3
Merge pull request #999 from meshtastic/renovate/bufbuild-buf-1.x
thebentern Jul 19, 2026
409c03b
Merge pull request #993 from meshtastic/renovate/com.squareup.wire-6.x
thebentern Jul 19, 2026
b6ad0e5
Merge pull request #983 from RCGV1/feat/packet-signature-policy
thebentern Jul 19, 2026
84fcb58
Update Gradle to v9.6.1 (#1001)
renovate[bot] Jul 19, 2026
63f15a7
Update dependency com.squareup.wire:wire-runtime to v6.4.5 (#992)
renovate[bot] Jul 19, 2026
3703b06
Update plugin com.android.kotlin.multiplatform.library to v9.3.0 (#1002)
renovate[bot] Jul 19, 2026
164b6e2
Update plugin com.vanniktech.maven.publish to v0.37.0 (#1003)
renovate[bot] Jul 19, 2026
ec5bad2
Update softprops/action-gh-release action to v3 (#1011)
renovate[bot] Jul 19, 2026
0ed6f2c
Update gradle/actions action to v6 (#1010)
renovate[bot] Jul 19, 2026
c1f14c4
Update GitHub Artifact Actions (major) (#1009)
renovate[bot] Jul 19, 2026
f482e35
Update dependency typescript to v7 (#1008)
renovate[bot] Jul 19, 2026
52a265c
Update android-actions/setup-android action to v4 (#1007)
renovate[bot] Jul 19, 2026
4c30ebd
Update actions/checkout action to v7 (#1004)
renovate[bot] Jul 19, 2026
1cd820c
Update actions/setup-java action to v5 (#1005)
renovate[bot] Jul 19, 2026
b73e5ad
Update actions/setup-node action to v7 (#1006)
renovate[bot] Jul 19, 2026
0d983b8
ci: auto-publish every package when a release tag is cut
jamesarich Jul 21, 2026
e03a36c
ci: address CodeRabbit review on the auto-publish wiring
jamesarich Jul 21, 2026
2e977cf
docs: fix broken CI badge in README
jamesarich Jul 21, 2026
06f6265
ci(kmp): add remote HTTP build cache and Konan toolchain caching
jamesarich Jul 21, 2026
f92ce54
ci: harden shared build cache (TLS-only, trusted-event pushes)
jamesarich Jul 21, 2026
642aae4
Merge pull request #1016 from meshtastic/ci/kmp-build-cache
thebentern Jul 22, 2026
6dcac92
Merge pull request #1015 from meshtastic/ci/fix-kmp-release-trigger-a…
thebentern Jul 22, 2026
bfd718f
Merge pull request #1014 from meshtastic/ci/auto-publish-on-tag
thebentern Jul 22, 2026
3fec03b
Add explicit presence for RSSI: MeshPacket.rx_rssi optional, NodeInfo…
NomDeTom Jul 28, 2026
94cdec4
remove rssi & improve notes
NomDeTom Jul 28, 2026
26db1b5
Merge pull request #1024 from NomDeTom/rssi-explicit-presence
thebentern Jul 28, 2026
cd290ba
Add explicit presence for arrival time: MeshPacket.rx_time optional
NomDeTom Jul 28, 2026
6ceceae
Merge pull request #1025 from NomDeTom/arrival-time-fix-perhaps
thebentern Jul 29, 2026
6f21d0c
Move ADC values to env telemetry (#877)
oscgonfer Aug 11, 2026
f3c374d
Add SEN6X fields (#1031)
oscgonfer Aug 11, 2026
b9a02d9
Trim unused DrawnShape.vertices
caveman99 Aug 11, 2026
84bfb0f
Merge pull request #1033 from meshtastic/caveman99-patch-1
thebentern Aug 11, 2026
c9cb9ef
Add AS3935 lightning sensor telemetry fields (#981)
ndoo Aug 17, 2026
49d0bc9
Add new firmware editions for Dragon Con and CCC events
vidplace7 Aug 18, 2026
5b3ed39
Merge pull request #1037 from meshtastic/new-events
thebentern Aug 18, 2026
86e5a30
Add SEEED_WIO_TRACKER_L1_PRO_1W
caveman99 Aug 18, 2026
aca181b
Merge pull request #1038 from meshtastic/l1-1w
thebentern Aug 18, 2026
ef0ae57
Merge pull request #963 from Yeraze/fix/ground-speed-unit-doc
thebentern Aug 19, 2026
b138a28
Add MESHNOLOGY_W12 hardware model
thebentern Aug 21, 2026
e701e5d
Merge pull request #1042 from meshtastic/hw-model/meshnology-w12
thebentern Aug 21, 2026
6220d6c
Add MESHPAGER_X2 hardware model
Aug 21, 2026
1b4cb00
Merge pull request #1043 from meshtastic/hw-model/meshpager-x2
thebentern Aug 21, 2026
40c405b
Remove unused beacon broadcast_send_as_node field
thebentern Aug 28, 2026
4ac5e0f
Consolidate beacon TX destinations onto broadcast_targets
thebentern Aug 28, 2026
d6627a5
Merge pull request #1047 from meshtastic/remove-beacon-send-as-node
thebentern Aug 28, 2026
7b2464c
Merge pull request #1048 from meshtastic/consolidate-beacon-broadcast…
thebentern Aug 28, 2026
d904788
Merge upstream protobufs with QMP6988
mokjpn Aug 31, 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
15 changes: 15 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
language: en-US
reviews:
profile: chill
high_level_summary: true
poem: false
auto_review:
enabled: true
drafts: false
skip_author:
- renovate
- renovate[bot]
abort_on_close: true

path_filters:
- "!/packages/**"
49 changes: 35 additions & 14 deletions .github/workflows/create_tag.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Create tag

# Least privilege: default read-only, each job grants only what it needs.
permissions:
contents: write
contents: read

on:
workflow_dispatch:
Expand All @@ -18,10 +19,14 @@ on:
jobs:
increment_version:
runs-on: ubuntu-latest
permissions:
contents: write # create the release + tag
outputs:
new_version: ${{ steps.version.outputs.NEW_VERSION }}

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0
- id: version
Expand Down Expand Up @@ -57,16 +62,32 @@ jobs:
generateReleaseNotes: true
token: ${{ github.token }}

- name: Setup Buf
uses: bufbuild/buf-action@v1.2.0
with:
version: 1.71.0 # renovate: datasource=github-releases depName=bufbuild/buf
github_token: ${{ github.token }}
token: ${{ secrets.BUF_TOKEN }}
setup_only: true
# The Buf schema-registry push previously lived here. It now runs in
# publish.yml's push-buf-registry job (invoked below), so keeping it
# here too would push the same tag to Buf twice per release.

- name: Push to schema registry
env:
BUF_TOKEN: ${{ secrets.BUF_TOKEN }}
run: |
buf push --tag ${{ steps.version.outputs.NEW_VERSION }}
# The tag above is created with GITHUB_TOKEN, which by design does NOT fire
# the `push: tags` trigger on the publish workflows (GitHub's recursion
# guard). Before this, publishing depended on someone manually dispatching
# each publish workflow — and when that was missed, an artifact silently
# lagged its tag (org.meshtastic:protobufs sat at 2.7.25 while v2.7.26 was
# tagged). Invoke the publishers directly instead so every tag publishes
# every package. publish.yml also owns the Buf schema-registry push.
publish-npm:
needs: increment_version
permissions:
contents: write # create-release + upload assets
id-token: write # JSR OIDC / npm provenance
uses: ./.github/workflows/publish.yml
with:
version: ${{ needs.increment_version.outputs.new_version }}
secrets: inherit

publish-kmp:
needs: increment_version
permissions:
contents: read
uses: ./.github/workflows/publish-kmp.yml
with:
version: ${{ needs.increment_version.outputs.new_version }}
secrets: inherit
21 changes: 17 additions & 4 deletions .github/workflows/kmp-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,37 @@ on:
permissions:
contents: read

env:
GRADLE_CACHE_URL: ${{ secrets.GRADLE_CACHE_URL }}
GRADLE_CACHE_USERNAME: ${{ secrets.GRADLE_CACHE_USERNAME }}
GRADLE_CACHE_PASSWORD: ${{ secrets.GRADLE_CACHE_PASSWORD }}

jobs:
build-kmp:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "21"

- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@v4

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6

- name: Cache Konan (Kotlin/Native toolchain)
uses: actions/cache@v6
with:
path: ~/.konan
key: konan-${{ runner.os }}-${{ hashFiles('packages/kmp/build.gradle.kts', 'packages/kmp/gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
konan-${{ runner.os }}-

- name: Build KMP package
run: packages/kmp/gradlew --no-daemon -p packages/kmp build -PVERSION_NAME=0.0.0-pr
51 changes: 43 additions & 8 deletions .github/workflows/publish-kmp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,29 @@ on:
required: false
type: boolean
default: false
# Called by create_tag.yml right after a release tag is cut. Tags created
# with GITHUB_TOKEN do not fire the `push: tags` trigger above (GitHub's
# recursion guard), so the release flow invokes this workflow directly.
workflow_call:
inputs:
version:
description: "Version to publish (e.g. v1.2.3)."
required: true
type: string
dry_run:
description: "Dry run mode - build and publish to Maven Local only"
required: false
type: boolean
default: false

permissions:
contents: read

env:
GRADLE_CACHE_URL: ${{ secrets.GRADLE_CACHE_URL }}
GRADLE_CACHE_USERNAME: ${{ secrets.GRADLE_CACHE_USERNAME }}
GRADLE_CACHE_PASSWORD: ${{ secrets.GRADLE_CACHE_PASSWORD }}

jobs:
build-kmp:
runs-on: macos-latest
Expand All @@ -27,7 +46,7 @@ jobs:
tag: ${{ steps.version.outputs.TAG }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0

Expand All @@ -48,16 +67,24 @@ jobs:
echo "TAG=$TAG" >> "$GITHUB_OUTPUT"

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "21"

- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@v4

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6

- name: Cache Konan (Kotlin/Native toolchain)
uses: actions/cache@v6
with:
path: ~/.konan
key: konan-${{ runner.os }}-${{ hashFiles('packages/kmp/build.gradle.kts', 'packages/kmp/gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
konan-${{ runner.os }}-

- name: Build KMP package
run: packages/kmp/gradlew --no-daemon -p packages/kmp clean build -PVERSION_NAME=${{ steps.version.outputs.VERSION }}
Expand All @@ -71,21 +98,29 @@ jobs:
if: ${{ !inputs.dry_run }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: "21"

- name: Setup Android SDK
uses: android-actions/setup-android@v3
uses: android-actions/setup-android@v4

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6

- name: Cache Konan (Kotlin/Native toolchain)
uses: actions/cache@v6
with:
path: ~/.konan
key: konan-${{ runner.os }}-${{ hashFiles('packages/kmp/build.gradle.kts', 'packages/kmp/gradle/wrapper/gradle-wrapper.properties') }}
restore-keys: |
konan-${{ runner.os }}-

- name: Publish to Maven Central
env:
Expand Down
46 changes: 30 additions & 16 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@ on:
required: false
type: boolean
default: false
# Called by create_tag.yml right after a release tag is cut. Tags created
# with GITHUB_TOKEN do not fire the `push: tags` trigger above (GitHub's
# recursion guard), so the release flow invokes this workflow directly.
workflow_call:
inputs:
version:
description: "Version to publish (e.g. v1.2.3)."
required: true
type: string
dry_run:
description: "Dry run mode - generate artifacts without publishing"
required: false
type: boolean
default: false

permissions:
contents: write
Expand All @@ -28,7 +42,7 @@ jobs:
tag: ${{ steps.version.outputs.TAG }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
fetch-depth: 0

Expand Down Expand Up @@ -88,7 +102,7 @@ jobs:
run: cp LICENSE README.md packages/ts/

- name: Upload TypeScript code
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: ts_code
path: packages/ts
Expand All @@ -98,7 +112,7 @@ jobs:
needs: codegen
steps:
- name: Download TypeScript code
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: ts_code

Expand All @@ -111,7 +125,7 @@ jobs:
echo "=== lib/ contents ==="
ls -la lib/ || echo "lib folder not found"
- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "24"

Expand All @@ -127,7 +141,7 @@ jobs:
ls -la
ls -la dist/
- name: Upload built NPM package
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: npm_package
path: |
Expand All @@ -136,7 +150,7 @@ jobs:
LICENSE
README.md
- name: Upload JSR package
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: jsr_package
path: |
Expand All @@ -150,13 +164,13 @@ jobs:
needs: [codegen, build-typescript]
steps:
- name: Download NPM package
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: npm_package
path: npm_package

- name: Download JSR package
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: jsr_package
path: jsr_package
Expand All @@ -166,7 +180,7 @@ jobs:
cd npm_package && zip -r ../meshtastic-protobufs-npm.zip . && cd ..
cd jsr_package && zip -r ../meshtastic-protobufs-jsr.zip . && cd ..
- name: Upload release zips
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: release_zips
path: |
Expand All @@ -178,12 +192,12 @@ jobs:
if: ${{ !inputs.dry_run }}
steps:
- name: Download release zips
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: release_zips

- name: Upload assets to GitHub release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.codegen.outputs.tag }}
files: |
Expand All @@ -195,7 +209,7 @@ jobs:
if: ${{ !inputs.dry_run }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Setup Buf
uses: bufbuild/buf-setup-action@v1.50.0
Expand All @@ -213,12 +227,12 @@ jobs:
if: ${{ !inputs.dry_run }}
steps:
- name: Download NPM package
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: npm_package

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "24"
registry-url: "https://registry.npmjs.org"
Expand All @@ -237,12 +251,12 @@ jobs:
id-token: write
steps:
- name: Download JSR package
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: jsr_package

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "24"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Buf PR Checks
uses: bufbuild/buf-action@v1.2.0
uses: bufbuild/buf-action@v1.4.0
with:
version: 1.71.0 # renovate: datasource=github-releases depName=bufbuild/buf
version: 1.72.0 # renovate: datasource=github-releases depName=bufbuild/buf
github_token: ${{ github.token }}
token: ${{ secrets.BUF_TOKEN }}
format: true
Expand Down
Loading