Skip to content

Groundwork: final module paths - #165

Merged
nofuturekid merged 2 commits into
rebuildfrom
fix/163-groundwork-final-paths
Nov 13, 2026
Merged

nofuturekid merged 2 commits into
rebuildfrom
fix/163-groundwork-final-paths

Conversation

@nofuturekid

Copy link
Copy Markdown
Collaborator

Fixes #163

Stacked on #164 (branch fix/162-groundwork-camera-split); the diff of this pull request on top of that branch is one commit. Base stays rebuild.

Task 7 of the groundwork plan. During the parallel moves the old module paths stayed valid through re-exports in lib.rs. This change switches every use line and the two module paths in code to the final modules, updates two doc references, and removes the re-exports (state, frame, streaming, commands, presets, status and the device shim). lib.rs now declares only enumeration, error, family, legacy, models, registry and transport. Pure move: no change to bytes sent to the camera, ioctls, timing or command-line output. No CHANGELOG line (nothing a user can see).

Verified (against the base e7c15de):

  • grep -rnE '(crate|obsbot_device)::(camera|commands|device|frame|presets|state|status|streaming)\b' crates prints nothing.
  • cargo fmt --check, cargo clippy --workspace --all-targets --locked -- -D warnings, shellcheck on scripts/groundwork/*.sh and scripts/package-contents.sh, and actionlint: no output.
  • cargo test --workspace --locked: 118, 1, 25, 2 and 0 tests passed, no failures (byte guard and CLI surface included, fixtures unedited).
  • scripts/groundwork/test-names.sh for base and head: comm -3 prints nothing (146 names, same list).
  • cargo build --release --locked, then obsbot4linux --version prints obsbot4linux 0.13.2.
  • scripts/groundwork/move-check.sh <base> HEAD prints exactly the 11 lines the plan lists (two doc references, the removed shim comment, device::detect and state::path call sites, pub mod device { and its closing brace).
  • git diff -M --stat: 11 files changed, 21 insertions, 32 deletions; no renames needed.
  • No new tests, so no mutation run. The camera was not used; the binary was run only with --version.

🤖 Generated with Claude Code

nofuturekid and others added 2 commits November 13, 2026 12:59
… status

The exchange with the extension unit (short and framed writes, answer polling, the sequence
counter) moves to family/exchange.rs; the Tiny 2 Lite reads and writes stay as
models/tiny2lite/camera.rs; the 0.13 status shape, its capability list and the remembered
pose move to legacy, with state.rs. Every block is copied unchanged by
scripts/groundwork/split-camera.py (anchors matched the file on rebuild as it is); items
another file now uses become pub(crate).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Every use line and the two module paths in code name the modules where they live now;
lib.rs declares only the final modules. No behaviour change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@nofuturekid nofuturekid added the enhancement New feature or request label Nov 13, 2026
@nofuturekid
nofuturekid merged commit 86e9fc2 into rebuild Nov 13, 2026
20 checks passed
@nofuturekid
nofuturekid deleted the fix/163-groundwork-final-paths branch November 13, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant