Skip to content

Complete selector matching, specificity, and dependency invalidation coverage #237

Description

@wieslawsoltes

Current selector and invalidation 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.

Focused selector, structural mutation, pseudo-element, state, scoped selection/highlight, scrollbar state, placeholder/details and compiled-selector work recorded by this tracker is merged. The later pointer stack adds generated non-inherited touch-action without reopening selector ownership.

No focused selector branch is active. Continue source work only from a newly reduced current-main selector or invalidation defect. Authored WPT/native/performance and unchanged-product pixel/package gates remain deferred and are not claimed.

Parent tracker: #235

Problem

Dynamic applications depend on exact selector matching and invalidation across class/attribute/state changes. Existing coverage does not yet systematically prove specificity, structural/state pseudo classes, pseudo elements, combinators, ancestor dependencies, detached subtrees, and shadow-related boundaries.

Proposed work

  • Inventory selector forms used by unchanged VS Code and product-neutral WPT fixtures.
  • Add parser/matcher contracts for combinators, attribute operators, structural/state pseudo classes, pseudo elements, :is(), :where(), :not(), and specificity edge cases.
  • Compile dependency metadata needed for targeted invalidation.
  • Prove mutations invalidate the necessary descendant/ancestor/sibling scope without forcing unrelated full-tree work.
  • Add semantic counters and a bounded mutation benchmark.

Acceptance

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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