Repository navigation
Add opt-in native validation-message timeout scheduling #720
Description
Active implementation checkpoint — 19 September 2026
Exact upstream heads are WebScene e3c1ba2fb2e41483a8a66166972d2a41e8f69a68 and AppScene acf42662309ea601720ed07c440cf183d7c73fe3; unchanged Code OSS is 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c. Local vscode-demo is b70edc763905f3837e398689c401651f6613d857, clean and intentionally unpushed with Actions disabled.
Focused merge stacks
- Worker/resource stack — merged: WebScene Load dynamically inserted CSS imports asynchronously #702, Complete WorkerOptions and worker load policy #703, Enforce Worker policy across redirect hops #705 and Expose fetch request headers to resource hosts #707; AppScene Expose CSS retained-effect computed values #282; local vscode-demo Add native WebGPU runtime support #10. Dynamic CSS imports, Worker options/credentials/CORS, per-hop redirect validation, and request-header ABI v5 are on main.
- Interactive validation stack — merged: WebScene Present bounded interactive reportValidity feedback #709, Fix validation message text measurement #711, Dismiss stale validation feedback after mutations #712, Bound validation message wrapping and formatting #718, Add bounded validation message formatter ABI #721, Add bounded validation message timeout #723 and Bound form ownership invalidation #724; AppScene Wake native runtime for queued WebSocket events #284; local vscode-demo Broaden WebScene compatibility coverage and release gates #11. This includes focused invalid reporting, text-measurement repair, stale-feedback dismissal, bounded wrapping, localization ABI, optional timeout scheduling, and mutation-local form/fieldset ownership invalidation.
- Form semantics stack — active: the sole implementation agent is working on WebScene Reflect form labels and ARIA validity relationships #714 from exact main
e3c1ba2f. Ordered successors are Implement CustomStateSet and :state() matching #715 CustomStateSet/:state(), Expose live form.elements collections and named access #716 liveform.elementsand named access, Persist bounded form history and autofill state #717 bounded form history/autofill, and Wire validation localization into the Flutter engine bridge #722 Flutter validation localization. These remain open. - Consolidations — open and deliberately unmerged: WebScene Add Code OSS browser and native desktop compatibility #76 is refreshed to
c7712d37019211b6ced379bd9f96629890a61d67; AppScene Stream native application video directly from file and network URLs #65 is at2d2407f5e38c4cdd3d851394a5636cc0a8ce9064; vscode-demo Typescript #1 tracks the local unpushed integration branch.
One-agent mode is enforced. No other implementation agent is active. Reusable runtime behavior continues to land in WebScene or AppScene; unchanged Code OSS remains pinned. The latest retained WebScene current-main runs are CI 35458562334 and NuGet 35458562327 for e3c1ba2f. Focused PR, previous-main, and consolidation runs are cancellation-requested; full package, WPT, performance, visual, physical-platform and VM qualification remains deferred under the fast implementation directive.
After the active form stack: finish the remaining planned CSS and product features, then physical Linux pixels, synchronization/device-loss/resize/soak/performance, visual comparison, VM/computer-use, and unchanged Code OSS Release qualification. Rich clipboard MIME, MULTIPLE/SAVE_TARGETS, recorded desktop-service/cross-platform work, workspace/Explorer, file/save, terminal, Markdown preview, accessibility, lifecycle, package-size, and no-browser promotion gates remain tracked and incomplete.
Parent: #710
Performance owner: #243
Release epic: #227
Scope
- Add an explicit host/engine option for validation-message timeout; disabled by default and numerically bounded.
- Schedule dismissal through an engine-native generation-stamped deadline source that does not own V8 callbacks and does not request frames while idle.
- Reset/cancel on re-report, correction, focus transfer, detach, navigation, and teardown; stale completions must be ignored exactly once.
- Coalesce deadlines and bound queued records across documents.
- Preserve semantic announcement long enough for assistive technology and document the relationship between visual timeout and semantic state.
No polling, sustained frame demand, Code OSS changes, or browser dependency. Diff-check-only implementation may merge; timing/accessibility/performance/package gates remain deferred.
Activity
Add bounded validation message timeout (#720) (#723)