docs/knowledge-graph/vault-wml-3/work-items/wml-309.md
Engine-owned frame and affordance contract for active WML do actions
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-DO-ACTIVE-VISIBILITY|WML-CL-DO-ACTIVE-VISIBILITY]]planned-by← [[clauses/WML-CL-DO-LABEL-BEST-EFFORT|WML-CL-DO-LABEL-BEST-EFFORT]]planned-by← [[clauses/WML-CL-DO-UNIQUE-WIDGET|WML-CL-DO-UNIQUE-WIDGET]]relates-to→ [[legacy-tickets/F0-01|F0-01]]relates-to→ [[legacy-tickets/WBP-06|WBP-06]]
Data
{
"status": "done",
"ownerLayers": [
"engine-wasm",
"browser",
"qa"
],
"sourceFamilies": [
"wml"
],
"notes": [
"This additive slice owns only the three WML-C-26 presentation residuals: active do visibility, label best effort, and unique activatable action exposure. It preserves completed WML-303 task, shadowing, BACK, and activation-order history.",
"Source-derived native, WASM, Tauri host-serialization, and executable-story evidence proves the three mapped clauses. Contract prose and generated types remain insufficient without those synchronized checks."
],
"specReferences": [
"WAP-191_104-WML section 9.7"
],
"existingTickets": [
"WBP-06",
"F0-01"
],
"outputs": [
"Engine-owned frame and affordance contract for active WML do actions"
],
"acceptance": [
"Every active non-optional do is represented once with stable activation identity and best-effort authored labelling without assuming a vendor-specific physical widget."
],
"evidence": [
"cargo test --manifest-path engine-wasm/engine/Cargo.toml wml_309",
"wasm-pack test --node engine-wasm/engine",
"cargo test --manifest-path browser/src-tauri/Cargo.toml",
"pnpm test:story WML-309",
"node scripts/wap-context-pack.mjs WML-309",
"pnpm wap-compliance:check",
"pnpm wap-graph:check"
],
"source": "docs/waves/wap-1.2.1-compliance-program.json"
}