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.
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
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.