Repository navigation
Conversation
Refs #694 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 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 #694 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>
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는 #794를 포함하고 base는 main입니다. 제품 head는
ba0ce49837b5a5468a7a2e9ca304963f68e0b7a7, tree는85c4a495d09632b25942f1f4e9ddd61b340a6965이며 MAIN SETTLED24a59576을 포함합니다. #794 선행 검토·병합과 Draft 해제는 유지보수자가 결정합니다.요약
libs/binding, thin WASM 위임, 실제 N-API 백엔드와 원시 바이트 비교 위에 인자 검증·결정론·native 고정 비용 개선을 전달합니다. 두 엔진은 18개 함수의 45개 인자 위치에서 같은 진짜TypeError를 반환합니다.--objects에 전달합니다. 표준 보고서는 XML/stdout만 사용하고 CI--fail-under 100을 유지합니다. 제외, crate 제거, 보고서 병합, coverage cfg 우회나 임계값 완화는 없습니다.engine?: 'wasm' | 'native', 기본native, WASM은 선택 모드 유지입니다. 플러그인 변경은 fix(plugin-core): align bundler resolution, roots and WASM diagnostics #755 merged 발표 이후입니다.동작
Deserialize로 읽습니다. wasm32 인덱스 범위, Map/Set/struct 구분, 원래 getter/iterator/resolver 호출 순서·예외·receiver·arity와 reset 소유권을 유지합니다.seedFileMap은 마지막 length가 검증·복사한 prefix보다 커지면 진짜TypeError로 거절하며 원래 읽기 순서와 정상 shrinking을 유지합니다.createBinding(raw)의 29개 이름은 공개 npm 로더 완성 증거가 아닙니다.고정 비용 개선
action(None)으로 분기해 사용하지 않을 failure Rc를 만들지 않습니다. 기존 최적화 Windows 코드의 0x48-byte allocation은 disassembly와W74m-map-proof-02로 확인했습니다. resolver 활성 경로의 snapshot·수명·오류 replay는 그대로입니다.별도 확인·수정한 네 가지 parity 버그
Number를 호출하던 문제를 수정했습니다. index/slot은 typed u32, declared-field key는 static str로 전달하며 replaced/Proxy/throwing Number 회귀 검증을 유지합니다.String을 호출하던 문제를 template 변환으로 수정했습니다. wasm32 경계 양쪽 입력과 기존 오류를 검증했습니다.Array.from을 관찰하던 문제를 수정했습니다. 기존 Uint8Array copy를 Rust에서 안전하게 decode하며 length/copy/set 관측은 유지합니다.Symbol.iteratorproperty 접근 오류를 caught Reflect.get 영역에서 잘못 변환하던 문제를 수정했습니다. Symbol lookup을 앞에 두어 raw 오류 identity와 Symbol → Reflect 접근 순서를 WASM과 맞췄습니다.Number 사용자 데이터 변환
전역을 바꾸지 않은 입력의 결과와 오류는 두 엔진이 동일해야 합니다. WASM이 사용자 데이터를 Number로 변환하는 위치에서 native는 같은 내장 ToNumber 의미를 사용하며 교체 가능한 전역 Number를 호출하도록 바꾸지 않습니다. 따라서 전역 Number를 교체했을 때만 알려진 엔진 차이가 남습니다. 별도 recording test의 실제
importFileMap({ probe: 8 })에서 native는 전역 호출 0회/값 8을 유지하고, WASM은 교체 함수를 1회 호출해 99를 가져오거나 원래 던진 객체를 전달합니다. Node/Bun 각각 두 엔진 3회씩 검증했으며 byte-equality corpus를 정규화하거나 이 차이를 숨기지 않았습니다. private key의 불필요한 Number 호출을 제거한 회귀 검증 및 Object.entries/Reflect 등의 관찰 계약은 그대로입니다.결정론과 Native100
export *소스 순서는 유지합니다. 실제 RED 그래프의 WASM resolver 방문은./right대신./left로 바뀝니다.beta/4행 진단이alpha/3행으로 바뀌고 두 엔진의 전체 진단 바이트가 같습니다.native-coverage는 integration target에만 필요한 test feature입니다. plain Cargo test는 Node 준비 없이 통과하며 feature만 켜고 준비하지 않으면 안내 오류로 실패하고 skip하지 않습니다. ignored-any는 nullish 검증 후 동일한 unit 방문 본문으로만 위임합니다.40543120018의 네 선언부 miss는 zero-sized Visitor의 module-scope 이동과 동일한 explicit thin NAPI shim 전개로 수정했습니다. 이번 고정 비용 단위까지 실제 새 Linux report로 다시 100%를 확인했습니다.두 generated Cargo.lock만 제외한 실제 diff입니다. 이전 4fd 단위의 13개 파일 stage 증거는 이력으로 보존합니다. 현재 ba0의 71경로/8364 gross와 실제 source·hook·표준 CI 증거를 확인했으며, 아래 이전 검증 절은 현재 ba0 수치로 전용하지 않습니다.
새로 생기는 오류
잘못된 binding 인자는 함수·인자·기대 타입을 표시하는 동일한 진짜
TypeError입니다. 예:setPrefix(false)→setPrefix(): argument prefix must be a string, null or undefined. 정상 string/null/undefined는 유지합니다. 새 위치 기반 source build error나 새로 거절하는 source는 없으며 기존 nested Change 진단 선택만 위 사전순 규칙으로 결정론화했습니다.test feature를 수동으로 켜고 준비 환경을 누락하면
native coverage preparation is missing; run bun run test from the repository root안내로 실패합니다. 일반 Cargo test나 제품 API에 이 준비 조건을 추가하지 않았습니다.이전 4fd 검증 (이력)
4fd7d942. hook 감시 실행 1100.009s, 정상 exit 0, 남은 owned process 0입니다. commit tree가 테스트한01deef24와 일치하며 worktree는 clean입니다.-D warnings/ESLint), plain Rust 9446개·25 suites가 통과했습니다.이전 4fd 표준 CI (이력)
40598951226, head
4fd7d942, attempt 1: COMPLETED / FAILURE이나 실패는 사용자 허용wasm-size뿐입니다. publish / benchmark / release-compat / react-18 / vinext-rsc-css-e2e / webpack-extends-theme / landing-next-e2e는 모두 SUCCESS이며 job rerun은 없었습니다. PR은 Draft / MERGEABLE입니다.실제 Linux Rust는 100.00% (20381/20381), production native 350/350, WASM boundary 18/18입니다. 이전 20347/20347 대비 +34 mapped denominator는 전부 native 316 → 350 증가분입니다. 같은 wide formatter 아래 numeric operation·scoped frame·분기 및 Visitor 이동이 반영된 실제 source mapping이며 native 밖의 denominator는 20031로 같습니다. 제외, source/report 대체 또는 분모 조작은 없습니다.
Linux authored Bun은 6252 pass + Vite 867 pass / 기존 Windows-only skip 1개(868 discovered), 0 fail이며 두 All files row 모두 functions/lines 100.00/100.00입니다. skip은 #794와 동일한
serve-coherence-teardown-boundary.test.ts:9의 platform 조건이며 추가·완화하지 않았습니다. preload race regression 10개도 통과했습니다.사용자 결정으로 크기 RED만 허용하며 size-budget을 수정하거나 shrink하지 않았습니다. 이 문장은 당시 크기 면제의 범위를 설명한 이력입니다. 최신 성능 판정은 아래 별도 조정자 결정에 따릅니다.
최신 ba0 검증 및 성능 판정
ba0는 일반 map 시작을 MapStart16으로 통합하고, 진단 origin 선택과 별개의 순수 has_change 존재 검사를 세 boolean 소비자에 사용합니다. iterator/entries/length/오류·큐·ALS와 결정론적 진단 선택을 유지합니다. 새 위치 기반 source build error와 스타일링 런타임은 없습니다.
표준 CI 40639257898, head ba0ce49, attempt1: 실제 7개 job SUCCESS, 사용자 허용 wasm-size만 FAILURE입니다. Linux Rust 20399/20399, native 361/361(access75/de62/host69/lib60/output20/value75), boundary18/18입니다. 변경 없는 coverage route의 기존 negative control을 다시 실행하거나 새 source 증거로 바꿔 부르지 않았습니다.
최신 timing-only 40649575150, attempt1, 임시 hosting13aeeede: A fe04a70 / B ba0ce49. 3개 전체 artifact를 독립 검증했고 source/blob·분리 target·Compiling log·native/WASM 양쪽 image·원래173 및 별도6 queue Buffer·freeze·96process/518400관측/519936event·산술이 모두 유효합니다. CI와 원래 strict collector 판정은 FAILURE/accepted=false이며 임계값이나 데이터를 수정하지 않았습니다.
조정자 결정(2026-10-28): 위 유효 측정으로 #796 성능 단위를 문서화한 예외와 함께 종료합니다. #796에서 native transport 재설계를 하지 않습니다. 모든 nonempty cell 및 모든 host/replica corpus에서 native가 WASM보다 빠른 큰 순이익을 확인했습니다. 아래 empty-source 전체 호출 차이와 WASM B/A는 알려진 OPEN 항목으로 남기며, 모든 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 합격 또는 미확인 원인의 해결 주장이 아니라 명시적 예외입니다.
남는 한계 및 다음 단계
위 empty-source 비용과 WASM B/A 항목은 OPEN이며, 이후 native-transport fixed-cost PR은 제안만 작성해 사용자 결정에 올립니다. #796에는 추가 transport 재설계나 측정 기반 tuning을 넣지 않습니다.
다음 단위는 공개 @devup-ui/binding loader/types, 8 sibling package, 9 pack/clean consumer, release 순서와 최신 8 target provenance입니다. spike는 진짜 replacement가 입증된 뒤에만 제거합니다.
plugin 기본 native와 engine 선택은 fix(plugin-core): align bundler resolution, roots and WASM diagnostics #755 merged 발표 이후입니다. WASM 선택 모드는 유지합니다.
두 엔진의 기존 전역 Number 교체 시 알려진 차이와 동시 독립 build 격리 한계는 그대로입니다. 새 위치 기반 source 오류0, 스타일링 런타임0이며 Draft 해제/merge/close/approve는 하지 않았습니다.