Repository navigation
Conversation
…rations css(a, b) composing classes whose styles the build knows, bound to css() in the file or exported by another module, merges their atoms per property, selector, breakpoint and layer, conditions included, instead of joining classes whose winner the stylesheet order picked. vanilla-extract style([...]) passes each composed style as its own argument, keeping a style composed again later. Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…asurable Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Contributor
Changepacks@devup-ui/wasm@1.0.83 → 1.0.84 - bindings/devup-ui-wasm/package.jsonPatch
@devup-ui/bun-plugin@1.0.22 → 1.0.23 - packages/bun-plugin/package.jsonPatch
@devup-ui/components@0.1.60 → 0.1.61 - packages/components/package.jsonPatch
@devup-ui/eslint-plugin@1.0.22 → 1.0.23 - packages/eslint-plugin/package.jsonPatch
@devup-ui/next-plugin@1.0.90 → 1.0.91 - packages/next-plugin/package.jsonPatch
@devup-ui/plugin-utils@1.0.17 → 1.0.18 - packages/plugin-utils/package.jsonPatch
@devup-ui/react@1.0.44 → 1.0.45 - packages/react/package.jsonPatch
@devup-ui/reset-css@1.0.31 → 1.0.32 - packages/reset-css/package.jsonPatch
@devup-ui/rsbuild-plugin@1.0.67 → 1.0.68 - packages/rsbuild-plugin/package.jsonPatch
@devup-ui/vite-plugin@1.0.73 → 1.0.74 - packages/vite-plugin/package.jsonPatch
@devup-ui/webpack-plugin@1.0.71 → 1.0.72 - packages/webpack-plugin/package.jsonPatch
|
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
This was referenced Oct 1, 2026
Merged
Open
No conflicted files; preserve composition changes and main ESLint checks.
No conflicted files; combine updated parent and PR changes.
No conflicted files; combine updated parent and PR changes.
Conflicted file: libs/extractor/src/lib.rs. Retain both composition helper and regression tests from PR 706 and Tailwind per-class regression tests from main 11790be; take rewritten main Tailwind implementation with Rust 1.99 assertions. bun.lock regenerated by bun install; no snapshots were hand-merged. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Keep imported style metadata and main constant class-string reads together. Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #688 (정적으로 알려진 css 합성), #682 (W47 교차 모듈 회귀 조사). main 기반 PR입니다. 이 PR의 교차 모듈 범위는 다른 파일이 css에 완전히 알려진 객체 하나를 넘겨 만든 결과까지이며, 합성된 결과를 다시 다른 모듈에서 가져오는 확장은 별도 후속 PR로 진행합니다.
요약
atomic 클래스의 승패는 class 속성의 문자열 순서가 아니라 CSS 파일 안의 선언 순서로 정해집니다. 빌드가 각 합성 조각의 선언을 알면, 뒤에 쓴 조각이 같은 속성·선택자·반응형 단계·레이어의 앞 선언을 대체하도록 합칩니다. 앞 조각만 설정한 속성은 유지합니다.
동작
W35i의 #706 이전 트리에서는 부모가 c d a b를 적용하고, 공유 CSS가 .c{color:blue}.a{color:orange} 순서여서 Chromium 계산값은 주황색이었습니다. #706의 fresh WASM으로 추출한 실제 결과는 다음과 같습니다.
두 모드 모두 Chromium의 계산값은 color rgb(0, 0, 255), padding 8px, margin 12px입니다. 부모 합성 결과에는 덮인 자식 color 클래스가 없고, 자식 자체의 CSS 선언과 자식만 지정한 padding은 유지됩니다.
새로 생기는 오류
없습니다. W47에서는 오류 처리와 허용되는 import 형태를 넓히지 않았습니다.
남는 한계
검증
2026-10-14 업데이트: main 76b1a15059d3d1b26c8ac20bb622a36cc937a7a4를 두 부모 merge commit으로 병합했습니다; 충돌 파일 libs/extractor/src/visit.rs에서 정적 합성 메타데이터 Class(value, styles)·string_class와 main의 Emotion util.is_css 분류·unused_error를 모두 유지하고, 자동 병합된 합성 오류 호출도 main의 새 (code, requirement) 형식에 맞춰 기존 unused_error로 연결했습니다; 기존 snapshot 추가 변경 없음, 추가 build error 없음, fresh WASM·root build·Rust 3132개·Bun 5905개/0 fail/100%·정상 CI-unset 훅 통과(Windows Rust 98.14%, whole-job peak 4.989 GB), 실제 Chromium 6개와 두 CSS 모드의 public WASM 출력 검증 통과.
2026-10-15 갱신: 승인된 main
a6ecc125를 실제 두 부모 merge commit03f266cd18800a0893266c4313ea283d6fc72145로 반영했습니다(부모4450b604+a6ecc125). 유일한 충돌style_values.rs는 #706의 imported known-style metadata/styles()와 main의 const 문자열texts/insert_text()/read_in_class()를 모두 유지했습니다. 새 snapshot 후보·추가 build error·runtime·dependency는 없으며, main의 숫자/Emotion 동작도 유지했습니다. 기본 stack/jobs2/6GB 감시로 Rust 4,010개·fmt/clippy, fresh WASM/root, Bun 5,909/0/함수·행 100%/lint, 두 CSS 모드의 실제 Chromium 합성 회귀 6개와 public WASM 출력이 통과했습니다. 독립 gate APPROVE 후 정상 전체 hook도 통과했고(12GB cap, 실제 peak 5.122GB, Windows Rust 98.28% 17,576/17,883은 Linux 100%와 별도로 기록), 현재 head CI38753898440결과를 확인 중입니다. #773은 이 업데이트된 #706 뒤에 적용할 별도 draft이며 draft 상태를 바꾸지 않습니다.현재 head
03f266cd18800a0893266c4313ea283d6fc72145의 CI 38753898440가 전체 SUCCESS입니다. publish·benchmark·landing-next-e2e·vinext-rsc-css-e2e가 모두 통과했고, Linux Rust 100% (12,656/12,656), Bun 5,909 pass / 0 fail 및 함수·라인 100%, preload regression 8 pass / 0 fail을 확인했습니다.