fix(ci): missing v12 and gx15 simulator targets - #7693
Merged
Conversation
The WASM simulator target lists had drifted from the supported radio set (fw.json / build_fw.yml, 44 targets), in both directions: - v12 was never added to the companion.yml module matrix (#7114 updated build_fw.yml only), so Companion shipped without a V12 simulator. - gx15 was added to the matrix but not to the default plugin list in build-wasm-modules.sh (#7643), so local builds skipped it. - mt12 was listed in both the bw-1 and bw-2 groups, and so built twice. - x9e-hall was in the matrix, but Companion has no such firmware: Hall sticks is a build option of x9e, and findSimulatorByName() only ever truncates x9e-hall down to x9e. The module could never be selected, so drop it from both lists. The two lists now hold the same 43 targets. web/public/radios.json had drifted the same way, missing c14, gx15, t22, v12 and v14lcd. Regenerating it surfaced a bug in gen-radios-json.js: it read disp.w/h/depth, but the hw_defs use lcd_w/lcd_h/lcd_depth, so every entry silently fell back to the 480x272x16 default. Left as-is that would have flattened the display size of all 30 mono and non-480x272 radios on the next regeneration. To stop all of the above recurring silently, radios.json now has a Justfile recipe (gen-radios, plus the docker- variant) and a codegen drift job alongside the fonts, cfn sort order and YAML parsers. Co-Authored-By: Claude Opus 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.
Summary
The WASM simulator target lists had drifted from the supported radio set (
fw.json/build_fw.yml, 44 targets) in both directions. Most visibly, Companion ships without a V12 simulator.Follow-up to #7114 (HelloRadioSky V12) and #7643 (Radiomaster GX15) — both added the radio to the firmware build, but each missed one of the two simulator target lists.
companion.ymlmatrixbuild-wasm-modules.shdefaultv12build_fw.ymlonlygx15mt12bw-1+bw-2)x9e-hallx9e-hallis not a Companion firmware — Hall sticks is a build option ofx9e(horussticks), sogetSimulatorId()never returns it, andfindSimulatorByName()only truncatesx9e-halldown tox9e. The module could never be selected, so it is dropped from both lists rather than added to the second. It remains a firmware target infw.json/build_fw.yml.The two lists now hold the same 43 targets, which is every
build_fw.ymltarget exceptx9e-hall.Web simulator radio list
web/public/radios.jsonhad drifted the same way, missingc14,gx15,t22,v12andv14lcd.Regenerating it surfaced a bug in
gen-radios-json.js: it readdisp.w/disp.h/disp.depth, but the hw_defs uselcd_w/lcd_h/lcd_depth, so every entry silently fell back to the480x272x16default. The committed file has correct values, so this only bites on the next regeneration — it would have flattened the display size of all 30 mono and non-480x272 radios in one go.With the field mapping fixed, regeneration is a no-op for existing entries: the only changes are the 5 added radios, plus
tpros/tprov2moving to follow currentfw.jsonordering.Keeping it in sync
radios.jsonis a generated file that was drifting unnoticed, so it now gets the same treatment as the other generated files:just gen-radios(anddocker-gen-radios), added to thecodegen/docker-codegenaggregatesfw.json,hw_defs/**and the script itselffw.json— not the hw_defs — decides which radios are included, and that thex9e-hallskip warning is expectedTesting
just gen-radiosverified idempotent; existing entries byte-identical after the display fixjust --list/just --showcheck the new recipes resolve, matching what the drift workflow doesv12WASM module has never been built in CI, so this PR's Companion run is the first real test of it🤖 Generated with Claude Code