WAP LabsProject atlas

docs/waves/spec_test_coverage.md

Waves Spec Test Coverage Matrix

Version: v0.2 Status: active coverage ledger

Purpose

Map requirement groups to current or planned test assets so acceptance criteria stay executable and visible across projects.

Legend:

  • covered: implemented and test path exists
  • partial: some checks exist; more coverage required
  • planned: no test yet, ticketed/planned

Engine (engine-wasm)

Requirement Group Status Current/Planned Test Location
RQ-RMK-001 deck/card parse baseline covered Rust WML-202 parser/runtime tests cover root/head/access/meta/card structure, root/card language, referring-URI policy, and source content order; WASM parity includes wasm_wml_202_access_and_language_boundary_matches_native_behavior; host boundary tests cover referring-URI handoff and denial atomicity; executable story: wml-202-template-shadowing.wml
RQ-RMK-002 task model and template/card shadowing partial WML-202 parser/runtime fixtures in engine-wasm/engine/src/parser/wml_parser/tests.rs and engine-wasm/engine/src/engine_tests/actions_timers.rs; executable engine-wasm/examples/source/wml-202-template-shadowing.wml + .flow.json; pnpm test:story WML-202. Template inheritance and shadowing are covered; broader optional do presentation remains open.
RQ-RMK-003 fragment/history nav basics covered Rust engine tests cover fragment transitions + navigateBack and WML-202 go-only newcontext variable/history/private-state reset; wml-202-template-shadowing.flow.json proves empty history after newcontext; host samples also include basic.wml, missing-fragment.wml, and history-back-stack.wml
RQ-RMK-006 anchor shorthand behavior partial host sample external-navigation-intent.wml; deeper parser fixture coverage planned
RQ-RMK-007 WBXML decode boundary ownership covered contract behavior via loadDeckContext metadata and docs, including native m1_02_load_deck_context_public_api_sets_metadata_and_state, wasm wrapper checks in engine-wasm/engine/src/engine_wasm_bindings_tests.rs, and direct schema-v2 WDP SDU -> fetch/WBXML decode -> native engine state/render parity in wml_203_reconstructed_wdp_sdu_matches_text_engine_behavior
RQ-RMK-009 compatibility/robustness behavior partial host sample parser-robustness.wml; WML-203 parser tests classify canonical versus alternate external DTDs, reject malformed identity combinations, and retain recognized content nested in unknown markup; strict prologue presence and full DTD validation remain planned
RQ-RMK-012 WML user-agent error handling partial WML-205 structured load diagnostics and atomic rejected-load tests in engine-wasm/engine/src/engine_tests/wml_load_errors.rs, WASM parity in engine-wasm/engine/src/engine_wasm_bindings_tests.rs, and executable alternate-DTD recovery story engine-wasm/examples/source/wml-205-error-recovery.wml; exhaustive WML error enforcement plus fetch/access-control task-failure atomicity remain open
RQ-WAE-016, RQ-WAE-017 history and back semantics covered engine navigateBack baseline remains covered in engine-wasm/engine/src/engine_tests/actions_timers.rs (navigate_back_restores_previous_card, navigate_back_returns_false_when_history_empty) and engine-wasm/engine/src/engine_tests/traces_public_api.rs (m1_02_handle_key_render_and_navigate_back_public_api_flow); browser host-history/request-identity coverage is in browser/frontend/src/session-history.test.ts, browser/frontend/src/app/navigation-state.load.test.ts, and browser/frontend/src/app/navigation-state.history.test.ts, including repeated-URL entries, method/header/post-aware back replay, and deterministic restore/fallback behavior
RQ-WMLS-001..003 external-call/pragma/url invocation model partial Phase W fixtures + engine tests for script: link resolution and deferred invocation boundaries; access-control/pragma conformance follow-up tracked in W0-08 + W1-03
RQ-WMLS-004..006 function/local/conversion semantics partial engine WaveScript VM tests in engine-wasm/engine/src/wavescript/vm.rs + vm_tests.rs and invocation tests in engine-wasm/engine/src/engine_tests.rs; broader spec parity closure tracked in W1-04
RQ-WMLS-008..010 bytecode format/verification/error model partial decoder/VM tests under engine-wasm/engine/src/wavescript/ prove only the project-specific nine-opcode safety skeleton; they are provisional evidence and do not decode WAP-193 headers, pools, multi-byte fields, or instruction encoding; direct source-derived .wmlsc fixtures remain in W1-02
RQ-WMLS-011 WMLScript content-type routing planned Target files: transport-rust/src/responses.rs, transport-rust/tests/fixtures/transport/, browser/src-tauri/src/lib.rs; command: cd transport-rust && cargo test --lib then cd browser/src-tauri && cargo test; tracked in W1-01
RQ-WMLS-017..022 WMLBrowser/dialog/timer/refresh semantics partial engine-wasm/engine/src/wavescript/stdlib/wmlbrowser.rs + wmlbrowser_tests.rs and runtime effect tests in engine-wasm/engine/src/engine_tests.rs, including m1_02_script_invocation_public_outcome_regression, wmlbrowser_get_current_card_returns_fragment_when_context_exists, wmlbrowser_get_current_card_returns_invalid_without_context, wmlbrowser_new_context_clears_vars_and_history_and_prev_has_no_effect, and timer_expiry_invokes_script_and_publishes_dialog_in_order; engine-wasm/examples/source/timer-script-dialog.wml + .flow.json provide executable pnpm test:story W0-05 evidence for runtime timer expiry invoking a script and publishing DIALOG_ALERT in deterministic order. Strict Dialogs IDs/conversions, interactive results, refresh optionality, and full WMLS-5 remain open.
WAP-191 section 11 text/layout semantics (p, br, table, pre, img) planned Target files: engine-wasm/engine/src/render/flow_layout.rs, engine-wasm/engine/tests/fixtures/phase-a/; command: cd engine-wasm/engine && cargo test; tickets B5-02, B5-03, C5-01, C5-02
WAP-191 section 12.5 inter-card process ordering (go/prev/refresh/noop) covered engine runtime + parser coverage in engine-wasm/engine/src/engine_tests.rs (fixture_accept_*_trace_order_is_deterministic, enter_accept_noop_binding_is_inactive_and_keeps_current_card_and_history, onenterforward_noop_binding_is_inactive_and_keeps_navigation_state) and parser action tests in engine-wasm/engine/src/parser/wml_parser/tests.rs; browser host-flow assertions in browser/frontend/src/app/navigation-state.test.ts (emits deterministic state-event order for host-history back fallback, keeps host history pointer stable when history-back transport load fails, replays host back using stored request method and request policy, header-aware host history replay) plus Tauri host integration path browser/src-tauri/src/lib.rs (tauri_apply_accept_noop_refresh_prev_and_error_paths_are_deterministic) confirm deterministic forward/back/refresh/noop/error behavior and request-policy handoff evidence
Effective WAP-191 section 15 + SIN 105 conformance ID closure (76 actor-specific IDs) partial SCR ledger: spec-processing/source-manifests/wap-1.2.1-wml-scr.json; clause ledger: spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json; commands: node scripts/check-wap-conformance-ledger.mjs and node scripts/check-wap-selected-normative-clauses.mjs; all 39 selected rows expand into 174 anchored clauses, with 56 direct fixture-backed clauses including the completed 30-clause WML-202 tranche; optional capability and remaining parent rows stay open
Effective WAP-190 + SIN WAE SCR closure (86 active IDs) partial SCR ledger: spec-processing/source-manifests/wap-1.2.1-wae-scr.json; clause ledger: spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json; WAESpec:MCF selects 11 client rows expanded into 39 clauses, with 5 implemented / 3 partial / 3 missing and direct tests linked to 8; Basic auth, generic WBXML media type, script bytecode media routing, and direct fixture execution remain open
Effective WAP-192 + SIN 105 WBXML SCR closure (15 actor-specific IDs) partial SCR ledger: spec-processing/source-manifests/wap-1.2.1-wbxml-scr.json; clause ledger: spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json; WBXML:MCF selects 3 rows expanded into 47 client-applicable anchored clauses; 42 fixed-outcome fixtures cite and implement all 47, the encoder-only unrepresentable-name clause remains outside the selected profile, and the parent-row audit stays 0 implemented / 3 partial / 0 missing
Effective WAP-193_101 WMLScript SCR closure (112 actor-specific IDs) partial SCR ledger: spec-processing/source-manifests/wap-1.2.1-wmlscript-scr.json; clause ledger: spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json; WMLScript:MCF selects 41 mandatory interpreter rows expanded into 107 clauses with 0 implemented / 23 partial / 18 missing; 23 local tests are provisional only and direct normative coverage remains 0/41
Effective WAP-194 + SIN 103 Libraries SCR closure (95 IDs) partial SCR ledger: spec-processing/source-manifests/wap-1.2.1-wmlscript-libraries-scr.json; clause ledger: spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json; WMLScriptLibs:MCF selects 80 mandatory interpreter rows expanded into 211 clauses with 0 implemented / 14 partial / 66 missing; direct normative coverage remains 0/80; source-exact WMLSSL048 is preserved
WAP-120 caching SCR closure (11 actor-specific IDs) partial Ledger: spec-processing/source-manifests/wap-1.2.1-caching-scr.json; WAPCachingMod:MCF selects 5 mandatory user-agent rows with 0 implemented / 3 partial / 2 missing; direct normative coverage remains 0/5; the current no-storage behavior is only a provisional zero-byte-cache profile; command: node scripts/check-wap-caching-conformance-ledger.mjs

Host sample (engine-wasm/host-sample)

Executable-story accounting

The canonical corpus now contains 32 WML examples. Before the simulator coverage synchronization it had 9 adjacent companions containing 11 executable stories: 6 host-sample and 5 waves-browser. The synchronized corpus has 22 companions containing 24 executable stories: 18 host-sample and 6 waves-browser. Therefore 22 examples have executable evidence and 10 remain intentionally without a companion. A WML metadata testing-ac checklist is prose acceptance guidance only and is never counted as an executable story.

The regression priorities follow the QA test-planner convention:

  • P0: deterministic navigation, history/context, task ordering, rollback, and state-integrity paths that must pass on every story run.
  • P1: major form, script, timer, and browser-integration paths that should run with the full simulator regression lane.
  • P2: useful but duplicated or lower-risk host-visible demonstrations. These remain explicit gaps when a companion would add more maintenance than boundary evidence.

Story preconditions are Node 22.22.1, pnpm 10.23.0, a current web-target WASM package, and Playwright Chromium. Each flow declares its initial state and setup, then pairs every action with the expected runtime state, trace subsequence, semantic render, status, or Waves session result. The pass condition is exact mapping validation plus all selected expectations passing with no unexpected browser diagnostics.

Example and flow inventory

Classification values for examples without flows are the required audit classes: direct means stable and directly automatable with the current DSL; capability means stable but blocked on a small reusable harness capability; manual means intentionally exploratory/manual-only; and superseded records the executable scenario that already proves the valuable boundary.

Example ID Work-item / spec mappings Priority and host visibility Executable evidence / target Classification or honest gap
acceptErrorRollback R0-02 / WML-18, WML-R-017 P0, stable host-visible manual only superseded: rollback and post-error Back recovery are exercised by actionsTaskOrderRollback/accept-go-prev-refresh-and-rollback.
acceptNoopOrdering R0-02 / WML-18, WML-R-012, WML-R-015, WML-R-017 P0, stable host-visible accept-noop-preserves-navigation-state (host-sample) Automated noop state preservation and Back recovery; broader accept ordering is intentionally split to the task-order flow.
actionsDoOnevent W0-01 / RQ-WMLS-018 P1, stable host-visible manual only superseded: accept dispatch is covered by the task-order story and chained forward entry by the card-entry story.
actionsPrevTaskModel A5-02 / WML-R-012, WML-R-015 P1, stable host-visible manual only superseded: accept prev is covered by the task-order story; backward-entry dispatch is covered by the card-entry story.
actionsRefreshRollback A5-02 / WML-R-012, WML-R-015, WML-R-017 P0, stable host-visible manual only superseded: refresh stability and failed-entry rollback are covered by the task-order story.
actionsTaskOrderRollback A5-02 / WML-R-012, WML-R-015, WML-R-017 P0, stable host-visible accept-go-prev-refresh-and-rollback (host-sample) Automated go, prev, refresh, failure rollback, trace ordering, and post-error Back recovery.
basic A2-01, A2-02 / WML-R-006, WML-R-007 P0, stable host-visible fragment-and-external-intent (host-sample); waves-fragment-and-external-intent (waves-browser) Automated engine boundary plus real Waves keyboard/render integration.
cardEntryForwardBackward A2-03 / WML-R-008 P0, stable host-visible forward-entry-and-backward-reentry (host-sample) Automated forward-entry transit and backward re-entry redirect with ordered traces.
externalNavigationIntent A2-02 / WML-R-007 P2, stable host-visible manual only direct: current DSL can automate the relative/absolute/fragment matrix, but the P0 external-intent boundary is already proven by basic; retain as focused manual diagnosis.
fieldOpenwave2011Navigation A1-03, A2-01 / WML-R-002, WML-R-006 P2, stable host-visible manual only direct: legacy-style source ordering and navigation are automatable, but fragment/external outcomes duplicate basic; retain as realism/exploration corpus.
formsSelectLocal A5-05, A5-06 / WML-R-019, RQ-RMK-003, RQ-RMK-008 P1, stable host-visible manual only superseded: select cycling/commit is executable in wml204SelectSemantics; Waves focus integration and exact POST capture are executable in formsSelectNavigationLocal.
formsSelectNavigationLocal A5-05, A5-06 / WML-R-019, RQ-RMK-003, RQ-RMK-008 P1, browser-session visible waves-merged-select-and-input-edit (waves-browser) Automated real keyboard select/input editing, exact form payload, local intent capture, and no-fetch status.
formsTextSubmitLocal A5-04, A5-06 / WML-R-019, RQ-RMK-008 P1, browser-session visible waves-text-edit-and-local-submit-intent (waves-browser) Automated text/password editing, masking, commit, exact POST payload, and local intent capture.
historyBackProcessOrder R0-02, R0-03 / WML-18, WML-07, WML-R-008 P0, stable host-visible multi-card-back-process-order (host-sample) Automated two-level unwind and empty-history terminal result.
historyBackStack A2-03 / WML-R-008 P0, stable host-visible fragment-back-and-empty-history (host-sample); waves-fragment-back-and-empty-history (waves-browser) Automated engine boundary plus real Waves Backspace/session status.
missingFragment A2-01 / WML-R-006 P0, browser-session visible waves-network-missing-fragment-error (waves-browser) Automated network-fixture load, stable error state, render continuity, and session error reporting.
onenterbackwardReentry A2-03 / WML-R-008 P1, stable host-visible manual only superseded: cardEntryForwardBackward/forward-entry-and-backward-reentry proves the same backward-entry redirect and trace boundary.
parserRobustness A1-01, A1-03 / WML-R-001, WML-R-020 P2, stable host-visible manual only direct: load/navigation is expressible, but unsupported-markup classification is parser-internal and remains better proven by lower-level fixtures; do not infer executable coverage from successful rendering.
scriptLinkExecution W0-01, W0-03 / RQ-WMLS-001, RQ-WMLS-008 P1, stable host-visible script-link-success-and-navigation-continuity (host-sample) Automated script success/trap state, ordered trace, and subsequent fragment navigation.
timerHostClockLifecycle A5-03 / WML-R-014 P1, stable host-visible nonzero-timer-host-clock-expiry (host-sample) Automated nonzero start, pre-expiry host ticks, single expiry, ontimer dispatch, and final navigation.
timerOntimerImmediate A5-03 / WML-R-014 P1, stable host-visible zero-timer-dispatch (host-sample) Automated zero-value timer dispatch at card entry; distinct from the nonzero lifecycle story.
timerScriptDialog W0-05 / RQ-WMLS-022 P1, stable host-visible timer-expiry-script-dialog-order (host-sample) Automated timer-to-script-to-dialog publication order; distinct from navigation timers.
wavescriptGoCancel W0-04 / RQ-WMLS-018 P1, stable host-visible script-go-cancel-clears-pending-navigation (host-sample) Automated canceled pending navigation, successful script outcome, and unchanged card/intent.
wavescriptNavOrder W0-04 / RQ-WMLS-018 P1, stable host-visible script-navigation-order-and-external-outcome (host-sample) Automated go/prev last-call-wins fragment and external outcomes.
wavescriptRefreshPolicy W0-04 / RQ-WMLS-017, RQ-WMLS-021 P1, stable host-visible script-refresh-without-navigation (host-sample) Automated variable mutation, refresh request, successful script result, and stable card/focus.
wml202TemplateShadowing R0-04, R0-12, C5-03, WML-202 / RQ-RMK-001, RQ-RMK-002, RQ-RMK-003 P0, stable host-visible template-inherit-override-and-noop-mask (host-sample) Automated valid head/access/meta/language load, deck-template inheritance, same-name card override, noop masking, and newcontext history clearing.
wml203WbxmlParity WML-203 / WBXML-C-001, WBXML-C-010, WBXML-C-011, WML-C-17 P1, stable host-visible text-deck boundary canonical-doctype-deck-render (waves-browser) Automated paired text-deck state/render proof through the WASM engine; the direct schema-v2 WDP SDU -> transport decode -> native engine comparison remains in the Rust integration test.
wml204ControlValidation B5-01, R0-04, WML-204 / WML-C-28, WML-C-33, WML-C-41, WML-C-43 P1, browser-session visible waves-input-rejection-retry-and-password-state (waves-browser) Automated transparent fieldset-child processing, rejection atomicity, retry draft, password masking, commit, and vdata proof; optional fieldset capability status remains not assessed.
wml204SelectSemantics R0-04, C5-05, WML-204 / WML-C-40, WML-C-41, WML-C-43 P1, stable host-visible initialization-and-user-commit (host-sample) Automated nested-optgroup document-order processing, initialization, draft isolation, commit, and variable result; optional optgroup capability status remains not assessed.
wmlbrowserContextFidelity R0-03, W0-07 / RQ-WMLS-019, RQ-WMLS-020 P0, stable host-visible current-card-and-context-reset (host-sample) Automated current-card lookup before/after navigation plus newContext variable/history reset and prev suppression.
wmlbrowserVarNav W0-04 / RQ-WMLS-017, RQ-WMLS-018 P1, stable host-visible variable-fragment-and-prev-effects (host-sample) Automated setVar/getVar-visible state, deferred fragment go, and script prev outcome.
wrapStress A3-01 / WML-R-004 P2, visual host-visible manual only manual: the unique acceptance is visual wrap consistency across reloads; card navigation is redundant with basic, and text-presence assertions would not prove wrapping.

No unpaired P0/P1 path remains blocked on a small story capability. The harness now supports exact script boolean/trap expectations, structured external request-policy assertions, normalized optional object fields, and explicitly expected host error statuses. No generic E2E framework or runtime semantic change was introduced.

Commands

wasm-pack build --target web --out-dir ../pkg  # from engine-wasm/engine
pnpm test:story list
pnpm --dir engine-wasm/host-sample run test:story:unit
pnpm --dir engine-wasm/host-sample run examples:check
pnpm test:story host-sample
pnpm test:story:waves
pnpm --dir engine-wasm/host-sample run build
pnpm --dir engine-wasm/host-sample run typecheck
pnpm --dir engine-wasm/host-sample run lint
pnpm --dir engine-wasm/host-sample run format:check

The story runner still does not claim transport-native or Tauri-native replay. Transport/WBXML packet fidelity, parser-internal validation, network timing, and visual-only layout judgment remain in their lower-level or manual evidence lanes.

Transport (transport-rust)

Requirement Group Status Current/Planned Test Location
Exact WAP-200 WDP ledger: 146 rows / 9 selected 9 implemented / 0 partial / 0 missing; 9/9 direct normative tests and 49/49 mapped clauses spec-processing/source-manifests/wap-1.2.1-wdp-scr.json; fixture: transport-rust/tests/fixtures/transport/wdp_cdpd_ipv4_mapped/wdp_fixture.json; validate with cargo test --manifest-path transport-rust/Cargo.toml --lib network::wdp and node scripts/check-wap-transport-conformance-ledgers.mjs
Exact WAP-202 WCMP ledger: 62 rows / 2 selected 2 implemented / 0 partial / 0 missing; 2/2 direct normative tests and 9/9 mapped clauses spec-processing/source-manifests/wap-1.2.1-wcmp-scr.json; strict fixture: transport-rust/tests/fixtures/transport/wcmp_cdpd_icmp_profile/icmp_fixture.json; validate with cargo test --manifest-path transport-rust/Cargo.toml --test wcmp_cdpd_icmp_profile and node scripts/check-wap-transport-conformance-ledgers.mjs
Exact WAP-203 WSP ledger: 109 rows / 8 selected 0 implemented / 8 partial / 0 missing; 0/8 direct normative tests spec-processing/source-manifests/wap-1.2.1-wsp-scr.json; validate with node scripts/check-wap-transport-conformance-ledgers.mjs
RQ-TRN-001..004 WDP service + UDP + addressing + error policy partial transport-rust unit tests + fixture harness scenarios under transport-rust/tests/fixtures/transport/
RQ-TRN-005..009 WTP semantics and SIN overlays partial/conditional WTP is not activated by the selected connectionless Class C path. Existing WTP policy/state unit coverage is in transport-rust/src/network/wtp/; replay promotion baseline includes schema-versioned retransmission and duplicate-TID seed corpus coverage in transport-rust/tests/interop_replay.rs with corpus files under transport-rust/tests/network/interop/ (retransmission_seed.json, duplicate_tid_seed.json); command: cd transport-rust && cargo test --lib && cargo test --test interop_replay; exact target-era WAP-201 closure is required only before claiming connection-oriented WSP/WTP
RQ-TRN-010..015 WSP/session/method/capability behavior partial transport-rust request validation/gateway mapping tests plus pure WSP header-block/PDU/session coverage in transport-rust/src/network/wsp/header_block.rs, transport-rust/src/network/wsp/pdu.rs, and transport-rust/src/network/wsp/session.rs with fixture corpora transport-rust/tests/fixtures/transport/wsp_pdu_baseline_mapped/pdu_fixture.json and transport-rust/tests/fixtures/transport/wsp_session_method_baseline_mapped/session_fixture.json; replay promotion baseline now includes schema-versioned Connect/ConnectReply and GET/REPLY seed corpus replay in transport-rust/tests/interop_replay.rs + transport-rust/tests/network/interop/connect_session_seed.json and transport-rust/tests/network/interop/get_reply_seed.json; command: cd transport-rust && cargo test --lib && cargo test --test interop_replay
RQ-TRN-018..019 WSP assigned-number + capability-bound behavior (new alignment pass) partial Assigned-number, code-page, and encoding-version policy coverage is in transport-rust/src/network/wsp/header_registry.rs, transport-rust/src/network/wsp/decoder.rs, transport-rust/src/network/wsp/encoder.rs, transport-rust/src/network/wsp/encoding_version.rs, and compatibility wrapper transport-rust/src/wsp_registry.rs with fixture corpus transport-rust/tests/fixtures/transport/wsp_assigned_number_registry_mapped/registry_fixture.json; capability-bound enforcement remains pending in T0-11; command: cd transport-rust && cargo test --lib
RQ-TRN-016 WTP TID window/MPL discipline partial Target files: transport-rust/src/wtp_replay_window.rs, transport-rust/tests/fixtures/transport/wtp_tid_replay_window_mapped/; command: cd transport-rust && cargo test --lib wtp_tid_replay_window_fixture_matrix; ticket T0-08, T0-18
RQ-TRN-017 WSP connectionless primitive profile covered Fixture matrix is in transport-rust/src/wsp_connectionless_primitive_profile.rs and transport-rust/tests/fixtures/transport/wsp_connectionless_primitive_profile_mapped/; command: cd transport-rust && cargo test --lib; ticket T0-09
RQ-TRN-018 WSP assigned-number registry fidelity partial Deterministic decode/encode + unknown-policy + code-page-shift tests landed in transport-rust/src/network/wsp/ and transport-rust/tests/fixtures/transport/wsp_assigned_number_registry_mapped/; broader protocol-path integration remains planned under T0-22; command: cd transport-rust && cargo test --lib
RQ-TRN-014 WSP encoding-version and header encoding rules partial Deterministic encoding-version negotiation, text fallback, unsupported binary status output, and immediate header-block/PDU/session decode-encode coverage are in transport-rust/src/network/wsp/encoding_version.rs, transport-rust/src/network/wsp/header_block.rs, transport-rust/src/network/wsp/pdu.rs, transport-rust/src/network/wsp/session.rs, transport-rust/src/network/wsp/decoder.rs, and transport-rust/src/network/wsp/encoder.rs; command: cd transport-rust && cargo test --lib
RQ-TRN-019 WSP capability-bounds enforcement planned Target files: transport-rust/src/network/wsp/, transport-rust/tests/network/interop/; command: cd transport-rust && cargo test --lib; ticket T0-11
RQ-SEC-004, RQ-SEC-005 WTLS posture and certificate behavior planned T0-21 proves a deterministic disabled-vs-active-minimal prototype boundary only. Its record, alert, and handshake envelopes are not WAP-261 wire encodings, do not implement certificate/SIN behavior, and are not called by live waps://; existing unit fixtures remain prototype regression evidence, not requirement coverage. Exact replacement and evidence gates are WTLS-00..WTLS-10 in docs/architecture/wtls-modernization-research.md
RQ-WAE-010 URI handling baseline partial transport-rust request-validation tests in src/lib.rs plus fixture tests/fixtures/transport/uri_too_long_1025 (1024-octet boundary coverage landed; transport-profile routing assertions pending)
RQ-WAE-012 i18n baseline (UTF-8/UTF-16 + deterministic decode errors) partial textual payload decode tests in transport-rust/src/responses.rs plus mapped fixtures utf16le_textual_wml_mapped and utf16_odd_length_protocol_error_mapped; script-path parity remains pending
RQ-RMK-010 WBXML 1.3 client decoder conformance partial Pinned decoder: transport-rust/src/wbxml_decoder.rs; 42 fixed-outcome direct corpus and exhaustive WML page-zero equivalence matrix: transport-rust/tests/fixtures/transport/wbxml_wml13/conformance.json; exact parent and matrix tests; direct cross-layer parity: wml_203_reconstructed_wdp_sdu_matches_text_engine_behavior; paired WASM story: pnpm test:story WML-203. Parent rows remain partial for broader document-family limitations, mandatory prologue/full DTD validation, and release evidence.
RQ-TRX-006..008 WCMP handling covered The strict CDPD/IPv4 path uses ICMPv4 generation/handling and WDP-boundary error mapping in transport-rust/src/network/wcmp/ with direct fixture evidence in transport-rust/tests/fixtures/transport/wcmp_cdpd_icmp_profile/; the preserved general-WCMP codec and wcmp_core_mapped vectors are capability-gated to explicitly selected non-IP bearers
RQ-TRX-009 Wireless Profiled TCP optimization baseline partial Policy declaration + drift check landed in transport-rust/src/tcp_profile.rs with fixture transport-rust/tests/fixtures/transport/wireless_profiled_tcp_policy_mapped/policy_fixture.json; command: cd transport-rust && cargo test --lib tcp_profile::tests::wireless_profiled_tcp_posture_matches_declared_policy_fixture; ticket T0-12
RQ-TRX-010 WDP/WCMP over SMPP adaptation profile partial Deferred scope declaration + guardrail fixture landed in transport-rust/src/smpp_profile.rs and transport-rust/tests/fixtures/transport/smpp_adaptation_scope_mapped/scope_fixture.json; command: cd transport-rust && cargo test --lib smpp_profile::tests::smpp_adaptation_scope_matches_declared_fixture; ticket T0-13
WAP networking profile decision and migration gates covered Canonical profile decision record at docs/waves/NETWORK_PROFILE_DECISION_RECORD.md with machine-checkable gate assertions in scripts/check-networking-profile-gates.mjs and config docs/waves/network-profile-gates.json; command: node scripts/check-networking-profile-gates.mjs; ticket T0-14
WAP-191 request-policy + post metadata plumbing (go/postfield/cache-control) covered request-policy mapping tests in transport-rust/src/lib.rs + browser host external-intent request-policy propagation tests (T0-04, R0-06)
WAP-191 encoder/validation fixture lane (14.x, 15.2-15.4) planned T0-07, R0-08

External vector adoption register:

  • Ranked adopt-now vs defer guidance now lives in:
    • docs/waves/NETWORKING_VECTOR_ADOPTION_SWEEP.md
    • docs/waves/networking-vector-adoption.json
  • Validation command:
    • node scripts/check-networking-vector-adoption.mjs

Browser host (browser)

Requirement Group Status Current/Planned Test Location
Transport contract integration (fetchDeck) partial browser host Rust tests in browser/src-tauri/src/lib.rs + transport-rust unit/integration tests + explicit normalization guarantees in transport-rust/README.md
URL load state transitions partial browser frontend transport-first URL flow + session-state transitions in browser/frontend/src/main.ts and host-session stack helpers in browser/frontend/src/session-history.ts
Engine render handoff partial browser host integration-style tests browser_e2e_fetch_load_render_sequence_renders_expected_content and browser_fixture_load_navigate_and_external_intent_flow_is_deterministic
Input model determinism partial host key-sequence checks in browser/src-tauri/src/lib.rs (smoke_key_navigation_and_back_stack) + browser global key handling in browser/frontend/src/main.ts
External intent handoff loop partial runtime intent emission/clear tests in host Rust + fixture flow browser_fixture_load_navigate_and_external_intent_flow_is_deterministic + frontend follow-loop implementation in browser/frontend/src/main.ts
Event timeline/export artifacts partial frontend timeline/export implementation + export-time chronology validation in browser/frontend/src/main.ts; automated regression checks still pending
Access-control, low-memory, unknown-DTD host policy paths (12.1-12.4) planned Target files: browser/src-tauri/src/lib.rs, browser/src-tauri/tests/fixtures/integration/, engine-wasm/engine/src/runtime/; command: cd browser/src-tauri && cargo test then cd engine-wasm/engine && cargo test; ticket R0-07

Transport error taxonomy progress:

  • table-driven deterministic trigger checks in transport-rust/src/lib.rs (transport_error_code_trigger_matrix_is_deterministic)
  • documented trigger matrix in transport-rust/README.md

Cross-project checklist (current)

  1. Create a minimal contract parity check between:
    • transport-rust request/response model tests
    • browser/contracts/transport.ts
  2. Add a CI check that verifies example metadata (work-items, spec-items, testing-ac) and optional executable-flow schema/mappings for each shared host-sample fixture.
  3. Add engine fixture test harness expansion (A4-02) and map fixture IDs back to RQ-RMK-* groups.
  4. Extend the 25-row direct evidence set through nested clause, optional-capability, parity, and strict release gates (R0-01; source and mandatory first-pass audit complete).