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 WML-202 covers deck metadata/context; WML-203 adds mandatory text prologue enforcement and source-derived validation for every selected WML 1.3 DTD element family in native Rust, WASM, and wml-203-dtd-family.wml; commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_203, wasm-pack test --node engine-wasm/engine, and pnpm test:story WML-203
RQ-RMK-002 task model and template/card shadowing covered WML-303 closes its 27 directly mapped action/event clauses; WML-302 closes its 20 variable/setvar clauses; WML-309 closes active-do visibility, authored-label best effort, and unique frame-bound activation through wml_309_frame.rs, native/WASM serialization parity, Tauri command tests, and wml-309-frame-affordances.flow.json. Commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_309, wasm-pack test --node engine-wasm/engine, cargo test --manifest-path browser/src-tauri/Cargo.toml, and pnpm test:story WML-309. Broader form presentation belongs to WML-308 rather than this task-model group.
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-005 variable substitution and setvar ordering covered WML-302 closes 20/20 directly mapped clauses for post-XML substitution, text/vdata/HREF locations, conversion/default/undefined/$$ behavior, validation, control commit, task snapshots, go/prev/refresh order, and resolved history/navigation boundaries. Evidence: engine-wasm/engine/src/engine_tests/wml_302_variables.rs, wasm_wml_302_variable_render_and_task_snapshot_match_native, and wml-302-variable-substitution.flow.json; commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_302, wasm-pack test --node engine-wasm/engine, and pnpm test:story WML-302. Request serialization/postfields remain WML-304.
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 covered WML-203 tests classify canonical versus alternate external DTDs, reject malformed identity combinations, preserve recognized content inside unknown alternate-DTD wrappers, require the canonical text prologue, and validate selected DTD models deterministically through native and WASM boundaries
RQ-RMK-012 WML user-agent error handling covered WML-205 native tests reject an invalid form of every declared WML element and enforce case, literal, length, table, task, event, variable, prologue, and structural errors atomically; browser tests and the production-WASM wml-205-error-recovery story prove fetch/access denial notification with invoking deck/card/focus/context/pending-intent/session/history preservation; commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_205, pnpm --dir browser/frontend test, and pnpm test:story WML-205
RQ-WAE-016, RQ-WAE-017 history and back semantics covered WML-303 adds first-active do type="prev" override precedence, noop/template masking, empty-history behavior, unchanged-card handled reporting, empty <prev/> reporting for host fallback, and failure rollback in engine-wasm/engine/src/engine_tests/wml_303_actions.rs; native/WASM/host snapshot parity is covered by the engine WASM and Tauri wrapper suites. Browser tests prove BACK remains reachable and uses explicit lastBackNavigationHandled rather than snapshot-difference inference before host fallback. A typed navigateBackToCard host boundary restores same-deck host history with onenterbackward semantics, without a forward history push or transport refetch, while native Waves scenarios prove same-deck and cross-deck host history unwind through the production shell. Four host/Waves flows in wml-303-actions-softkeys.flow.json provide stable cross-layer evidence.
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 Bounded mandatory WMLS-502 semantics are directly covered by wavescript/wap_runtime.rs, value.rs, the source-derived wap-193-operator-conversions.wmlsc.hex fixture, native/WASM parity tests, and script-link-execution.flow.json. The executor covers local calls, argument order, empty-initialized locals, implicit/explicit returns, automatic conversions, operator precedence, all local language opcode variants, deterministic invalid operations, and step/stack/call/allocation bounds. Optional integer-only behavior remains under RQ-WMLS-007, so this grouped requirement row stays partial. Commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wap_runtime, wasm-pack test --node engine-wasm/engine --features wasm-bindings, and pnpm test:story WMLS-502.
RQ-WMLS-008..010 bytecode format/verification/error model partial wavescript/wap_decoder.rs, wavescript/wap_runtime.rs, and source-pinned WAP-193 fixtures cover framing, pools, every instruction encoding, references, WAP-194 Appendix A library/function indexes and arities, reachable whole-function stack dataflow, bounded language execution, malformed input, deterministic fatal resource/integrity outcomes, non-fatal invalid-operation results, recovery, and native/WASM parity. Manual PCs explicitly select the isolated non-normative nine-opcode fixture VM. WMLS-501/W1-02 and the bounded WMLS-502 execution tranche are closed; access/URL behavior, standard-library execution, integer-only constant behavior, and the remaining chapter 12 matrix stay in WMLS-503..505. Commands: cargo test --manifest-path engine-wasm/engine/Cargo.toml wap_decoder, cargo test --manifest-path engine-wasm/engine/Cargo.toml wap_runtime, cargo test --manifest-path engine-wasm/engine/Cargo.toml registered_wap, and wasm-pack test --node engine-wasm/engine --features wasm-bindings.
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; graph: spec-processing/source-manifests/wap-1.2.1-wml-2-knowledge-graph.json; commands: node scripts/check-wap-conformance-ledger.mjs, node scripts/check-wap-selected-normative-clauses.mjs, and node scripts/check-active-compliance-facts.mjs. Selected-family, direct-graph, and evidence totals are derived from those artifacts rather than copied into this table; 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 3 narrow clauses implemented while parent rows remain 0 implemented / 32 partial / 9 missing. Direct normative links cover 22 rows, including B1 stack/reference verification and fatal stack classification. Opcode execution, access control, and remaining chapter 12 closure stay open.
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 12 Appendix A identifier clauses implemented while parent rows remain 0 implemented / 21 partial / 59 missing. Direct normative links cover the 7 identifier rows; library execution remains open and 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 43 WML examples. Its 41 adjacent companions contain 52 executable stories: 33 host-sample and 19 waves-browser. Therefore 41 examples have executable evidence and 2 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, WMLS-501 / RQ-WMLS-001, RQ-WMLS-008, RQ-WMLS-009 P1, stable host-visible script-link-success-and-navigation-continuity (host-sample) Automated verified WAP-193 named-function success, ordered trace, and subsequent fragment navigation using the pinned RETURN_ES fixture.
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-305 / WML-R-014, WML-CL-TIMER-INVALID-VALUE P1, stable host-visible zero-timer-disabled (host-sample) Automated proof that a zero-value timer is disabled and does not dispatch ontimer.
wml305TimerLifecycle A5-03, WML-305 / ten directly mapped WML timer clauses P0, stable host-visible host-refresh-resume-and-expire (host-sample); waves-refresh-resume-and-expire, waves-exit-persists-current-value (waves-browser) Automated named-value precedence, tenths, refresh stop-update-resume, exact host wakeups, one-to-zero dispatch, exit persistence, and native/WASM/Waves parity.
wml309FrameAffordances WML-309, WBP-06, F0-01 / three WML 1.3 do presentation clauses P0, stable host-visible contract host-frame-affordance-contract (host-sample) Automated exact ordered affordance projection, label fallback, optional/noop exclusion, logical control association, and frame-bound action activation.
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.
wml203DtdFamily WML-203 / selected WML 1.3 DTD structure clauses P0, stable host-visible text-deck boundary strict-selected-dtd-family-render (waves-browser) Automated production-WASM proof for mandatory prologue handling and representative render/focus behavior from a deck covering every selected WML element family.
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-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, exact vdata/literal-dollar/undefined-variable conversion proof, and native/WASM invalid-reference atomicity. Optional fieldset capability status remains not assessed.
wml204SelectSemantics R0-04, C5-05, WML-204 / WML-C-41, WML-C-43 P1, stable host-visible initialization-and-user-commit (host-sample) Automated nested-optgroup option ordering, input/select document-order initialization, empty option-value serialization, vdata conversion, HREF-default escaping, 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 8 implemented / 0 partial / 0 missing; 8/8 direct normative tests and 57/57 implemented clauses spec-processing/source-manifests/wap-1.2.1-wsp-scr.json; WSP-801 byte fixture: transport-rust/tests/fixtures/transport/wsp_connectionless_matrix/matrix_fixture.json; WSP-802 header fixture: transport-rust/tests/fixtures/transport/wsp_header_grammar_mapped/header_fixture.json; validate with cargo test --manifest-path transport-rust/Cargo.toml --test wsp_connectionless_matrix, cargo test --manifest-path transport-rust/Cargo.toml --test wsp_header_grammar, and node scripts/check-wap-transport-conformance-ledgers.mjs; detailed WML media/charset ownership remains WML-304
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 Stateless endpoint-role and direct Unitdata mapping is in transport-rust/src/wsp_connectionless_primitive_profile.rs; source-linked matrix: transport-rust/tests/fixtures/transport/wsp_connectionless_matrix/matrix_fixture.json; command: cargo test --manifest-path transport-rust/Cargo.toml --test wsp_connectionless_matrix; work item WSP-801
RQ-TRN-018 WSP assigned-number registry fidelity implemented The complete effective default-page registry, unknown policy, and code-page ranges are directly exercised by transport-rust/tests/wsp_header_grammar.rs and transport-rust/tests/fixtures/transport/wsp_header_grammar_mapped/header_fixture.json; command: cargo test --manifest-path transport-rust/Cargo.toml --test wsp_header_grammar
RQ-TRN-014 WSP encoding-version and header encoding rules implemented Direct WSP-802 evidence covers negotiation defaults/caps/cache, text fallback/retry, hop-by-hop and extension-page values, SIN 001 Expect, generic framing, registry, and PDU/session round trips; command: cargo test --manifest-path transport-rust/Cargo.toml --test wsp_header_grammar
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/matrix tests; direct cross-layer parity: wml_203_reconstructed_wdp_sdu_matches_text_engine_behavior; strict normalized-WBXML DTD parity in native/WASM WML-203 tests; paired stories: pnpm test:story WML-203. WML-203’s mandatory prologue and document-family gates are complete; generic non-WML WBXML routing and release evidence remain broader parent-row work.
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) implemented Source-derived fixtures in engine-wasm/engine/tests/fixtures/wml-306/; direct native policy tests in engine-wasm/engine/src/engine_tests/wml_306_policy.rs; Tauri parity in browser/src-tauri/src/tests/engine_wrappers.rs; bounded host history and safe-copy tests in browser/frontend/src/session-history.test.ts, browser/frontend/src/app/navigation-state.load.test.ts, and browser/frontend/src/app/browser-presenter.test.ts; executable story pnpm test:story WML-306; ticket R0-07 / WML-306.

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).