Skip to content

Implement Code OSS starting-style entry transitions - #753

Merged
wieslawsoltes merged 1 commit into
mainfrom
feature/code-oss-starting-style-749
Sep 19, 2026
Merged

wieslawsoltes merged 1 commit into
mainfrom
feature/code-oss-starting-style-749

Conversation

@wieslawsoltes

@wieslawsoltes wieslawsoltes commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Active implementation checkpoint — 20 September 2026

Exact upstream heads are WebScene 3cc78ac28101e23f07ded947b44869277da6632d and AppScene acf42662309ea601720ed07c440cf183d7c73fe3; unchanged Code OSS is 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c. Local vscode-demo is 06b5fa4328bae547e40462cbd049b6322f8e8d8e, clean, 294 commits ahead, and intentionally unpushed with Actions disabled.

Focused merge stacks

One-agent mode is enforced. No subagent is active. Reusable runtime behavior continues to land in WebScene or AppScene; unchanged Code OSS remains pinned. The change-related #752 and #753 runs passed. Broad PR CI/NuGet plus consolidation, post-merge main and previous-main runs were canceled to release runners; no WebScene job is intentionally retained between focused PRs. Full package, performance, visual, physical-platform and VM qualification remains deferred under the fast implementation directive; focused parser/native correctness and allocation checks are complete locally.

Next: 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.

Problem

Unchanged Code OSS uses @starting-style for session-workbench entry surfaces and the phone sidebar drawer. WebScene discarded the grouping rule, could not start opacity/transform transitions from its declarations, and applied display:none immediately even when the transition requested allow-discrete.

Result

  • parses document-level and nested-context @starting-style groups while keeping them inactive in the normal cascade;
  • combines normal and starting declarations with layer, specificity, source-order, importance, selector, and media semantics;
  • admits first-render, insertion, display:none re-entry, opacity, 2D transform, and background-color values into the existing host-clock transition runtime;
  • implements per-list transition-behavior and deferred used display:none while computed style reports the target;
  • exposes CSSStartingStyleRule grouping identity and mutation;
  • releases detached transition state and frame demand, restarts on true reinsertion, and preserves generations during atomic reparenting;
  • keeps static-node cost to two lifecycle bits and allocates no animation runtime for unmatched nodes.

This is the second layer of the Code OSS typed-transition work after merged PR #752.

Closes #749.

Focused validation

  • webscene_native_engine V8-free build
  • webscene_css_parser_tests
  • manually linked and run native_web_css_service
  • tests/RuntimeCompatibility/stylesheet-cssom.test.mjs
  • capability/profile JSON parsing
  • git diff --check

The live V8 contract is included for Linux CI, where the repository V8 toolchain is available.

@wieslawsoltes
wieslawsoltes merged commit 3cc78ac into main Sep 19, 2026
3 of 16 checks passed
@wieslawsoltes
wieslawsoltes deleted the feature/code-oss-starting-style-749 branch September 19, 2026 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement @starting-style entry transitions used by Code OSS

1 participant