Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Stage E: an out-of-band STOP path must be mandatory on the hardware backend

Open
#19 1 comment 0 reactions 0 assignees View on GitHub

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
Tech stack
fastapi, python

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

enhancement

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CaltechExperimentalGravity/system_ident

All issues in CaltechExperimentalGravity/system_ident

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.