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>
…JSX spreads win Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…led order and JSX element className Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…uate shouldForwardProp at build time Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ring Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #691 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… and conditional styles Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…h Emotion Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ed parameters Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…e build compiles Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…mpiles Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…s3901/w24-types-rest
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 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
|
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #684 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
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 #684 (W24: TOOL-17, JSX-13, TOOL-07, W26/W33 타입 후속)
#738(
fix/types-match-build, #730 위의 스택)와 #735(fix/eslint-alias-rules, #733 포함)를 포함합니다. base는 Linux CI 검증을 위해main이며, 이 선행 스택이 먼저 병합되어야 합니다. 18개 dead CSS 이름의 타입은 #759의 빌드 계약을 반영하므로 #759도 먼저 병합되어야 합니다.#712는 작업 시작 시 OPEN이어서 지시대로 main을 추가 병합하지 않았고 TOOL-15는 제외했습니다. #758의
createThemeContract타입 후속은 반영하되 그 컴파일러 변경을 병합하지 않았습니다. #715(#758에 포함)는 attrs의 style 객체를 attribute text로 바꾸므로 이 PR과 #758 중 나중에 병합되는 쪽이 attrs 타입을 조정해야 합니다. #756과 이 PR도 styleOrder 코드가 겹치므로 나중에 병합하는 쪽에서 런타임 오류와 새 정적 값 계약을 함께 보존해야 합니다.요약
초기 hook 통과 커밋으로 PR을 연 뒤, 아래 항목을 다섯 논리 커밋으로 추가했습니다. 각 커밋의 lint/tarpaulin/Bun 훅을 통과했고, 검사한 디스크 트리와 stage한 전체 파일을 일치시켰습니다.
when/env처럼 이 base에 없는 API는 추가하지 않습니다.동작
항목별 base 확인
Vite/Next/Webpack/Rsbuild/Bun은 생성 시 같은 normalizer를 호출합니다. Next의 production cache 재사용보다 먼저 검증합니다. camelCase와 kebab-case, 기존
py등의 대상은 순서대로 정규화하며 custom property 이름은 대소문자를 보존합니다. Rust/WASM을 직접 사용하는 등록 경계도 잘못된 target을 거부하며 이전 registry를 유지합니다.정수 Number의
100.0,1e2,+'1\n',+'0x10'는 각각100/100/1/16으로 허용합니다. plain 문자열'100.0','1e2','1\n'는 거부합니다. 조건부 JSX/jsx-runtime order의 각 정적 branch도 같은 계약을 따릅니다. 내부0과 unlayered255는 명시적인 사용자 order로 허용하지 않습니다.StyleX의 class-string 합성도 실제 WASM으로 확인하여 props/attrs input에 허용했습니다. raw CSS 객체와 opaque StyleXStyles를 혼동하지 않고 외부 class input을 별도 타입으로 표현합니다. defineConsts의 number/boolean은 문자열 결과이며, flat 변수의 조건 객체와 부분 테마 override를 지원합니다.
새로 생기는 오류
devup-ui option shorthands["bgx"][0]: shorthand "bgx" cannot use "backgroundColour" at build time: its targets must be supported CSS properties, built-in aliases or custom properties.남는 한계
검증
최종 head:
d69f519392346c5b32fccf7af2fd4911b698d924. Linux CI 37351319043는 success입니다. publish/landing-next-e2e/vinext-rsc-css-e2e/benchmark 모두 성공, Rust 100.00% (11614/11614), Bun 6060 pass / 0 fail / aggregate 함수·라인100%, Codecov 업로드 성공입니다. 기존 Vite 개별 파일99.76% 표시와 LSP 제약은 별도로 남기며 CI gate와 새 줄 검증은 통과했습니다. 수정 후 Oracle delta gate는 APPROVE이며 추가 수정 요청 없음. 여섯 커밋 모두 전체 훅 통과, 작업 트리 깨끗함.이전 37343113128은 Rust coverage99.99% (11610/11611)에서 유일한 fallback 한 줄 때문에 실패했습니다. runtime member/call이 정적 값으로 오인되지 않는 실제 회귀로 해당 경로를 검증하며 제외 설정은 추가하지 않습니다. 최종 gate 검토에서 Emotion css prop의 중첩 css() 검증 우회와 metadata 숫자의 px 변환도 발견해
d69f5193에서 수정했습니다. 새 JSX/Emotion jsx-runtime·배열 합성·위치·유효 layer 집중 회귀20개, 재빌드 WASM QA, Rust1.99 clippy와 전체 훅을 통과했습니다.cargo fmt --all, Rust 1.99 strict clippy 통과.cargo test --workspace: 2,229개 통과 / 0 실패 (CSS558, allocation1, WASM36, extractor1483, integration3, sheet147, doctest1). 새 snapshot 변경 없음.WASM 재빌드와 루트 패키지 빌드 통과.
bun test: 6,052개 통과 / 0 실패 / 함수·라인 coverage100%.bun lint: 오류0, 기반의 forwardRef/use-prefix 경고2개만 유지.빌드한 dist를 별도 소비자 node_modules에 복사하여 React19 strict 검사를 통과했습니다. suppression 없는 부정 fixture의 실제 diagnostic은 target typo TS2820, 잘못된 order/dead prop TS2769, raw StyleX 객체 TS2353, numeric contract placeholder TS2322이며 의도한 줄만 실패했습니다.
다섯 커밋 모두 훅 통과:
11e3f1cc,72781be4,d7e7c631,809f8e52,89317347. 각 commit 당시 다른 변경은 고유 label/hash stash로 보관한 뒤 그 해시만 복원했습니다. 다른 worker의 stash를 적용·삭제하지 않았습니다. 최종 작업 트리는 깨끗합니다.source 타입 테스트: React의 전체 test:types, plugin-utils shorthand test:types 통과. 새 부정 타입 검사는 suppression 없는 assignability proof입니다.
모든 adapter 생성 경계의 집중 테스트4684개 통과; 최종 root suite와 재빌드된 WASM 확인은 아래 최종 결과로 대체합니다.
공유 style-order fixture를 lint와 extractor가 함께 읽고, 위치/원래 코드/원인/수정 방법을 검사합니다. JSX/jsx-runtime/css/styled/keyframes 경로를 비교합니다.
base WASM의 실제 비교: css/styled 조건부 order는
.a{color:blue}.b{color:green}, JSX/jsx-runtime은@layer o1과@layer o2를 생성. StyleX 두 호출은--a/--a,b/b를 반환하고.b{animation-duration:1s}.b{animation-duration:2s}를 출력합니다. root/subpath import는 create/props 호출을 그대로 남깁니다.수정 후 실제 public WASM 출력
같은 오류를 jsx-runtime/css/styled/keyframes 경로에서도 실제로 확인했습니다. Emotion css prop의 중첩 css()도
emotion-order-jsx.tsx:2:67및emotion-order-runtime.tsx:2:73에서 원래'100px'오류를 보고하고, 유효한+'0x10'은@layer o16{.b{color:red}}를 생성합니다. exported registerShorthands의 typo·형식 오류 이후에도 기존 insetX registry가 유지되어 위 responsive/hover CSS가 정상 생성됩니다. browser/server 프로세스는 시작하지 않았습니다.