Skip to content

Establish Chromium/AppScene visual and geometry regression gates for unchanged Code OSS #259

Description

@wieslawsoltes

Current visual-gate checkpoint — 20 September 2026

Exact merged heads: WebScene a46b62e14eb197603f7e227c1558afb9088633b0; AppScene 97702daeb9ad71341ced7226f0aa966dc77ea53c; unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c; local vscode-demo 123ad63a345dd77ceb0d75aed4c8eda244cf1288 (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.

#799/#806 is merged for the 52 touch-action declarations across 27 unchanged Code OSS files. Exact visual/geometry qualification must cover contact scrolling and cancellation on tabs, editors, split views, sliders, terminal, and Chat while proving mouse rendering remains unchanged. No exact product visual, package, hardware-contact, accessibility, lifecycle, memory, or performance execution ran.

Parent epic: #227.

Problem

The integration has focused screenshot checks for individual fixes, but it does not yet have one revisioned Chromium/AppScene oracle covering every unchanged Code OSS surface. Without a shared harness, a feature can become functional while geometry, fonts, clipping, focus, or retained-scene output regresses elsewhere.

Investigation first

Before implementation:

  1. inventory every existing screenshot, geometry, DOM-state, scene-counter, and pixel-budget probe in SceneTech/vscode-demo and WebScene;
  2. record exact gaps for editor, Welcome, Explorer, Search, Source Control, Run/Debug, Extensions, Settings, Command Palette, Problems/Output/Terminal, Markdown/webviews, Chat, notifications, menus, dialogs, and multi-panel resize;
  3. define stable upstream state, viewport, DPR, fonts, theme, locale, animation policy, profile, fixture data, and capture readiness for both Chromium and AppScene;
  4. link any reproduced engine defect to its focused issue rather than fixing it in the harness.

Proposed direction

Build a data-driven acceptance manifest that drives the unchanged Code OSS server in Chromium and the same payload in AppScene. Compare semantic DOM state and named-region geometry before bounded perceptual/pixel comparison. Retain compact crops, measurements, hashes, and failure diffs; delete superseded full traces and packages.

Dependencies and boundaries

Acceptance gates

  • Every listed surface has deterministic setup, readiness, semantic assertions, named geometry, and a justified pixel budget.
  • Light/dark, 1x/2x DPR, resize, active/inactive focus, and at least one high-contrast/forced-colors state are represented where applicable.
  • Missing fonts/resources, blank regions, stale frames, clipped controls, unexpected overlays, and wrong selected/focus state fail closed.
  • Baselines name exact VS Code, AppScene, WebScene, SDK, host OS, font, and Chromium revisions.
  • Harness overhead, retained artifacts, run time, and peak disk use have explicit budgets.
  • A final unchanged Code OSS Release passes before promotion.

Proposed PR stack

  1. inventory + manifest schema + deterministic Chromium oracle;
  2. AppScene semantic/geometry capture + readiness checks;
  3. bounded pixel/diff evidence + storage budgets;
  4. full-surface release manifest.

Validate the cumulative top of each dependent group and merge focused WebScene fixes separately from the vscode-demo consolidation PR.

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