Skip to content

Add canonical hardware-free simulated backend - #18

Merged
lbussy merged 6 commits into
mainfrom
codex/issue-400-simulated-backend
Aug 12, 2026
Merged

lbussy merged 6 commits into
mainfrom
codex/issue-400-simulated-backend

Conversation

@lbussy

@lbussy lbussy commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • strengthens ITransmissionBackend with a reusable execution context and observable cleanup results
  • adds capability-based mode and output-policy validation
  • adds a deterministic, hardware-free simulated backend with virtual time, JSON tracing, cancellation, fault injection, and repeat-safe cleanup
  • moves concrete backend construction behind a focused factory seam
  • retains focused RP1, legacy GPIO, and Si5351 behavior and tests

Validation

  • make simulated-backend-test transmission-controller-contract-test startup-quiesce-test si5351-transition-test
  • parent RP1 GPCLK transmitter regression
  • deterministic repeated virtual-time integration traces on Debian ARM64
  • syscall audit found no GPIO, MMIO, mailbox, DMA, I2C, transmitter device-node, or RF access

Scope

This is a non-RF development and CI backend. Simulation evidence does not qualify physical GPIO timing, I2C hardware, RF output, installation, or services.

Related to WsprryPi/WsprryPi#400

@lbussy

lbussy commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator Author

Issue 400 cleanup lifecycle follow-up is now included in commit 6542d01.

The canonical controller now cleans up after configuration failure and preserves both configuration and cleanup errors. WsprTransmitter observes cleanup results during backend replacement, reconfiguration, watchdog recovery, explicit stop, process shutdown, and destruction. Operational replacement/reconfiguration failures stop with an error; shutdown paths remain compatible and non-throwing while recording FAILED, emitting failure status, and retaining the last cleanup result. Repeated Si5351 and simulated cleanup is idempotent.

Expanded coverage verifies successful cleanup, execution failure, cancellation, configuration failure, error preservation, repeated cleanup, and capability rejection.

Validation passed on Debian 13 ARM64:

  • make simulated-backend-test transmission-controller-contract-test startup-quiesce-test si5351-transition-test
  • parent make debug
  • parent make semantics-test rp1-gpclk-transmit-backend-test
  • repeated byte-identical virtual-time QRSS traces
  • traced execution with no GPIO, MMIO, mailbox, DMA, I2C, transmitter device-node, or RF access

Simulation does not constitute hardware or RF qualification.

Related to WsprryPi/WsprryPi#400.

@lbussy

lbussy commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator Author

Related to WsprryPi/WsprryPi#400.

The standalone Debian backend-contract workflow remains passing:

Parent integration validation is also now passing in WsprryPi PR #404:

No hardware, RF, installation, service-management, or sudo operations were used.

@lbussy
lbussy force-pushed the codex/issue-400-simulated-backend branch from 29735e8 to 4617f49 Compare August 12, 2026 19:20
@lbussy

lbussy commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator Author

Related to WsprryPi/WsprryPi#400.

Publication-quality follow-up is complete.

  • Rewrote the Issue 400 commit range with valid author and committer identity: Lee Bussy <lee@bussy.org>.
  • Used --force-with-lease against the previously recorded remote tip 29735e8; the rewritten WSPR-Transmitter tip is 4617f49.
  • Updated the Debian workflow from actions/checkout@v4 to actions/checkout@v7, based on the official current release: https://github.com/actions/checkout/releases/tag/v7.0.1
  • Tree comparison against the pre-rewrite backup found no other content changes.

Final standalone Debian CI: https://github.com/WsprryPi/WSPR-Transmitter/actions/runs/31632193173

Result: passed. The simulated-backend and transmission-controller contract tests both passed, and the previous Node 20 checkout annotation is gone. Parent integration CI also passed: https://github.com/WsprryPi/WsprryPi/actions/runs/31632452677

No hardware, RF, installation, service-management, or sudo operation was used. This PR remains a draft pending independent human review.

@lbussy
lbussy marked this pull request as ready for review August 12, 2026 19:31
@lbussy
lbussy merged commit 9103bc2 into main Aug 12, 2026
1 check passed
@lbussy
lbussy deleted the codex/issue-400-simulated-backend branch August 12, 2026 23:58
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