Repository navigation
Conversation
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>
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:
|
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>
Preserve imported-chain refusals and main constant class-string behavior. 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>
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, #682 (W47 후속). #706 위에 쌓은 PR이며 #706이 먼저 병합되어야 합니다. 기준 커밋은 #706의 회귀 검증 완료 head 08a04858ba1538a62b47ad79f28a3a494d75b17a입니다. GitHub base는 CI 실행을 위해 main으로 둡니다.
요약
#706은 다른 모듈이 단일 정적 객체로 만든 css 결과를 합성합니다. 그 결과를 B 모듈에서 여러 css 인자로 다시 합성하고 C에서 가져오면, B의 선언 정보가 사라져 C가 두 경쟁 클래스를 붙이는 버그를 수정합니다. 기존 모듈 해석과 Composition을 그대로 사용해 알려진 객체·css 결과를 인자 순서대로 합치며, 알 수 없는 체인은 위치 포함 오류로 거부합니다.
동작
수정 전 fresh #706 WASM에서 C는
e ${child}를 내보냈고 공유 CSS에는 .e{color:blue}.d{color:orange}가 모두 남았습니다. 실제 Chromium은 blue 대신 rgb(255, 165, 0)를 계산했습니다. 파일별 CSS도 경쟁 클래스를 모두 유지해 stylesheet 순서에 따라 결과가 정해졌습니다.수정 후 실제 fresh WASM 출력:
두 모드에서 실제 Chromium 계산값은 color rgb(0, 0, 255), padding 8px, margin 12px입니다. 공유 sheet의 blue-before-orange 순서를 그대로 두고, C의 적용 클래스에서 orange atom만 제거합니다. B와 A 자체를 렌더링하면 각자 원래 orange/red와 padding을 유지합니다. 충돌 키는 기존처럼 속성·선택자·반응형 단계·레이어이고, styleOrder는 키에 넣지 않고 살아남은 선언의 원래 값을 유지합니다.
같은 모듈의 기존 합성 규칙과 styleOrder 처리, atomic sheet의 정렬, selector specificity는 바꾸지 않습니다. 런타임 styling helper나 새 의존성을 추가하지 않습니다.
새로 생기는 오류
정적으로 선언을 알 수 없는 imported native css 합성 체인은 기존처럼 클래스를 붙이지 않고,
파일:줄:열, 문제가 된 코드와 정적 선언이 필요한 이유를 포함한 빌드 오류로 거부합니다. 상수 evaluator의 재실행으로 이 거부를 우회하지 않습니다.실제 public WASM 프로브의 오류 예시(두 CSS 모드에서 같은 정의 위치):
남는 한계
원래 정적 선언을 알 수 없는 외부 클래스와 다른 styling API의 범위는 #706 및 각 API 담당 PR의 계약을 따릅니다. 이 PR은 native css의 정적 합성 import 체인만 다룹니다.
검증
2026-10-14 업데이트: 최신 main 76b1a15059d3d1b26c8ac20bb622a36cc937a7a4를 포함한 갱신된 #706 head 4450b6041a56ccf95645cdad80827430038d8862를 두 부모 merge commit으로 병합하고 main 재병합이 already up to date임을 확인했습니다; 충돌 파일 libs/extractor/src/lib.rs에서 native css 체인 실패의 정렬·중복 제거·즉시 거부와 main의 Emotion namespace 숫자 pixelify 변환을 각각 유지했습니다; 기존 snapshot 추가 변경 없음, 추가 build error 없음(기존 정적 체인 거부 계약 유지), fresh WASM·root build·Rust 3198개·Bun 5905개/0 fail/100%·정상 CI-unset 훅 통과(Windows Rust 98.16%, whole-job peak 4.222 GB), 기존 Chromium/public WASM 26개 통과, draft 상태 유지.
2026-10-15 갱신: 갱신된 선행 #706
03f266cd18800a0893266c4313ea283d6fc72145를 실제 두 부모 merge commitb995eaecdd06c0279cd343bff84094a3e3b83988로 병합했습니다(부모e80410c8+03f266cd). 선행 head가 승인된 maina6ecc125를 이미 포함함을 ancestry로 확인했고, 충돌 없이 병합됐습니다. 기존 native chain 실패의 정렬·중복 제거·즉시 거부, semantic 소비 판정과 main 숫자/Emotion/const class-string 동작을 모두 유지했습니다. 기존 snapshot은 갱신된 #706과 동일하고 새 후보·추가 build error·runtime·dependency는 없습니다(기존 위치 포함 정적 체인 거부 계약 유지). 기본 stack/jobs2/6GB 감시로 Rust 4,076개·fmt/clippy, fresh WASM/root, Bun 5,909/0/함수·행 100%/lint, 기존 실제 Chromium/public WASM 26개와 두 모드 출력이 통과했습니다. 독립 gate APPROVE 뒤 정상 전체 hook도 통과했으며(12GB cap, peak 4.541GB, Windows Rust 98.24% 17,646/17,962은 Linux와 별도), 현재 head CI38759791729확인 중입니다. 이 PR은 draft를 그대로 유지하며 #706 뒤에 사용자가 직접 검토·병합합니다.현재 draft head
b995eaecdd06c0279cd343bff84094a3e3b83988의 CI 38759791729가 전체 SUCCESS입니다. publish·benchmark·landing-next-e2e·vinext-rsc-css-e2e가 모두 통과했고 Linux Rust 100% (12,713/12,713), Bun 5,909 pass / 0 fail 및 함수·라인 100%, preload regression 8 pass / 0 fail을 확인했습니다. CI 뒤에도 draft=true / OPEN / CLEAN임을 재확인했으며 상태 변경은 하지 않았습니다.2026-10-18 갱신: 갱신된 선행 #706
435edf61b491c9e47fe7d9df4ec6e86d2949d5f5를 두 부모 merge commit627e6c4a6c2ce4921bc1838631b5027c24734d24로 충돌 없이 병합했습니다; 그 parent가 main3ca6182f를 이미 포함하므로 불필요한 main 재병합은 하지 않았고 기존 정적 체인의 실패 정렬·중복 제거·즉시 위치 포함 거부와 semantic 소비 판정을 보존했습니다; 새 snapshot 후보·수동 변경·추가 build error·runtime·dependency는 없고 기존 알려지지 않은 imported chain 오류 계약은 유지합니다; 기본 stack/jobs=2/native 6GiB 제한에서 Rust workspace·fmt/clippy·fresh WASM/root build가 통과했고 정식 전체 hook은 12GiB 제한에서 464.0초/peak 4,147,904,512 bytes로 통과했습니다(Bun 5,930개/0 fail/함수·라인 100%); 3모듈 public WASM은 singleCss의base = "a b c"/.c{color:purple}.b{margin:12px}.a{padding:8px}와 파일별 모드의base = "a-a a-b a-c"/.a-c{color:purple}.a-b{margin:12px}.a-a{padding:8px}를 출력했고 draft 상태를 그대로 유지합니다.; 최종 head627e6c4a6c2ce4921bc1838631b5027c24734d24의 CI 39056153622는 5개 job 전체 SUCCESS이고 Linux Rust 100%(13521/13521), Bun 5930 pass/0 fail/함수·라인 100% 및 별도 preload 9 pass/0 fail을 확인했습니다.