WAP LabsProject atlas

docs/waves/work_items.md

Waves Browser Work Items (Integration Track)

Purpose: execution board for Waves desktop browser integration work.

Status keys:

  • todo
  • in-progress
  • blocked
  • done

Current mode: active execution. Completed and in-progress tickets are tracked below.

Archive:

  • docs/waves/WORK_ITEMS_ARCHIVE.md

Baseline Assumptions

These assumptions are active for this board and should not be re-litigated in each ticket:

  1. transport-rust/ gateway-bridged behavior is functionally validated via CLI probes.
  2. protocol-native networking (strict WDP/WCMP/connectionless-WSP plus capability-gated connection-oriented WSP/WTP) remains the current high-risk implementation lane.
  3. engine-wasm/ runtime/rendering has reached a substantial milestone and remains integration-ready while networking core is completed.

Project-level priority remains multi-lane:

  1. close committed runtime/compliance tickets already in-flight (R0-*, W0-*, W1-* scoped work)
  2. execute protocol-native networking closure (T0-19, T0-18, T0-20, T0-22, T0-21)
  3. defer broad feature expansion in any lane until these bedrock closures are stable

Networking is a top-tier lane, not a replacement for all other committed bedrock work.

Architecture standards gate

For WaveScript VM/runtime tickets, enforce these implementation standards (derived from Chromium/WebKit/WHATWG/Wasm architecture references documented in docs/waves/WAVESCRIPT_VM_ARCHITECTURE.md):

  1. VM/interpreter semantics must remain in engine-wasm.
  2. Host code must only implement side-effect capabilities (dialogs, timer wake/tick, script fetch on miss).
  3. Bytecode verification gates must run before execution.
  4. Execution must be bounded (steps, stack, call depth, growth limits).
  5. Script/runtime failures must trap deterministically without host/runtime crashes.
  6. Navigation/refresh effects from script must apply at deterministic post-invocation boundaries.

Scope

Primary implementation target:

  • browser/ (Tauri host app)

Integrated dependencies:

  • engine-wasm/ (runtime + wasm contract)
  • transport-rust/ (in-process transport boundary)

Project planning links:

  • WAP planning closure checkpoint: docs/waves/WAP_1_2_1_PLANNING_BASELINE.md
  • WAP 1.2.1 / WML 1.3 compliance program: docs/waves/WAP_1_2_1_COMPLIANCE_PROGRAM.md
  • Machine-readable compliance work program: docs/waves/wap-1.2.1-compliance-program.json
  • Master prioritized sprint plan: docs/waves/SPRINT_PLAN_2026-03_MASTER_PRIORITIZED.md
  • Engine execution board: docs/wml-engine/work-items.md
  • Engine phased backlog: docs/wml-engine/ticket-plan.md
  • Maintenance/debt board: docs/waves/MAINTENANCE_WORK_ITEMS.md
  • User onboarding/help plan: docs/waves/USER_ONBOARDING_EXPERIENCE_PLAN.md
  • Transport planning/checklist: transport-rust/README.md
  • Browser planning/checklist: browser/README.md

Canonical sprint priority rule:

  1. docs/waves/wap-1.2.1-compliance-program.json is authoritative for WAP dependency order and completion claims.
  2. docs/waves/SPRINT_PLAN_2026-03_MASTER_PRIORITIZED.md resolves cross-lane priority for work already in flight and is rebased to that dependency order.
  3. Section-level lists below are lane-local or dated context and must not override either authority.

Next In Line (WAP Compliance Sync - 2026-07-25)

The selected-profile source and planning lanes are complete. The active queue must now turn the 198 selected parent rows and 761 planned clauses into direct evidence.

Current priority order is:

  1. Preserve WML-201’s completed 76-row SCR evidence projection and 174/174 direct WML-clause mapping.
  2. Preserve completed WML-202 referring-URI access, root-language, and card-context/grammar evidence, then close the residual mandatory WML-204 vdata/HREF conversion and field/control validation gate. WML-202 is complete at 30/30 direct clauses; WML-204 retains its completed 23/23 mapped slice and grouped-control evidence from #342 while its broader gate remains open.
  3. Close WML-203 mandatory prologue and DTD content-model enforcement, then extend WML-205’s direct three-clause taxonomy across remaining element errors and host fetch/access failure atomicity. Sequence validation-file edits with item 2 rather than merging competing parser patches.
  4. Preserve TRN-706’s completed schema-v2 selected-WDP replay boundary and keep the conditional WTP mapping gap explicit under additive TRN-704/TRN-705 follow-ups. TRN-707’s bounded WDP/WCMP audit is complete but intentionally remains open while its declared WTP family is inactive and unmapped.
  5. Treat WSP-801/WSP-802 as downstream connectionless-WSP foundation work until TRN-7 and WAE-6 close. Keep D0-01, frame migration, generators, and maintenance non-preemptive unless they directly unblock a strict obligation.

The schema-v2 WDP delivery -> fetch/WBXML decode -> native engine parity path and its paired WASM story now provide the cross-layer WML-203 evidence. WML-203 remains in progress for mandatory prologue enforcement, full DTD content-model validation, and broader document-family evidence.

Planning assessment:

  1. No selected Class C family needs further thematic extraction before implementation starts.
  2. Replan only when a source-derived fixture changes a dependency, a profile is activated, or implementation evidence changes a parent-row assessment.

Desktop Browser Product Lane

The Authentic Core, Modern Console direction is adopted. Current status is:

Slice Status Direct evidence / next gate
WBP-00 done The neutral 20-column Class C Reference, technical-primary audience assumption, reference hardware, 20-run startup/navigation/input baseline, and non-golden screenshots are recorded in WAVES_BROWSER_BASELINE.md.
WBP-01 done #343 shell seams plus minimum/default-window geometry, complete stable tab order, native disclosure activation, frontend tests/build, all 9 Waves stories, and contract/Tauri checks are directly evidenced.
WBP-02 done #344 added the reference-handset visual scaffold and independent integer display scaling without changing engine viewport semantics.
WBP-03 done #346 separated source, derived route, and static compatibility profile while preserving navigation commands and transport truthfulness.
WBP-04 done #347 added the Welcome/Help leaf and first tutorial deck through the ordinary local-example/engine path with executable host and Waves story coverage.
WBP-05 todo Extend host semantics and focus treatment through leaf templates/tests without duplicating the WML runtime model.

WBP-05 remains available after this gate within the exact seam documented in WAVES_BROWSER_BASELINE.md. The root shell template, global stylesheet, copy module, and generated example manifest remain single-owner integration surfaces. The same document records the seams used by landed WBP-02 through WBP-04 for future maintenance.

Next In Line (Architecture Maintenance Sprint)

Maintenance remains non-preemptive to the strict WAP execution order:

  1. Keep M1-09 queued until the strict engine/runtime work and its host boundary are stable enough for the frame migration.
  2. Keep M1-03 as a non-priority generator design/prototype unless manual contract synchronization begins blocking compliance work.
  3. Treat the boundary-module split as complete. If active feature work exposes another concrete hotspot, create a new additive maintenance ticket rather than reopening a closed item.

Completed maintenance tickets are tracked on the maintenance board and archive:

  • docs/waves/MAINTENANCE_WORK_ITEMS.md
  • docs/waves/MAINTENANCE_WORK_ITEMS_ARCHIVE.md

Reference board: docs/waves/MAINTENANCE_WORK_ITEMS.md.

Next In Line (Networking Regroup Sprint - 2026-03-05)

Priority execution order for networking MVP closure:

  1. Protocol-core spec/policy closure is complete through T0-26, including T0-21, but desktop/browser ingress is still using the legacy HTTP gateway bridge for live wap:// fetches.
  2. Immediate transport priority is a narrow native execution lane: connectionless WSP GET/REPLY over WDP/UDP, integrated behind the existing fetch contract.
  3. No broader protocol expansion should preempt active runtime/compliance and hardening lanes unless required to land T0-27..T0-29.

Sprint policy:

  1. The documented wap-net-core posture is implementation-target, not fully live browser ingress, until T0-27..T0-29 land.
  2. Keep this lane capacity-bounded alongside committed runtime/compliance lanes; do not starve in-flight R0-*/W0-* closure tickets.
  3. Defer non-bedrock feature expansion unless required to unblock committed lanes.

Source-ledger reconciliation:

  1. The exact WAP-200/WAP-202/WAP-203 row authority is docs/waves/WAP_1_2_1_TRANSPORT_SCR_LEDGERS.md plus its three machine manifests. The selected connectionless Class C path is 19 rows with an audit of 11 implemented / 8 partial / 0 missing and 11/19 direct normative tests. The nine selected WDP rows are fixture-backed under TRN-701, the adopted constrained-payload policy is closed under TRN-702, the five-row general-WCMP branch is preserved as a non-IP capability under TRN-703, and both selected ICMP-backed WCMP rows are fixture-backed under TRN-708; WSP direct normative evidence remains open.
  2. Completed thematic tickets such as T0-19, T0-20, and T0-27 are not reopened. Their existing evidence remains useful but provisional against the exact target-era rows.
  3. Exact closure is owned by compliance-program work items TRN-701, TRN-702, TRN-703, TRN-708, WSP-801, WSP-802, WSP-804, and WSP-805.
  4. SRC-005 has normalized the selected CDPD bearer citation TIAEIA-732 with an explicit licensed-payload boundary; CONF-003 has completed all 198 selected nested-clause plans, while implementation work items own direct normative fixture execution.
  5. WTP remains a conditional capability and does not gate the initial connectionless Class C path.

Next In Line (Committed Bedrock Compliance Sprint - 2026-03-04)

Committed sprint sequence:

  1. T0-04 Cache/reload and go request-policy conformance follow-up.
  2. A5-01 History entry fidelity follow-up.
  3. R0-02 Inter-card navigation process-order conformance.
  4. R0-03 History/context fidelity completion.
  5. W0-06 Bytecode verification gates follow-up.
  6. Stretch: W1-02 Bytecode structural verification closure.

Execution plan and gates:

  • docs/waves/SPRINT_PLAN_2026-03_MASTER_PRIORITIZED.md (cross-lane canonical sprint priority plan)
  • docs/waves/SPRINT_PLAN_2026-03_BEDROCK_COMPLIANCE.md

Sprint acceptance target:

  • Each committed ticket has executable acceptance fixtures mapped in docs/waves/SPEC_TEST_COVERAGE.md.
  • docs/waves/WAVENAV_PLATFORM_COMPLIANCE_ANALYSIS.md high-priority misses are reduced for history, request-policy, and bytecode verification semantics.

Frame Interface Migration Program (Planning-Ready)

This migration track defines the engine-host rendering/input boundary transition from legacy render calls to structured frame/input contracts.

Authoritative docs:

  • docs/waves/ENGINE_HOST_FRAME_MIGRATION_PLAN.md
  • docs/waves/ENGINE_HOST_FRAME_WORK_ITEMS.md

Execution policy:

  1. Run migration tickets as additive boundary changes first (F0), then renderer/input cutover (F1-F4).
  2. Preserve native/wasm parity and deterministic runtime behavior at each phase gate.
  3. Keep migration scope limited to interface and rendering boundary unless explicitly expanded.

Kickoff Guardrail (Historical)

This board was prepared before implementation kickoff. Keep ticket statuses current as execution continues.

Ticket Template

  1. ID: stable id (B0-01, B1-02, etc.)
  2. Status
  3. Depends On
  4. Files
  5. Build
  6. Tests
  7. Accept
  8. Spec: requirement IDs + section refs/SCR IDs from relevant docs/waves/*TRACEABILITY*.md docs

Spec Change Protocol

When a PR changes spec interpretation, requirement mapping, or contract behavior, update all linked artifacts in the same PR:

  1. traceability source:
  • relevant docs/waves/*TRACEABILITY*.md requirement entries (Spec, AC, Evidence)
  1. tests/fixtures:
  • docs/waves/SPEC_TEST_COVERAGE.md row(s) with concrete file targets and command(s)
  1. contract mapping:
  • docs/waves/CONTRACT_REQUIREMENTS_MAPPING.md for impacted contract surfaces
  1. requirement index:
  • docs/waves/REQUIREMENT_INDEX.md owner/lane/status row(s)
  1. coverage/meta dashboards:
  • docs/waves/SPEC_COVERAGE_DASHBOARD.md if scope/status changes
  1. source governance:
  • docs/waves/SOURCE_AUTHORITY_POLICY.md and docs/waves/OPEN_SPEC_QUESTIONS.md when precedence or unresolved policy shifts

Ticket Lifecycle Guardrail

  • Completed (done) tickets remain immutable historical records.
  • If a later compliance audit finds a gap in a completed area, add a new follow-up ticket that references the completed ticket in Depends On and notes.
  • Do not rewrite ticket history by changing completed items back to active statuses.

Example Coverage Guardrail

  • For any host-visible engine/runtime behavior change, add or update at least one example under engine-wasm/examples/source/*.wml in the same PR.
  • Regenerate engine-wasm/examples/generated/examples.ts via pnpm --dir engine-wasm/host-sample run examples:generate in the same PR.
  • New/updated examples must include metadata (work-items or spec-items, goal, and testing-ac) to keep host-sample and Waves tester verification aligned.
  • Stable acceptance paths should add an optional adjacent *.flow.json companion and verify it with pnpm test:story <work-item-or-spec-id>.

Initial Backlog (Prepared)

Historical kickoff tickets (P0-*) are archived in:

  • docs/waves/WORK_ITEMS_ARCHIVE.md

Phase B0-B3 (Archived)

Completed B0 through B3 tickets are archived in:

  • docs/waves/WORK_ITEMS_ARCHIVE.md

Phase T: Transport Contract Alignment (Prepared)

T0-04 Cache/reload and go request-policy conformance follow-up

  1. Status: done
  2. Depends On: T0-02, A5-02
  3. Files:
  • transport-rust/src/lib.rs
  • browser/contracts/transport.ts
  • engine-wasm/contracts/wml-engine.ts
  • browser/src-tauri/src/lib.rs
  1. Build:
  • Add request-policy plumbing for WML task metadata (cache-control, method/post context, referer policy).
  • Ensure cache-control=no-cache reload intent reaches transport deterministically.
  1. Tests:
  • cargo test --lib (transport-rust) covers no-cache header mapping, same-deck POST suppression, and deterministic request-policy mapping.
  • Browser navigation-state regression tests cover reload/external-intent request-policy propagation.
  • cargo test (browser/src-tauri) covers snapshot exposure/clear semantics for external navigation request-policy metadata.
  1. Accept:
  • Transport behavior reflects runtime task metadata without host-side semantic drift.
  1. Spec:
  • RQ-RMK-008, RQ-WAE-008, RQ-WAE-016
  1. Notes:
  • Completed as additive follow-up linked to normalization baseline (T0-02).
  • Landed transport request-policy contract (cacheControl, refererUrl, postContext) and runtime->host->transport external-intent metadata plumbing.

T0-05 UA capability header conformance follow-up

  1. Status: done
  2. Depends On: T0-01
  3. Files:
  • transport-rust/src/lib.rs
  • browser/src-tauri/src/lib.rs
  • browser/contracts/transport.ts
  1. Build:
  • Add profile-gated emission path for Accept, Accept-Charset, Accept-Encoding, and Accept-Language.
  • Keep defaults deterministic and explicit when capability advertising is disabled.
  1. Tests:
  • cargo test --lib (transport-rust) covers:
    • wap-baseline profile capability header emission (Accept, Accept-Charset, Accept-Encoding, Accept-Language)
    • deterministic disabled profile behavior
    • deterministic caller-header override behavior for capability headers
  • Browser transport request-policy wiring is typechecked via frontend contract consumers.
  1. Accept:
  • Capability advertisement behavior is explicit, test-backed, and contract-documented.
  1. Spec:
  • RQ-WAE-013, RQ-WAE-001
  1. Notes:
  • Added profile-gated UA capability contract field (uaCapabilityProfile) under transport request policy.
  • Browser host now sends wap-baseline capability profile by default for network transport fetches.

T0-06 URI length and charset boundary conformance follow-up

  1. Status: done
  2. Depends On: T0-02
  3. Files:
  • transport-rust/src/lib.rs
  • transport-rust/src/responses.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Add deterministic handling/tests for 1024-octet URI boundaries and UTF-8/UTF-16 encoding paths.
  1. Tests:
  • URI boundary coverage:
    • fixture transport-rust/tests/fixtures/transport/uri_too_long_1025/
    • unit tests for 1024-octet accept and >1024 reject path in transport-rust/src/lib.rs
  • Charset boundary coverage:
    • mapped fixture transport-rust/tests/fixtures/transport/utf16le_textual_wml_mapped/ for UTF-16LE decode success
    • mapped fixture transport-rust/tests/fixtures/transport/utf16_odd_length_protocol_error_mapped/ for deterministic malformed UTF-16 PROTOCOL_ERROR mapping
    • unit tests in transport-rust/src/responses.rs cover UTF-16 decode success/error code path behavior directly
  1. Accept:
  • URI/encoding behavior meets WAE baseline and remains regression-protected.
  1. Spec:
  • RQ-WAE-010, RQ-WAE-012
  1. Notes:
  • Completed transport-scope URI/charset boundary conformance follow-up with deterministic URI length guardrails and fixture-backed UTF-16 decode success/error paths.

T0-07 WBXML token/literal compatibility conformance follow-up

  1. Status: done
  2. Depends On: T0-02
  3. Files:
  • transport-rust/src/lib.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  1. Build:
  • Add compatibility checks covering WBXML literal-vs-token decoding paths and section-6.1 tokenisation expectations at boundary level.
  1. Tests:
  • Fixture matrix for literal token values, binary token values, and deterministic decode failure classification.
  1. Accept:
  • WBXML boundary behavior is conformance-backed beyond decode happy-path checks.
  1. Spec:
  • RQ-RMK-007, RQ-WAE-005
  1. Notes:
  • The WBXML SCR audit found that current tests establish isolation/error behavior but do not directly prove literal/token equivalence. The additive normative closure remains open in R0-08; this completed ticket is not reopened.

T0-08 WTP TID/MPL replay-window conformance follow-up

  1. Status: done
  2. Depends On: T0-03
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/lib.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  1. Build:
  • Add explicit responder-side TID decision policy and fixtures for cache/no-cache and duplicate-guarantee modes.
  • Enforce initiator-side TID progression/rate guardrails relative to MPL assumptions for replay-window safety.
  1. Tests:
  • Fixture matrix for Table-6/7/8-like TID decisions and out-of-order invoke handling.
  • Deterministic TID wrap/restart-window tests with trace assertions.
  1. Accept:
  • TID replay-window behavior is deterministic and explicitly profile-gated.
  1. Migration gates:
  • Done-1: responder/initiator TID replay policies are deterministic for table-driven fixture cases.
  • Done-2: out-of-order and retransmission state transitions have deterministic terminal outcomes.
  • Done-3: trace output includes transaction/timer state for replay decisions.
  1. Spec:
  • RQ-TRN-007, RQ-TRN-016

T0-09 WSP connectionless primitive-profile conformance

  1. Status: done
  2. Depends On: T0-01
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/lib.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  1. Build:
  • Make WSP mode selection explicit (connection-oriented, connectionless, or both) with deterministic primitive-usage gating.
  • Implement/validate connectionless primitive occurrence matrix behavior and deterministic invalid-primitive handling.
  1. Tests:
  • Primitive occurrence fixtures for S-Unit-MethodInvoke, S-Unit-MethodResult, S-Unit-Push.
  1. Accept:
  • Connectionless mode policy is explicit and test-backed; invalid primitive paths are deterministic.
  1. Migration gates:
  • Done-1: mode switch behavior is driven by profile and emitted in request/response trace metadata.
  • Done-2: req/ind-only matrix is enforced and fixture-asserted.
  • Done-3: invalid primitive transitions are deterministically rejected before session side effects.
  1. Spec:
  • RQ-TRN-010, RQ-TRN-012, RQ-TRN-017

T0-10 WSP assigned-number registry conformance fixtures

  1. Status: done
  2. Depends On: T0-05, T0-07
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/lib.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Add table-driven token-map fixtures for WSP PDU types, abort-reason codes, well-known parameters, and header-field names.
  • Define deterministic handling policy for unassigned/unknown registry values.
  1. Tests:
  • Decode/encode round-trip fixtures anchored to assigned-number tables.
  1. Accept:
  • Assigned-number behavior is deterministic, profile-documented, and regression-guarded.
  1. Migration gates:
  • Done-1: registry decode/encode test suite exists and is fixture-backed.
  • Done-2: unknown/unassigned value handling behavior is deterministic by profile.
  • Done-3: no parser side-effect state is introduced by registry table lookup paths.
  1. Spec:
  • RQ-TRN-014, RQ-TRN-018
  1. Notes:
  • Landed as additive registry fixture slice in transport-rust/src/wsp_registry.rs with fixture-backed round-trip/unknown-policy tests (transport-rust/tests/fixtures/transport/wsp_assigned_number_registry_mapped/registry_fixture.json).

T0-11 WSP capability-bound and negotiation-limit enforcement

  1. Status: done
  2. Depends On: T0-09
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/lib.rs
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  1. Build:
  • Enforce min/intersection semantics for negotiated capabilities.
  • Enforce negotiated SDU/message-size and outstanding-request bounds with deterministic abort/error surfacing.
  1. Tests:
  • Capability negotiation fixtures across client/server proposal mismatches and boundary exceed cases.
  1. Accept:
  • Capability negotiation and bounds behavior is deterministic and spec-linked.
  1. Migration gates:
  • Done-1: capability merge strategy is stable and documented in code-level comments or tests.
  • Done-2: bound exceed/invalid capability fixtures are deterministic and mapped to clear error codes.
  • Done-3: cap-limit behavior is tested under both connection-mode and connectionless profiles.
  1. Spec:
  • RQ-TRN-013, RQ-TRN-019
  1. Notes:
  • Additive capability policy/limit slice landed in transport-rust/src/wsp_capability.rs with fixture corpus at transport-rust/tests/fixtures/transport/wsp_capability_bounds_mapped/capability_fixture.json.
  • Current closure provides deterministic merge + bound enforcement (MRUEXCEEDED, MOREXCEEDED) for both connection-oriented and connectionless modes; deeper protocol session integration remains in later WSP lanes.

T0-12 Wireless Profiled TCP compatibility profile declaration

  1. Status: done
  2. Depends On: T0-01
  3. Owner: transport-rust, spec
  4. Files:
  • transport-rust/README.md
  • docs/waves/TRANSPORT_ADJACENT_SPEC_TRACEABILITY.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Declare explicit Waves TCP compatibility posture for profiled requirements (SACK/split/end-to-end/window-scale threshold behavior).
  • Mark each requirement as implemented, delegated, or deferred for MVP with rationale.
  1. Tests:
  • Add compatibility-policy fixtures/checks that prevent silent drift in declared TCP posture.
  1. Accept:
  • TCP optimization baseline posture is explicit and traceable.
  1. Migration gates:
  • Done-1: RQ-TRX-009 decision is explicitly categorized per behavior.
  • Done-2: no code path depends on undeclared TCP behavior assumptions.
  • Done-3: docs + ticket mapping for TCP posture is versioned and linked from TECHNICAL_ARCHITECTURE.
  1. Spec:
  • RQ-TRX-009
  1. Notes:
  • Landed as policy declaration + drift guard in transport-rust/src/tcp_profile.rs with fixture transport-rust/tests/fixtures/transport/wireless_profiled_tcp_policy_mapped/policy_fixture.json.
  • Current posture explicitly marks TCP baseline/SACK/window-scale/end-to-end as delegated to host TCP stack and split-mode as deferred pending profile gate decisions.

T0-13 SMPP adaptation scope gate and fixture baseline

  1. Status: done
  2. Depends On: T0-01
  3. Owner: transport-rust, docs
  4. Files:
  • docs/waves/TRANSPORT_ADJACENT_SPEC_TRACEABILITY.md
  • transport-rust/README.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Make a hard scope decision for WAP-159 path (in scope now vs deferred).
  • If in scope, define data_sm mapping fixtures and WCMP payload type handling checks.
  • If deferred, document non-blocking rationale and explicit exclusion guardrails.
  1. Tests:
  • Add either adapter fixtures (in-scope) or explicit policy assertions (deferred).
  1. Accept:
  • SMPP adaptation status is unambiguous and regression-guarded.
  1. Migration gates:
  • Done-1: scope decision is documented as in-scope or deferred before implementation actions.
  • Done-2: deferred paths are explicitly guarded against accidental dependency in transport-rust.
  • Done-3: in-scope branch has end-to-end payload-type fixture path before any parser/code activation.
  1. Spec:
  • RQ-TRX-010
  1. Notes:
  • Scope decision is deferred for Waves MVP and is now regression-guarded in transport-rust/src/smpp_profile.rs.
  • Fixture-backed policy assertion lives at transport-rust/tests/fixtures/transport/smpp_adaptation_scope_mapped/scope_fixture.json.

T0-14 WAP networking profile decision record and migration gates

  1. Status: done
  2. Depends On: T0-09, T0-11, T0-12, T0-13
  3. Owner: transport-rust, browser, engine
  4. Files:
  • docs/waves/TECHNICAL_ARCHITECTURE.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  • docs/waves/TRANSPORT_ADJACENT_SPEC_TRACEABILITY.md
  • transport-rust/README.md
  1. Build:
  • Publish an explicit profile decision for near-term and target-state transport:
    • current profile: gateway-bridged HTTP/WBXML normalization path
    • target profile: in-process WDP/connectionless-WSP lane with connection-oriented WSP/WTP behind explicit activation criteria
  • Define non-negotiable boundary rules so engine/browser contracts stay stable across both profiles.
  • Define migration gates that block profile promotion until required protocol fixtures pass.
  1. Tests:
  • Add profile-gate checks that assert declared mode/profile against fixture coverage state.
  • Add one end-to-end fixture lane per declared profile to prevent drift in behavior expectations.
  1. Accept:
  • Networking architecture direction is explicit, versioned, and test-gated.
  • Team can state exactly what is spec-compliant now versus planned for protocol-complete mode.
  1. Migration gates:
  • Done-1: a single canonical profile decision is written and linked to all transport docs.
  • Done-2: profile-gate checks reference T0-08..T0-13 completion criteria and required fixture coverage.
  • Done-3: profile migration path has explicit rollback criteria tied to contract stability.
  1. Spec:
  • RQ-TRN-001..019, RQ-TRX-001..010
  1. Notes:
  • Canonical decision record added at docs/waves/NETWORK_PROFILE_DECISION_RECORD.md with explicit current/target profiles, promotion gates, and rollback criteria.
  • Machine-checkable gate validation added via node scripts/check-networking-profile-gates.mjs and data file docs/waves/network-profile-gates.json.

T0-15 WAP caching model baseline and invalidation semantics

  1. Status: done
  2. Depends On: T0-04, R0-06
  3. Owner: transport-rust, browser
  4. Files:
  • transport-rust/src/lib.rs
  • browser/contracts/transport.ts
  • browser/src-tauri/src/lib.rs
  • docs/waves/WAE_SPEC_TRACEABILITY.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Implement a deterministic cache-policy baseline for deck/script/media retrieval and invalidation triggers.
  • Ensure cache-control=no-cache and task-driven reload semantics route through one shared policy model.
  1. Tests:
  • Fixture matrix for cache hit, forced reload, stale invalidation, and request-policy override cases.
  1. Accept:
  • Cache behavior is explicit, deterministic, and verifiably aligned with the declared WAP profile.
  1. Migration gates:
  • Done-1: policy model is single-source and contract-exported across transport/browser layers.
  • Done-2: cache hit/reload/invalidation fixture path is deterministic and repeatable.
  • Done-3: profile switch does not alter cache semantics without explicit migration note.
  1. Spec:
  • RQ-WAE-008, RQ-WAE-010, WML-29, section 9.5.1
  1. Notes:
  • This completed ticket established request-policy and deterministic reload plumbing. It is not full WAP-120 conformance and is not reopened.
  • Exact corrective closure remains in program item WAE-603: WAPCachingMod:MCF selects five mandatory client rows, currently audited as 0 implemented / 3 partial / 2 missing with zero direct normative tests.
  • Source authority: spec-processing/source-manifests/wap-1.2.1-caching-scr.json and docs/waves/WAP_1_2_1_CACHING_SCR_LEDGER.md.

T0-16 Spec queue canonicalization and conflict resolution follow-up

  1. Status: done
  2. Depends On: T0-14
  3. Owner: spec-processing
  4. Files:
  • spec-processing/new-source-material/
  • spec-processing/source-material/WAP-259-WDP-20010614-a.pdf
  • spec-processing/finalize-new-source-material.fish
  • docs/waves/SOURCE_MATERIAL_MASTER_AUDIT.md
  • docs/waves/SOURCE_MATERIAL_REVIEW_LEDGER.md
  • docs/waves/SPEC_COVERAGE_DASHBOARD.md
  1. Build:
  • Resolve WAP-259-WDP-20010614-a.pdf conflict variant left in queue and enforce deterministic case/variant policy.
  • Document whether conflict variant is a replacement, supersedence candidate, or legacy duplicate.
  1. Tests:
  • ./spec-processing/finalize-new-source-material.fish --dry-run reports zero unresolved conflicts for active transport spec IDs.
  • docs/waves/SOURCE_MATERIAL_REVIEW_LEDGER.md contains one row per canonical transport/security spec ID.
  1. Accept:
  • Canonical corpus has one active source material path for each spec ID and the queue only contains unresolved non-canonical items.
  1. Migration gates:
  • Done-1: no transport spec ID has multiple active canonical variants in source-material.
  • Done-2: conflict-resolution log is current and versioned with timestamped decision rationale.
  • Done-3: ticket-dependent parser/automation paths resolve to canonical IDs.
  1. Spec:
  • RQ-TRN-001, RQ-TRN-003
  1. Notes:
  • Completed: new-source WAP-259 variant was promoted after byte-comparison and manual archival of prior legacy source.
  • Archive captured at:
    • spec-processing/source-material/archive/WAP-259-WDP-20010614-a.legacy-v1.pdf
  • Conflict rationale recorded: spec-processing/source-material/WAP-259-WDP-20010614-a.pdf is canonical as of 2026-03-05, and the prior variant remains archived with explicit legacy status.

T0-17 Protocol-adjacent transport context sweep (deferred specs)

  1. Status: done
  2. Depends On: T0-14, T0-16
  3. Owner: docs, transport
  4. Files:
  • docs/waves/OUT_OF_SCOPE_DOMAIN_SPEC_REVIEW.md
  • docs/waves/TRANSPORT_ADJACENT_SPEC_TRACEABILITY.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  • docs/waves/networking-implementation-checklist.md
  1. Build:
  • Record explicit in-scope/out-of-scope policy for non-core transport-adjacent specs that can affect transport boundaries.
  • Add one-line rationale for each deferred family in transport-adjacent docs (WAP-204*, WAP-120*, WAP-213*, related messaging-cache deltas).
  • Keep this decision synchronized with T0-14 profile gates.
  1. Tests:
  • checklist validation fixtures:
    • WAP-204 remains transport-deferred; WAP-120 remains outside transport ownership and active under WAE-603
    • no hidden protocol behavior dependency introduced in transport-rust without ticket and contract update
    • command: node scripts/check-adjacent-scope-lock.mjs
  1. Accept:
  • future transport scope changes are policy-driven, explicit, and reversible.
  1. Migration gates:
  • Done-1: adjacent scope deferrals are explicit with pass/fail rationale.
  • Done-2: profile gates block adjacent-path promotion when deferral state is uncleared.
  • Done-3: checklist asset exists and references this ticket as gate source.
  1. Spec:
  • RQ-TRX-001..010 where applicable
  • RQ-TRN-001..019
  1. Notes:
  • Completed the explicit transport-scope rationale and checklist alignment for WAP-204*, WAP-120*, WAP-213*, and related cache/adjacent messaging families; later source-ledger work moved WAP-120 user-agent closure to WAE-603 without reopening this transport ticket:
    • docs/waves/OUT_OF_SCOPE_DOMAIN_SPEC_REVIEW.md
    • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
    • docs/waves/networking-implementation-checklist.md
  • Remaining acceptance is a scope-lock and verification sweep before moving to blocked-to-done criteria (T0-17).

T0-18 WTP retransmission/NACK hold-off policy extraction and implementation

  1. Status: done
  2. Depends On: T0-08, T0-14
  3. Owner: transport-rust, docs
  4. Files:
  • transport-rust/src/network/wtp/state_machine.rs
  • transport-rust/src/network/wtp/retransmission.rs
  • transport-rust/src/network/wtp/duplicate_cache.rs
  • docs/waves/wtp-state-machine.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Implement explicit WTP retransmission timer/counter behavior and bounded abort conditions.
  • Implement deterministic NACK delay and retransmission hold-off policy for SAR-enabled profiles.
  • Add a documented policy object for timer defaults and backoff strategy (profile-overridable).
  1. Tests:
  • Fixture set for timer expiry -> retransmit -> max-retry abort.
  • Fixture set for duplicate invoke/result handling with cached terminal response behavior.
  • Fixture set for NACK delay/hold-off suppressing redundant retransmissions.
  1. Accept:
  • WTP reliability policy is explicit, deterministic, and test-covered for core flows.
  • RQ-TRN-007, RQ-TRN-008, and RQ-TRN-016 map to concrete test artifacts.
  1. Migration gates:
  • Done-1: retransmission policy table is committed and linked from WTP docs.
  • Done-2: duplicate handling fixtures pass for initiator and responder roles.
  • Done-3: SAR-off and SAR-on profile behavior is explicitly gated and non-ambiguous.
  1. Spec:
  • RQ-TRN-007, RQ-TRN-008, RQ-TRN-016
  1. Notes:
  • Completed with retransmission, duplicate-cache, and NACK hold-off fixture evidence; this is the mandatory WTP policy baseline consumed by T0-22.

T0-19 WDP datagram trait + UDP port mapping baseline

  1. Status: done
  2. Depends On: T0-14, T0-16
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/network/wdp/transport_trait.rs
  • transport-rust/src/network/wdp/datagram.rs
  • transport-rust/src/network/wdp/udp_adapter.rs
  • transport-rust/src/network/wdp/sar.rs
  • docs/waves/networking-layer-definition.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Create protocol-native WDP datagram trait with strict (src_port, dst_port, payload) contract.
  • Implement UDP adapter with deterministic behavior for active WAP service ports and error mapping.
  • Define SAR handling contract boundary for deferred/non-UDP bearers without enabling them by default.
  1. Tests:
  • Port routing fixtures for 9200..9203 service behavior.
  • Datagram malformed/truncation fixtures with deterministic errors.
  • SAR reassembly fixtures in profile-enabled mode.
  1. Accept:
  • WDP trait and UDP baseline are live and do not leak gateway-only assumptions.
  • Port mapping and error paths are fixture-backed and traceable.
  1. Migration gates:
  • Done-1: datagram trait is the only connectionless-WSP ingress path in wap-net-core and the only WTP ingress when that conditional module is activated.
  • Done-2: port-mapping fixtures pass for declared profile modes.
  • Done-3: SAR behavior is explicit (off by default) and guarded by profile flags.
  1. Spec:
  • RQ-TRN-001, RQ-TRN-002, RQ-TRN-003, RQ-TRN-004
  1. Notes:
  • Completed with protocol-native datagram trait, UDP service-port mapping for 9200..9203, and SAR baseline evidence; this is the mandatory WDP ingress surface consumed by T0-22.

T0-20 WSP header registry completion and unknown-token policy

  1. Status: done
  2. Depends On: T0-10, T0-11
  3. Owner: transport-rust, docs
  4. Files:
  • transport-rust/src/network/wsp/header_registry.rs
  • transport-rust/src/network/wsp/encoder.rs
  • transport-rust/src/network/wsp/decoder.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/tests/fixtures/transport/wsp_assigned_number_registry_mapped/
  • transport-rust/tests/fixtures/transport/wsp_pdu_baseline_mapped/
  • transport-rust/tests/fixtures/transport/wsp_session_method_baseline_mapped/
  • docs/waves/wsp-pdu-reference.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Complete assigned-number header/token registry coverage used by active profile lanes.
  • Implement deterministic unknown-token and unsupported-code-page behavior.
  • Implement explicit fallback behavior for extension headers when page negotiation is unavailable.
  1. Tests:
  • Token roundtrip fixtures for core header set.
  • Unknown token/page fixtures for strict and permissive policy modes.
  • Code-page shift fixtures for multi-page header blocks.
  • Minimal Get/Post/Reply PDU and session-method classification fixtures.
  • WBXML/token-stream fixture candidates from docs/waves/WILEY_BOOK_CODE_EXAMPLES.md: WBK-FX-009, WBK-FX-010.
  1. Accept:
  • WSP encoding/decoding behavior is table-driven and reproducible.
  • Unknown token handling is documented, deterministic, and profile-aware.
  • Narrow method request/result session parsing is available for replay harness promotion.
  1. Migration gates:
  • Done-1: registry source of truth is versioned and linked to WSP docs.
  • Done-2: unsupported encoding/page behavior has deterministic status output.
  • Done-3: profile promotion is blocked when token fixture coverage is stale.
  1. Spec:
  • RQ-TRN-014, RQ-TRN-018
  1. Notes:
  • Closed on codex/t0-20-wsp-header-registry with registry, encoding-version, header-block, minimal PDU, and session-method fixture evidence; T0-22 now consumes this surface instead of raw byte parsing.

T0-21 WTLS phase boundary and minimal handshake reliability lane

  1. Status: done
  2. Depends On: T0-14
  3. Owner: transport-rust, docs
  4. Files:
  • transport-rust/src/network/wtls/record.rs
  • transport-rust/src/network/wtls/handshake.rs
  • transport-rust/src/network/wtls/alerts.rs
  • docs/waves/wtls-record-structure.md
  • docs/waves/SECURITY_BOUNDARY_TRACEABILITY.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Publish explicit phase boundary: no-op mode vs minimal active mode.
  • Implement minimal record parsing and handshake retransmission/duplicate handling policy for active mode.
  • Keep WTLS disabled by default until profile gate explicitly enables it.
  1. Tests:
  • Record parse/serialize fixture lane for active mode.
  • Handshake retransmission and duplicate-message fixtures.
  • No-op mode parity fixtures proving transport behavior stability when disabled.
  1. Accept:
  • WTLS scope is explicit, testable, and aligned with profile gates.
  • Security-path behavior cannot activate implicitly.
  1. Migration gates:
  • Done-1: WTLS mode defaults and activation criteria are documented.
  • Done-2: active-mode fixtures pass and map to security requirement IDs.
  • Done-3: no-op mode remains deterministic and contract-compatible.
  1. Spec:
  • RQ-SEC-004, RQ-SEC-005
  1. Notes:
  • Closed on codex/t0-21-wtls-boundary with an explicit disabled-vs-active-minimal prototype boundary, record/alert/handshake module split, and fixture-backed envelope plus reliability coverage.
  • The 2026-07-24 WAP-261 audit established that these envelopes are not WTLS wire encodings and are not used by live waps://. T0-21 remains complete as a phase-boundary ticket, but provides no WAP-261 conformance evidence.
  • Insecure-test labeling, release gating, exact replacement, certificate/SIN behavior, crypto, and interop are tracked as WTLS-00..WTLS-10 in docs/architecture/wtls-modernization-research.md.

T0-22 Networking interop replay harness and golden event corpus

  1. Status: done
  2. Depends On: T0-18, T0-19, T0-20
  3. Owner: transport-rust, docs
  4. Files:
  • transport-rust/tests/network/interop/
  • transport-rust/tests/interop_replay.rs
  • docs/waves/networking-implementation-checklist.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/networking-migration-readiness-checklist.md
  1. Build:
  • Add replay harness for CONNECT/GET/REPLY plus retransmit/duplicate transaction flows.
  • Normalize replay output into deterministic protocol events for assertion.
  • Gate profile promotion on replay-corpus pass status.
  1. Tests:
  • connect_session_replay
  • get_reply_replay
  • retransmit_flow
  • duplicate_tid_flow
  1. Accept:
  • Interop behavior is fixture-backed beyond unit-only coverage.
  • Migration gates can cite replay results as promotion evidence.
  1. Migration gates:
  • Done-1: replay corpus exists for all active profile paths.
  • Done-2: retransmit/duplicate lanes are included in mandatory gating checks.
  • Done-3: fixture updates require corresponding traceability/status updates.
  1. Spec:
  • RQ-TRN-005..019
  1. Notes:
  • Baseline replay harness now exists in transport-rust/tests/interop_replay.rs with schema-versioned seed corpus files under transport-rust/tests/network/interop/ covering deterministic GET/REPLY event ordering over WDP/WSP.
  • T0-24 now formalizes these replay inputs as schema-versioned seed corpus files under transport-rust/tests/network/interop/.
  • The same harness now covers a first WTP retransmission flow (timer expiry -> send, ack -> completed).
  • The same harness now covers duplicate-TID replay outcomes for terminal replay and nonterminal duplicate drop.
  • The same harness now covers minimal Connect / ConnectReply replay over connection-oriented service ports.
  • Follow-up work can deepen corpus realism, but the baseline promotion gate for CONNECT/GET/REPLY + retransmit/duplicate lanes is now present and runnable.

T0-23 External corpus ingestion spike (Kannel + Wireshark)

  1. Status: done
  2. Depends On: T0-16
  3. Owner: docs, spec-processing, transport-rust
  4. Files:
  • docs/waves/networking-external-response-triage.md
  • docs/waves/NETWORKING_EXTERNAL_SOURCE_INDEX.md
  • docs/waves/NETWORKING_GAP_MASTER.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  • spec-processing/external-source-index.json
  • spec-processing/new-source-material/external-networking/README.md
  • spec-processing/new-source-material/
  • spec-processing/source-material/WAP.pdf
  • spec-processing/source-material/vdoc.pub_the-wireless-application-protocol-wap-a-wiley-tech-brief.pdf
  • spec-processing/external-parsed/wap_emulator_spec_notes.md
  • spec-processing/README.md
  1. Build:
  • Ingest and catalog implementation-reference materials for:
    • Kannel networking sources (wtp, wsp, wdp lanes)
    • Wireshark dissectors (packet-wtp, packet-wsp, packet-wdp, packet-wtls)
  • Classify local supplemental context sources (slides/tech-brief/LLM-parsed notes) as heuristic unless they are backed by canonical WAP/OMA section anchors.
  • Produce a normalized source index with per-source trust class (normative, interop-reference, heuristic).
  • Map extracted behaviors to existing RQ-TRN-* IDs without creating new transport requirements.
  1. Tests:
  • Deterministic source-index lint/check (file present + source class + mapped requirement IDs).
  • Spot-check fixture that one behavior from each external source family maps to an existing local requirement.
  1. Accept:
  • External reference corpus is indexed and traceable without changing normative precedence.
  • Each imported behavior note cites a local requirement and implementation target lane.
  1. Migration gates:
  • Done-1: source index exists and is versioned.
  • Done-2: all imported notes are tagged interop-reference or heuristic unless backed by canonical WAP spec.
  • Done-3: no RQ-TRN-* requirement is redefined by external source text.
  1. Spec:
  • RQ-TRN-001..019
  1. Notes:
  • Research spike only; non-blocking for protocol implementation unless it uncovers a contradiction with local normative anchors.
  • Initial closure may catalog present supplemental sources and explicitly mark Kannel/Wireshark interop families as planned if no local snapshots are yet checked in.
  • Closure landed with a versioned source index, provenance fields, behavior-note mapping, and intake scaffolding; future Kannel/Wireshark artifact drops remain follow-on ingestion work rather than blockers for T0-23.

T0-24 Networking PCAP corpus spike and replay fixture seed pack

  1. Status: done
  2. Depends On: T0-23
  3. Owner: transport-rust, docs
  4. Files:
  • transport-rust/tests/network/interop/
  • transport-rust/tests/interop_replay.rs
  • transport-rust/tests/network/interop/README.md
  • docs/waves/networking-migration-readiness-checklist.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Build a curated PCAP seed corpus for:
    • CONNECT handshake path
    • GET/REPLY request-response
    • retransmit and duplicate transaction scenarios
  • Define deterministic replay-fixture schema (capture, expected events, expected transaction outcomes).
  • Document capture provenance and legal/reuse constraints.
  1. Tests:
  • Replay parser can consume seed fixtures and emit deterministic event traces.
  • At least one fixture each for connect, get/reply, retransmit, duplicate flow classes.
  1. Accept:
  • PCAP seed corpus exists and is runnable via replay harness scaffolding.
  • Fixture schema is stable and linked from transport/networking docs.
  1. Migration gates:
  • Done-1: seed corpus is committed with metadata and expected outputs.
  • Done-2: replay harness stub validates schema and event ordering.
  • Done-3: ticket T0-22 references these fixtures as required baseline inputs.
  1. Spec:
  • RQ-TRN-005..019
  1. Notes:
  • Spike output is an enabling artifact for T0-22; it does not itself satisfy protocol-core implementation gates.
  • Closure landed with schema-versioned replay seed files for Connect, Get/Reply, retransmission, and duplicate-TID flows, plus provenance/legal-reuse metadata and transaction-outcome assertions in the replay harness.

T0-25 External conformance/vector source sweep spike

  1. Status: done
  2. Depends On: T0-23
  3. Owner: docs, spec-processing
  4. Files:
  • docs/waves/NETWORKING_GAP_MASTER.md
  • docs/waves/NETWORKING_VECTOR_ADOPTION_SWEEP.md
  • docs/waves/networking-vector-adoption.json
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/TRANSPORT_SPEC_TRACEABILITY.md
  1. Build:
  • Identify publicly available WAP interoperability/conformance vectors that can be safely reused.
  • Classify candidate vectors by usefulness for current lanes (WDP, WTP, WSP, WTLS) and profile compatibility (gateway-bridged, wap-net-core).
  • Produce a recommended adoption list with effort/benefit estimates.
  1. Tests:
  • Checklist validation proving each recommended vector maps to at least one active ticket and one fixture target path.
  1. Accept:
  • Conformance/vector candidates are ranked and tied to current execution lanes.
  • No adoption recommendation conflicts with current spec precedence or scope-defer rules.
  1. Migration gates:
  • Done-1: ranked vector adoption list exists.
  • Done-2: each item maps to T0-* and RQ-* references.
  • Done-3: explicit adopt now vs defer decisions are documented.
  1. Spec:
  • RQ-TRN-001..019, RQ-SEC-004..005
  1. Notes:
  • Research spike only; adoption decisions must remain profile-gated and additive.
  • Closure landed with a ranked adoption register plus validator; Wireshark dissector source and Kannel source/release artifacts are adopt-now, while Wireshark sample captures stay defer pending explicit provenance/reuse intake.

T0-26 Local Kannel E2E readiness gate

  1. Status: done
  2. Depends On: T0-14, T0-22
  3. Owner: transport-rust, browser, docs
  4. Files:
  • transport-rust/tests/kannel_smoke.rs
  • browser/
  • docs/waves/TRANSPORT_E2E_READINESS_SCORECARD.md
  • docs/waves/NETWORK_PROFILE_DECISION_RECORD.md
  1. Build:
  • Convert current local Kannel smoke posture into an explicit scored readiness gate.
  • Strengthen transport smoke assertions beyond ok/status/content-type to expected deck/card identity.
  • Add one deterministic browser/host real-gateway smoke path.
  • Normalize failure diagnostics for Kannel + WML server runs.
  1. Tests:
  • transport-only Kannel smoke with deterministic deck assertions
  • browser/host real-gateway smoke with rendered outcome assertions
  • local/CI-compatible one-command runner
  1. Accept:
  • transport-to-kannel readiness is measurable and reviewable over time
  • browser real-gateway E2E posture is explicit rather than inferred
  • scorecard is updated whenever readiness meaningfully changes
  1. Migration gates:
  • Done-1: scorecard exists and is linked from profile docs
  • Done-2: transport-only local Kannel E2E reaches credible smoke threshold
  • Done-3: browser real-gateway lane has at least one deterministic smoke path
  1. Spec:
  • RQ-TRN-001..015, RQ-TRX-010
  1. Notes:
  • Tracking ticket only until browser/transport real-gateway E2E gates are promoted into standard verification.
  • Closure landed with explicit scorecard tracking, transport and browser ignored Kannel smokes, one-command runner diagnostics, and direct test/request-policy hardening so loopback-safe local runs do not rely on hidden host env state.

T0-27 Native connectionless WSP GET fetch path

  1. Status: done
  2. Depends On: T0-19, T0-20, T0-22, T0-26
  3. Owner: transport-rust
  4. Files:
  • transport-rust/src/fetch_runtime.rs
  • transport-rust/src/lib.rs
  • transport-rust/src/network/wdp/*
  • transport-rust/src/network/wsp/*
  • transport-rust/src/network/native_fetch.rs (new)
  • transport-rust/tests/network/interop/*
  • transport-rust/tests/fixtures/transport/*
  1. Build:
  • Add an additive transport-mode selector inside fetch_deck_in_process without changing the host contract.
  • Implement a native executor for wap:// GET requests using connectionless WSP GET/REPLY over WDP/UDP port 9200.
  • Reuse existing WDP adapter and WSP codec/session modules rather than introducing browser-side protocol logic.
  • Normalize native replies back into the existing FetchDeckResponse and engine handoff shape.
  • Keep the legacy gateway bridge as explicit fallback while the native lane is proving out.
  1. Tests:
  • unit tests for mode selection and fallback behavior
  • integration tests with a deterministic local UDP responder exercising GET -> REPLY
  • replay/fixture coverage proving encoded request and decoded reply align with the seed corpus
  1. Accept:
  • fetch_deck_in_process can load at least wap://localhost/ and wap://localhost/login through the native transport lane
  • browser/engine contracts remain unchanged
  • native path is additive and does not regress gateway-bridged fetches
  1. Migration gates:
  • Done-1: native transport mode exists and is selectable without contract drift
  • Done-2: connectionless GET request encode/send/receive/decode flow is deterministic and test-backed
  • Done-3: native path returns normalized FetchDeckResponse equivalent to existing gateway-bridge success shape for baseline decks
  1. Spec:
  • RQ-TRN-001..004, RQ-TRN-010..015, RQ-TRN-017..019
  1. Notes:
  • Scope is intentionally narrow: GET only, no POST/forms, no full connection-oriented WTP client in this slice.
  • Design goal is low-regret reuse: later POST/session support must extend this executor rather than replace it.

T0-28 Browser host native-transport mode selection + fallback

  1. Status: done
  2. Depends On: T0-27
  3. Owner: browser, transport-rust
  4. Files:
  • browser/src-tauri/src/fetch_host.rs
  • browser/src-tauri/src/waves_config.rs
  • browser/frontend/src/app/navigation-state.ts
  • browser/frontend/src/app/browser-controller.ts
  • browser/contracts/transport.ts (only if additive config becomes contract-visible)
  • docs/waves/NETWORK_PROFILE_DECISION_RECORD.md
  1. Build:
  • Introduce explicit desktop host selection between legacy gateway bridge and native protocol fetch, defaulting to the safest posture.
  • Preserve the current fetch_deck host command and response shape.
  • Ensure local-lab/private-address fetches can opt into the native lane without weakening public-destination policy for unrelated targets.
  • Retain deterministic fallback to legacy bridge when native mode is disabled or unsupported.
  1. Tests:
  • host tests for default mode, override mode, and fallback behavior
  • frontend request-policy/state tests proving network mode uses the intended transport path
  1. Accept:
  • desktop browser can deliberately run native mode for wap://localhost/ and wap://localhost/login
  • fallback behavior is explicit and visible rather than accidental
  • no browser-side WSP/WTP logic is introduced
  1. Migration gates:
  • Done-1: host-side mode selection is explicit and documented
  • Done-2: browser network mode can target native fetch path without contract breakage
  • Done-3: fallback remains available for rollback and debugging
  1. Spec:
  • RQ-TRX-010, RQ-TRN-001..015
  1. Notes:
  • Prefer env/config-first activation before adding user-facing UI controls.
  • Keep all protocol behavior in transport-rust; browser host owns only mode selection and diagnostics.

T0-29 Native Kannel GET smoke gate

  1. Status: done
  2. Depends On: T0-27, T0-28
  3. Owner: transport-rust, browser, docs
  4. Files:
  • transport-rust/tests/kannel_smoke.rs
  • browser/src-tauri/tests/kannel_smoke.rs
  • scripts/transport-wap-smoke.sh
  • docs/waves/TRANSPORT_E2E_READINESS_SCORECARD.md
  • docs/wap-test-environment/README.md
  1. Build:
  • Add a real native-transport smoke lane for baseline Kannel-served GET deck fetches.
  • Distinguish native-mode evidence from legacy gateway-bridge evidence in tests and docs.
  • Capture diagnostics that make packet-shape/interoperability failures reviewable.
  1. Tests:
  • native-mode transport smoke for root + login decks
  • browser host smoke proving render/navigation from native-mode fetch
  • one-command runner support preserving logs on failure
  1. Accept:
  • local Kannel stack can be exercised from the desktop/browser path without relying on the raw HTTP bridge to 13002
  • readiness docs clearly distinguish native vs legacy evidence
  • native smoke is strong enough to guide subsequent POST/session work
  1. Migration gates:
  • Done-1: transport native smoke against Kannel is committed and runnable
  • Done-2: browser host native smoke is committed and runnable
  • Done-3: scorecard/profile docs are updated to reflect the live ingress posture
  1. Spec:
  • RQ-TRN-001..015, RQ-TRX-010
  1. Notes:
  • This ticket is the evidence gate for promoting native desktop fetch from “experimental” to “default candidate.”
  • Completed with explicit native-only transport smoke, host-native smoke, browser render/navigation smoke, and artifact-preserving smoke runner support.

T0-30 Native WSP form POST baseline

  1. Status: todo
  2. Depends On: T0-27, T0-28, T0-29
  3. Owner: transport-rust, browser, docs
  4. Files:
  • transport-rust/src/native_fetch.rs
  • transport-rust/src/lib.rs
  • transport-rust/tests/kannel_smoke.rs
  • browser/src-tauri/src/fetch_host.rs
  • browser/src-tauri/tests/kannel_smoke.rs
  • docs/waves/SPRINT_PLAN_2026-03_MASTER_PRIORITIZED.md
  • docs/waves/TRANSPORT_E2E_READINESS_SCORECARD.md
  1. Build:
  • extend the native fetch executor to support WML form POST submission for the training environment login/register flows
  • keep the existing transport contract and host entrypoint stable while adding native POST
  • preserve gateway-bridged fallback behavior for rollback/debugging
  1. Tests:
  • native-mode transport smoke for login/register POST submission
  • browser host smoke proving native POST can submit through the host fetch command
  • browser render/navigation smoke proving returned success/error decks load correctly after native POST
  1. Accept:
  • desktop/browser can submit wap://localhost/login and wap://localhost/register forms through the native lane
  • no browser-side protocol logic is introduced
  • native POST evidence is strong enough to guide later session/connection-oriented work
  1. Migration gates:
  • Done-1: native POST transport smoke against Kannel is committed and runnable
  • Done-2: host/browser native POST smokes are committed and runnable
  • Done-3: docs distinguish native GET completion from remaining native POST work
  1. Spec:
  • RQ-TRN-001..015, RQ-TRX-010
  1. Notes:

A5-04 Minimal WML text-input interaction baseline

  1. Status: done
  2. Depends On: T0-30, A5-02
  3. Owner: engine-wasm, browser
  4. Files:
  • engine-wasm/engine/src/parser/wml_parser/*
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/engine/src/layout/*
  • engine-wasm/contracts/wml-engine.ts
  • browser/frontend/src/app/*
  • browser/src-tauri/tests/*
  1. Build:
  • promote form support from submit metadata only into real viewport-editable text inputs for the training-environment login/register decks
  • preserve deterministic focus traversal between links, inputs, and softkey actions in the constrained viewport
  • add explicit edit/commit/cancel semantics so text entry mutates runtime field state without browser-owned shadow state
  • render active field state back through the existing engine/frame contract
  1. Tests:
  • engine fixtures for focus traversal, edit commit, edit cancel, and variable update behavior
  • browser integration coverage proving typed values appear in the viewport and are used by native submit
  • manual demo coverage via a host-sample or Waves fixture deck with verification notes
  1. Accept:
  • Waves can focus, edit, and commit text values inside the viewport for wap://localhost/login and wap://localhost/register
  • committed values survive render refreshes and feed the existing native POST submission path
  1. Spec:
  • RQ-RMK-008, RQ-RMK-002, RQ-RMK-003
  1. Notes:
  • keep first scope to text-style inputs only; do not widen into select/option or mask validation edge cases in this ticket
  • Landed evidence:
    • engine focused-input lifecycle and maxlength coverage (engine-wasm/engine/src/engine_tests/navigation_metadata.rs)
    • edited input value feeding accept/postfield request payload (engine-wasm/engine/src/engine_tests/actions_timers.rs)
    • host command and render integration for focused input edit (browser/src-tauri/src/tests/tauri_commands.rs)

A5-05 WML select/option interaction baseline

  1. Status: done
  2. Depends On: A5-04
  3. Owner: engine-wasm, browser
  4. Files:
  • engine-wasm/engine/src/parser/wml_parser/*
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/engine/src/layout/*
  • engine-wasm/contracts/wml-engine.ts
  • browser/frontend/src/app/*
  1. Build:
  • add runtime and viewport interaction for select/option controls with deterministic choice cycling and commit behavior
  • preserve WML option ordering and selection state in runtime-owned form state
  1. Tests:
  • engine fixtures for default selection, cycling, commit, and cancellation
  • browser integration coverage for focus and selection rendering
  1. Accept:
  • viewport users can inspect and change select values without leaving deterministic engine-owned state
  1. Spec:
  • RQ-RMK-008, RQ-RMK-003
  1. Notes:
  • keep this ticket independent from multipart or advanced request-encoding work
  • Landed in #108 (Select Support in Forms) with engine select/option runtime support, host contract updates, browser select-edit integration, and local/manual regression coverage in docs/waves/FORM_HANDLING_LOCAL_MODE_TESTING.md.

A5-06 Form-state submit integration hardening

  1. Status: done
  2. Depends On: A5-04, A5-05, T0-30
  3. Owner: engine-wasm, browser, transport-rust
  4. Files:
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/contracts/wml-engine.ts
  • browser/contracts/transport.ts
  • browser/src-tauri/src/*
  • transport-rust/src/*
  1. Build:
  • ensure engine-owned field state is the single source of truth for postfield resolution at submit time
  • harden submit-time substitution, empty/default field handling, and deterministic request generation across local/native/browser paths
  1. Tests:
  • cross-layer fixtures covering edited field values, default field values, and deterministic postfield ordering
  • Kannel-backed browser smoke proving interactive edits change the submitted payload
  1. Accept:
  • interactive viewport edits are reflected in the exact request payload sent through the native transport
  1. Spec:
  • RQ-RMK-008, RQ-WAE-008
  1. Notes:
  • this is the hardening bridge between new engine interaction semantics and the already-landed native submit path
  • Landed across #105, #108, and #109, including edited-field payload coverage, select-aware submit flow, native Kannel browser/host smoke, and deterministic external-intent/request-policy handling.

A5-07 Browser responsiveness and startup blocking investigation spike

  1. Status: done
  2. Depends On: A5-06
  3. Owner: browser, docs
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/main.ts
  • browser/src-tauri/src/*
  • docs/waves/WORK_ITEMS.md
  • follow-up design note if the spike produces a concrete execution plan
  1. Build:
  • perform a deep investigation of UI-blocking paths during browser startup and run-mode transitions
  • trace which browser, Tauri, and engine calls are currently awaited on the critical interaction path
  • define a contract for which checks/load operations must be backgroundable versus user-blocking
  • propose a concrete remediation plan that preserves deterministic state while removing avoidable UI stalls
  1. Tests:
  • reproduce and document the current lag cases with targeted frontend timing/regression coverage where feasible
  • capture before/after measurement approach for startup and mode-switch responsiveness
  1. Accept:
  • there is a documented diagnosis for the known lag cases:
  • network-mode startup with no reachable server blocks before the unavailable notification
  • switching from local mode back to network mode waits on the fetch/probe path before the mode change fully settles
  • the spike outputs an implementation-ready follow-up plan for moving non-critical checks and loads into async/background execution
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003
  1. Notes:
  • treat this as design and diagnosis first; do not land speculative async rewrites without measured evidence
  • evaluate browser-shell architecture holistically, not just the startup probe, to identify any awaited work that degrades perceived UI responsiveness
  • Review artifact landed in docs/waves/WAVES_REVIEW_2026-03-15.md.
  • Follow-through landed in #109 and #110: background startup probing, timer/render churn reduction, stale-safe navigation, combined frame-oriented host commands, off-UI-thread fetch execution, and targeted coverage around the affected coordinators.

WAE Selected-Profile Gap Queue

WAE-607 HTTP Basic authentication closure

  1. Status: todo
  2. Depends On: CONF-002, WSP-8
  3. Owner: transport-rust, browser
  4. Files:
  • transport-rust/src/network/wsp/*
  • transport-rust/src/fetch_policy.rs
  • browser/src-tauri/src/*
  • browser/frontend/src/*
  • docs/waves/WAP_1_2_1_WAE_SCR_LEDGER.md
  1. Build:
  • Parse and surface Basic authentication challenges across the active transport profiles.
  • Define host-owned credential acquisition/storage/cancellation policy.
  • Retry with Authorization deterministically without logging credentials.
  • Preserve explicit failure and user-cancel outcomes.
  1. Tests:
  • Challenge parsing and malformed-challenge fixtures.
  • Credential retry, wrong-credential, cancellation, and retry-bound tests.
  • Browser-host tests proving secrets do not enter traces or persisted history.
  1. Accept:
  • WAESpec-C-002 has an end-to-end browser/transport flow; WSP header token registration alone cannot close the item.
  1. Spec:
  • WAESpec-C-002, WAP-190 section 5.1.2, RQ-WAE-014

Phase D: Engine Debug Connector (Planning-Ready)

Reference plan:

  • docs/waves/ENGINE_DEBUG_CONNECTOR_PLAN.md

D0-01 Debug connector contract and architecture baseline

  1. Status: todo
  2. Depends On: A5-06
  3. Owner: engine-wasm, browser, docs
  4. Files:
  • engine-wasm/contracts/wml-engine.ts
  • browser/contracts/engine.ts
  • browser/src-tauri/src/contract_types.rs
  • docs/waves/ENGINE_DEBUG_CONNECTOR_PLAN.md
  • docs/waves/CONTRACT_REQUIREMENTS_MAPPING.md
  1. Build:
  • define additive debug session contracts (open, poll, snapshot, close) and event/snapshot type surfaces
  • pin runtime/host responsibilities and determinism constraints for debug instrumentation
  • document masking/default-disable policy for sensitive fields
  1. Tests:
  • contract generation/typecheck passes for host/frontend consumers
  • docs lint/checks pass
  1. Accept:
  • debug connector interfaces are contract-first, additive, and implementation-ready
  • no existing runtime/host contract behavior is broken
  1. Spec:
  • RQ-RMK-002, RQ-RMK-008, RQ-WAE-017
  1. Notes:
  • this ticket establishes interfaces only; no runtime emission implementation in this slice

D0-02 Engine event stream and snapshot emitter

  1. Status: todo
  2. Depends On: D0-01
  3. Owner: engine-wasm
  4. Files:
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/engine/src/engine_runtime_internal/*
  • engine-wasm/engine/src/engine_public_api.rs
  • engine-wasm/engine/src/engine_tests/*
  1. Build:
  • add in-engine fixed-size debug event ring buffer with cursor and drop accounting
  • emit deterministic events at deck/nav/focus/input/action/script/timer boundaries
  • add read-only snapshot export with sensitive-field masking defaults
  1. Tests:
  • engine tests for event ordering determinism and drop accounting
  • engine tests for masked sensitive fields in snapshot/event payloads
  1. Accept:
  • engine exposes deterministic, pollable debug events and snapshots without changing runtime behavior
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003, RQ-WAE-016
  1. Notes:
  • keep emitter path allocation-light and side-effect free for non-debug execution

D0-03 Host bridge integration for attach/poll/close

  1. Status: todo
  2. Depends On: D0-01, D0-02
  3. Owner: browser, engine-wasm
  4. Files:
  • browser/src-tauri/src/engine_bridge/*
  • browser/src-tauri/src/lib.rs
  • browser/contracts/generated/*
  • browser/src-tauri/src/tests/*
  1. Build:
  • expose tauri commands for debug session lifecycle and event polling
  • map host contract types to engine debug contract surfaces
  • ensure command failures are deterministic and non-fatal to runtime state
  1. Tests:
  • tauri command tests for attach/poll/close behavior and error handling
  • contract wrapper generation/typecheck
  1. Accept:
  • running desktop host can attach and retrieve debug events/snapshots through host APIs
  1. Spec:
  • RQ-WAE-017, RQ-RMK-002
  1. Notes:
  • scope excludes UI panel; this is command/API integration only

D0-04 Browser debug panel and capture workflow

  1. Status: todo
  2. Depends On: D0-03
  3. Owner: browser
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/components/*
  • browser/frontend/src/styles.css
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • add optional dev-tools panel to start/stop debug session and stream recent events
  • include export-to-json workflow for bug reproduction artifacts
  • keep panel isolated from runtime control path (read-only)
  1. Tests:
  • frontend unit/integration tests for panel lifecycle and export behavior
  1. Accept:
  • operators can capture deterministic engine debug timelines without console scraping
  1. Spec:
  • RQ-RMK-003, RQ-WAE-017
  1. Notes:
  • if UI scope threatens active lane capacity, ship as follow-up after D0-03

Phase U: User Onboarding + Help Experience (Planning-Ready)

Reference plan:

  • docs/waves/USER_ONBOARDING_EXPERIENCE_PLAN.md

U0-01 Welcome home and first-run entrypoint

  1. Status: todo
  2. Depends On: none
  3. Owner: browser, docs
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/components/*
  • browser/frontend/src/styles.css
  • docs/waves/USER_ONBOARDING_EXPERIENCE_PLAN.md
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • add a first-run intro/home surface for Waves
  • explain what Waves is and present primary entry points (Take the tour, Try local examples, Connect to a WAP server, Open help)
  • keep the experience skippable and non-blocking for returning users
  1. Tests:
  • frontend tests for first-run visibility, dismissal, and re-entry behavior
  • content rendering checks for primary call-to-action states
  1. Accept:
  • new users are not dropped directly into an unexplained shell state
  • first screen explains product purpose and gives a safe next step
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003
  1. Notes:
  • shell-level orientation only; do not fold tutorial sequencing or hint systems into this ticket

U0-02 Guided tour and replayable concept walkthrough

  1. Status: todo
  2. Depends On: U0-01
  3. Owner: browser, docs
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/components/*
  • browser/frontend/src/styles.css
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • add a replayable guided tour for shell chrome, local vs network mode, example loading, and debug-surface discovery
  • keep the tour step-based, skippable, and resumable within a session
  1. Tests:
  • frontend tests for step progression, skip/replay behavior, and state reset
  1. Accept:
  • users can complete a short product tour without leaving Waves
  • returning users can replay the tour from Help
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003
  1. Notes:
  • do not tie this ticket to deep runtime/debug implementation work; it is a shell-level teaching layer

U0-03 Help hub and durable in-app documentation

  1. Status: todo
  2. Depends On: U0-01
  3. Owner: browser, docs
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/components/*
  • docs/waves/USER_ONBOARDING_EXPERIENCE_PLAN.md
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • add an in-app help hub with Start Here, Quickstart, Core Concepts, Troubleshooting, Developer Guide, and Reference
  • make help reachable after onboarding, not just during first launch
  1. Tests:
  • frontend tests for section navigation and stable rendering of core help content
  1. Accept:
  • users can access core help inside the product without external documentation
  • help content is versioned in-repo and can be updated with product changes
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003, RQ-WAE-017
  1. Notes:
  • keep content local-first and testable; avoid building a docs sync pipeline in the MVP slice

U0-04 Tutorial decks and task-based learning content

  1. Status: todo
  2. Depends On: U0-03
  3. Owner: browser, engine-wasm, docs
  4. Files:
  • engine-wasm/examples/source/*
  • engine-wasm/examples/generated/examples.ts
  • browser/frontend/src/app/*
  • docs/waves/FORM_HANDLING_LOCAL_MODE_TESTING.md
  1. Build:
  • add local tutorial content for common tasks (first deck, edit and submit a form, understand local vs network mode, inspect runtime state)
  • connect tutorial discovery through the welcome page and help hub
  1. Tests:
  • example generation remains green
  • frontend tests verify tutorial discovery and launch paths
  1. Accept:
  • users can learn core Waves interactions through built-in content and examples
  • tutorial content remains within normal engine/browser boundaries
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003, RQ-RMK-008
  1. Notes:
  • prefer product-native tutorial content over external-only prose

U0-05 Contextual hints and onboarding state persistence

  1. Status: todo
  2. Depends On: U0-02, U0-03
  3. Owner: browser
  4. Files:
  • browser/frontend/src/app/*
  • browser/frontend/src/components/*
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • add lightweight contextual hints for first network failure, first local example load, first edit flow, and first dev-tools open
  • persist dismiss/replay state locally with a clear reset path
  1. Tests:
  • frontend tests for trigger rules, dismissal, and persistence/reset behavior
  1. Accept:
  • contextual help appears only when relevant and remains dismissible
  • returning users are not forced through repeated onboarding
  1. Spec:
  • RQ-RMK-002, RQ-RMK-003
  1. Notes:
  • hints are additive and non-blocking; do not replace the welcome page or help hub with hint-only onboarding

Phase W: WMLScript Runtime and VM (Active)

Reference architecture:

  • docs/waves/WAVESCRIPT_VM_ARCHITECTURE.md
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md

Compliance target for this lane:

  • Implement and prove all 121 mandatory interpreter/library rows selected by WAP 1.2.1 Class C (WMLScript:MCF + WMLScriptLibs:MCF). Optional capabilities and enhancements remain separately declared.
  • Prioritize bedrock compliance closure before breadth-library expansion:
    • external-call/pragma/url invocation correctness
    • bytecode structure verification gates
    • deterministic function/local/conversion/error semantics
    • script content-type routing/handoff correctness

W0 Foundation (Archived)

Completed W0-01 through W0-04 are archived in:

  • docs/waves/WORK_ITEMS_ARCHIVE.md

W0-05 Timer/dialog integration baseline

  1. Status: done
  2. Depends On: W0-04
  3. Files:
  • engine-wasm/engine/src/wavescript/stdlib/dialogs.rs
  • engine-wasm/engine/src/wavescript/stdlib/wmlbrowser.rs
  • engine-wasm/engine/src/runtime/events.rs
  • engine-wasm/engine/src/lib.rs
  • browser/contracts/engine.ts
  • browser/frontend/src/main.ts
  • browser/src-tauri/src/*
  1. Build:
  • Add timer/event plumbing and dialog hostcall path.
  1. Tests:
  • engine-wasm/engine/src/engine_tests/actions_timers.rs (timer_expiry_invokes_script_and_publishes_dialog_in_order)
  • engine-wasm/examples/source/timer-script-dialog.wml
  • engine-wasm/examples/source/timer-script-dialog.flow.json
  • pnpm test:story W0-05
  1. Accept:
  • Timer-triggered script flow works with deterministic host/runtime behavior.
  1. Spec:
  • RQ-WMLS-022, RQ-WAE-016, RQ-WAE-017
  1. Architecture Compliance:
  • Dialog/timer features are host capability calls only.
  • Timer semantics remain runtime-owned and deterministic.
  • Host integration cannot bypass runtime error/trap handling model.
  1. Closure Boundary:
  • This closes the project baseline only. Strict WAP Dialogs library/function identifiers, interactive dialog result round-trips, and full WMLS-5 conformance remain in WMLS-504/WMLS-505 and W1-05..W1-07.

W0-06 Bytecode verification gates follow-up

  1. Status: done
  2. Depends On: W0-02
  3. Files:
  • engine-wasm/engine/src/wavescript/decoder.rs
  • engine-wasm/engine/src/wavescript/vm.rs
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  1. Build:
  • Implement structural verification gates (header/pools/index/jump-target validity) before VM execution.
  1. Tests:
  • Verification-failure fixtures for malformed pools, invalid branch targets, and out-of-range references.
  1. Accept:
  • Decoder rejects structurally invalid units before interpreter execution begins.
  1. Spec:
  • RQ-WMLS-008, RQ-WMLS-009, RQ-WMLS-010
  1. Notes:
  • Additive compliance follow-up to completed decoder skeleton (W0-02).
  • Completed with pre-execution structural gates in decoder and boundary entry validation in VM (invalid local index references, call arity/frame bounds, host arg-count bounds, and instruction-boundary entry checks).
  • This completed slice applies to the project-specific VM skeleton. It is provisional architecture evidence, not WAP-193 bytecode conformance.
  • Strict WAP header/pool/function-table/instruction verification closure remains tracked in W1-02.

W0-07 newContext + getCurrentCard semantics follow-up

  1. Status: done
  2. Depends On: W0-04
  3. Files:
  • engine-wasm/engine/src/wavescript/stdlib/wmlbrowser.rs
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/contracts/wml-engine.ts
  1. Build:
  • Implement WMLBrowser.newContext and WMLBrowser.getCurrentCard behavior per spec.
  • Ensure interaction with pending go/prev requests is deterministic and spec-aligned.
  1. Tests:
  • Invocation fixtures for context reset semantics and current-card URL formatting (relative vs absolute).
  1. Accept:
  • Missing context APIs are present and behaviorally aligned with WMLScript library semantics.
  1. Spec:
  • RQ-WMLS-019, RQ-WMLS-020
  1. Notes:
  • Additive compliance follow-up to completed var/nav subset (W0-04).
  • Completed in R0-03 closure pass with deterministic runtime + stdlib tests and host-visible fixture (wmlbrowser-context-fidelity.wml).

W0-08 External function access-control conformance follow-up

  1. Status: todo
  2. Depends On: W0-01, W0-04
  3. Files:
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/engine/src/wavescript/*
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  1. Build:
  • Enforce external-call constraints (extern visibility, access pragma checks, deterministic call failure categories).
  1. Tests:
  • Resolver fixtures for allowed/denied domain/path calls and non-extern function rejection.
  1. Accept:
  • External script invocation semantics include conformance access checks before execution.
  1. Spec:
  • RQ-WMLS-001, RQ-WMLS-002, RQ-WMLS-003

Phase W1: Bedrock Compliance Closure (Priority Lane)

W1-01 Script content-type routing and ownership boundaries

  1. Status: todo
  2. Depends On: W0-01
  3. Files:
  • transport-rust/src/lib.rs
  • browser/contracts/transport.ts
  • browser/src-tauri/src/lib.rs
  • docs/waves/CONTRACT_REQUIREMENTS_MAPPING.md
  1. Build:
  • Add explicit transport/host handling policy for:
    • text/vnd.wap.wmlscript
    • application/vnd.wap.wmlscriptc
  • Keep boundary ownership explicit: transport classification + runtime execution handoff; no host-side script semantic execution.
  1. Tests:
  • Fixture matrix for both content types and deterministic unsupported/error mappings.
  1. Accept:
  • Script media types are routed deterministically and reflected in contract/docs.
  1. Spec:
  • RQ-WMLS-011

W1-02 Bytecode structural verification (header/pools/indexes/jumps)

  1. Status: todo
  2. Depends On: W0-06
  3. Files:
  • engine-wasm/engine/src/wavescript/decoder.rs
  • engine-wasm/engine/src/wavescript/vm.rs
  • engine-wasm/engine/src/lib.rs
  1. Build:
  • Replace or front the project-specific byte stream with the effective WAP-193 compilation-unit format.
  • Implement pre-execution verification gates for WAP header, constant pool, pragma pool, function pool, instruction stream, and references.
  • Keep trap taxonomy deterministic and host-safe.
  1. Tests:
  • Source-derived valid .wmlsc fixtures plus malformed cases covering version/header fields, multi-byte encodings, section sizes, pool references, function boundaries, every mandatory instruction family, and jump targets.
  1. Accept:
  • Invalid bytecode fails before execution, with deterministic trap class.
  1. Spec:
  • RQ-WMLS-008, RQ-WMLS-009, RQ-WMLS-010

W1-03 Extern/pragma/access-control conformance

  1. Status: todo
  2. Depends On: W0-08
  3. Files:
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/engine/src/wavescript/*
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  1. Build:
  • Enforce extern visibility and pragma-based external access control (use url, use access, use meta) for external invocation paths.
  1. Tests:
  • Allowed/denied call fixtures and non-extern rejection fixtures with deterministic outcomes.
  1. Accept:
  • External invocation behavior is policy-complete and spec-linked.
  1. Spec:
  • RQ-WMLS-001, RQ-WMLS-002, RQ-WMLS-003

W1-04 Function/local/return and conversion semantics parity closure

  1. Status: todo
  2. Depends On: W0-03
  3. Files:
  • engine-wasm/engine/src/wavescript/vm.rs
  • engine-wasm/engine/src/wavescript/value.rs
  • engine-wasm/engine/src/wavescript/stdlib/*
  1. Build:
  • Close gaps against spec semantics for arity, pass-by-value, implicit return value, local initialization, and conversion behavior.
  1. Tests:
  • Deterministic conformance fixtures mapped to requirement IDs in docs/waves/SPEC_TEST_COVERAGE.md.
  1. Accept:
  • Function/call/conversion semantics are deterministic and spec-aligned for mandatory coverage scope.
  1. Spec:
  • RQ-WMLS-004, RQ-WMLS-005, RQ-WMLS-006

W1-05 SCR conformance matrix and CI guardrail for WMLScript lane

  1. Status: in-progress
  2. Depends On: W1-02, W1-03, W1-04
  3. Files:
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  • docs/waves/WAP_1_2_1_WMLSCRIPT_SCR_LEDGER.md
  • docs/waves/WAP_1_2_1_WMLSCRIPT_LIBRARIES_SCR_LEDGER.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  • spec-processing/source-manifests/wap-1.2.1-wmlscript-scr.json
  • spec-processing/source-manifests/wap-1.2.1-wmlscript-libraries-scr.json
  • scripts/check-wap-wmlscript-conformance-ledger.mjs
  • .github/workflows/*
  1. Build:
  • Maintain the machine-checkable mapping for all 112 WMLScript rows and 95 effective WMLScript Libraries rows, including source-exact WMLSSL048.
  • Apply exact Class C selection: 41 WMLScript:MCF rows and 80 WMLScriptLibs:MCF rows.
  • Fail CI when mandatory SCRs are unmapped or regress to untracked.
  1. Tests:
  • node scripts/check-wap-wmlscript-conformance-ledger.mjs
  • CI dry-run with one intentionally unmapped mandatory SCR.
  1. Accept:
  • Effective SCR source/order/status/profile mappings are machine-checked.
  • Every selected row maps to implementation status, requirements, and open work.
  • Every selected row has direct normative test evidence or an explicit release-blocking gap.
  • The validator runs in required CI and an intentional mapping regression fails the job.
  1. Spec:
  • RQ-WMLS-001..022 (mandatory subsets first)
  1. Notes:
  • Current audit is intentionally conservative:
    • WMLScript: 23 partial / 18 missing / 0 implemented;
    • Libraries: 14 partial / 66 missing / 0 implemented;
    • direct normative tests: 0.
  • Existing custom-VM tests are provisional links only. They cannot close WAP-193 binary-format or standard-library identifier rows.

W1-06 Fatal/non-fatal script error taxonomy closure

  1. Status: in-progress
  2. Depends On: W1-02, W1-04
  3. Files:
  • engine-wasm/engine/src/wavescript/vm.rs
  • engine-wasm/engine/src/wavescript/value.rs
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/contracts/wml-engine.ts
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  1. Build:
  • Implement explicit fatal vs non-fatal execution error classes and map non-fatal computational failures to invalid semantics.
  • Keep host contract deterministic: invocation-abort vs recoverable-result outcomes must be machine-checkable.
  • Progress (2026-03-02): added structured execution error_class + error_category + invocation_aborted contract fields, non-fatal mapping for computational TypeError and StackUnderflow traps to invalid, preserved deferred side-effects for non-fatal outcomes, added fatal-abort recovery coverage, and enforced explicit VmTrap class/category matrix tests across all current variants.
  • Progress (2026-07-25): corrected a spec-accuracy bug from the prior slice: WAP-193_101 12.3.1.7 classifies Stack Underflow as Fatal (“only generated if compiler generates bad code”), not Non-fatal, and the VM’s TypeError is the same “compiler generated bad code” condition. Both now classify fatal/integrity in classify_vm_trap/classify_vm_trap_category (engine_script_types.rs); scripts hitting either trap now abort invocation instead of yielding invalid. Updated the affected trace/invocation tests in engine_tests/script_runtime.rs and engine_tests/traces_public_api.rs to match, and added non_fatal_execution_outcome_contract_shape to pin the ScriptExecutionOutcome::non_fatal contract shape directly, since no current VmTrap variant reaches it. Remaining scope: no VM opcode can trigger a real chapter-12.4 Non-fatal error yet (divide-by-zero, integer/float overflow/underflow, float constant/conversion range) — those need new opcodes, which is W1-04 territory, not this ticket.
  1. Tests:
  • Conformance fixtures for arithmetic/conversion/runtime-error classes with expected fatal/non-fatal outcomes.
  • Integration fixtures proving host/runtime liveness after fatal script invocation failure.
  1. Accept:
  • Error handling behavior aligns with chapter 12 taxonomy and no longer relies on generic trap collapsing.
  1. Spec:
  • RQ-WMLS-006, RQ-WMLS-010

W1-07 W1-06 closure split and acceptance finalization

  1. Status: todo
  2. Depends On: W1-06
  3. Files:
  • docs/waves/WORK_ITEMS.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/WMLSCRIPT_SPEC_TRACEABILITY.md
  • engine-wasm/contracts/wml-engine.ts
  1. Build:
  • Split remaining W1-06 open work into explicit closure bullets (missing fixture classes, unresolved trap mappings, and host contract assertions).
  • Define objective close criteria so W1-06 can move from in-progress to done without ambiguity.
  1. Tests:
  • Coverage matrix update proving each remaining W1-06 closure bullet maps to a deterministic fixture/test lane.
  1. Accept:
  • W1-06 has a concrete closure checklist with no implicit scope remaining.
  1. Spec:
  • RQ-WMLS-006, RQ-WMLS-010

Phase R: WAP-191 Full-Stack Conformance Completion

Reference:

  • docs/waves/WML_191_FULL_STACK_COMPLIANCE_AUDIT.md
  • spec-processing/source-material/parsed-markdown/docling-cleaned/WAP-191-WML-20000219-a.cleaned.md
  • spec-processing/source-manifests/wap-1.2.1-effective-spec.json

R0-01 WML-191 conformance matrix and CI gate

  1. Status: in-progress
  2. Depends On: S0-14
  3. Files:
  • docs/waves/WML_191_FULL_STACK_COMPLIANCE_AUDIT.md
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/CONTRACT_REQUIREMENTS_MAPPING.md
  • .github/workflows/*
  1. Build:
  • Create a machine-checkable effective WML 1.3 conformance matrix (WML-C-01..59, WML-S-60..69, WML-C-70..76) with source SCR ID, status, profile disposition, and test mapping.
  • Apply WAP-191_105 after WAP-191_104; SIN 105 adds optional WML-C-76 (tabindex) and clarifies POST/multipart behavior.
  • Add CI guardrail that fails when mandatory items are unmapped.
  1. Tests:
  • CI dry-run with one intentionally unmapped mandatory ID.
  1. Accept:
  • Mandatory WML IDs cannot silently regress to unmapped/untracked state.
  1. Spec:
  • effective WAP-191 section 15.1 through 15.4 plus WAP-191_105 section 3
  1. Notes:
  • Source/status/disposition/work-item accounting is implemented in spec-processing/source-manifests/wap-1.2.1-wml-scr.json and guarded by node scripts/check-wap-conformance-ledger.mjs.
  • The exact sequence includes WML-S-60..69. The mandatory code audit records 7 implemented, 23 partial, and 17 missing rows, with validated code/test evidence for 30 rows. WML-201 directly projects all 76 rows and maps all 174 selected WML clauses without treating gaps as implementation. Nested clause, optional capability, and release-gate evidence remain, so this ticket is not done.

R0-02 Inter-card navigation process-order conformance

  1. Status: done
  2. Depends On: A5-02, T0-04
  3. Files:
  • engine-wasm/engine/src/lib.rs
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/engine/src/parser/wml_parser/actions.rs
  • transport-rust/src/lib.rs
  • browser/frontend/src/session-history.ts
  • browser/frontend/src/app/navigation-state.ts
  • browser/frontend/src/app/navigation-state.test.ts
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Implement and verify section 12.5 step-order behavior for go, prev, noop, refresh, including deterministic task-failure handling.
  • Ensure request metadata handoff (method/postfield/headers) stays aligned between runtime and transport.
  1. Tests:
  • Cross-layer fixtures for forward/back/refresh/error paths with trace assertions.
  • Seed fixture candidates from docs/waves/WILEY_BOOK_CODE_EXAMPLES.md: WBK-FX-002, WBK-FX-003, WBK-FX-004, WBK-FX-005, WBK-FX-007.
  1. Accept:
  • Runtime and host behavior match documented WML process ordering for covered flows.
  1. Spec:
  • WML-18, section 9.5, section 12.5

R0-03 History/context fidelity completion

  1. Status: done
  2. Depends On: A5-01, B2-02
  3. Files:
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/contracts/wml-engine.ts
  • browser/contracts/transport.ts
  • browser/frontend/src/session-history.ts
  1. Build:
  • Expand history entries to include request identity fields needed by WML history semantics.
  • Complete newcontext and context-reset behavior across runtime and browser history integration.
  1. Tests:
  • Deterministic back-stack fixtures with repeated URLs, mixed transitions, and context resets.
  1. Accept:
  • History and context behavior is deterministic and conforms to section 9.2 + 10.2.
  1. Spec:
  • WML-07, WML-10, WML-11, WML-13
  1. Notes:
  • Context reset semantics closed via WMLBrowser.newContext runtime effect handling and WMLBrowser.getCurrentCard API coverage.
  • Acceptance evidence includes deterministic engine tests and shared local example coverage (engine-wasm/examples/source/wmlbrowser-context-fidelity.wml).

R0-04 Parser semantic completeness for structure/task/form elements

  1. Status: in-progress
  2. Depends On: M1-07
  3. Files:
  • engine-wasm/engine/src/parser/wml_parser/*
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/engine/tests/fixtures/*
  • docs/wml-engine/work-items.md
  1. Build:
  • Complete parser/runtime coverage for head/template/access/meta, do/onevent, select/option/optgroup/input/fieldset, timer, and associated validity constraints.
  • Keep deterministic failure behavior for invalid bindings/conflicts.
  1. Tests:
  • Fixture matrix for element parse/validation and runtime effects.
  1. Accept:
  • Core WML element families in section 11 are represented or explicitly profile-gated.
  1. Spec:
  • WML-21, WML-25, WML-26, WML-33, WML-34, WML-39, WML-40, WML-41, WML-43, WML-47, WML-48, WML-52, WML-53, WML-66, WML-67, WML-69
  1. Notes:
  • head (WML-C-30) and access (WML-C-21) landed: the parser enforces ordered, unique deck-level <head>, extracts authored <access domain= path=> values, and rejects more than one access element per section 11.3.1. Ordered meta (WML-C-34, optional) records now retain name/http-equiv identity, content, forua, and scheme with deterministic EMPTY/attribute validation. access remains partial: defaults, relative-path resolution, and referring-URI policy enforcement are the cross-boundary R0-07 scope.
  • template (WML-C-47) split out to R0-12: it is spec-inseparable from card/deck task shadowing (WML-C-08, section 9.6) and requires a real named do/onevent binding model this codebase doesn’t have yet, not a small addition alongside head/access.
  • Mandatory input/select/option syntax validation for WML-C-33, WML-C-41, and WML-C-43 now rejects invalid DTD content, undeclared attributes, and invalid NMTOKEN/enum/boolean/number values deterministically. Optional fieldset and nested optgroup wrappers receive deterministic DTD-derived attribute/content validation, reject empty fieldsets and leaf optgroups, and continue processing their children in document order. Their capability declaration and grouping presentation remain unmodeled and therefore not assessed.
  • Input commit now enforces valid Basic Latin format codes, escaped literals, invalid-mask fallback, emptyok precedence, and maxlength. Rejection returns a deterministic host-visible error while preserving the prior variable and active draft for retry; password rendering conceals entered characters without replacing the real variable and preserves visible format literals.
  • Input name/value initialization now runs in document order on load, navigation, back, and refresh; input value vdata defaults are evaluated at entry, and invalid existing values are unset before valid-default fallback. Active input/select edits commit before card task execution, and invalid masked input blocks task side effects.
  • Select initialization, multiple selection, iname/ivalue precedence, option-value evaluation, serialization, onpick dispatch, and no-implicit-refresh behavior have direct runtime evidence.
  • Remaining scope: do/onevent, optional fieldset/optgroup capability declaration and grouping presentation, timer, general vdata/HREF validation and conversion outside the bounded input/select paths, and language-aware non-Basic-Latin mask repertoires. The mandatory Unicode Basic Latin input floor is implemented and directly tested.

R0-05 Renderer semantics completion (11.8/11.9)

  1. Status: todo
  2. Depends On: B5-02, B5-03, C5-01, C5-02
  3. Files:
  • engine-wasm/engine/src/layout/*
  • engine-wasm/engine/src/render/*
  • engine-wasm/engine/tests/fixtures/*
  1. Build:
  • Close remaining text/paragraph/table/pre/image semantic gaps and maintain deterministic render output.
  • Preserve logical focus semantics under wrap and inline break behavior.
  1. Tests:
  • Snapshot and semantic fixtures across viewport widths and mixed markup.
  1. Accept:
  • Renderer behavior aligns with section 11.8 and 11.9 requirements for implemented profiles.
  1. Spec:
  • WML-24, WML-32, WML-36, WML-46, WML-49, WML-50, WML-54..59, WML-68, WML-73, WML-75

R0-06 Transport/request-policy and postfield plumbing

  1. Status: todo
  2. Depends On: T0-04, R0-02
  3. Files:
  • transport-rust/src/lib.rs
  • browser/contracts/transport.ts
  • engine-wasm/contracts/wml-engine.ts
  • browser/src-tauri/src/lib.rs
  1. Build:
  • Add runtime-to-transport request-policy channel for task metadata (cache-control, referer policy, postfield payload context).
  • Preserve boundary ownership: transport executes requests, runtime defines semantic intent.
  1. Tests:
  • End-to-end request-shape fixtures for form submit and refresh/no-cache scenarios.
  1. Accept:
  • Request metadata semantics are deterministic and traceable to runtime task state.
  1. Spec:
  • WML-29, WML-37, WML-52, section 9.5.1, section 12.5

R0-07 Browser policy path: access control, low-memory, unknown-DTD behavior

  1. Status: todo
  2. Depends On: R0-04
  3. Files:
  • browser/frontend/src/*
  • browser/src-tauri/src/*
  • engine-wasm/contracts/wml-engine.ts
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Implement policy-consistent handling for deck access-control metadata, low-memory behavior toggles, and unknown-DTD handling strategy.
  • Keep enforcement at host boundary where required by architecture constraints.
  1. Tests:
  • Policy fixtures and integration tests for allow/deny paths and deterministic error/reporting behavior.
  1. Accept:
  • Browser host has explicit, test-backed policy behavior for sections 12.1-12.4.
  1. Spec:
  • WML-14, WML-15, WML-16, WML-17

R0-08 WML encoder/validation tooling and WBXML conformance fixtures

  1. Status: todo
  2. Depends On: T0-07
  3. Files:
  • transport-rust/tests/fixtures/transport/*
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/RUNTIME_MARKUP_SPEC_TRACEABILITY.md
  • spec-processing/source-manifests/wap-1.2.1-wbxml-scr.json
  1. Build:
  • Add tooling/fixtures that validate WML token table expectations, XML well-formed/validation gates, and server/client conformance constraints.
  • Close the selected WBXML-C-001, WBXML-C-010, and WBXML-C-011 rows against a pinned decoder implementation rather than permissive subprocess behavior.
  • Keep ownership explicit where behavior is authoring/tooling vs runtime-execution.
  1. Tests:
  • Fixture matrix for valid/invalid tokenization and decode compatibility classes.
  • Source-derived cases for WBXML headers, multi-byte integers, string tables, code pages, global tokens, entities, opaque/extensions, literals, default attributes, and malformed input.
  1. Accept:
  • Section 14 and 15.2/15.3/15.4 obligations are concretely represented in testable artifacts.
  • All three WBXML:MCF client rows have direct normative evidence or a deterministic explicit unsupported result; fake fixed-output decoders and either fixtures cannot satisfy the gate.
  1. Spec:
  • WML-60, WML-61, WML-62, WML-63, WML-64, WML-65, WML-70
  • RQ-RMK-010, WBXML-C-001, WBXML-C-010, WBXML-C-011

R0-09 BACK key hard-availability and do type=prev precedence

  1. Status: todo
  2. Depends On: R0-02, R0-03
  3. Files:
  • engine-wasm/engine/src/runtime/*
  • engine-wasm/engine/src/parser/wml_parser/*
  • browser/frontend/src/*
  • browser/contracts/transport.ts
  • docs/waves/WAE_SPEC_TRACEABILITY.md
  1. Build:
  • Guarantee BACK is always user-accessible and maps to deterministic history pop semantics.
  • Implement WML1 override behavior where first-in-document-order do type="prev" takes precedence for BACK behavior.
  1. Tests:
  • Fixture set for BACK availability, stack-pop behavior, and do type=prev precedence with conflicting bindings.
  1. Accept:
  • BACK semantics are always available and precedence rules are deterministic across runtime + host UI paths.
  1. Spec:
  • RQ-WAE-017, section 9.2, section 9.7

R0-10 Cross-layer acceptance fixture ledger

  1. Status: in-progress
  2. Depends On: R0-02, R0-03, R0-06, W1-06
  3. Files:
  • docs/waves/SPEC_TEST_COVERAGE.md
  • docs/waves/WORK_ITEMS.md
  • docs/wml-engine/work-items.md
  • transport-rust/tests/fixtures/transport/*
  • engine-wasm/engine/tests/fixtures/*
  • browser/frontend/src/app/*.test.ts
  1. Build:
  • Add a single ledger mapping active R0/T0/W1 tickets to concrete fixture and test assets across engine, transport, and browser.
  • Record explicit “implemented”, “partial”, and “missing” fixture lanes for each ticket acceptance criterion.
  1. Tests:
  • Manual consistency pass confirming every referenced fixture path exists and each mapped ticket has at least one deterministic test lane.
  1. Accept:
  • Ticket closure decisions can be made from one cross-layer fixture map without ad hoc test discovery.
  1. Spec:
  • Aggregated IDs from WML-191, RQ-WAE-*, RQ-TRN-*, and RQ-WMLS-* lanes linked by mapped tickets.
  1. Progress:
  • The shared WML example corpus now accepts validated executable-flow companions whose work-item and spec-item mappings must exactly match example metadata. pnpm test:story list exposes this first machine-readable host-sample ledger slice.
  • Full R0/T0/W1 cross-layer asset enumeration and implemented/partial/missing acceptance lanes remain open; this slice does not close the ticket.

R0-11 Deterministic cross-layer replay runner

  1. Status: in-progress
  2. Depends On: R0-10, T0-04, R0-03
  3. Files:
  • transport-rust/tests/fixtures/transport/*
  • engine-wasm/engine/tests/fixtures/*
  • browser/frontend/src/app/navigation-state.test.ts
  • browser/src-tauri/src/lib.rs
  • docs/waves/SPEC_TEST_COVERAGE.md
  1. Build:
  • Add a deterministic replay runner that executes representative transport -> engine -> browser flows from shared fixture inputs and validates timeline/frame/state outputs.
  • Keep this runner behavior-focused (semantic drift guard), not just type/contract shape checks.
  1. Tests:
  • One replay lane for load->fragment nav->back.
  • One replay lane for external intent follow + request-policy metadata.
  1. Accept:
  • Cross-layer behavioral regressions are detectable in one reproducible replay lane with stable fixture outputs.
  1. Spec:
  • WML-07, WML-18, RQ-WAE-008, RQ-WAE-016, RQ-TRN-004
  1. Progress:
  • pnpm test:story <id|all> now provides deterministic Playwright replay against the production WASM host sample with automatic Vite lifecycle, semantic state/trace assertions, and structured failure artifacts.
  • Representative fragment/external-intent, history-back, and timer flows are executable. The required transport-to-engine-to-native-browser replay and request-policy lane remain open; this slice does not close the ticket.

R0-12 Template element and card/deck task shadowing (WML-C-47, WML-C-08)

  1. Status: done
  2. Depends On: R0-02, R0-04
  3. Files:
  • engine-wasm/engine/src/runtime/card.rs
  • engine-wasm/engine/src/runtime/deck.rs
  • engine-wasm/engine/src/parser/wml_parser/mod.rs
  • engine-wasm/engine/src/parser/wml_parser/actions.rs
  • engine-wasm/engine/src/parser/wml_parser/tests.rs
  • docs/waves/WAP_1_2_1_WML_SCR_LEDGER.md
  • spec-processing/source-manifests/wap-1.2.1-wml-scr.json
  • spec-processing/source-manifests/wap-1.2.1-selected-normative-clauses.json
  1. Build:
  • Introduce a named do[name]/onevent[type] binding model (the current Card struct only has four special-cased single actions: accept, onenterforward, onenterbackward, ontimer) so deck-level (template) and card-level bindings can be represented independently.
  • Parse <template> at deck level (do/onevent children) per section 11.4.
  • Implement card/deck task shadowing per section 9.6: a card-level binding of a given name/type overrides (“shadows”) a deck-level binding of the same name/type; a shadowing card-level binding that binds noop masks the event entirely (no side effects on either the card- or deck-level binding); an unshadowed deck-level binding stays active for cards that don’t override it; an unshadowed binding that itself binds noop is also masked.
  1. Tests:
  • Fixture matrix covering: card overrides deck binding; card shadows deck binding with noop (fully masked); deck-level binding stays active when not shadowed; unshadowed noop binding (masked, no shadowing partner) - matching the three-card <do> example in section 9.6.
  1. Accept:
  • WML-C-47 (template) and WML-C-08 (card/deck task shadowing) have direct code/test evidence, and the compliance ledger reflects it: obligation status in wap-1.2.1-wml-scr.json, parent-status mirrors in wap-1.2.1-selected-normative-clauses.json, and the drift-guard snapshots in scripts/check-wap-conformance-ledger.mjs/scripts/check-requirement-status-drift.mjs, following the same update pattern R0-04’s head/access slice used.
  1. Spec:
  • WML-08, WML-47, section 9.6, section 9.7, section 11.4, section 11.5.1
  1. Notes:
  • Split out of R0-04’s “parser semantic completeness” scope: template/shadowing turned out to need a real named-binding model and merge algorithm, not a small addition alongside head/access.
  • WML-C-08 (shadowing) is formally covered by R0-02, which is done - per AGENT_STANDARDS.md’s backlog lifecycle policy, R0-02’s status is not reopened for this. This ticket is the scoped corrective follow-up for a gap the newer clause-level ledger (CONF-003) found in R0-02’s original coverage, not a reversal of R0-02’s completion.
  1. Progress:
  • Added ordered, independent card/template do[name] and onevent[type] bindings in the shared Rust deck model, including effective-name matching, cross-syntax intrinsic precedence, and inactive noop masking.
  • Added deterministic parser rejection for duplicate templates, misplaced/invalid template content, duplicate effective do names, and conflicting intrinsic bindings.
  • Added native parser/runtime tests, a WASM boundary parity test, and executable wml-202-template-shadowing.wml + .flow.json evidence (pnpm test:story WML-202).
  • Direct evidence closes the original 14 mapped WML-202 root/head/access, template, and task-shadowing clauses. The additive C5-03 closure supplies the remaining 16 access-policy, root-language, card-grammar/context, and newcontext clauses without rewriting this completed ticket’s history. Optional WML-C-34/WML-C-72 behavior remains optional-not-assessed until the capability pass.

Phase S (Archived)

Completed S0 and S1 source-material audit tickets are archived in:

  • docs/waves/WORK_ITEMS_ARCHIVE.md