G
YouTube TikTok Games
Skip to content

P0 IEC101 T02: bounded unchanged-frame read retransmission in shared single/A-B engine - #148

Merged
masarray merged 7 commits into
feat/iec101-shared-transaction-core-20261111from
feat/iec101-t02-bounded-read-retry-20261111
Nov 10, 2026
Merged

masarray merged 7 commits into
feat/iec101-shared-transaction-core-20261111from
feat/iec101-t02-bounded-read-retry-20261111

Conversation

@masarray

@masarray masarray commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

IEC101 P0 T02 — bounded unchanged read retry, stacked on #145

Implementation

  • One shared per-link transaction core controls at most one byte-identical retransmission of fixed FC9/FC10/FC11 after true serial RX silence. Original FCB/FCV/link/source/epoch and same pending exchange are preserved. The frame reader's consumed-octet count must not increase at all; even incomplete 0x10 blocks retry.
  • Integrated identically in single-link and dual A/B runtime. Terminal failure/timeout verdict recorded once after all permitted attempts. Second TX separately labeled in physical evidence.
  • No silent variable FC3/GI, clock sync, Select/Execute or other uncertain mutating retries. Reject wrong-service/echo/corrupt candidate, busy/NACK and old epoch. Stop cancellation remains authoritative.
  • Deterministic unit and runtime tests: single/A/B replay, FC11 recovery, partial RX, wrong service, already-retried, failover only after both attempts lost, no unexpected IV/FCB success.
  • Engineering contract.

Exact-head evidence at 7826980e (based on parent #145 at eac974d)

  • Windows CI SUCCESS: release build, smoke, 925/925 xUnit, OBS-C real-WPF acceptance, Windows packaging.
  • CodeQL SUCCESS; dependency review SUCCESS; repository hygiene SUCCESS.
  • Formatting caveat: solution-wide dotnet format --verify-no-changes reports 1,221 mostly pre-existing WHITESPACE issues across 61 files; workflow marks this diagnostic continue-on-error. Not falsely claimed as formatting-clean. Separately track repository-wide cleanup, do not rewrite unrelated modules in the IEC-101 safety PR.
  • No physical SICAM/IEC_Test or independent-peer FAT. Remaining L11/T04 (late same-service response correlation), L14/P05 (COM cancellation), S04/S05/T08 (full staged GI/command), P02 (2,000-event 1200bps) are unresolved. Software candidate only.

Integration route: this PR is stacked onto draft parent #145, and must NOT merge into public master independently. Parent #145 must reconcile current master 59ebc36f (UI PR #147), remain Draft until remaining software/physical acceptance and approved release gate.

One unchanged-FCB retransmission after pure silence, never on mutating FC3, invalid/out-of-context secondary or stale epoch. Shared by single and A/B core, with deterministic FC9/FC10/FC11 positive and negative tests.
…le and dual runtime

Both orchestrators use the same per-link T02 retry guard, maintain a single pending exchange, defer terminal timeout until retry exhaustion, surface a separately labeled physical TX retry, and never resend potentially mutating FC3.
…ssion

Add real single-session no-RX fixture and document grade-A T02 behavior, safety exclusions and remaining physical FAT/late-response ambiguities.
…us without false failure

Use deterministic addressed FC11 responder after exactly one lost FC9, confirm identical TX bytes, validated RX, zero terminal timeouts and physical retry evidence. Defer per-exchange observer verdict until final retry.
@masarray
masarray changed the base branch from feat/iec101-shared-transaction-core-20261111 to master November 10, 2026 22:09
… unchanged retry

Drop the active link's first FC9 response, require identical second TX, actual addressed recovery, no false failure/failover and visible source-qualified retry evidence.
Require two actual lost responses to exhaust the one-retry budget before failover. Validate addressed FC11 through retained source-qualified wire evidence rather than transient health snapshot cleared during Stop.
…rrive

Do not confuse no decoded secondary with true serial silence. Shared per-link frame reader exposes read-only consumed byte count; single/A-B orchestration checks it before authorizing unchanged poll retransmit. Add incomplete FT12 negative test and update safety contract.
@masarray
masarray changed the base branch from master to feat/iec101-shared-transaction-core-20261111 November 10, 2026 22:24
@masarray
masarray marked this pull request as ready for review November 10, 2026 22:25
@masarray
masarray merged commit 306f36e into feat/iec101-shared-transaction-core-20261111 Nov 10, 2026
6 checks passed
@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-10T22:25:09.488382Z
We couldn’t complete this review. Comment @codex review to try again.
7826980 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

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