Repository navigation
Conversation
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 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.
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Co-authored-by: sisyphus-dev-ai <sisyphus-dev-ai@users.noreply.github.com>
Share the selected compiler across Vite configuration, reservation, transforms and delayed callbacks, and refresh published single CSS after theme changes. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Retain the selected compiler across Bun setup, reservation, source extraction, CSS publication and delayed callbacks, with explicit WASM selection and no fallback. Refs #686
owjs3901
marked this pull request as ready for review
November 3, 2026 01:12
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.
G 최종 통합 검증 — 2026-11-03
현재 head는
3b30b7d690de57e09b38e0757b87de3c3f077f76, base는feat/napi-binding의51c89930cf1db5a28da0e95bb850b30ff0be61d2입니다. main675f7e20을 반영한 parent와 D/Vite → E/Bun → F/Next를 통합했습니다. Webpack·Rsbuild·Vite·Bun·Next의 기본 엔진은 native이며, 명시적인engine: 'wasm'선택과 오류 시 자동 대체하지 않는 계약을 유지합니다. 스타일 처리는 빌드 시점에 수행됩니다.G에서 새로 작성한 제품 소스는 0줄입니다. 기존 child 변경은 원래 parent
86931b4c대비 111개 경로, 추가 10,460줄·삭제 628줄·총 변경 11,088줄로 유지됩니다. parent를 통해 들어온 main의 65개 경로는 이 수치와 별도로 기록했으며 child의 111개 경로와 겹치지 않습니다. 기존 staged D와 m-theme 캐시 회귀 테스트를 포함한 소스를 유지했습니다.현재 트리에서 다시 실행한 검증
G에서 native·WASM·전체 패키지를 새로 빌드하고 배포 entry 검사를 통과한 뒤, 실제 packed consumer와 브라우저 검증을 다시 실행했습니다. 과거 D/E/F의 성공을 현재 트리의 실행 결과로 대신하지 않았습니다.
compilationProofs,generations[*].outputs[*].css만 제외; 원본 차이는 보존opposite-import-single;phases[*].outputs[*].css만 제외phases[0].outputs[*].css만 제외; 원본 차이 보존G5-S의 8개 HMR 실행 모두 최초 CSS URL
/df/devup-ui/devup-ui.css?devup-revision=0과 같은Accept: text/css요청을 재사용해 200 응답, CSS 17px → 29px, 변경된 ETag, 디스크와 응답 바이트 일치를 확인했습니다. Bun의 Vite dev/default/HMR 또는 독립적인 동시 빌드 검증을 주장하지 않습니다.Next packed 실행은 Next
16.4.4, Webpack5.112.2, React19.3.1, Node26.12.0, Bun1.4.4에서 수행했습니다. 32개 실행의 실제 raw 파일 4,920개가 종료 전 기록의 크기·해시와 모두 일치했고, 정적 JS/CSS 응답 176개도 디스크 바이트와 일치했습니다. 정상 root hook에서 실행한 workspace Next16.4.3의 production/development 테스트와는 별도 결과입니다.Next의 기존 비교 한정은 그대로 유지합니다. 명시된 JSON 시계 5개, 실제 mtime을 반영한 stat/ETag/Last-Modified, setup 소유 토큰·PID·시간·selector 메타데이터, 알려진 캐시 버전/관리 필드만 기존 승인 범위에서 다룹니다. Turbopack 전체 호출 순서는 엄격하게 비교하며 Webpack은 기존 승인된 입력 간 관리 호출 순서만 한정합니다. binary cache/serialized setup parity와 일반 cross-runtime
Errordescriptor parity는 검증 완료로 주장하지 않습니다. 작성된 portable error 입력과 원본 오류 identity/cause/state 검사는 유지합니다. 알 수 없는 JSON/JS/selector/wrapper/suffix는 허용 대상으로 확장하지 않았습니다.일반 commit hook을 한 번 실행해 strict lint, Rust fmt/clippy, root 테스트를 통과했습니다. hook 소스나 적용 범위, 경고·커버리지 기준, snapshot을 변경하거나 hook을 우회하지 않았습니다.
Local Rust 수치는 Linux CI의 100% 확인과 구분합니다. CI 환경 변수를 local hook에 강제로 적용하지 않았으며 실제 instrumented native 이미지와 테스트 원본을 보존했습니다. 일반 commit과 일반 push를 각각 한 번 완료했습니다.
현재 head의 CI — SUCCESS
자동 pull_request run
41552308801, attempt 1의 head는3b30b7d6입니다. 완료된 실제 checkout 로그에서 synthetic mergece3cc5b54d9a0d83447093f8fac4063ce34548ce를 확인했습니다. 부모는51c89930+3b30b7d6, tree는 검토·commit·push한44a68b8f02e3a3cde583108779da62048e7a312a와 같습니다.전체 paginated jobs 27개가 종료되어 25 SUCCESS / 2 조건부 SKIP / 0 FAIL, workflow 결론은 SUCCESS입니다. native build 8개·pack 1개·consumer 8개가 모두 성공했습니다. 조건부 skip은 main push에서만 실행하는
release,deploy-pages입니다. 성공한 25개 job의 전체 원본 로그 각각에서 실제 synthetic merge checkout SHA를 확인했습니다. 별도codecov/patch도 SUCCESS이며 PR의 28개 check가 모두 성공 또는 조건부 skip으로 종료됐습니다.일반 Linux host job 7개의 실제
devup.host-native-buildstart/finish event에서 아래 비용을 측정했습니다. 모두 이 run의 Node26.13.0,x86_64-unknown-linux-gnu빌드입니다. 값은 초 단위로 소수점 셋째 자리까지 반올림했습니다.실측 elapsed 합계는 1,671.540초입니다. 병렬 job별 helper 시간의 합이며 CPU 시간, 전체 CI wall time, critical path 또는 통제된 성능 비교 결과가 아닙니다. 캐시 변경은 하지 않았고 캐시 적용 여부는 이후 결정 사항으로 남깁니다.
현재 G run의 wasm-size는 4개 항목 모두 PASS, parent 대비 바이트 변화 0입니다.
wasm/raw6,681,036 / 상한 6,748,160,wasm/gzip2,410,880 / 상한 2,435,072,glue/raw49,816 / 상한 51,200,glue/gzip9,049 / 상한 9,216입니다. 이번 PR884 run에는 size 예외가 필요하지 않습니다. parent #796의 과거 size 실패와 승인된 예외는 별도의 역사적 결과로 유지하며, 현재 G의 실패로 표시하지 않습니다. CI rerun·cache 삭제·수동 workflow 실행·버전 고정·budget 변경을 하지 않았습니다.상대 경로
df경고, 상속된 resolver HTTP 오류 identity 손실, 성능 결론 OPEN 및 NumberToNumber의 한계, 기존 main 후속 항목은 해결했다고 주장하지 않습니다. 아래 F까지의 기록은 원문 그대로 보존한 이력입니다. 수치·head·CI는 해당 단계에 한정하며 위 G 결과를 대신하지 않습니다. 특히 (j)의 Playwright 수집 문제는 별도 main 기반 변경이며 #796/#884가 고쳤다고 주장하지 않습니다.F까지의 원문 이력 — 현재 G의 실행 증거와 구분
Refs #686. #796 (
feat/napi-binding) 위에 쌓인 draft PR입니다. 공통 기반과 Webpack/Rsbuild/Vite/Bun/Next 전환을 포함하며, 이후 parent의 최신 main 통합과 G 최종 교차 검증을 별도 단위로 진행합니다. #796이 먼저 병합되어야 합니다.변경 내용
engine?: 'wasm' | 'native'의 기본값은native입니다. Webpack, Rsbuild, Vite, Bun, Next가 설정·reservation·추출·CSS 공급·지연 callback에서 같은 선택 compiler를 사용합니다.engine: 'wasm'을 유지하며 자동 fallback은 없습니다.Accept: text/css를 그대로 사용해 17px → 29px 및 변경된 ETag를 검증합니다. main에서 발견한 (m)의 수정입니다../register, awaited ESM root preload를 검증합니다. 등록 API는await register(options)로 완료를 기다립니다.Patchkey가 있습니다. 중복 WASM peer를 제거하되 명시적 WASM 선택을 위한 일반 dependency는 유지합니다. native ABI/8개 플랫폼 패키지와 WASM size budget은 변경하지 않습니다.비교와 오류 계약
outputs[*].css를 비교에서 제외하며 raw에는 유지합니다. 나머지 출력 필드는 모두 비교합니다. 각 A/B의 실제 class와 매핑된 CSS asset에서 shorthand 규칙을 별도로 검사합니다.compilationProofs,generations[*].outputs[*].css를 실행 간 equality에서 제외합니다. 원본은 보존하고 필드 누락·목록 밖 변화·raw 불변성을 control로 검사합니다. 발행 CSS/HTTP/디스크는 제외하지 않습니다.phases[0].outputs[*].css를 비교에서 제외하며 원본과 전체 차이 sidecar 6개를 유지하고 필드 존재를 검사합니다.Output::new는 그 순간의 전체 sheet를 반환하지만 Bun 발행은getCss를 사용합니다. 나머지 code/map/metadata·발행 asset·df/dist·9개 상태·call은 모두 엄격 비교합니다. 41개 전체 비교라고 주장하지 않습니다.originalLine/originalColumn의 존재 차이만 허용하며, 존재하는 값의 숫자 형식과 descriptor를 검사합니다.InvalidEngineError,NativePlatformError,NativeCompilerLoadError,HostBuildTargetError를 사용하며 D는 새 public 오류 종류나 source 문법 제한을 추가하지 않습니다. 기존 resolver callback 예외가 메시지로 변환되어 identity/cause를 잃는 동작은 별도 main 후속이며 이 PR에서 바꾸지 않습니다.D 검증
40beb3890307de08a8374b75f86f4e7e6340d3bc: 47개 whole-file path, 1898 gross / 2032 churn입니다. standalone은 포맷 후 650행이며 전체 누적 예약은 8369 / 10282 / 96 path로 승인된 한도 안입니다.207749ea의 정상 exact-tree hook이 1148.357초에 통과했고 push를 완료했습니다. hook에서도 root 6864/0·Vite 879/0 및 functions/lines 100%를 유지했습니다. 최종 Job active process는 0, limit/watchdog 실패는 없습니다. 이 commit의 exact-head hosted CI 41441251927는 성공으로 완료되었습니다. 전체 페이지의 27개 job을 확인했으며 기능 job 25개 모두 성공, deploy-pages/release 2개는 기존 조건에 따라 skip입니다.E 검증
.ts를 사용하며 plain.js지원 범위를 확대하지 않았습니다. 모든 완료 Job의 최종 active process는 0입니다.340167b8, tree71cdabf0e527cd1b8ab013827a416cfc4c2dd994의 정상 exact-tree hook이 1174.827초에 통과했고 push를 완료했습니다. hook에서도 root 6869/0·89 snapshots/24090 expectations, Vite 879/0 및 양쪽 functions/lines 100%를 유지했습니다. 최종 Job active process는 0, limit/watchdog 실패는 없습니다. 이 commit의 exact-head hosted CI 41456985109 attempt 2는 완료되었으며 25개 job 모두 성공했습니다. 첫 실행의publishjob은 제품 install/build/test 전에 Cargo cache 복원 중 runner 디스크 부족으로 실패했고, GitHub annotation은 runner_diag/Workerlog 기록의No space left on device를 명시했습니다. 해당 PR의 실패한 Cargo cache 한 개를 제거한 뒤 실패 job만 한 번 재실행했으며 source·workflow·threshold 변경이나 native producer 재실행은 없었습니다. 위 D CI와 아래 F CI는 각각 해당 commit에서 별도로 검증한 결과입니다.F 검증
86931b4c대비 전체 diff는 10460 / 11088 / 111 path입니다. 추가 path 한 개는 기존 genuine Next 테스트 observer의 compiler 선택 한 줄 수정이며 제품 범위를 넓히지 않습니다.verify:dist를 완료했습니다. 실제 새 빌드의 생성 파일 477개를 기록했고, 공통 dependency 264개와 Next dist 30개가 해당 packed 검증에 사용한 payload와 크기·SHA 모두 같음을 확인했습니다. 테스트 observer만 바꾼 뒤에도 이 477개 payload는 같습니다. 과거 빌드를 새 빌드라고 계산하지 않습니다.Error입력 8개, 실제 설치 native 모듈 거부 guard 4개를 구분합니다. 비교는 같은 runtime/형식 36개와 작성된 오류 입력의 portable 비교 6개이며, 원래 오류/cause identity와 실패 전후 상태 불변 96개 source/CSS 전파를 검사합니다. 받은 오류의 own key·descriptor를 삭제해 맞추지 않습니다. 일반 Node/BunError의 runtime별 own property/descriptor 전체가 서로 같다는 주장은 하지 않습니다.self.__SERVER_FILES_MANIFEST=JS twin, 검증된 HTTP Date·stat 기반 ETag/Last-Modified, 실제 owner/time/token과 선택 engine 경로가 확인된 Turbopack setup metadata를 다룹니다. JS twin은 sibling JSON 원본과 byte 단위로 정확히 같은 literal일 때만 같은 selector 경계를 적용하며 추가 문장·다른 wrapper·unknown JSON·세 번째 selector를 거부하는 control을 포함합니다. 원본 bytes/SHA는 유지합니다.engine: 'wasm'으로 돌리지 않고 observer 한 줄을 기본loadCompiler()선택으로 고쳤습니다. default/native/물리적 binding/Webpack compiler identity를 확인한 뒤 원래 Next 16.4.3 production·development 2/0을 통과했습니다. production reservation 3개·extract 88개, development reservation 23개·extract 12개, 양쪽 3개 역할과 residual 0, 실제 A/B revision·기존 class/file slot 유지·HTTP assertion을 모두 그대로 실행했습니다. 이 결과는 publication matrix의 Next 16.4.4와 구분하며 상대dfdependency 경고를 해결했다고 주장하지 않습니다.b011b6d9, treeaf2bd8b373dc792389767f9524d06e312156335c의 정상 exact-tree hook이 1259.913초에 통과했습니다. Windows 로컬 hook은 root 6874/0·89 snapshots/24105 expectations, Vite 879/0/2635 expectations, Node 117/0이며 skip은 0입니다. LCOV에서 root 10647/10647 lines·959/959 functions, Vite 1462/1462 lines·165/165 functions로 양쪽 100%를 확인했습니다. 로컬 Rust native coverage는 97.78%인 32407/33142 lines이며 아래 Linux 결과와 구분합니다. 종료 시 Job active process와 owned process는 0이고 memory limit·watchdog 실패는 없습니다. commit의 parent는 E340167b8이며 정상 hook 후 source 12개와 생성 payload 477개·기검증 payload 294개가 모두 그대로임을 확인했습니다. 정상 push 뒤 remote HEAD도 이 commit과 일치합니다.deploy-pages와release2개는 기존 조건에 따라 skip입니다. Linuxpublish원본 log에서 Rust coverage 100.00%인 22726/22726 lines를 확인했습니다. root 6874/0·89 snapshots/24102 expectations, Vite 878 pass·기존 Windows 전용 held-directory 테스트 1 skip·0 fail/2635 expectations이며 양쪽 functions/lines 100%입니다. Node 117/0·skip 0, built Bun regression 10/0도 확인했습니다. F CI에는 재실행·cache 제거·waiver가 없었습니다.devup.host-native-buildstart/success-finish event로 측정한 host native build 시간은webpack-extends-theme131.259초,react-18169.070초,vinext-rsc-css-e2e177.810초,release-compat180.622초,landing-next-e2e186.511초,benchmark174.805초,publish123.856초로 총 1143.933초입니다. 각 job 전체 시간이나 별도 native 17-job pipeline 시간과 구분합니다. G 이후 최종 head에서도 다시 측정하며 cache 정책은 변경하지 않았습니다. G와 최신 main 통합은 아직 완료하지 않았으므로 PR은 draft로 유지합니다.남는 범위와 후속
675f7e20의 CI 41424526678는 10개 job 모두 성공했습니다. 현재 branch는 이를 parent에 임의 병합하지 않았으며, 안전한 commit 경계 뒤 별도 조율로 feat(binding): add native compiler and public platform packages #796 → 이 branch 순서의 통합과 검증을 진행합니다.ShorthandConfigError혼합instanceof, (i) production bucket 완료 write, (k) Rsbuild 첫 수정 publication, (l) output directory self-watch입니다. (m) Vite theme CSS/cache는 이번 D에서 회귀 검증과 제품 수정을 포함했습니다. 별도 main 포팅 상태를 이 PR의 전환 완료와 혼동하지 않습니다.