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 Approved intermediate baseline A. Strict identity remains RED only at records 390 and 392: false/true setPrefix throws a WASM memory-access RuntimeError but a native Error. The shared all-position TypeError validation fix follows in its own commit B; this baseline does not waive identity, actual Linux native coverage, JS coverage, packaging, release, matrix, WASM size or performance gates. 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. Native performance: all 17 historical native-slower losses remain OPEN; the prescribed isolated Linux hosting measurement comes next. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Native100 coverage increment: +8 paths / +930 gross over 61 / 6432; total 69 paths / 7362 gross, excluding only the two generated Cargo.lock files. Run the actual instrumented production addon in real Node through a test-only required feature and the existing tarpaulin --objects report. Plain Cargo tests need no preparation; the CI 100 percent gate is unchanged. Standard reports remain XML and stdout. Sort namespace barrel exported-name references lexically, preserving first-match short circuit and star source order. Select the lowest object key containing a nested Change. WASM now visits ./left rather than ./right in the regression graph and reports alpha at line 3 instead of beta at line 4. Keep all original 171 raw cases unchanged and append two cross-engine regressions. All 17 native-slower cells remain OPEN and unmeasured. This coverage build is not an optimized performance claim. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Repair the four declaration-only Linux misses from run40543120018 (20329/20333). Hoist the existing zero-sized IndexVisitor and FileMapVisitor without changing their trait bodies, and expand five import/four export macros into explicit identical thin NAPI functions. Preserve JS names/signatures, original argument reads and diagnostic slots, error identity and byte outputs. No exclusion, product cfg, threshold, report or workflow change. Current Native100 source envelope is69files/7374gross, a separate+8paths/+942gross over61/6432, excluding only the two generated Cargo.lock files. Plain Cargo, root coverage, full lint and173x12real Node/Bun/native/WASM literal parity passed before this normal hook; all original171 and pre-repair173 record bytes remain unchanged. Linux100 remains the acceptance of the new standard CI. The two previously approved lexical-order fixes remain; their WASM callback/diagnostic behavior change is documented in the prior commit. All17native-slower cells remain OPEN and current-unmeasured. 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.
🚀 New features to boost your workflow:
|
Fixed cost 1: dispatch action(None) before allocating the unused failure Rc. W74m-map-proof-02.json and W74m-resolver-asm-01.log.stdout prove the baseline optimized Windows 0x48-byte allocation. Keep the enabled resolver snapshot, lifetime and error replay unchanged. Fixed cost 2: sixteen private numeric operations replace owned operation names and JS UTF-8 control strings. Fixed cost 3: the direct private runner removes the captured thunk. Fixed cost 4: direct callback results and two opaque class-constructor identities remove outer status envelopes. Source and neutrality proofs: W74m-protocol-review-02.md, W74m-rust-fixed-costs-01.md and W74m fixed-cost authority; all metadata packets, original objects/access order, callbacks/receiver/arity, Schema/Access/Host, preflight conversion, queues/reentry/ALS and public Output ownership remain. Parity bug 1: use typed u32 private index/schema-slot keys and static-str declared fields, never replaceable global Number for private controls. Parity bug 2: use primitive BigInt template conversion without global String. Parity bug 3: safely decode the existing copied typed bytes as Uint8Array without Array.from, retaining length/copy/set observations. Parity bug 4: read Symbol.iterator before the caught Reflect.get region so raw fault identity and access order match WASM. Record the approved Number(USERDATA) engine difference independently of parity records: with unmodified globals both engines decode the same values/errors; native retains intrinsic ToNumber, while replaced global Number is observed only by WASM. Keep all other dynamic intrinsic observations. The recording, private-key regressions and public identity scenarios pass on real Node26.12.0/Bun1.4.4 and both engines x3. Local gates: root build and full lint; 9446 Rust tests in25suites/default stack; root6252 and Vite868 Bun tests with both100percent functions/lines; original173x12 complete raw Buffers equal the independent W74l oracle;267validations per host plus73exception and seed-copy equality. Real root LLVM includes the production addon; the nine Windows native zeros are the same exact sites already zero at5aa37ee0 (W74n-windows-zero-audit-01), never exclusions or hidden lines. Standard Linux100 remains mandatory before acceptance. Scope is69paths/8038gross against#794, excluding only the two generated Cargo.lock files. All17historical native-slower comparisons remain OPEN; no native-PC attribution, cost dominance or final optimized hosting acceptance is claimed. No client styling runtime, dependency, source/alias/fixture tuning, newly rejected source or new located source build error. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Consolidate general pair-map startup through private MapStart16, preserving all previous numeric tags and the existing FnArgs Vec callback transport. Retain exact iterator/entries/length ordering, raw versus wrapped origins, strict tagged metadata Host errors, preflight conversion/reentry, resolver timing, public metadata and owned Output behavior. No empty-input or benchmark-selected fast path. Use a pure change-presence predicate at three boolean consumers rather than computing/retaining the lexical diagnostic origin. Keep origin selection, lexical resolver order and every consuming diagnostic path unchanged. Limit the legacy imported-constants edit to wiring and those three substitutions. Default-stack Rust9449/25suites, full lint/Clippy, rebuilt root and optimized native, genuine70protocol+4raw-resolver checks, Node/Bun267invalid full-buffer parity,25identity scenarios perhost and four seed children pass. Original173-case420555-byte Buffers retain the independent oracle in all12children; six extra queue/ALS cases use a separate post-primary recorder. Both Bun lanes6252+868 pass with functions/lines100. Scope71paths/8364gross, excluding only the two inherited generated Cargo.lock files; at most two new authored paths, explicit narrow legacy exception, all other touched modules<=250pureLOC. No dependency, pin, unsafe/cfg, coverage exclusion, new rejected source or styling runtime. Old B coverage remains retained, not transferred: new-source standard CI and unchanged full corrected timing are required. No performance acceptance is claimed. 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>
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>
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>
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 (napi binding). 이 Draft는 main 기반의 네이티브 바인딩과 공개 패키지 PR입니다. #794는 병합되었고 현재 head는
96ede13d3c2b963512b54f59d7750567989b3dc2, tree는a4c198fd40b95192a6e01f01b71c051be9d330df입니다. #883·#891·#810을 포함한 main81d6d924를 두 부모 merge commitbb90ac94로 통합했습니다. 플러그인의 native 기본값 전환은 이 PR 위의 별도 stacked Draft로 진행합니다.요약
libs/binding, thin WASM 위임과 napi-rs 네이티브 백엔드, 공개 CJS/ESM 로더·선언 파일 및 9개 npm 패키지를 전달합니다. 29개 공개 이름의 함수/클래스 identity를 CJS/ESM에서 공유하며 default init은 없습니다. native/WASM 바인딩이 생성한 오류는 runtime 생성 위치 메타데이터를 제외한 동일한 자체 속성(own properties)을 가지며code속성은 없습니다. Bun의 두 선택적 필드는 아래 메타데이터 절에 명시합니다.@devup-ui/binding및@devup-ui/binding-{linux-x64-gnu,linux-arm64-gnu,linux-x64-musl,linux-arm64-musl,darwin-x64,darwin-arm64,win32-x64-msvc,win32-arm64-msvc}입니다. 플랫폼 8개는 루트 binding의 optional dependency이며 raw addon/adapter/positional protocol은 공개 ABI가 아닙니다.engine?: 'wasm' | 'native', 기본 native이며 WASM은 선택 모드로 유지하지만 플러그인 변경은 별도 PR입니다.동작
패키지와 릴리스
bun install --frozen-lockfile을 실행하며 workspace-version-only drift는 bun.lock을 쓰지 않고 허용하고, 별도 lock-consistency gate·bot repair·수동 Update Versions 단계는 두지 않습니다.새로 생기는 오류
setPrefix(false)→setPrefix(): argument prefix must be a string, null or undefined.native coverage preparation is missing; run bun run test from the repository root로 실패하며 일반 Cargo test/제품 API에는 준비 조건을 추가하지 않습니다.검증
최종 41294862352, head
96ede13d: 전체 conclusion은 FAILURE이며 native17개·landing-next-e2e·benchmark·release-compat·react-18·vinext-rsc-css-e2e·webpack-extends-theme는 SUCCESS입니다. publish는 Linux Rust/root/Vite 및 실제 production196/196을 통과한 뒤 dev navigation의 외부 GitHub API403으로 실패했고, wasm-size는 사용자 크기 면제에 해당합니다. 이 외의 실패를 허용하거나 제품 검증을 생략한 결과가 아닙니다. release/deploy-pages는 PR에서 정상적으로 실행하지 않습니다.Linux Rust는 22726/22726(100%)이며, Bun root와 Linux Vite의 두 All files 행은 함수·라인 모두100.00%입니다. 실제 pass/fail 행: 6767 pass, 0 fail, 871 pass, 0 fail. 이전 Node alpha 오류로 도달하지 못했던 Linux Vite coverage lane까지 통과했습니다.
Node 최신 stable 선택과 wasm-pack 최신 stable 검증은 main의 설정을 유지합니다. 통합 직후 Playwright가 Node 전용 native package 테스트를 수집하던 오류를 확인하고 해당 세 모듈만 브라우저 수집에서 제외했습니다. 기존 브라우저 196개/19파일과 main의 20개 spec 원본은 그대로이며, native-packs의 세 Node 테스트 모듈 검증도 그대로 실행합니다. 변경 전 수집은 실제 artifact-preparation 오류로 실패하고 변경 후 수집은196개로 성공했습니다.
두 hosted job은 실제 production196/196을 통과했습니다. landing-next의 한 번의 재실행은 dev13/13 및 singleCss production196/196까지 성공했습니다. publish의 job 재실행 요청도 성공 응답을 받았지만 최종 API 행과 로그는 원래 실행의 복사본이므로 새로운 publish 재실행 성공이라고 주장하지 않습니다. 남은 dev API403은 StarButton과 TeamCard의 인증 없는 요청이며 #893에 있는 fixture·server token 변경을 포함한 main 통합 후 다시 검증합니다.
로컬 최종 hook은1168.198초/exit0/owned survivor0이며 root6767+Vite872/0 fail,89 snapshots 및 두 All files function/line100%였습니다. fresh WASM/root build와 실제 landing dev navigation은 vinext13/13, Next13/13을 통과했습니다. Windows Rust32554/33142(98.23%)는 로컬 mapping이며 위 Linux100%의 대체가 아닙니다. LSP 미설치로 clean LSP라고 주장하지 않습니다.
wasm-size는 glue/raw49816 bytes(한도45056), glue/gzip9049 bytes(한도8192)의 크기 초과이며 budget 수정/shrink는 없습니다. WASM raw6656855/gzip2400709 bytes는 해당 상대 한도 안입니다.
변경 범위는100경로, gross 상계12330/14000, 자체 churn6902/6950입니다. main과 동일한 workflow 통합 줄94개는 별도 한도300개 안이며 제품 구현 변경으로 계산하지 않았습니다.
성능 예외
기존 유효 timing-only 40649575150의 A fe04a70/B ba0ce49 절대값을 변경 없이 아래 보존합니다. native/WASM corpus는0.37–0.44로 큰 순이익이지만 empty-call 고정 비용과 deterministic-order WASM B/A의 일부 cell은 strict gate를 실패했습니다. 2026-10-28 프로젝트 결정으로 이 단위는 명시적 예외와 함께 종료했으며 native transport 재설계·임계값 변경·모든 cell 합격을 주장하지 않습니다.
Empty-source 고정 비용: 알려진 OPEN 항목
12개 전체 비교 중 10개가 NativeB/WASMB<=1을 실패합니다. 아래 값은 microseconds/call이며 delta는 native-WASM 전체 호출 차이입니다. Node 최대 약3.589us, Bun 최대 약0.697us로, request/access/Output 각 연산의 분리 측정은 아닙니다.
Corpus 절대값과 WASM B/A: 알려진 OPEN 항목
Node WASM B/A median=1.0071867478748406은 <=1.01을 통과하지만 replica3=1.035823414772503은 <=1.03을 실패합니다. Bun의 각 replica는 <=1.03을 통과하지만 median=1.0124463420458083은 <=1.01을 실패합니다. 프로젝트에서는 필수 결정론적 순서 수정과 이 replica 분포를 감안해 이 PR의 순성능 이익을 수용했습니다. 이것은 strict rule 합격 또는 미확인 원인의 해결 주장이 아니라 명시적 예외입니다.
남는 한계
Bun 생성 위치 메타데이터
Bun에서는 내부 call-site bookkeeping에 따라
originalLine과originalColumn이 한 engine 오류에는 있고 다른 쪽에는 없을 수 있습니다. 이 두 필드의 존재만 Bun의 runtime 생성 메타데이터로 취급하고 원래 값/descriptor는 증거에 그대로 보관합니다. 존재하는 필드의 숫자 형식과 descriptor, 그 밖의 own key와 남은 순서, 비생성 위치 값, 메시지/located text/constructor/prototype/cause는 정확히 검증합니다. stack frame과 runtime이 캡처한 생성 위치 값은 각 backend의 호출 경로를 원문으로 보관하며 동일한 frame/값을 요구하지 않습니다.확인한 문법 오류 경로는 native와 WASM 모두 동기로 오류를 전달하며, engine에서 받은 객체가 Webpack loader callback까지 같은 identity로 유지됩니다. 이 차이를 위해 binding 오류를 복제하거나 비동기화한 변경은 없으며, 다른 사용자 속성의 parity 면제도 아닙니다.