Repository navigation
epic(OffbandMesh/meshcore-client#721): radio preset sources (overlay + MeshCore mirror) - #3
Merged
Merged
Conversation
…verlay and its validator radio-presets/offband.json holds the presets MeshCore's upstream list lacks: USA - Arizona (SF9/CR8, owner decision), USA - Philly Mesh (919.500 / 500 kHz / SF10 / CR5 / 2-byte path hash, phillymesh.net 2026-10-01), USA - OKI-Mesh 500kHz Test (909.75 / 500 / SF10 / CR5), the 27 Russian city presets and the 3 Off-Grid client-repeat frequencies carried over from the app's hardcoded list. scripts/validate_radio_presets.py checks the overlay and the upstream mirror (stdlib only). SCHEMA.md documents both files, precedence, and how to add, change and retire an entry. Agent: MagentaHawk (session 5a8922d6) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s with a scheduled workflow scripts/mirror_meshcore_presets.py fetches the preset list Liam Cottle maintains for MeshCore (api.meshcore.nz/api/v1/config), validates it, and rewrites radio-presets/meshcore-upstream.json only when the presets changed. A fetch failure or a shape change exits 1 and writes nothing. .github/workflows/radio-presets.yml runs it daily and on demand, committing directly to main, and validates both preset files on every push and PR that touches them. An upstream title that clashes with the overlay still updates the mirror, then fails the run loudly. Initial mirror: 26 entries, fetched 2026-10-01. Agent: MagentaHawk (session 5a8922d6) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…for the upstream presets README gains a Radio presets section (the two files, precedence, how to edit) and a Credit section naming Liam Cottle and MeshCore as the source of the mirrored list. The mirror's credit header now links to it. Agent: MagentaHawk (session 5a8922d6) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efore the mirror commits The scheduled job now validates the overlay against the freshly fetched mirror before committing, so main always passes its own validation; a title clash fails the run and commits nothing. path_hash_size in the overlay must be a JSON number, like every other overlay field. Agent: MagentaHawk (session 5a8922d6) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 1, 2026
… upstream group together
Upstream US titles start with "USA" ("USA", "USA - Southern
California"); the overlay's "United States" would have split the
picker into two US groups.
Agent: MagentaHawk (session 5a8922d6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Epic A of Feature OffbandMesh/meshcore-client#647 (plan of record:
docs/initiatives/standalone/647-mesh500-presets/PLAN.mdin meshcore-client). Epic: OffbandMesh/meshcore-client#721.What this adds
radio-presets/offband.json: the Offband preset overlay (task: Offband overlay preset file + schema in config-profiles meshcore-client#722).radio-presets/meshcore-upstream.json: an unmodified mirror of the preset list Liam Cottle maintains for MeshCore (api.meshcore.nz/api/v1/config), 26 entries, with a credit header (task: scheduled CI mirror of Liam's preset list (direct commit) meshcore-client#723).scripts/validate_radio_presets.py: validates both files (stdlib only).scripts/mirror_meshcore_presets.py: fetches the API, validates it, and writes only on change..github/workflows/radio-presets.yml:main.SCHEMA.mdgets a radio presets section (fields, precedence, add / change / retire).README.mdgets the presets section and the credit to Liam Cottle / MeshCore (task: credit Liam Cottle / MeshCore in config-profiles README meshcore-client#724).Verification (A4, OffbandMesh/meshcore-client#725)
Run locally at the branch head:
UNCHANGED(the committed mirror matches upstream).path_hash_size.main.Still to verify after merge: the workflow's first
workflow_dispatchrun onmain(scheduled and dispatch runs only execute from the default branch).Pre-PR Gemini review
scripts/llm-consult.py --backend gemini --model gemini-2.5-pro. Audit log~/.claude/llm-consultations/meshcore-open/2026-10-01-gemini-epicA-prompt-gemini-gemini-2.5-pro.log. Cost $0.019.mainfailing its own validationpath_hash_sizeaccepted a stringMerging
This repo is outside the plan's merge grant (the grant covers meshcore-client). The merge needs
dw-approve merge OffbandMesh/config-profiles#<this PR>. It is deferred to the end of the chain, with the other Epics.Agent: MagentaHawk (session 5a8922d6)
🤖 Generated with Claude Code