Current validation-message checkpoint — 20 September 2026
Exact merged heads: WebScene a46b62e14eb197603f7e227c1558afb9088633b0; AppScene 97702daeb9ad71341ced7226f0aa966dc77ea53c; unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c; local vscode-demo e4b98e5470cd7856aff3dfd6843c8e125d7db933 (clean, intentionally unpushed). Open consolidations remain WebScene #76 085bba760fa571c8f08ea866dc5dd1ec27c4d376, AppScene #65 ce66ef6ceb776b3f14e129f853bfc08b5c5e608c, and vscode-demo #1; do not merge them. One-agent mode is active.
The full implementation sequence is merged: interactive reportValidity feedback, text measurement, silent-state dismissal, hidden/inert/disabled retirement, bounded wrapping, host localization ABI, optional timeout scheduling and mutation-local ownership invalidation. The later form semantics stack is also merged. No validation-message implementation branch is active.
This issue remains open for direct browser/WPT, accessibility, pixel, lifecycle, performance, memory, package and cross-platform promotion. Those gates are deferred; no new pass is claimed.
Parent: #257
CSS epic: #235
Release epic: #227
Follow-up to: #708 / #709
Remaining implementation scope
The bounded interactive reportValidity() overlay now dismisses on input/change, explicit validity mutation, success/re-report, focus transfer, detach, navigation, and teardown. Complete the remaining dynamic-state edges without adding polling, sustained frames, or broad recascade work.
- Dismiss or refresh the active message after silent programmatic value changes and relevant constraint-attribute mutations.
- Retire the overlay when its target or
ElementInternals anchor becomes hidden, inert, disabled, barred from validation, or otherwise loses focus eligibility while remaining connected.
- Add bounded line wrapping and host-localizable message formatting without unbounded text measurement or DOM insertion.
- Define a bounded optional timed dismissal policy that does not create idle frame demand and preserves screen-reader announcement timing.
- Coalesce repeated mutations into at most one message-state publication per task/checkpoint.
No Code OSS source changes and no browser/CEF/Electron/WebView dependency. Use existing form-state, focus, layout, scene, and semantic invalidation routes.
Under the implementation-first directive, focused implementation may merge after diff checks. WPT/browser pixels, accessibility, lifecycle, performance, memory, package, and cross-platform gates remain under #257/#235/#227.
Current validation-message checkpoint — 20 September 2026
Exact merged heads: WebScene
a46b62e14eb197603f7e227c1558afb9088633b0; AppScene97702daeb9ad71341ced7226f0aa966dc77ea53c; unchanged Code OSS645f29cc3176500b4b5762ba887cf2a7f0ffdf2c; local vscode-demoe4b98e5470cd7856aff3dfd6843c8e125d7db933(clean, intentionally unpushed). Open consolidations remain WebScene #76085bba760fa571c8f08ea866dc5dd1ec27c4d376, AppScene #65ce66ef6ceb776b3f14e129f853bfc08b5c5e608c, and vscode-demo #1; do not merge them. One-agent mode is active.The full implementation sequence is merged: interactive reportValidity feedback, text measurement, silent-state dismissal, hidden/inert/disabled retirement, bounded wrapping, host localization ABI, optional timeout scheduling and mutation-local ownership invalidation. The later form semantics stack is also merged. No validation-message implementation branch is active.
This issue remains open for direct browser/WPT, accessibility, pixel, lifecycle, performance, memory, package and cross-platform promotion. Those gates are deferred; no new pass is claimed.
Parent: #257
CSS epic: #235
Release epic: #227
Follow-up to: #708 / #709
Remaining implementation scope
The bounded interactive
reportValidity()overlay now dismisses on input/change, explicit validity mutation, success/re-report, focus transfer, detach, navigation, and teardown. Complete the remaining dynamic-state edges without adding polling, sustained frames, or broad recascade work.ElementInternalsanchor becomes hidden, inert, disabled, barred from validation, or otherwise loses focus eligibility while remaining connected.No Code OSS source changes and no browser/CEF/Electron/WebView dependency. Use existing form-state, focus, layout, scene, and semantic invalidation routes.
Under the implementation-first directive, focused implementation may merge after diff checks. WPT/browser pixels, accessibility, lifecycle, performance, memory, package, and cross-platform gates remain under #257/#235/#227.