Commit Graph

21 Commits

Author SHA1 Message Date
cj-vana
4d8a035d60 ci: opt JS actions into Node.js 24
GitHub deprecated Node.js 20 for actions; runners will force Node 24 by
June 2 2026. Opting in now via the documented FORCE_JAVASCRIPT_ACTIONS_TO_NODE24
env var instead of pinning every action version. Applied to both
firmware-build (PR check) and release (tag-driven) workflows.
2026-05-16 13:18:15 -06:00
cj-vana
5af562c6be ci: pin submodule to upstream base and apply patches at build time
The submodule had been pointing at a local MeshCore commit that included
all 5 patches applied on top of upstream. That commit only exists in the
local working tree — CI's `submodules: recursive` checkout couldn't
fetch it from github.com/meshcore-dev/MeshCore and failed with
"fatal: not our ref d2ad3ac8".

Resets vendor/MeshCore to upstream main (910b1bee, the same base our
patches were authored against) so CI can fetch it normally, and adds an
explicit `apply-patches.sh` step to the firmware-build workflow before
the verify and build steps run. The release workflow already applies
patches explicitly so no change there.

Subsequent verify/build steps set MESHCORE_SKIP_APPLY_PATCHES=1 to avoid
re-applying patches on the now-dirty tree.
2026-05-16 13:05:24 -06:00
cj-vana
15c7072d81 Add repo scaffolding for Colorado-Mesh publish
Adds the project metadata and CI/release workflow needed to publish this
repo under Colorado-Mesh/meshcore-bot-firmware.

- LICENSE: MIT with attribution to upstream MeshCore (also MIT)
- README: rewritten with badges, supported boards, install paths (web
  flasher / PlatformIO / esptool), bot command table, layout map,
  development quickstart
- CONTRIBUTING: submodule + patch-queue workflow, what-goes-where,
  patch hygiene rules, PR expectations
- RELEASE: cmesh-bot-vX.Y.Z tag scheme + procedure
- CHANGELOG: Keep-a-Changelog format, seeded with the hop-coordination
  fix and patch-5 utility commands
- Issue templates: bug_report (with bot stats prompt), feature_request,
  config.yml (no blank issues, link to upstream + community)
- Pull request template: layer checklist, verification gates,
  prefs-schema impact prompt
- .github/workflows/firmware-build.yml: keep PR check on representative
  envs (Heltec V3, RAK 4631 USB+BLE), add concurrency cancellation for
  PRs, scope cache key to PIO config hash
- .github/workflows/release.yml: NEW; triggers on cmesh-bot-v* tag or
  manual dispatch, enumerates all 133 *_companion_radio_(usb|ble) envs
  from vendor/MeshCore/variants/, shards across 8 parallel matrix jobs,
  aggregates artifacts into a single draft release
- scripts/verify.sh: respect MESHCORE_SKIP_APPLY_PATCHES like
  build-representative.sh does, so verify works when vendor already has
  patches applied as commits
- .gitignore: add .forge.bak.*/ for forge backup directories
2026-05-16 13:01:09 -06:00
cj-vana
d26979ed94 forge: add patch 5 — hop-aware bot coordination
Bundles in-progress utility commands (TIME, LORA, ID, NEIGHBORS), neighbor
tracking, received_at_timestamp / personalized acks, and per-hop response
delay coordination. Tunes the coordinator so multi-hop senders actually get
responses: hop step 5s→1.5s, hop bias capped at 8s, pending TTL 15s→45s.

Verified on Heltec V3 bench bot: responds to #bot at 2, 4, and 6 hops.

BOT_PREFS_VERSION bumped 2→3, so existing bots will reset bot prefs (channel
names, known bots) to defaults on first boot of this firmware.
2026-05-16 12:48:00 -06:00
cj-vana
6b7de37630 forge: allow prefixless firmware bot dms 2026-05-15 20:10:23 -06:00
cj-vana
98d2dc556d forge: harden firmware bot coordination 2026-05-15 19:59:45 -06:00
cj-vana
dc7004f7f1 forge: step 13 — validate bot parity and export patch 2026-05-15 11:50:37 -06:00
cj-vana
4af47dc09c forge: step 12 — harden emergency forwarding 2026-05-14 23:07:58 -06:00
cj-vana
43b36c85c6 forge: step 11 — add firmware bot utility commands 2026-05-14 22:48:35 -06:00
cj-vana
4b828d74ca forge: step 10 — add CI safety checks 2026-05-14 21:52:07 -06:00
cj-vana
f7e901bdc0 forge: step 9 — harden production bot builds 2026-05-14 21:23:11 -06:00
cj-vana
e6182f5e7b forge: step 8 — add bot prefs and CLI 2026-05-14 21:11:40 -06:00
cj-vana
c37e006732 forge: step 7 — add response coordinator 2026-05-14 20:03:13 -06:00
cj-vana
e78dcbbce8 forge: step 6 — add emergency forwarding 2026-05-14 17:34:57 -06:00
cj-vana
942a319e01 forge: step 5 — add firmware bot commands 2026-05-14 16:59:05 -06:00
cj-vana
b26c30ab5f forge: step 4 — wire bot runtime observation 2026-05-14 15:56:48 -06:00
cj-vana
f248109159 forge: step 3 — add firmware bot core harness 2026-05-14 13:43:02 -06:00
cj-vana
3b018b6459 forge: stop tracking local forge artifacts 2026-05-14 13:14:55 -06:00
cj-vana
2f3cb1049a forge: step 2 — add representative build tooling 2026-05-14 13:07:46 -06:00
cj-vana
346ca7cb93 forge: step 1 — bootstrap wrapper workflow 2026-05-14 12:08:59 -06:00
cj-vana
b28469d1d9 forge: initialize repository 2026-05-14 09:10:36 -06:00