Repository navigation
Groundwork: guards for the workspace move - #156
Merged
Merged
Conversation
A byte guard records every frame and short command the builders emit for a fixed list of calls, a CLI guard records the help text of every subcommand, and the release dry run lists the files of every package. The workspace move must leave all three unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Taken from the package-contents artifact of the release dry run of this pull request: the files of the deb, rpm, Arch and tarball packages for both architectures. Co-Authored-By: Claude Sonnet 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.
Fixes #145
Task 1 of
docs/superpowers/plans/2026-11-13-obsbot4linux-groundwork.md. Tests and CI only; no change tosrc/,Cargo.tomlorCargo.lock, so nothing that is sent to the camera changes. The fixtures are recorded from the code of the base commit, before anything moves.tests/byte_guard.rsrecords every frame and short command the builders emit for a fixed list of calls intests/fixtures/byte-guard.txt(831 lines).tests/cli_surface.rsrecords the--helptext of the CLI and of every subcommand, including the hiddengimbal center, intests/fixtures/cli-surface.txt(88 texts), and checks--versionagainst the package version.contents: it checks that the binary in every package is stripped and compares the file list of all eight packages withpackaging/contents.txt.releaseneeds it.packaging/contents.txtis recorded in a follow-up commit from thepackage-contentsartifact of this pull request's own dry run.scripts/groundwork/test-names.shandscripts/groundwork/move-check.share the test-name and move checks of the later groundwork tasks;scripts/package-contents.shlists the package files.Verified (no camera involved, the binary only ran with
--helpand--version):cargo test --locked: 118 + 25 + 1 + 2 passed (library, binary, byte_guard, cli_surface), 0 doc tests.cargo fmt --checkandcargo clippy --all-targets --locked -- -D warningsclean;shellcheckon the three new scripts andactionlinton the workflows clean.[0x01, 0x01, on as u8]inhdrchanged to!on as u8:byte_guardfails with leftcmd::hdr(false) = 010101, rightcmd::hdr(false) = 010100; restored.abouttext of the CLI changed by one!:cli_surfacefails with "a help text of the CLI changed"; restored.scripts/groundwork/test-names.shfor base and head: head adds exactlybuilders_emit_the_recorded_bytes,help_texts_are_unchanged,version_is_the_package_version.byte-guard.txt0e4a70c8ea39ee7d6574bcda3b340863f751654d9cbf892d200d46e4efe0605a,cli-surface.txt3eceb47a17a6dd5570006fa69a9dcbbd5b45c26081cf8e8776d6e674001a867c.From now on, a change that alters on purpose what a builder sends or a help text re-records the fixture with
BYTE_GUARD_BLESS=1orCLI_SURFACE_BLESS=1and lists the changed lines in its description.🤖 Generated with Claude Code