Repository navigation
feat: add local terminal control for one or two recorders - #241
Open
RedAmancy918 wants to merge 1 commit into
Open
RedAmancy918 wants to merge 1 commit into
RedAmancy918 wants to merge 1 commit into
Conversation
This branch has not been deployed
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.
Add a standard-library workstation CLI for operating one or two Grabette recorders over a trusted LAN. Operators can start either hand or send concurrent start requests, monitor capture and saving without a browser, and explicitly confirm deletion of fixed episode IDs. Concurrent requests are software triggers; they do not guarantee synchronized exposure or replace fleet scheduling.
The CLI distinguishes an acknowledged start from fresh, increasing data counters, and keeps saved-file status separate. It includes watchdog-style health warnings, optional metrics, task-session status, local JSONL logs, and a read-only
--once --jsonmode. An example configuration supports either hand on its own and contains no deployment-specific addresses. Counter requirements follow device capabilities, so a Gemini 305 rig does not wait for nonexistent IMU samples.The same PR supplies the minimal matching device API: a versioned identity/capability response, explicit
local_onlystart/stop flags, and anexpected_episode_idstop guard. Requests without the new fields retain the existing fleet behavior. The client verifies support before mutations rather than sending flags that older servers could silently ignore. Partial starts only roll back acknowledged matching episodes; unknown results are not automatically retried. Deletion freezes the selected IDs and expires its confirmation after 30 seconds; quitting does not stop acquisition.Validation:
CLOCK_BOOTTIMEbehavior those existing tests require. Legacy import-time home paths were isolated to a temporary test directory; existing loopback HTTP tests ran locally.git diff --check, CLI help, and documentation MDX build pass.