Skip to content

develop#6

Merged
gaspode-wonder merged 20 commits intomainfrom
develop
Jan 18, 2026
Merged

develop#6
gaspode-wonder merged 20 commits intomainfrom
develop

Conversation

@gaspode-wonder
Copy link
Copy Markdown
Collaborator

  • Deploy-ready: ingestion loop fixes + shim + logging
  • canonical ingestion collapse
  • canonical ingestion collapse
  • canonical ingestion collapse
  • feat(loop-closure): stabilize ingestion pipeline, restore parser contract, and align Beamrider→KEEP path
  • ingestion loop and systemd patching
  • update ansible with stable tty address
  • hardware is hard
  • Fix lint violations
  • update ansible linting
  • feat: clean up Pi‑Log test harness, typing, and ingestion correctness
  • feat: clean up Pi‑Log test harness, typing, and ingestion correctness
  • feat: add watchdog wrapper and FTDI hardening with full recovery on device detach/reattach

…ract, and align Beamrider→KEEP path

Major cleanup and alignment to support PoC loop closure between emitter → Beamrider-0001 → KEEP-0001.

• Ansible:
  - Add ansible.cfg and normalize role paths
  - Introduce group_vars for beamrider-0001 and pi_log
  - Add Molecule scenario for role validation
  - Update Makefiles, defaults, meta, and tasks for deterministic deploys
  - Add requirements.yml for role dependencies
  - Fix CI workflows for ansible-lint and role testing

• Application:
  - Restore MightyOhm CSV parser (parse_geiger_csv) to match ingestion contract
  - Harden SerialReader and GeigerReader behavior
  - Fix config_loader unreachable-code false positive (mypy clean)
  - Update health, metrics, logging, telemetry, and settings modules
  - Remove obsolete logging/__init__.py
  - Add mypy.ini and align requirements.txt

• Tests:
  - Update integration tests for ingestion and serial-to-storage flow
  - Update unit tests for parser, config loader, logging loader, and health checks
  - Refresh conftest and CI test harness

• Systemd:
  - Update pi-log.service for stable startup and environment handling

This commit brings the entire stack to a green, type-safe, test-clean state and prepares Beamrider-0001 for real loop closure with KEEP-0001.
- Remove debug prints and relocate sys.path handling to eliminate E402
- Normalize conftest.py import ordering for Ruff compliance
- Add missing return annotation to config_loader.__getattr__
- Fix serial_reader decode path with proper typing.cast for mypy
- Remove accidental double‑push logic and align payload with LogExp contract
- Achieve full green CI: lint, typecheck, and 30/30 passing tests
- Remove debug prints and relocate sys.path handling to eliminate E402
- Normalize conftest.py import ordering for Ruff compliance
- Add missing return annotation to config_loader.__getattr__
- Fix serial_reader decode path with proper typing.cast for mypy
- Remove accidental double‑push logic and align payload with LogExp contract
- Achieve full green CI: lint, typecheck, and 30/30 passing tests
…evice detach/reattach

- Introduce WatchdogSerialReader with dead-link detection, exception recovery,
  and automatic FTDI reopen logic
- Restore SerialReader to clean, canonical ingestion loop
- Add SerialReaderProtocol for structural typing and mock compatibility
- Add full watchdog unit test suite (4 tests, 100% pass)
- Validate FTDI disappearance and reappearance on Beamrider-0001:
  - watchdog_read_exception triggered correctly
  - watchdog_reopen_start / success loop maintained service uptime
  - ingestion resumed automatically after FTDI reattach
feat: add watchdog wrapper and FTDI hardening with full recovery on d…
@gaspode-wonder gaspode-wonder merged commit 1aafb31 into main Jan 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant