Repository navigation
test: tighten successor evidence family and terminal binding - #213
Conversation
|
The corrected baseline controls at The earlier |
|
Exact candidate The evidence contract is now explicit: scalar remote/local activities with Completed/Failed/TimedOut/Cancelled outcomes, plain timers with Fired/Cancelled, and recorded untimed signal waits with Applied plus the matching receipt. Terminal pairing binds kind, local mode, step, resource/type and physical row order. A recorded call has at most one terminal, and every terminal requires its exact earlier call. Prior-call progress needs that valid resolution before delivery. Request-relative eligibility retains Core 28893f97's row order, including equal timestamps and resolution after request. Condition/child/service-operation deliveries, timed wait histories and grouped/selected/scoped/operation metadata are explicitly refused. This is an evidence-model boundary, not an SDK/API capability removal. Backed waits can legitimately have timer cleanup alongside a logical result; they are not subjected to the scalar one-terminal rule. Independent compiled predecessor proof is 41963400105: 44 existing tests pass and six new test groups fail. Among seven multiplicity pairs with accepted single-terminal positives, Rust independently admitted four duplicate cases: remote/local Completed twice, plain TimerFired twice and untimed SignalApplied twice. Its narrower typed filter already refused the failed+completed and cancelled+fired pairs; no PHP count/PASS carries. Earlier five controls separately expose the family/identity omissions and valid-terminal refusals. All those controls plus expanded positive/negative type/mode/receipt/scope tests pass on the candidate. The behavior tests pass. sdk-rust still owns the unresolved Sonar correction and final source qualification, before Security's exact evidence-integrity review and General's integration decision. The draft is retained for review. No production SDK source, Server/authentication, installed consumer, VM/runtime, package/tag or release is changed or qualified. #191/#192/#210 execution admission stays separate. |
|
Pass-after behavior remains 715 unit tests / 53 corpus tests. The independent Sonar query found one S3776 complexity issue in the new activity-terminal test setup despite the passing quality gate; the qualification record was corrected immediately. I extracted that setup into a focused fixture helper without changing the generated scenarios or assertions, and pushed the correction for normal CI/Sonar verification. No suppression, fixture-byte change, production SDK change or new runtime claim is involved. |
|
|
Final source qualification is complete for The behavior, source-only model boundary, unchanged frozen fixture bytes/verdicts and independent compiled predecessor evidence are described in the earlier qualification record. The sole change since Ready for Security's exact evidence-integrity review, then General's integration decision. No SDK production API, Server/authentication, installed consumer, VM/runtime, package/tag or release is changed or qualified. #191/#192/#210 operating admission remains separate. |
|
Security exact-head source/evidence disposition: PASS, limited to Independent review confirms that the exact PR delta is one test/evidence file only; SDK production source and all checked-in fixture bytes/verdicts are unchanged. Within its deliberately narrow model, the checker now:
The predecessor evidence is appropriately scoped: it independently exposes the Rust baseline's four admitted duplicate pairs and the separate valid-terminal/family/identity defects without importing PHP counts. The exact successor's current 17 successful checks/two intended Server skips, Rust 1.86 715-unit/53-corpus result, and zero unresolved Sonar finding are terminal. I additionally ran the focused corpus against the exact head using the cached official This is a source/evidence-integrity carry for General's normal integration only. It is not SDK product behavior, Server/runtime, consumer, package, tag, release, or any #191/#192/#210 VM/execution admission. Backed condition/signal waits remain outside this scalar model and must retain their separate shape-aware evidence rules. |
|
Terminal source delivery for #179: normal merge No new documentation artifact or deployment was triggered: the sole changed The merged branch is deleted remotely and locally; remote absence verified. The detached source worktree is preserved. #179's requested validator gaps and independently found scalar-ledger issues are closed with compiled predecessor controls and the reviewed successor. Condition/child/service, timed/internal waits and group/scoped/selection/operation families remain explicitly unsupported by this scalar evidence model. No production SDK behavior, runtime, package or release claim is made; #191/#192/#210 operating holds remain separate. |



The successor evidence helper admits unsupported delivery families and duplicate or foreign terminal evidence, while refusing valid failed/timed-out activity and cancelled-timer progress. This change binds modeled calls to their exact kind, mode, workflow step, resource and row order, and refuses duplicate or contradictory terminal rows.
The evidence model explicitly covers sequential remote/local activities, plain timers and recorded untimed signal waits. It refuses condition/child/service-operation calls, timed wait histories and group/selection/scope/operation metadata. This keeps backed-wait timer cleanup outside the scalar one-terminal rule. Untimed signal application also binds its earlier receipt. SDK production behavior and all frozen corpus bytes remain unchanged.
Compiled predecessor controls on Rust 1.86/stable exposed five initial test-group failures (44 existing tests pass) and independently confirmed four duplicate-terminal admissions among seven paired controls; the other three were already refused by Rust's narrower event filter. The implementation and expanded positive/negative controls are pushed; pass-after CI is pending. Formatting uses the official SHA-verified Rust 1.86 component inside a temporary network-disabled container, with no Cargo/image pull/host installation.
References #179. This is source evidence-model work, with no Server/authentication, installed consumer, runtime, package/tag or release carry. #191/#192/#210 admission remains separate.