Repository navigation
Conversation
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 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
|
This was referenced Oct 5, 2026
Merge updated parent PR 750 (74afb76), containing main 11790be. Conflicts: libs/extractor/src/prop_modify_utils.rs and conditional Tailwind snapshot. Share main's per-class Tailwind compiler between normal generation and PR 756 class capture, retaining semantic IDs and single evaluation. Regenerate the conditional snapshot to combine main's extra line-height declaration with the captured controller; retain all assertions and update five exact template-code expectations for PR 756 single-coercion IIFEs. Full workspace tests, fresh WASM/root builds and real WASM probe pass; no snapshots were hand-merged. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 8, 2026
owjs3901
added a commit
that referenced
this pull request
Oct 8, 2026
Merge #756 at f2fc451, retaining the style-order metadata policy and forwarding/callback provenance from faff4a0. Keep the current scope-aware style-order-range rule and clarify that nested style metadata is checked while ordinary props and data are ignored. Coordinator-approved integration reconciliation: the incoming test_tailwind_keeps_other_classes cases 07, 08, 09, 14 and 15 retain the current once-only __devupValue0 controller captures; case 10 folds the truthy literal a without reading the right side of OR. See the source-fed failure evidence D/W38g-756-test-conflict.md and successful executed controls W38g-756-tailwind-qa3.log. Existing HEAD assertions and goldens are unchanged. Reclassify exactly the two incoming ESLint fixtures containing nested zero and a computed styleOrder zero from valid to invalid, retaining their source and ordinary props/data controls. #766 reads metadata at those positions; #756 alone predated it. Pin the 2+1 original diagnostic locations, as recorded in W38g-756-eslint-focused.log. Rule production behavior is unchanged. Fresh gates: Rust1.99 clippy, default workspace4119/0, rebuilt WASM/root, Bun6472/0 aggregate100%, lint0errors/2baselinewarnings, original48probes with only the incoming1.0.82-to1.0.83 banner delta, and named literal/wrapper QA. The incoming guarded-hover/active cascade finding is reported separately, not fixed by this merge, per coordinator attribution instructions. Refs #684 #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 8, 2026
Merge #757 at 78ef660 after the genuine #756 integration975f3371. Recursive merge bases74afb760 and6d0c9c83 produce an identical tree3c14e7e427686d8802d1e0722afc33515d3eed28 with no conflicts or source changes. Preserve both exact base histories and normal hook gates. Keep the approved six incoming Tailwind expectation and two incoming ESLint fixture reconciliations from the prior merge, current JSX capture/constant-fold semantics, located metadata errors, and existing HEAD assertions/goldens. F195 and the remaining coverage units are separate subsequent changes. Refs #684 #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 8, 2026
Refs #690, #693 Merge exact f2fc451 retaining the current native/readback/provenance and incoming namespace/JS-semantics changes, without resetting merge state. Resolve five combined source/snapshot seams, use direct private tracking fields and current evaluate_located test API, and bind the incoming reachable-file helper to existing resolveSourceFile. Coordinator-approved merge-test alignments: lexical local require is not a module request; genuine unbound require keeps its original helper.ts:1:25 semantic site and unchanged cause/Fix/no-publication, while reference-free exploration falls back to entry.tsx:2:23 ingress; eight native consumer cases evaluate independent runtime sentinels, exact once-only getters/calls and wrong-slot/restoration instead of generated identifier spellings; only positive g uses valid styleOrder={undefined}, with the complete original invalid JSX retained as the located a.tsx:9:34 negative. All other fixtures and oracles remain unchanged; incoming capture/spread snapshot preserves the existing CJS_DYNAMIC alias. Full workspace4719, Rust1.99clippy, fresh WASM/root, Bun5535, preservation/API/carrier/graph and50both-mode browser positive/wrong-class/restoration gates passed. The prior advisory B Oracle result was lost to tool failure; coordinator authorized full-diff self-review and objective gates, not a claimed clean Oracle review. No contextual carrier/plugin delivery or out-of-scope Devup-only composition fix is included. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This was referenced Oct 11, 2026
Refs #682 #695 #688 #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
added a commit
that referenced
this pull request
Oct 17, 2026
Refs #682 #695 #688 #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This was referenced Oct 18, 2026
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #695 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 #695 (FN-08, FN-09, JSX-06, JSX-09, JSX-12, FN-04 및 JavaScript 평가 순서)
요약
동작
<Box bg="blue" {...rest}/>와<Box {...rest} bg="blue"/>는 모두 blue 스타일입니다. rest.bg는 일반 raw prop으로 전달될 뿐 CSS를 바꾸지 않습니다. rest에서 스타일을 읽으려면color={rest.color || 'black'}처럼 명시적으로 작성합니다.opaque literal의 일부만 스타일로 추측하지 않습니다. 예를 들어
...{color:'green',...rest}전체가 pass-through이며 별도로 쓴 color와 독립적입니다. 반면 빌드가 전체를 아는 정적 spread는 기존 D1 규칙대로 뒤의 property/selector/breakpoint/layer가 이깁니다. 직접 작성한 dynamic value의 기존 CSS-variable 경로도 유지됩니다.jsx/jsxs/jsxDEV/createElement의 parenthesized/as/satisfies props도 명시적 스타일을 보존합니다. getter·computed key·discarded expression·callee/receiver·children/key의 원래 평가 순서와 횟수를 유지합니다. 이는 일반 JavaScript/React props 전달이며 unknown-spread 스타일 runtime을 추가하는 것이 아닙니다.
새로 생기는 오류
/factory.tsx:3:58: <Box> cannot use () => 1 at build time: its styles must be an object literal or a constant object, or be computed from constants(실제 메시지의 코드 부분에는 backtick이 붙습니다). jsx/jsxs/jsxDEV/createElement 및 wrapper 모두 해당합니다. 완전히 shadow된 값의 원래 부작용과 최종 winner는 유지합니다.남는 한계
검증
최종 상태와 실제 merge 이력
최종 head는
2b1087eb1057cb82fe5873ca953eb19f869ba337, CI는 40061143552입니다. 전체 결론은 FAILURE이며 남은 실패는 wasm-size 하나입니다. publish, benchmark, landing-next-e2e, vinext-rsc-css-e2e, react-18, webpack-extends-theme, release-compat는 모두 실제 SUCCESS입니다. release/deploy-pages만 PR 배포 방지 조건으로 정상 skip됐으며 테스트 job skip으로 대체한 것은 없습니다.Linux Rust는 **100.00% (17989/17989)**입니다. CI Bun1.4.4 root 6248/0, Vite 867/0이고 두 All files 행 모두 functions/lines 100.00/100.00입니다. bun-plugin race regression10/0 및 publish E2E도 성공했습니다. 로컬 Windows Vite868/0과 Linux867/0을 섞지 않습니다. 이전 40053546840의99.90%(17975/17993) 실패는 아래 후속 커버리지 보완으로 해결됐으며 실패 기록을 green으로 덮어쓰거나 job 재실행으로 숨기지 않았습니다.
첫 실제 merge
d9cf3898의 부모는628f7c78 + 0807cc8a, 두 번째 실제 merge505e68a6의 부모는d9cf3898 + d1219765입니다. 일반 성능 커밋6e457e91의 부모는505e 하나입니다. 이 세 커밋을 최초 정상 fast-forward push1회로 전달한 뒤, 별도로 승인된 커버리지 커밋2b1087eb(부모6e 하나)을 추가 정상 push1회로 전달했습니다. merge마다 MERGE_HEAD를 유지했고, 모든 hook은 정상 실행했으며 tested/staged/commit tree와 전체 파일 hash를 검증했습니다. 최종 tree는1674d09bb8f94f5e1dd21fdfb2b662dbf9388438이고2655파일이 일치한 깨끗한 상태입니다.사용자의 마무리 지시에 따라 추가 코드/크기 축소/최적화/재실행은 시작하지 않았습니다. A: #756 크기 예외, B: 추가 최적화 여부는 아직 결정되지 않았습니다. 현재 CI는 latest Rust stable1.99.1/Bun1.4.4/Node26.12.1을 사용했고 이전 버전으로 고정하지 않았습니다.
로컬 관측 (6e457e9 성능 트리)
846836999b27218663cf650449ca876c55df2de4, 테스트한 전체2652파일 hash와 커밋 tree가 일치합니다.커버리지 후속 검증 (2b1087e)
18개 원래 CI 좌표를 안전한 private source archive의 wide-format과 실제 source에 매핑했습니다. 도달 가능한15줄은 Windows LLVM의 positive hit를 확인했고, 선행 flatten/whole-shape 검사 때문에 도달 불가인3줄은 두 개의 최소 동작 동일 구조 정리로 처리했습니다. threshold/exclusion/budget을 바꾸지 않았습니다. 기존 단언/스냅샷은 유지하고 실제 key/value/getter 순서, proto own-key 구별, conditional shorthand pruning, purity/diagnostic 보존 등 23행동 case를 추가했습니다.
최종 일반 Rust 7739/0, default stack fmt/strict workspace Clippy 통과, 새 WASM/root/components/lint/public 검증 후에도 427개 전체 record가 byte-identical이고 Node/React17080/0 및 Chromium16+24/0입니다. 최신 Bun1.4.4 로컬root6248/0+Vite868/0/두 표100.00/100.00, 자체 정상 hook 833.643초 통과했습니다. 이 hook의 Windows Rust는 **97.85% (25428/25988)**이며 실제 Linux100%는 위 최종CI에서 따로 확인했습니다. LSP는 계속 사용 불가이며 clean으로 주장하지 않습니다. 새 오류나 runtime/cache는 없습니다.
아래 landing/추출 수치는 6e457e9 엔진의 실제 관측입니다. 후속은 커버리지와 증명된 도달 불가 구조 정리뿐이며, 추가 성능 pass나 크기 축소는 수행하지 않았습니다. 후속 fresh engine의 전체 public 출력 동등성과 최종 CI benchmark PASS는 확인했지만 수치를 새 측정인 것처럼 재표기하지 않습니다.
실제 현재 출력
아래는 현재 엔진의 unknown spread-after 입력에 대한 실제 public 출력입니다. 원래 명시적 color는 red CSS이고 raw rest.color는 blue로 전달되지만 스타일 선택에 쓰이지 않습니다. className/style forwarding과 일반 once-only native copy가 남아 있으므로 emitted JavaScript 전체가 0이라는 뜻은 아닙니다.
새로 강제되는 factory 오류의 실제 관측:
main의 jsx/jsxs/jsxDEV에도 이 unreadable explicit value의 silent drop이 있었습니다. main의 createElement는 같은 supported-route 버그가 아니라 frontdoor 미지원 오류였고, #756가 추가한 createElement 범위에서 동일한 value 진단을 보완했습니다. fully-shadowed arrow의 효과와 최종 winner는 유지합니다.
Landing Client JavaScript 크기
각 fixture의 실제 production/Oxc minification pipeline과 기존 prerender 검사를 사용했습니다. main archive/실제 엔진은 d1219765이고, 현재 source는 post-main 작업 트리의 실제 파일 복사입니다. 두 fixture 모두 frozen install과 자체 JS-only package build를 거쳤습니다. matched main 두 cell은 같은 설치 경로/source/lock/package-output hash에서 private 엔진 bytes만 변경했습니다. baseline을 호환시키는 source 수정이나 live workspace pkg swap은 없습니다.
raw는 dist/client의 모든 .js/.mjs/.cjs bytes 합, gzip은 파일별 level9 합입니다. SSR/server/cache/maps는 제외하며 initial-route 전송량이 아닙니다. metadata/path/hash 노이즈를 임의 제거하지 않았습니다. 각 cell1회이고 OS/dependency cache를 cold 통제하지 않았으므로 build 시간 차이를 추출 속도 개선으로 해석하지 않습니다.
matched main 증가는 **+2967raw (+0.439%), +1136gzip (+0.522%)**입니다. 실제 최종 app/main 비교는 +2976raw (+0.440%), +1130gzip (+0.519%)이며 별개 입력일 수 있어 compiler overhead와 동일시하지 않습니다. 세 production build/prerender 모두 실제 PASS입니다. 현재 양쪽 vinext1.3.0/Vite8.3.4/React19.3.1 및 로컬 제공 Node26.12.0을 사용했습니다.
이전 관측도 보존합니다. 두 번째 main merge 전 matched-main 측정은 676431/217801 → 679398/218934 bytes로 +2967raw/+0.439%였습니다. 옛 scalar source의 matched 엔진 비교는 735962/232357 → 705472/224080 (-30490raw/-4.143%)입니다. 당시 실제 서로 다른 app/main 입력의 +4.296%는 vinext1.2.1/1.3.0·source/lock 차이까지 포함한 값이므로 compiler overhead가 아닙니다. 과거709465는 pre-repair 구현이지 main 기준이 아닙니다.
추출 성능과 남는 비용 (6e457e9 측정)
동일8fixture corpus(hash bb67b982...), 각 엔진별 measured9초 이상, warmup500ms 이상, 6개 실행 순서/18개 실제 Node process로 main/post-main-preopt/final을 교차 비교했습니다. reset/config/extract/output read/정확한 동등성 확인/disposal을 포함하며 load·sentinel·warmup은 측정에서 제외했습니다.
최적화 전 대비 약 3.015% 개선, 하지만 main 대비 **1.148235배 (+14.824%)**로 5% 이내 목표는 미달입니다. 6round 중5개는 이전 엔진보다 빨랐고1개는 느렸습니다. 반복 batch는 독립 표본이 아니며 통계적 유의성을 주장하지 않습니다. 첫 merge 전의 +14.740% 역시 역사적 관측이지 성능 parity/최종 승인으로 바꾸지 않습니다.
실제 제거한 작업은 참조가 없는 const initializer clone과 빈 read 집합에서도 먼저 하던 read-only 초기화 정보 수집이며, production diff는 +2/-1줄, 모든 기존 테스트/스냅샷/427public 출력이 그대로입니다. cache나 새 runtime은 없습니다. 이름이 보존된 진단용 build의 inclusive sample은 constant inlining11.857%, lexical collection1.997%, initialization1.461%였지만 최적화된 production과 다른 profiling build이고 그룹이 겹치므로 더하거나 main 대비 잔여 비용으로 쓰지 않습니다.
별도 같은-corpus/6-order의 fixture별 전체 경로 중앙값(μs)은 다음과 같습니다. interleaved corpus와 JIT 조건이 달라 이 값들을 합쳐 위 중앙값을 재구성하면 안 됩니다.
동적 값/조건/StyleX 경로에서 더 큰 차이가 관측되지만 이는 marginal phase 비용이 아닙니다. 남은 약22.52μs/corpus를 인과적으로 분해했거나 불가피함/다른150줄 이내 hotspot 부재를 증명한 것은 아닙니다. 승인된 단일 bounded unit에서 확인한 불필요한 작업만 제거하고 추측성 확장 없이 중단했습니다. Oracle의 source review도 이 제한을 유지한 MEDIUM APPROVE이며 전체 배송/성능 목표 달성 승인은 아닙니다. 별도의 CI benchmark job은 실제 PASS입니다.
WASM Size Gate (최종 CI FAIL, A/B 미결정)
최종 CI는 같은 latest 도구와 lock-matched wasm-bindgen0.2.129로 main/후보를 각 fresh target에서 빌드했습니다. main은d1219765, merge-ref 후보의 tree는 최종 head와 같은1674d09b입니다. 기존1% growth/1024B 올림 한도를 그대로 적용했습니다.
WASMraw는 main 대비 +1.397%, 한도보다 23471B 크고 gzip은 +1.141%, 한도보다 3036B 큽니다. glue는 두 항목 모두 동일합니다. #756은 현재 one-time 예외 대상이 아니며 A: 크기 예외 / B: 추가 최적화 결정 대기입니다. 크기 축소/예산 완화/baseline 수정/실패 재실행은 하지 않았고, 전체CI가 green이라고 주장하지 않습니다. 사용자 wrap-up 지시에 따라 이 정확한 상태를 보고하고 중단합니다.
과거 출력 보존
아래 25개 출력 블록은 이전 JSX-02 override 구현 당시의 역사적 관측을 byte-identical로 보존한 것입니다. 현재 기대 동작·현재 UI CSS·현재 오류·최종 승인 증거가 아닙니다. 특히 spread-style 변수/fallback, selector/css spread 오류 및 UI 재배치는 이번 구현에서 제거되었습니다. 과거 head/run 번호나 이전 카운트를 현재 검증으로 재사용하지 않습니다.
과거 출력 1 (현재 동작 아님)
과거 출력 2 (현재 동작 아님)
과거 출력 3 (현재 동작 아님)
과거 출력 4 (현재 동작 아님)
과거 출력 5 (현재 동작 아님)
과거 출력 6 (현재 동작 아님)
과거 출력 7 (현재 동작 아님)
과거 출력 8 (현재 동작 아님)
과거 출력 9 (현재 동작 아님)
과거 출력 10 (현재 동작 아님)
과거 출력 11 (현재 동작 아님)
과거 출력 12 (현재 동작 아님)
과거 출력 13 (현재 동작 아님)
과거 출력 14 (현재 동작 아님)
과거 출력 15 (현재 동작 아님)
과거 출력 16 (현재 동작 아님)
과거 출력 17 (현재 동작 아님)
과거 출력 18 (현재 동작 아님)
과거 출력 19 (현재 동작 아님)
과거 출력 20 (현재 동작 아님)
과거 출력 21 (현재 동작 아님)
과거 출력 22 (현재 동작 아님)
과거 출력 23 (현재 동작 아님)
과거 출력 24 (현재 동작 아님)
과거 출력 25 (현재 동작 아님)
size-budget.json은 바꾸지 않습니다.