Skip to content

Invalidate stale snapshot guards after UART batches and port reads - #77

Merged
janrysavy merged 2 commits into
masterfrom
codex/device-io-epochs
Oct 6, 2026
Merged

janrysavy merged 2 commits into
masterfrom
codex/device-io-epochs

Conversation

@janrysavy

@janrysavy janrysavy commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Successful UART input and bus port reads previously changed device state while leaving old observation and complete-snapshot revision guards valid. Advance the epoch once after each successful operation and return it from serial.write; invalid input remains atomic and running calls remain supported. Port reads conservatively invalidate guards without guessing device purity.

Validation: 59 focused production-handler/machine tests and four historical UART probes pass under CPython and PyPy. Actual JSON-lines requests run through the production owner loop while the CPU executes, preserve its active execution operation, and enqueue/consume UART data. Omitted-enqueue and omitted-read epoch negative controls each accept a stale token and fail the guard assertion; exact restored source passes. Complete-machine/control comparisons cover rejected inputs, full UART queues, loopback and stale snapshot export/import.

The initial independent review found no runtime defect; its central revision-summary and actual-running test gaps were fixed in the follow-up commit. Targeted final review and exact-head CI are pending.

@janrysavy
janrysavy merged commit b7e69ff into master Oct 6, 2026
5 checks passed
@janrysavy
janrysavy deleted the codex/device-io-epochs branch October 6, 2026 05:35
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