radioserver v3: the DIO1 fix, and a protocol that grew a field - #16
Merged
Merged
Conversation
Two reasons this cannot go out as another v2. The stats record went from 37 bytes to 39 when it started reporting the DIO1 routing mask, and this file versions the wire protocol rather than the build, precisely so the two ends can say which they need. And the publish step edits a release in place when its tag already exists, replacing every asset. MeshBench pins radioserver-v2 by digest, so re-cutting v2 would swap the binaries under a pin and every existing MeshBench build would fail its own integrity check. A bump is the only safe way to publish. What v3 carries that v2 does not: DIO1 gated on the DIO1 mask rather than the IRQ enable mask, which is what made an emulated board hear every advert and forward about one in three, and the routing mask reported so that fault is visible from outside the chip. The release notes also stop telling people this wants VirtualSX1262.cpp beside it. It wants the submodule. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6
Cutting a radioserver release meant running the whole workflow, which with a blank ref input means every upstream tag plus main and dev, for every live platform. That is an hour of runners and a great many ways to fail, to publish one translation unit that needs neither a MeshCore checkout nor Crypto. radioserver_only skips the role build and its publish and leaves the two radioserver jobs, which is what a protocol version bump actually needs. discover still runs, because that is where the radioserver platform list comes from. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6
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.
Bumps
radioserver.versionto 3 so the DIO1 fix can be published.Two reasons this cannot go out as another v2:
wire protocol rather than the build, so that the two ends can say which they
need.
every asset. MeshBench pins
radioserver-v2by digest, so re-cutting v2would swap the binaries under a live pin and every existing MeshBench build
would fail its own integrity check.
What v3 carries that v2 does not: DIO1 gated on the DIO1 routing mask rather
than the IRQ enable mask (#14's submodule bump), which is what made an emulated
board hear every advert and forward about one in three, plus the routing mask
reported on the wire (#15) so that fault is visible from outside the chip.
Also drops a stale line from the release notes telling people this needs
VirtualSX1262.cppbeside it. It needs the submodule.After this merges, the
buildworkflow has to be run to publish the release,and then MeshBench's
toolchaincatalogue.godigests andpackaging/emulator-pins.envmove together in one change.🤖 Generated with Claude Code
https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6