Update MeshCore base to v1.16.0; add sig/air/coin; ship 139 boards

- Bump vendor/MeshCore pin 910b1bee -> bbb58cce (upstream v1.16.0,
  272 commits) and rebase the 14-patch bot queue onto it; one trivial
  conflict in the MyMesh constructor.
- New patch 15: sig/air/coin commands plus registry-derived help and
  cmd listings ('cmd diag' for the diagnostic set). BOT_PREFS_VERSION
  bumped to 7. Host tests cover the new commands and assert every
  discoverable registry entry appears in a listing.
- Re-include six boards fixed upstream (Pico W, RAK 11310, Waveshare
  RP2040 LoRa, Xiao RP2040, Nibble USB+BLE) after local test builds;
  remaining exclusions are BLE flash-size only.
- Fix release env enumeration to strip CR line endings so envs in CRLF
  variant files (Minewsemi ME25LS01, Wio WM1110, Nibble) are counted
  and built; verified all three build locally.
- Refresh README/CHANGELOG/RELEASE/CONTRIBUTING for the new base and
  command set.

Verified: host tests, safety checks, 4 representative builds, and 9
additional env builds all pass; the 15-patch queue applies cleanly to
pristine bbb58cce.
This commit is contained in:
cj-vana
2026-07-10 15:34:07 -06:00
parent f0747eba26
commit 74dcf979a9
22 changed files with 585 additions and 216 deletions

View File

@@ -23,19 +23,18 @@ The submodule is a real git repo. Iterate inside it like normal:
2. **Apply patches** with `bash scripts/apply-patches.sh`. This commits the
patch queue on top of `origin/main` in the submodule, leaving you with
a clean tree pinned to a known state.
3. **Make changes inside `vendor/MeshCore/`** — edit files, run
`pio run -e <env>` to compile, commit your changes in the submodule
with descriptive messages.
3. **Edit inside `vendor/MeshCore/`.** Compile with `pio run -e <env>`
and commit your changes in the submodule with descriptive messages.
4. **Re-export the patch queue** with
`bash scripts/export-patches.sh origin/main`. This deletes
`patches/meshcore/*.patch` and regenerates it from the submodule
commits since `origin/main`. Each patch corresponds to one submodule
commit, so keep commits small and focused.
5. **Run host tests** (`python3 tests/firmware_bot/run_tests.py`) — fast,
5. **Run host tests** (`python3 tests/firmware_bot/run_tests.py`). Fast,
no hardware needed.
6. **Run safety checks** (`bash scripts/check-bot-safety.sh`) — verifies
the firmware doesn't expose private keys, network bridges, or other
debug-only features in release builds.
6. **Run safety checks** (`bash scripts/check-bot-safety.sh`), which
verify the firmware doesn't expose private keys, network bridges, or
other debug-only features in release builds.
7. **(Optional) Build representative envs** with
`bash scripts/build-representative.sh --baseline` to confirm the
binaries still link and to inspect size impact in `out/size/summary.json`.
@@ -44,14 +43,13 @@ The submodule is a real git repo. Iterate inside it like normal:
## What goes where
- **Firmware/library code that MUST live inside MeshCore** for PlatformIO
builds develop inside `vendor/MeshCore/`, export as a patch.
- **Test code (host-side C++ tests)** — `tests/firmware_bot/` at the
wrapper level. They `#include` MeshCore headers via the script's `-I`
flag.
- **Tooling, build scripts, CI** — `scripts/` and `.github/` at the
- Firmware and library code that must live inside MeshCore for PlatformIO
builds is developed inside `vendor/MeshCore/` and exported as a patch.
- Host-side C++ tests live in `tests/firmware_bot/` at the wrapper level.
They `#include` MeshCore headers via the script's `-I` flag.
- Tooling, build scripts, and CI live in `scripts/` and `.github/` at the
wrapper level.
- **Colorado-specific docs, fixtures, board notes** — `colorado/`.
- Colorado-specific docs, fixtures, and board notes live in `colorado/`.
## Patch hygiene
@@ -76,7 +74,8 @@ PRs run `.github/workflows/firmware-build.yml`, which:
3. Uploads firmware + size reports as workflow artifacts.
Releases run `.github/workflows/release.yml` on `cmesh-bot-v*` tags and
build all 133 companion USB+BLE environments — see [RELEASE.md](RELEASE.md).
build every non-excluded companion USB+BLE environment (139 at the current
pin); see [RELEASE.md](RELEASE.md).
## Pull request expectations