Skip to content

Crosswire crosswire-v0.15.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 23:43
· 350 commits to firmware-base since this release

Observer MQTT connectivity -- hardware-validated against three brokers
(CoreScope / W8OOF tcp-anon, eastme.sh wss/jwt, LetsMesh-US wss/jwt).

Added

  • Owner broker registry: seed the default 6-slot broker set with an iata=HAO
    default; per-broker GTS Root R4 + ISRG Root X2 CA certificates added and
    mapped, registry cert-names corrected. (#48)
  • Per-broker JWT identity claims jwt_owner / jwt_email
    (set mqtt.broker.<N>.jwt_owner|jwt_email), surfaced in mqtt status. (#63)
  • Multi-frame mqtt status over the BLE _sys channel: the per-slot broker
    table spans multiple frames instead of truncating. (#48)

Fixed

  • BLE _sys command channel no longer hangs when set mqtt.broker.* runs. The
    blocking esp_mqtt lifecycle ops (connect / destroy) moved off loopTask to a
    dedicated mqtt_worker task with a per-broker lock and a per-slot reconcile
    flag. (#53)
  • wss/JWT broker authentication: send the MQTT CONNECT username
    v1_<UPPERCASE pubkey> (was a null username) so eastme.sh / LetsMesh accept
    the connection -- the broker verifies the token's publicKey claim against it
    and rejects a null username (CONNACK rc=5) even with an otherwise-valid token.
    (#68)

What's Changed

  • fix(#27): pio-flash firmware_dir -> repo root + --firmware-dir override by @Strycher in #28
  • pio-flash artifact-flash: flash CI release artifacts through the identity gate (#29, #34) by @Strycher in #35
  • fix(#33): OLED splash carries pre-release identifier (v0.14.0-rc1, not v0.14.0+0) by @Strycher in #37
  • chore(#38): gitignore pycache/ by @Strycher in #40
  • feat(#42): strip observer companion to minima + delete dead ring buffer by @Strycher in #50
  • docs: pin Crosswire project identity (Citadel + Agent Mail keys) (#55) by @Strycher in #56
  • docs(#32): position-to-map pipeline architecture draft by @Strycher in #57
  • docs: MeshCore 1.16.0 base-update impact assessment (spike #54) by @Strycher in #58
  • chore(#59): port /work + session-state.py compaction-recovery hook into Crosswire by @Strycher in #60
  • docs(#61): correct CLAUDE.md build/flash + migration-status after meshcore-firmware retire by @Strycher in #62
  • feat: observer MQTT connectivity (crosswire-v0.15.0) — #53 #48 #63 #68 by @Strycher in #72

Full Changelog: crosswire-v0.14.0-rc1...crosswire-v0.15.0