Repository navigation
Conversation
Refs #686 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 #686. #796 (
feat/napi-binding) 위에 쌓인 draft PR이며, #796이 먼저 병합되어야 합니다.요약
engine?: 'wasm' | 'native'옵션, 두 실제 namespace가 만족하는 28개 함수의 구조적 compiler 타입, 동기식 지연 selector를 추가합니다. selector의 기본값은native이며 자동 WASM fallback은 없습니다.plugin-utils가 native와 WASM을 모두 일반 의존성으로 보유합니다. 기존 플러그인의 일반 WASM 의존성은 유지하며, native binding의 ABI, loader 및 8개 플랫폼 패키지는 변경하지 않습니다.동작
realpathSync.native로 정규화합니다. 해당 호출이 EISDIR일 때만 같은 경로에 일반realpathSync를 사용하며, ENOENT 등 다른 오류는 원래 값 그대로 전달합니다. 이는 엔진 fallback이 아닙니다..bun-tag의 정확한 archive SRI를 확인합니다. 다른 7개 플랫폼 형제는 명시적으로 제외하고 부재를 확인합니다.publish.yml의 PR base 목록에 임시로feat/napi-binding한 항목만 추가합니다. 이 항목은 stacked CI를 위한 것이며 main에 절대로 남지 않도록 병합 순서에 맞춰 제거해야 합니다. 기존 push-to-main 전용 release/deploy 조건, read-only PR 권한 및 secret 노출 범위는 바꾸지 않습니다.단계별 적용
각 전환은 native 기본값과 명시적
engine: 'wasm'을 함께 검증하며, 해당 플러그인의 Patch 항목을 같은 changepack log에 추가합니다. 브라우저용 styling runtime은 추가하지 않습니다.새로 생기는 오류
InvalidEngineError: JavaScript 호출이native/wasm이외의 값을 넘기면 어떠한 엔진도 로드하기 전에 거부합니다.NativePlatformError: 지원하지 않거나 libc를 확정할 수 없는 호스트를 임의의 패키지로 추정하지 않고 실패합니다.NativeCompilerLoadError: 누락된 optional sibling, 손상된 native image 또는 전이 native library 로드 실패를 정확한 플랫폼 패키지명과engine: 'wasm'안내로 보고합니다. 원래 예외를cause로 유지하며 기존 중첩 cause도 보존합니다. WASM으로 자동 재시도하지 않습니다.HostBuildTargetError: 루트 빌드의 native 호스트를 지원하거나 확정할 수 없으면 기존 빌드 드라이버 실행 전에 실패합니다.남는 한계
Number교체의 엔진 간 차이는 남아 있으며, 이후 fixture의 원본 출력 동등성 검증을 면제하지 않습니다.minimize: false설정을 사용합니다. production 재빌드는 dev-server HMR 증명이 아닙니다.검증
8fd9adf6일치. 추가 소스 수정 없이 gate를 마쳤습니다. 기존 workflow 보안 검증 및 checksum 확인된 actionlint 1.7.12의 전용 runner-label 등록 설정 검증은 같은 소스 hash에서 통과했습니다.