Repository navigation
Conversation
…h Emotion Refs #690 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 2, 2026
Open
Merge updated parent PR 727 (12328b9), containing main 11790be. Conflicted file: packages/bun-plugin/src/plugin.ts. Preserve PR 728's readJsxImportSource alias discovery and main PR 703's compiledPackages scanner, Bun.build stylesheet deferral, runtime writes and debug policy; keep main PR 704 plugin CSS behavior. WASM/root builds and real Bun stylesheet regression passed; no snapshots were hand-merged. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 8, 2026
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 16, 2026
Refs #682 #695 #688 #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #682 #695 #688 #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #682 #695 #688 #689 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 #690 (D 필수 — EMO-01의 tsconfig
jsxImportSource신호). #727 위에 쌓은 브랜치입니다(#727까지 병합되면 차이는 커밋 하나).문제
compilerOptions.jsxImportSource를@emotion/react로 둔 프로젝트는 파일에 신호가 없습니다. 그래서 사용자 컴포넌트의cssprop이 컴파일되지 않았고, 번들러가 JSX를 Emotion 런타임으로 빌드해@emotion/react가 런타임 의존성으로 남았습니다.수정
readJsxImportSource(cwd):tsconfig.json(없으면jsconfig.json)의jsxImportSource를 읽습니다. 주석과 끝 쉼표를 허용하고,extends(상대 경로,.json생략, 패키지, 배열은 뒤가 우선)와 project references를 따라갑니다. 순환은 멈춥니다.mergeImportAliases(userAliases, jsxImportSource):@emotion/react이면@emotion/react/jsx-runtimealias를 더합니다.@emotion/reactalias를 끄면 더하지 않고,importAliases에서false로 끌 수 있습니다.@emotion/react/jsx-runtimealias가 있을 때)cssprop을 컴파일합니다..tsx/.jsx파일 맨 앞에/** @jsxImportSource react */를 넣어 번들러가 React 런타임으로 JSX를 빌드하게 합니다. 파일에 자체 JSX pragma(@jsx,@jsxImportSource등)가 있으면 넣지 않습니다.@emotion/react/jsx-runtimeimport는 alias 변환이 아니라 기존react/jsx-runtime변환 한 번만 적용합니다.@devup-ui/react/compat/emotion-jsx-runtime이@emotion/react/jsx-runtime·jsx-dev-runtime을 React의 것으로 선언합니다. 이 alias가 있으면compat.d.ts가 이를 참조하므로, Emotion을 제거해도 tsconfig를 그대로 둔 채 타입 검사가 됩니다.동작 변화
jsxImportSource: "@emotion/react"인 프로젝트에서만 바뀝니다..tsx/.jsx파일이 추출기를 거쳐 다시 출력됩니다(pragma 삽입).@emotion/react/jsx-runtimeimport가 사라집니다.새로 생기는 오류
cssprop 오류는 #727과 같습니다.남는 한계
process.cwd())의 설정만 읽습니다. 하위 디렉터리별로 다른 tsconfig를 쓰는 모노레포는 읽은 설정 하나를 모든 파일에 적용합니다.확인
cargo clippy -D warnings(Rust 1.99),cargo test(extractor 1465건) 통과.bun test5486건 통과, 커버리지 100%.bun lint통과.@types/react로 구성한 소비자 설치 형태에서--jsxImportSource @emotion/react타입 검사를 확인했습니다.2026-10-08 main 11790bef를 병합하여 업데이트했습니다. packages/bun-plugin/src/plugin.ts 충돌은 jsxImportSource 별칭 읽기와 main의 compiledPackages 스캔·Bun.build CSS 출력을 모두 보존하여 해결했습니다.
2026-10-15 갱신: #727 2002f72 (main 76b1a15)을 병합했습니다. 충돌 파일 import_alias_visit.rs, five plugin.ts files; merge-import-aliases and Vite watch-error test fixtures은 Emotion runtime single-rewrite/type-only guards and jsxImportSource detection kept together with parent numbering/Tailwind/statewriter/null-prefix reset; stale default-alias expectation includes parent emotion/css and fs mock now keys by path; no snapshot changes 방식으로 해결했으며 부모 PR의 동작을 함께 보존했습니다. 새로 생기는 오류 없음.
실제 WASM/공개 API 검증 출력:
2026-10-16 갱신: 확정 main a6ecc125를 포함한 갱신된 #727 76a1796a를 병합했습니다. 충돌 파일 없음(자동 병합), 두 부모 3e6c24c/76a1796a 확인; 부모의 CSS-prop 캡처/slot/ref 및 main fallback·오류·Tailwind 동작과 자식 프로젝트 JSX 설정 감지를 그대로 보존했습니다. 새로 생기는 오류 없음.
기본 스택/CARGO_BUILD_JOBS=2/전체 트리 6 GiB 한도에서 fmt check, Rust 1.99 all-target Clippy(-D warnings), 정상 workspace 4,443개/실패 0개가 통과했습니다. 승인된 #727 responsive/raw-fallback 회귀와 margin 스냅샷은 부모와 바이트 동일하며 새 스냅샷 후보/수정은 없습니다. fresh WASM/root build, lint(기존 React 마이그레이션 경고 9개/오류 0개), Bun 5,921개/실패 0개/함수·라인 커버리지 100%가 통과했습니다. 자동 병합 커밋이라 수동 conflict hook은 해당하지 않으며 검증을 생략한 것은 아닙니다. LSP는 기존 미설치로 사용할 수 없고 clean으로 주장하지 않습니다.
실제 plugin-utils의 readJsxImportSource가 extends를 따라 @emotion/react를 읽고 mergeImportAliases가 Emotion JSX-runtime과 @emotion/css를 보존함을 fresh 공개 WASM으로 확인했습니다. Emotion import가 없는 Custom 컴포넌트의 css prop은 React pragma/class/CSS로 컴파일되어 실제 SSR HTML에 css 속성이 남지 않습니다. @emotion/react를 명시적으로 끄면 runtime alias가 추가되지 않고 원본 소스가 그대로 유지됩니다. 부모의 합성·attrs·타깃·props·ref 값/캡처 SSR 20개도 통과했습니다(DOM ref 부착을 검증한 것은 아닙니다). head 716b4841의 Linux CI는 아래 별도 확인합니다.
실제 WASM/공개 API 검증 출력:
2026-10-16 CI 확인: head 716b4841d816e8302a5dd228be2baff496cb97ea의 run 38861772395은 모든 job 및 Codecov가 통과했습니다. publish job 116845444327 실제 로그에서 Linux Rust 100.00% coverage, 13866/13866 lines covered, Bun 5921개/실패 0개/전체 커버리지 100%를 확인했습니다. 확정 main a6ecc12 포함 및 현재 merge 상태는 최신 PR audit로 재확인했습니다.
2026-10-19 갱신: 부모 #727
3e3d5878을4fb846f7에서 실제 2-parent merge한 뒤, #727 병합 후 부모가 된 최신 main802c0635(#789/#746 포함)을 충돌 없는 실제 2-parent merge9794828c로 반영했습니다. 충돌 파일libs/extractor/src/import_alias_visit.rs,packages/{next,rsbuild,vite}-plugin/src/plugin.ts는 프로젝트 JSX 감지와 main의 정확한 헤더 판별·기존 atomHoist/예약 처리를 함께 보존했습니다. 가짜/본문 뒤 pragma, hashbang의 CRLF·CR·LF·U+2028·U+2029 및 원본 오류 위치를 회귀 검증했고, import 없는 프로젝트 JSX가 예약·파일 번호 사전 배정·Bun 로드에서 빠지던 경로를 동일한 파일/별칭 정책으로 수정했습니다. 기존 테스트·assertion·깊이는 유지했고, 스냅샷은emotion_css_prop_where_the_project_builds_jsx_with_emotion의 React pragma를 CSS import 앞으로 옮긴 생성 결과 1건만 반영했습니다. 새로 생기는 오류: 없음(상위의 strict syntax/located error 유지). 남는 런타임: main #774에서 상속한 전달 props 사본의 렌더별Object.fromEntries(Object.entries(...).filter(...))및 기존 컴포넌트/props 연결 코드는 유지되며, 이번 수정은 새 스타일링 런타임·helper·callable을 만들지 않습니다. 검증: 최신 shared stable 1.99.1/Bun 1.4.3, jobs=2·기본 stack·CI unset, fmt/workspace 전체 all-targets Clippy 통과, native 5,592/0/0, 최신 main 반영 후 Bun 6,592/0 및 함수·라인 100%, lint 새 오류 0(기존 경고 20), 실제 WASM/React/Bun 공개 동작 117건을 최종 merge 뒤 다시 통과했습니다. 수동 해결 merge의 전체 hook 1회는 12GiB 제한에서 757.602초/peak 3.378GiB/exit 0이었고, 이후 clean 자동 merge는 정해진 W44 방식대로 hook 재호출 없이 기록한 뒤 install/WASM/root build·native/Bun·공개 probe를 전부 새로 검증했습니다. 로컬 Windows Rust 97.89%는 Linux 100% 증거로 사용하지 않으며, 새 헤드 CI의 Linux Rust/Bun 100%와 모든 job 결과는 완료 후 별도로 기록합니다.실제 WASM/공개 API 검증 출력:
2026-10-19 최종 CI 확인: head
9794828cda6fb58da7c9d4ca49cf7b9ce79782d9, run39236710617SUCCESS입니다. 실제 Linux Rust14,782/14,782=100.00%, Bun6,592 pass/0 fail및 함수·라인100%, preload 회귀, Codecov 업로드/patch 검사를 확인했습니다. publish·React 18·benchmark·Next landing·Vinext RSC·webpack-extends-theme·wasm-size의 검증 job 7개가 모두 성공했고 release/deploy만 정상 skip이며, PR은 OPEN/MERGEABLE/CLEAN입니다. 새 build-error 범주·새 스타일링 런타임은 없고, 앞서 명시한 상속된 렌더별 props 필터는 그대로 남습니다.