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>
…etting Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…e parts 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 #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 #690 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>
…ead through namespaces Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…akes from the visitor Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…eclared after their use Refs #695, #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…nding Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690; prerequisite PR #715 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690; prerequisite PR #708 with #715 and #756 preserved 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/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.
... and 23 files with indirect coverage changes 🚀 New features to boost your workflow:
|
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 #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>
This was referenced Oct 5, 2026
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 #690 (W33/W33b: StyleX 동적 함수와 호환 계약 수정). #708, #715, #756의 변경을 포함한 스택 PR입니다. #708, #715, #756이 먼저 병합되어야 합니다. #757/W32의 오류 위치·Boa 변경은 병합하지 않았습니다.
요약
동적 스타일 함수의 기본값, 인자 평가 횟수·순서와 정적 호출의 CSS 출력을 JavaScript 의미에 맞게 수정합니다. 런타임 스칼라만 CSS 변수에 전달하며 스타일링 런타임은 추가하지 않습니다. 정확히 컴파일하지 못하는 함수/API 사용은 원래 파일·줄·열, 원인과 수정 방법을 포함한 빌드 오류입니다.
W19의 21개 mismatch 후보와 추가 edge를 실제 WASM 경로로 확인했습니다. 빈
firstThatWorks()의 생략,types.*의 정적 추가 인자, 숫자 정밀도,include()순서와 동적 include를 함께 수정합니다. 조건식이 덮어써지거나 빈 클래스를 선택하더라도 원래 평가를 한 번씩 순서대로 보존합니다.동작
undefined에만 기본값을 적용하며null에는 적용하지 않습니다. 기존 동적 null과 attrs의 null 문자열 처리는 유지합니다.0.123456은.1235로 반올림하지 않습니다.attrs()는 style 속성 텍스트를 반환합니다.firstThatWorks()는 속성 자체를 생략합니다. red와 빈 namespace는 두 합성 순서 모두 red를 유지하며 명시적 null만 이전 속성을 해제합니다.types.*('red', 'blue')처럼 정적으로 읽을 수 있는 추가 인자는 평가 후 무시합니다. 런타임 값·부작용·spread를 추가 인자로 주면 무시하지 않고 오류를 보고합니다. defineVars/createTheme의 허용된 조건 값 객체는 유지합니다.createThemeContract()는 호환 확장이며 정적인 flat null/string placeholder만 받습니다. 중첩 namespace와 런타임 placeholder는 키 경로를 포함한 오류입니다. 중첩 계약 API를 새로 추가하지 않습니다.undefined는 실제 매개변수 값으로 보존합니다.타깃 버전의 근거
로컬 benchmark가 고정하는
@stylexjs/babel-plugin@0.19.1의 태그 커밋1fcb9a51cbecad2c82255e0f4b45cc072fa1a95a와 공개 배포 bundle, 실제 StyleQ 0.2.1 merger를 확인했습니다. 이 근거는 소스 추적이며 upstream compiler 실행이나 특정 class hash를 주장하지 않습니다.include,createThemeContract는 해당 버전의 공식 export가 아니라 Devup 호환 확장입니다. standalone helper는 upstream에서도 compiler-required runtime placeholder이므로 이 PR은 무런타임 정책에 따라 빌드 오류로 바꿉니다.새로 생기는 오류
모두
파일:줄:열, 문제가 된 코드, 원인과 수정 방법을 포함합니다.firstThatWorks/include/types.*호출 또는 helper 함수값 escape@mediaOops같은 잘못된 at-rule 토큰 또는 빈 query남는 한계
정확히 내릴 수 없는 런타임 구조·합성은 위 오류로 제한하며 스타일링 런타임이나 임의 evaluator를 추가하지 않습니다. 추가 인자의 정적 판정은 현재 상수 처리와 literal/plain object/array 형태를 사용하며 미해결 값은 추측하여 버리지 않습니다. 기존 빈 클래스 결과의
className: ''/class: ''모양은 유지합니다. flat contract 확장은 중첩 계약을 지원하지 않습니다.W24/#738 타입 정합성
공개 타입은 이 브랜치에서 수정하지 않았습니다.
packages/react/src/utils/stylex.ts와 compat declaration의 다음 정합성은 #738/W24가 소유합니다.검증
수정 전 재현
f0969a040ed4f926965468cd27fc92387bb84fa8에서 설치·WASM·루트 빌드 후 원래 두 control 및 matrix mismatch 21개를 재현했습니다. matrix는 전체를 출력하지 않고 mismatch 코드만 검색해 사용했습니다.height를 두 속성에 재사용하면 getter가 두 번 실행되었고, nested dynamic 호출은 문자열 namespace를 함수처럼 호출했습니다. empty-fallback QA는 수정 전 forward의 빈 class 때문에 실제 실패했습니다. 추가 재현에서는 정적 opacity가
.1235로 반올림되고 include 두 순서가 모두 red를 남겼으며 dynamic include는 할당 없는 var 참조만 남겼습니다.수정 후 실제 WASM 출력
원래 async control은
stylex-async-control.tsx:2:38에서 async arrow라는 원인과 synchronous expression-bodied arrow라는 수정 방법을 보고합니다. 실행 QA는 next()가 한 번 호출되고 두 height 값이 18px임을 확인했습니다. empty-helper 두 순서 모두 같은 red class, explicit null은 빈 class; include 후 own blue는 blue만, own blue 후 include red는 red만 남습니다. 알려진/기본 opacity는 같은 정적 class에.123456CSS를 만들고 runtime assignment는 숫자0.123456을 유지합니다.독립 GPT 검토의 다섯 결함은 26개 red-before 회귀로 재현했으며 후속 caller 확인에서도 15개 red-before 회귀를 추가했습니다. 실제 WASM 실행은 재할당 alias와 types return escape가 located error가 되고, shadowed undefined가 class를 유지하며, 중복 empty/null 본문은 class를 만들지 않으면서 사용하지 않는 인자를 한 번 실행함을 확인했습니다. 직접
s.base='external'변경은 이전 red class를 고정하던 출력 대신 선언 위치 오류를 내고,default:'red',default:null변수는 이전 red CSS를 더 이상 남기지 않습니다.W19 matrix 21개는 첫 W33b 재검증에서 13개 located error와 8개 성공 출력으로 확인되었습니다. 외부 helper, async/rest, include 추가 인자, runtime types 추가 인자, 계약 runtime 값과 잘못된 at-rule은 오류이며 default/empty-helper/null/runtime-class/누락 props·attrs는 성공입니다.
최종 게이트
현재 head는
0c9d6f47d5aa64d5325f75b49904dc83909e5880이며 소스 계약 수정84049381, Patch changepack 설명b3ed249d, Linux coverage 회귀0c9d6f47을 각각 전체 hook 검증으로 커밋했습니다. 전체 파일을 stage하고 unstaged/untracked 저장소 변경이 없음을 확인하여 hook이 검사한 디스크 트리와 커밋 트리를 일치시켰습니다. stash를 새로 만들거나 기존 공유 stash를 적용·삭제하지 않았습니다.cargo fmt --all및cargo +1.99 clippy --workspace --all-targets --message-format short -- -D warnings통과.snap.new없음bun lint통과, 기반부터 존재한 forwardRef/use-prefix 경고 2개 외 추가 경고 없음--fail-under 100을 권위로 사용합니다이전
4d32efa2의 Linux CI 37240953252는 benchmark·Next/vinext e2e가 통과했으나 Rust 커버리지 99.91% (13559/13571)로 실패했습니다. 실제 edge 회귀와 불가능한 분기의 metadata 모델 정리로 처리했고 coverage 제외나 warning suppression은 사용하지 않습니다.b3ed249d의 37269061703은 benchmark·Next/vinext e2e와 테스트가 통과했으며 publish가 Rust 커버리지99.96%(13740/13745, 5줄) 때문에 실패했습니다.0c9d6f47은 중복 키 검사의 지배된 분기를 재배치하고 null default·빈 computed namespace·optional member의 실제 동작 및 runtime 조건 키의 정확한 오류 위치를 검증하는 10개 회귀를 추가하여 아래의 최종 Linux 100% 판정을 받았습니다.최종 Linux CI: 제품 게이트 통과, Codecov 외부 장애
최종 37273538541, head
0c9d6f47d5aa64d5325f75b49904dc83909e5880의 실제 결론은 **failure이며 유일한 실패 단계는Upload to codecov.io**입니다. 녹색 CI라고 주장하지 않습니다.13745/13745), uncovered source 줄 없음curl: (35) ... sslv3 alert handshake failure가 발생하고, 이어codecov.SHA256SUM.sig가 없어 GPG signature 검증 실패외부 장애 규칙에 따라 workflow를 변경하거나 반복 재실행하지 않았습니다. Codecov 복구 후 coordinator가 실패한 publish job을 재실행할 수 있습니다. Codecov 뒤의 clean-publish/changepack 단계는 그 장애로 skip되었으며 통과했다고 주장하지 않습니다. 사용자 검토·병합은 수행하지 않았고 #708, #715, #756 이후에 병합해야 합니다.