Skip to content

Bound form and fieldset structural validity invalidation #713

Description

@wieslawsoltes

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

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: #257
CSS epic: #235
Release epic: #227

Gap

Moving controls between forms/fieldsets, toggling disabled fieldsets and legends, or changing form-owner ancestry can change validity and :valid/:invalid matches without changing the control itself. Complete bounded ancestor/owner invalidation without whole-document recascade.

Scope

  • Track form/fieldset/legend ownership dependencies and dirty only affected controls plus aggregate ancestors.
  • Handle insertion, removal, reparenting, form attribute/id changes, disabled fieldset/first-legend changes, and form-associated custom elements.
  • Coalesce one structural mutation batch into bounded style/layout/semantic publications.
  • Preserve radio-group and submission aggregation behavior already merged.

No polling, full-tree rescans per mutation, sustained frames, or Code OSS changes. Diff-check-only implementation is allowed under the current fast directive; browser/WPT/performance/package gates remain deferred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions