Skip to content

P0-C: classify SBOw 400ms safety-observation latency and reject delayed LastApplError before Operate - #184

Closed
masarray wants to merge 2 commits into
fix/control-latency-20261020from
trial/p0-c-stage-gated-latency-evidence-20261021
Closed

masarray wants to merge 2 commits into
fix/control-latency-20261020from
trial/p0-c-stage-gated-latency-evidence-20261021

Conversation

@masarray

Copy link
Copy Markdown
Owner

Baseline & scope

Engine PR #183 exact c85d4e20db722bd0c2729f2533b323b13d3ef735. This does not change default 400ms ApplicationErrorGracePeriod, command order, MMS writes, timeouts, subscriptions or release policy. The consumer remains pinned to #183 until an independently qualified engine commit exists.

Evidence-first root cause

Physical SIEBCU/CSWI4 traces: accepted SBOw MMS in 5.198–7.417ms, postResponseWaitMs 399.282–404.249ms, accepted Operate MMS 2.098–2.907ms. Source confirms SelectWithValueCoreAsync awaits WaitForApplicationErrorAsync(_options.ApplicationErrorGracePeriod) with a 400ms default. Shortening it alone would risk emitting Operate after an asynchronous SBOw rejection.

Engineering changes

  1. Exact control wire-step diagnostics now label postResponseStage=sbo-application-error-observation and configuredApplicationErrorGraceMs alongside pre-existing service and monotonic elapsed evidence; Operate remains separately labelled operate-termination-observation. Diagnostic classification, not a new clock or control state machine.
  2. Deterministic synthetic tests: successful SBOw response followed by immediate and delayed (35ms) negative LastApplError MUST NOT emit Operate. Preserve request-accepted vs application-rejected vs command-termination semantics and exact negative AddCause. Existing positive termination test asserts new stage fields.

Next gate

Exact-head engine CI and negative scenario suite. A future transaction-correlated observer may shorten the successful path only after proving late-negative, old transaction, ctlNum/origin, disconnect, timeout and duplicate controls. No unqualified immediate-Operate fast path is enabled here; no physical speed claim or main merge.

Copy link
Copy Markdown
Owner Author

Cleanup of verified stacked Git ancestry on 2026-10-22: original source SHA 9c7cb40364023a7b217e5ec31ab3105ba90142eb is fully contained (0 missing commits) in canonical consolidated draft #190, currently 14b19d30466fd296ad1e6d0bddcdd574992bc464; exact merged-tree Windows CI #39778971482 passed 1,262/1,262 tests with no build warning/error.

Closing this now as consolidated/superseded, NOT merged to main; no branch deletion, no source history loss, no ARSAS repin, no mainline engine source promotion. Original physical validation and follow-ups still apply, and #190 remains draft. If #190 is discarded, this PR is available to reopen.

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