Repository navigation
fix(plugins): reserve shared counter slots before extraction - #782
Merged
Merged
Conversation
Refs #694 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 #694 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 #694 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 #694 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 #694 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 #694 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 16, 2026
Refs #694 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 #694 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 #694 (공유 카운터 슬롯 결정론). PR A: Rust/WASM + Bun + webpack + Rsbuild + Next webpack입니다. 선행 #781 및 #783을 실제 2-parent merge했으며 이들 PR이 먼저 병합되어야 합니다. Vite build/serve와 landing 비용 검증은 이 PR 위에 쌓는 별도 PR B에서 다룹니다.
요약
a, b, ...을 그대로 유지합니다. 해시·콘텐츠·fingerprint 이름, 런타임 스타일링, 이름 재매핑 및 예약을 위한 다른 플러그인 훅 재실행은 없습니다.76b1a150의 genuine Bun.build AB/BA에서 실제 클래스·변수·JS/CSS 바이트 차이를 먼저 RED로 재현했습니다. 원본 실제 출력 동일성 회귀를 유지해 GREEN으로 전환했습니다.동작
src/app와 include 패키지에 한정합니다. 암묵적으로 허용되는 Devup 패키지의 compiled dist 및 정적 entry는 정확한 파일과 물리 import closure로 포함하며 entry 부모/cwd/이전 출력 폴더를 넓게 스캔하지 않습니다.debug: true를 보존하며 명시적 false는 같은 cwd 기반 D9 조사를 사용합니다.run/watchRun, Rsbuild 최종 실제 compiler entries와 기존 productiononBeforeBuild경계에서 예약합니다. 기존 reached-source 실제 prewarm은 scratch 복원 직후에 보존하며 Rsbuild public run에는 별도 실제 prewarm을 추가하지 않습니다.reserveClassSlots와 누적getUnreservedClassSlotCount를 제공합니다. 기존 export/이름 철자를 바꾸지 않으며 packet 전체 타입/arity를 상태 변경 전에 검증합니다.a6ecc125 + #781native watch control을 한 번 분류하여 4조합 중 3개의 stale CSS를 확인했습니다. watch의 terminalfinishModules에서 오래된 생성 CSS module만 nativerebuildModule로 같은 compilation 안에서 재조정하고 seal/게시 전에 기다립니다. 새 compilation/retry/timer/강제 prewarm/asset 문자열 교체는 없습니다.새로 생기는 오류
순서 예약 자체의 새 소스 빌드 오류는 없습니다. 예상 IO/manifest/source 추출 실패는 scratch에서 게시하지 않고 실제 transform의 기존 위치 포함 진단을 보존합니다. 잘못된 manifest shape는 TypeError 계열을 유지하는 명시적 경계 오류로 구분하며 임의의 TypeError를 숨기지 않습니다. 내부 facade의 잘못된 행/packet API 타입·arity 오류는 mutation 전에 보고하고 소스 오류와 구분합니다. native watch CSS 재빌드가 실패하면 원래 오류로 generation을 실패시키며 부분 CSS 성공을 게시하지 않습니다.
#781의 JavaScript JSX/parser 진단·webpack map-object 처리와 #783의 완전한 production prewarm/IO·추출 실패 전달은 순서 예약이 아닌 명시적 선행 변경입니다. 실제 prewarm은 예약 뒤 run 경계에 유지했으므로 선행 qualification의 apply-time 샘플만 올바른 owned preparation unit 경계로 정렬했습니다. CSS/변환/오류 identity/격리/독립 shutdown assertion은 유지하며 이 unit 증거를 native HTTP 증거로 오인하지 않습니다.
남는 한계
검증
b019767b: 최종 정상 전체 hook 6137 pass / 0 fail / Bun 함수·라인 100%, Rust workspace/기본 stack/lint 통과. 843.742s/3.359GB, CI unset/jobs2/전체 tree 12GB watchdog, bypass/amend 없음. 선행 true merge59ef63b3도 전체 정상 hook 6130/0/100%로 통과했으며 부모는9f2ad995 + 42cb0a4e입니다.38871038860은 네 job 모두 SUCCESS입니다: publish/benchmark/landing-next-e2e/vinext-rsc-css-e2e. 실제 Rust 100.00%(12481/12481), Bun 6137pass/0fail/함수·라인100%, 별도 preload regression8pass/0fail입니다. 원래 watch AB/BA single/per-file 및 원래 Next prod/dev HTTP 행이 실제 통과했습니다. 초기38856231016의 watch 두 실패는 원본 RED 증거로 유지합니다. Windows98.09%와 Linux100%를 혼동하거나 coverage 제외를 추가하지 않습니다.b019767b대 fresh control tree4b82ab87(maina6ecc125 + #781 fd4bb5d4 + #783 42cb0a4e), 각 실제 app의 동일 stock command/observer 없는3+3교대 output/cache-cold입니다. Nextbun run build --webpack: control13.468/13.462/14.413s, candidate16.481/14.415/14.415s, 중앙값 +7.03%. Rsbuildbun run build: control1.350/1.282/1.301s, candidate1.321/1.266/1.275s, 중앙값 -2.00%. 모두 +15% 이내/실제완료/exit0/tree drain, outlier 제외·native sample 재실행 없음입니다. WASM/utils/webpack/Rsbuild/Next의5root를 함께 선택했으며 원본426artifact파일·2165tracked파일·config·공통vite-lib bytes를 정확히 복원했습니다. 부모가 원본12로그 hash/종료·drain/중앙값/복원을 독립 재검증했습니다.2026-10-18 갱신: main
3ca6182fc08b1a63875cfb27ef470e98404aed12를 두 부모 merge commit6d7937b7505c49b021f6b367b32c7364d165a45d로 병합했습니다; 유일한 충돌libs/extractor/src/lib.rs의 모듈 선언은 main의prop_valid와 #782의 공개reservation_state를 모두 유지해 해결했고 예약·진단·ref/합성·CSS cascade 동작은 바꾸지 않았습니다; 새 snapshot 후보·snapshot 수정·build error·runtime·dependency는 없고 기본 stack/jobs=2/native 6GiB에서 Rust workspace·fmt/clippy·fresh WASM/root·Bun 6,139개/0 fail/함수·라인 100% 및 12GiB 정식 hook이 통과했습니다(517.8초/peak 4,157,157,376 bytes); 실제 public WASM의 AB/BA 예약 프로브는 코드·map·최종 CSS·class/file map이 바이트 동일하고 residual=0임을 확인했으며 사용하지 않은 magenta CSS는 게시되지 않았습니다; 실제 출력은 A의className="a b"/--c, B의className="d e"/--f및.d{background:blue}.a{color:red}.b{gap:var(--c)}.e{width:var(--f)}로 짧은 카운터 이름만 유지했고 해시·내용 기반 이름이나 재매핑은 추가하지 않았습니다; LSP timeout은 실제 compiler/clippy/tests 검증과 구분해 기록합니다.; 최종 head6d7937b7505c49b021f6b367b32c7364d165a45d의 CI 39066117115는 5개 job 전체 SUCCESS이고 Linux Rust 100%(13552/13552), Bun 6139 pass/0 fail/함수·라인 100% 및 별도 preload 9 pass/0 fail을 확인했습니다.2026-10-18 W71b 갱신: main
f16cd190과 최신a26bb579를 실제 두 부모 병합으로 반영했습니다(최종01d4fd1c); WASM ABI의 정확한 내보내기 목록에getUnreservedClassSlotCount·reserveClassSlots를 추가하고, 실제 JS/WASM 호출로 클래스·파일 슬롯 예약과 scratch CSS 비발행, 최초 예약 전 0 및 예약 후 신규 슬롯·반복·추가 예약·초기화의 계수, 테스트 종료 상태 복구를 검증하는 3개 테스트를 추가했습니다; 최신 stable Rust 1.99.1 기본 스택의 fmt·Clippy·workspace 테스트, 새 WASM·전체 빌드, ABI 16/16, 정규 전체 훅과 실출력 AB/BA 동일성 검증 통과, CI39113548306전체 성공(Linux Rust 13644/13644 100%, Bun 6244 통과·0 실패 및 함수/라인 100%); 새로 생기는 오류 없음, 기존 한계 변경 없음.