docs/knowledge-graph/vault-wml-3/work-items/wml-305.md
Native WML timer lifecycle
Generated from canonical repository manifests. Do not edit this note directly.
Relationships
contains← [[sprints/WML-3|WML-3]]covers-family→ [[source-families/wml|wml]]owned-by→ [[owner-layers/browser|browser]]owned-by→ [[owner-layers/engine-wasm|engine-wasm]]owned-by→ [[owner-layers/qa|qa]]planned-by← [[clauses/WML-CL-GO-TIMER-THEN-DISPLAY|WML-CL-GO-TIMER-THEN-DISPLAY]]planned-by← [[clauses/WML-CL-REFRESH-TIMER-RESTART|WML-CL-REFRESH-TIMER-RESTART]]planned-by← [[clauses/WML-CL-TIMER-EVENT-TRANSITION|WML-CL-TIMER-EVENT-TRANSITION]]planned-by← [[clauses/WML-CL-TIMER-INITIAL-VALUE-PRECEDENCE|WML-CL-TIMER-INITIAL-VALUE-PRECEDENCE]]planned-by← [[clauses/WML-CL-TIMER-INVALID-VALUE|WML-CL-TIMER-INVALID-VALUE]]planned-by← [[clauses/WML-CL-TIMER-NAME-PERSISTENCE|WML-CL-TIMER-NAME-PERSISTENCE]]planned-by← [[clauses/WML-CL-TIMER-REFRESH-RESUME|WML-CL-TIMER-REFRESH-RESUME]]planned-by← [[clauses/WML-CL-TIMER-SINGLE-PER-CARD|WML-CL-TIMER-SINGLE-PER-CARD]]planned-by← [[clauses/WML-CL-TIMER-START-STOP|WML-CL-TIMER-START-STOP]]planned-by← [[clauses/WML-CL-TIMER-UNITS|WML-CL-TIMER-UNITS]]planned-by← [[scr-rows/WML-C-48|WML-C-48]]relates-to→ [[legacy-tickets/A5-03|A5-03]]relates-to→ [[legacy-tickets/W0-05|W0-05]]
Data
{
"status": "done",
"ownerLayers": [
"engine-wasm",
"browser",
"qa"
],
"sourceFamilies": [
"wml"
],
"followUpWorkItems": [
"WML-301",
"WML-304",
"WML-306"
],
"notes": [
"All 10 directly mapped WML-305 clauses have source-derived native fixtures, native/WASM boundary coverage, browser adapter coverage, and four executable host/Waves stories. The focused pack selects five parent SCR rows with zero explicit or declared-family mapping gaps.",
"The engine owns deterministic tenths-based lifecycle state and publishes only the exact next wakeup delay; browser scheduling remains one-shot boundary glue and does not move timer semantics out of native Rust.",
"WML-305 preserves completed WML-202/204/205/302/303 behavior. GET/POST construction remains WML-304, broader context navigation remains WML-301, and access/error policy remains WML-306; D0-02 and F0-01 are unchanged."
],
"specReferences": [
"WAP-191_104-WML sections 11.7, 12.5.1, and 12.5.4"
],
"existingTickets": [
"A5-03",
"W0-05"
],
"outputs": [
"Native WML timer lifecycle"
],
"acceptance": [
"Timer start, stop, resume, expiry, invalid values, ontimer dispatch, and host wakeups are deterministic and target-parity tested."
],
"evidence": [
"cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_305",
"wasm-pack test --node engine-wasm/engine",
"cargo test --manifest-path browser/src-tauri/Cargo.toml",
"pnpm --dir browser/frontend test",
"pnpm test:story WML-305",
"node scripts/wap-context-pack.mjs WML-305",
"pnpm wap-compliance:check",
"pnpm wap-graph:check"
],
"source": "docs/waves/wap-1.2.1-compliance-program.json"
}