Stage E: an out-of-band STOP path must be mandatory on the hardware backend
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Domain
- backend, cli, embedded-iot
Research direction
Read src/system_ident/cli.py around lines 108-118 and trace the lifecycle SIGINT handler referenced by the issue. Run the CDS hardware CLI in dashboard and headless modes; done means headless startup clearly advertises Ctrl-C and a hardware run refuses to start when neither the dashboard nor the SIGINT stop path is available.
Written by the indexing model from the issue text.
Description
Stage E (spec §5).
src/system_ident/cli.py:118 is the only place watchdog.abort("operator STOP") is wired from
outside the loop — and it lives in the dashboard. So "the dashboard is optional" is true for the twin and
false for hardware: running headless on hardware means there is no STOP button, and per the lifecycle
issue Ctrl-C does not currently stop the excitation either. That combination is not acceptable on a real
suspension.
Do NOT force --no-dashboard
src/system_ident/cli.py:108 already degrades gracefully when the extra is missing (find_spec
check → prints a note → runs headless), which is the right behaviour. And the extra is installable on the
deployment machine: fastapi / uvicorn / websockets are pure-Python, work under py3.9, and are already
declared at pyproject.toml:31. pydantic being absent from the deployment lock is irrelevant — it
is never imported directly.
Fix
Require a stop path when the CDS backend is selected — either:
- the dashboard is running, or
- the SIGINT handler from the lifecycle issue is installed and its use is printed prominently at
startup (e.g. "no dashboard: press Ctrl-C once to ramp down and hand off").
Refuse to start a hardware run with neither.
Campaign: CDS hardware backend · branch feat/cds-hardware-backend
· spec · plan · handoff
Code is deferred until the plan and issues have been reviewed.
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CaltechExperimentalGravity/system_ident
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in CaltechExperimentalGravity/system_ident
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
UKGovernmentBEIS/optstop#10 ·
-
maintenance
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
pollen-robotics/reachy_mini#1508 ·
Maintainers usually reply within 1 day
-
[BUG] `cloud-keys.env` values retain enclosing quotes causing 401 Unauthorized, and missing utf-8 encoding crashes on WindowsPossibly taken @divyanshu07-code claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
open-jarvis/OpenJarvis#1192 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sylvainmetayer/homelab#851 ·
Maintainers usually reply within 1 day