Repository navigation
Conversation
…rations css(a, b) composing classes whose styles the build knows, bound to css() in the file or exported by another module, merges their atoms per property, selector, breakpoint and layer, conditions included, instead of joining classes whose winner the stylesheet order picked. vanilla-extract style([...]) passes each composed style as its own argument, keeping a style composed again later. Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…asurable Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…JSX spreads win Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…led order and JSX element className Refs #688 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…uate shouldForwardProp at build time Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ring Refs #689 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #691 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… and conditional styles Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…h Emotion Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ed parameters Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #690 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ead through namespaces Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…akes from the visitor Refs #695 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…eclared after their use Refs #695, #686 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>
…nding 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>
Keep authored literal metadata and its source locations through the real parser, capture and emission paths, with 86 source-backed batch-B regression cases. Supply CssText::value and finite_text with boxed TemplateLiteral ownership; consume existing cursor declaration ranges in css_to_style_declaration instead of reparsing them. Coalesce the source-proven callback terminal/body guards and remove css_prop_value's already-successful duplicate raw-template preflight. Carry numeric OrderEnvelope/OrderStep payloads through the wrapper-only styled_callbacks::prepare_order_body/prepare_order_callback and block_callbacks::Returns::visit_return_statement/prepare_order_block_callback seams. Collect after BranchReads and before capture-array emission, retaining finite-first no-order precedence, real return-slot guards, nested-return exclusion and rightmost alternate/previous/consequent selection. The shared capture_prepared_callback emission preserves generic callback output. Fix conditional literal mixins in literal_scope so the selected true/red branch is not lost, and preserve nested statements in parenthesized grouping at-rules through global::remove_opaque/statements and is_grouping. Register only private source-fed visit restoration tests; preserve every old assertion and snapshot. F195 local-root transport is deliberately unchanged and deferred to separately reviewable commits under the coordinator's six-seam approval. No new build-error category, visibility widening, styling runtime, dependency or coverage exclusion. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
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>
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>
Refs #684, #685 Complete F195/O252 as one reviewable and revertible constructor-preserving unit. The carrier, normalization, emission, rule transport and local finish must be integrated together; intermediate stages lack required typed suppliers/consumers. Six approved seams: 1. ExtractStyleProp and ExtractResult transport payloads with the default Expression type parameter, constructive map/clone and one extraction engine. 2. Composition apply/apply_conditional/overlays/into_props preserve payloads and construct private normalized top-level products inside overlays. 3. Shared gen_class_names/gen_class_name/merger constructor operations retain one recursive emitter and one merger, including arbitrary Expression singletons. 4. Local known_parts/known_side/folded_side/push_choice/part_props/literal_scope counterparts retain actual class boxes and the genuine nonempty capture owner. 5. Typography Template/Call constructors and necessary recursive rule/yield transport retain their boxes through the typed RuleClass backend. 6. A boxed CallExpression constructor is factored from call_with_values, retaining the Expression entry, argument/parameter order, flags and inner spans. Default type parameters do not drive unconstrained expression inference. Retain the approved crate-internal Expression-facing Composition::default and default extract/into_extract delegates to private payload-generic recursion; do not annotate or rewrite existing callers or assertions. Remove only five compiler-reported unused private default facades after workspace caller proof; keep literal_context::reject test-only for its unchanged old test. No factory mode, warning suppression, public visibility widening or seventh seam. Restore only the final outer String/Template/Call/Conditional span, then erase once. F199 no-op, source grammar, clone semantics, naming, finite origins and capture evaluation order remain unchanged. Add 46 real-source control cases; park the independently approved A/B regressions outside this F195 unit. All 767 old snapshot hashes are unchanged; libs/sheet has an empty diff. Fresh candidate JS/CSS/maps/errors match all 48 original real-WASM probes and 22 public Oracle controls byte for byte without normalization or allowances. Rust1.99 clippy, 4165 workspace tests, 6472 Bun tests (aggregate100), lint and 11 generated timing observations pass; lint has only the two baseline warnings. No new build-error category, styling runtime, dependency or assertion/golden edit. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Bug A: validate literal mixins before lowering the complete metadata-bearing ClassNames template, so root red retains order 2 across external and known mixins while authored getters run once. Preserve the existing located rejection of nested mixins; add two source-fed ordered-red regressions and a public nested-error regression. Original snapshot JS/style values, raw48 probes and unrelated Oracle outputs stay unchanged; the three named root-red CSS outputs now use o2. No sheet, capture, parser policy, runtime helper or new build-error category. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Bug B: match the real Emotion ClassNames cx empty-string result for ordinary literal string tables at the direct-parts result boundary, using the existing typed string_class and conditional constructors. Require the actual saved primitive key tag before lookup so a missing selection cannot collide with a property named undefined; preserve both the real undefined key and once-only authored getter. This corrects inherited class-result behavior, not an F195 regression. Add 18 source-fed raw type/value/trace regressions and controls, including positive a/b and nullish/logical controllers. Only literal-member and literal-missing Oracle JS/maps intentionally change; old snapshots, raw48, styles and sheet stay exact. No capture, selection, controller, source factory, merger, default API, finished-root, runtime helper or new build-error category change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add six real parsed object cases through the normal expression extraction wrapper, registered typography producers, conditional styleOrder 2/3 alternate cloning, RuleClass Template/Call transport and conversion. Assert source-owned object/condition spans, exact red declarations and both orders, real payload forms, selected classes and once-only authored order/typography getters. Target the fresh I35-I39 Linux ledger obligations without fake payload constructors, source-state seeds or any production change; new formatted test stays at 100 lines plus one parent registration. Existing assertions/goldens and the full767 snapshot, raw48 probe and whole22 Oracle outputs stay byte-identical with no exceptions; sheet diff empty. C1 bare-return callback semantic issue is separately parked and not touched. Linux coverage advance remains to be measured on this commit. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Named C1: a bare return selects no style order, exactly as omitted metadata. At value selection, an initial missing alternate uses the existing falsy && Order::Absent path rather than cloning the other branch; explicit alternates and previous selections remain intact. Four public-source arrow/function regressions prove unlayered stopped red, order-2 continued red and once-only getters/effects; two valued-return controls preserve earlier selections. Fresh WASM checks both CSS modes and extraction exports. Existing 767 snapshots, 48 raw probes and 22 whole Oracle JSONs remain byte-identical; no intended Oracle or snapshot changes, no sheet/parser/capture/runtime changes or new build errors. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Named order-block supplier coverage unit: styled_callbacks passes the actual FunctionBody to prepare_order_block_callback, while original-root capture and the single invocation remain in the caller after body preparation. Remove only J113/J114 callee root and body guards because the input type makes those states unreachable; no fabricated invalid-root tests or coverage exclusions. Generic block preparation, return traversal/indexing, finite and expression paths, capture order and C1 selection remain unchanged. Real C1 and original wrapper controls pass; 767 snapshots, 48 raw probes, 22 whole Oracle JSONs and all eight C1 WASM/runtime receipts remain byte-identical. No sheet, old assertion, runtime, parser, dependency or new build-error change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Test-only named finite-outcome unit: real parsed Member and registry-backed responsive hover Enum carriers pass through default extraction, actual generation and FiniteStyles::emitted without reconstructed props, cached origins or fake Choice rows. Exact raw results and independent declaration variants, values, levels, selectors and orders stay correlated; missing/null keys exercise the actual lookup fallback. The public ClassNames companion obtains its actual registered origin and executes all eight authored global-getter boolean triples over three keys: 24 selected results with exactly three source reads, independently proving all six reachable pairs rather than weakening correlation. Direct plain-flag cases retain their four correlated outcomes. Initial new-fixture top-level Enum and shared-public-flag assumptions were corrected only after actual producer and getter proof; old tests/helpers/assertions remain unchanged. Two additive children of 81 and 98 formatted lines share their actual source producer and expected-only atom oracle, with their two registrations in the same compiling unit. Zero production or sheet changes; original 767 snapshots, 48 raw probes, 22 whole Oracle JSONs and eight C1 WASM/runtime receipts remain byte-identical. J70/J71 and unproven shapes remain held, no advance Linux coverage credit or new build errors. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Name this approved two-seam unit C1b: retain the old terminal-valued
wrapper route, admit the supported structural normal-exit skeleton, and
consume actual empty prepared steps as absent literal metadata. Retain
every authored invocation, default, getter and effect. Validate removed
original metadata and keep later orders, nested scopes and real spreads.
The six named terminal-arrow, terminal-function, terminal-arrow-effects,
terminal-function-effects, allbare-arrow and allbare-function fixtures
change from located invalid-order errors to correctly selected styles.
Explicit unsupported control flow, async and generators stay unchanged.
Obsolete-test reconciliation: move exactly p=>{return;},
p=>{trace.push('tail')} and p=>{if(p.active)return 2} from the old
literal_w38b_callbacks.rs rejection table to positive regressions for
their full order vectors, selected red classes and once-only traces.
Every other original assertion and golden remains unchanged.
Keep the callback-mixin comparator, own all-bare static css() red-class
assertion, named no-order undefined-class current-behavior control and
eight named public spread-bug controls. The static css() omission defect
and public real-spread supplier defect are separate approved next units,
not silently repaired or declared accepted here. Linux coverage remains
the release authority; no coverage exclusion or threshold change.
Refs #684, #685
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Name this independent approved unit C1c. Styled template preparation now separates a statement interpolation before primitive CSS text folding only when its actual existing finite provenance has one producer result at top-level structural depth. The original expression, source span and semantic IDs supply the declarations; no class spelling or cached witness stands in for real provenance. Move only the touched template splitter and segment builder into one bounded child, retaining the default template_parts path and behavior. Only the styled fallback calls the provenance-aware entry. Leave value positions, authored primitives without provenance, nested and multi-result behavior, parser/capture/wrapper/preparers/OrderStep/value policy unchanged. Do not decompose untouched css_prop host production or move old tests. The no-styleOrder static css() mixin now selects the red class it already emits; the explicitly ordered all-bare counterpart stays unchanged, with no intended CSS rule/order/layer delta. Preserve the restored original strong omission comparator byte-for-byte and its independent source-fed supplier, selection, composition and invariant controls. Reconcile the specifically named C1b current-behavior no-order typeof undefined control to the corrected string-class result, retaining its source, red declarations and once-only getter trace. The all-bare positive control and callback-mixin comparator remain unchanged. Main11790 origin is unchecked; the separately approved public real-spread supplier unit and Linux100 release work remain, not a silent parity exception here. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Deliver the separately approved W38m spread-supplier unit after C1c. Recursively lower the actual styled argument before literal callback capture. Share the existing walker through typed preservation and construction entries, and reuse the unchanged source-spread shape/snapshot decisions at the original property position. Move only the touched production walk into one bounded child; keep all old tests, parser, OrderStep, value/preparer and capture policy intact. Correct exactly eight named public outputs: real-spread-nested and real-spread-nested-absence, each single/map, single/plain, split/map and split/plain. The former now retains root red and hover blue in o2/o3; the latter matches the whole omission CSS, selected classes and declarations while the authored pure callback still executes once per render. There are no new build errors or runtime styling helpers. Add genuine source-fed supplier, preservation, metadata, eligibility and opaque effect/default regressions. Preserve the actual no-order rejection of the three comment-hole effect fixtures instead of widening eligibility; independently proven scalar spread controls check complete static/dynamic inventories, exact inline values, construction order, repeated-spread effects, later orange override and identical sentinel throws stopping every later operation. Reconcile only new test assumptions about the canonical style-order key and test-harness ownership. Correct the new private plain-map assertion after the unchanged binding proved that both public exports request Generate; no production map change. Final gates: 4360 Rust tests, 6472 Bun tests with aggregate display 100% functions/lines, Rust 1.99 workspace/all-target clippy, fmt, fresh WASM/root build and lint. Final public binary e87ad8dd has all 240 other whole outputs unchanged, all eight corrected contracts verified, C1c 16 whole receipts unchanged, and all 767 snapshots, 48 raw probes, 22 whole Oracle outputs, C1 raw/runtime controls and manual QA unchanged. Rust LSP requests time out; no clean-LSP claim or installation. The pre-existing Vite Bun row remains 99.67 at closing brace line 365, identical to the C1c baseline; aggregate display is not a claim of exact 100% in every file. The separate no-order conditional-spread precedence finding is coordinator-routed outside PR766 and remains unfixed here. Main behavior was not built or classified. Linux coverage/ready remain later release work, not credited by Windows gates. Refs #684 #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Deliver the coordinator-approved M58-M60 test-only coverage unit after the separate spread fix. Add two small source-fed test children and two registrations; the rejection registration follows the original complete production body. No production behavior, parser, policy, public signature, old assertion or golden changes, and no new build errors. Real Oxc expression-arrow fixtures for styleOrder and quoted style-order require the exact original key offset and no-effect diagnostic. Metadata-free and block audits remain empty without implying public callback support. Public keyframes fixtures retain the existing no-effect and unsupported-call diagnostics; unsupported block and metadata-free arrows remain unsupported. All six tests pass. The temporary counterfactual removing only arrow recursion makes the metadata test fail while both audit controls pass; original production bytes restored. An unregistered exact staged-tree archive formatted with the current CI config matches the original whole production prefix and lexical owner proofs. Its focused LLVM run passes all six tests and records positive uint64 XML hits at wide40-42 for M58-M60; raw counters are retained losslessly, not counted as Linux/global100. No excluded lines, lowered threshold, fabricated producer or failure-arm test. Final gates: 4366 Rust tests, 6472 Bun tests with aggregate display100, fmt, Rust1.99 workspace/all-target clippy, fresh WASM/root builds and lint with exactly two baseline warnings. All248 whole post-spread public outputs, C1c16 and the original767 snapshots/48 raw/22 whole Oracle/C1 raw-runtime/manual controls remain byte-exact on final e87ad8dd binary. Rust LSP timeouts remain; no installation or clean-LSP claim. Inherited Vite99.67/365 remains unchanged. Linux after the push remains authority for retirement and all remaining deficits. Three test-helper failure-arm gaps, finite injectivity and typed caller obligations remain mapped/HOLD; no fake failure tests or removal credit. Refs #684 #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Totalize the three approved test-only scalar expectation helpers. Typed static_color and class_tokens retain source-derived expectations and assert both the actual ClassName variant and its independently computed token. Keep every non-Dynamic output variant in exact Static-multiset equality, preserving multiplicity and rejection of unexpected rules without a separate unreachable panic arm. All dynamic properties, metadata, inline values, selected tokens, fixtures, effects and sentinel checks remain unchanged. The three files are inseparable: the typed class_tokens signature requires both the scalar inventory and metadata expectation consumers to change with it. Four temporary wrong-expectation demonstrations fail at the intended checks, and each restoration matches the frozen formatted candidate bytes exactly. No manufactured output, failure-arm test, exclusion or threshold change. Full local gates pass: 4366 Rust tests, 6472 Bun tests with aggregate displayed 100 percent coverage, fmt, Rust 1.99 clippy, WASM/root builds and lint with only the two baseline warnings. All 248 post-spread plus 16 C1c whole outputs, 767 snapshots, 48 raw probes, 22 whole Oracle receipts, C1 controls and manual scenarios remain byte-identical on the final production binary. No production change, new build error or public output delta. The inherited Vite per-file coverage row is not a claim of exact per-file 100 percent; Linux coverage remains the release authority. Conditional-spread precedence remains routed elsewhere and is not fixed by this test-only unit. Refs #684 #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Exercise real parser and semantic suppliers, exact diagnostic locations and dispositions, complete surviving style inventories, conditional class selection, and once-only guard effects. Production code and protected outputs remain unchanged. Private XML proves nine targets and all 57 measured new counters positive; five absent classes and two absent conditional wrappers remain honestly unmeasured locally, with named passing cases and wrong-expected fail-capability evidence. Linux CI remains coverage authority. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… guards Add source-fed empty/nonempty saved-result OR and coalesce cases, lazy nested conditional guards, orderless and nullish controls, and the existing located multi-statement child rejection. Compare complete typed inventories including hidden fields, exact selected classes/declarations, effects and independent literal inventories. Production, snapshots and prior tests stay unchanged. Preserve nineteen exact positive target proofs, fifteen named native cases and four restored wrong-expected failure demonstrations. Five new test classes absent from local XML remain unmeasured locally, not covered; Linux CI is the coverage authority. Rebuilt four-mode SDK QA compares complete CSS, rule order and layers with independently authored compile-only references, while all protected output contracts remain byte-identical. No new build-error category. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Add 32 source-fed saved OR, AND, coalesce, conditional and array-alias cases, including eager construction, post-choice state mutation and lazy fallback controls. Compare complete typed inventories including hidden fields, exact selected classes/declarations/order and traces, with independent literal data. Production, existing assertions and protected snapshots remain unchanged. Twelve exact positive private target proofs are retained with three absent new classes honestly unmeasured, not covered. Four real wrong-expected failures were immediately restored byte-exactly; mutation patch/hash reconstruction is explicitly retrospective. Rebuilt four-mode SDK whole-CSS/order/layer checks and all protected output contracts pass. Linux CI remains the coverage authority. No new build-error category. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ten named controls: eight public ClassNames leaf shapes (literal, constant and interpolated templates, static getter, computed getter and key) with an independently authored typed inventory, exact class strings and once-only effects, plus two native replays of an actual captured StaticMember through capture_style_argument, from_actual, CapturedSource::class and read_in. Tests only; no production, snapshot or oracle change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ed order provenance Twelve public-path cases: nested-statement styled templates that keep the tag (arrow, function and class callbacks, noncallback copying), six attrs forms restored after failed tag preparation (plain, computed, spread, object merge, arrow, function) and the async-arrow and mixed producer/numeric order-return rejections with exact located errors. Tests only; no production, snapshot or oracle change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… computed-member sources Eighteen public-path and native-replay cases for the Emotion ClassNames composition seams: literal, void and captured-template sides, finite right-hand fallbacks, saved finite array indexing with later-layer override, original-part rejections reporting the exact consumer, typography template payloads and a captured computed member replayed once with key and getter effects. Tests only; no production, snapshot or oracle change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ography roots and callback preflight errors Twenty-two public-path cases: styled calls whose argument is a literal object spread (explicit order, responsive values, css-prop inline eligibility), normalised conditional/supplied roots beside typography, finite spreads reading their test once, located errors for unreadable or unsupported callbacks, rules and css capture, and the legacy tagged-template fallback. Tests only; no production, snapshot or oracle change. A scoped nested styled callback inside ClassNames overflows the stack and is reported separately. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… roots and JSX runtime spreads Sixteen public-path cases: closed local rules keeping diagnostic and unreadable observations with their original error locations, equality-preserved typography payloads, runtime JSX spreads over arrays and conditionals, vanilla-extract metadata serialisation (number and explicit null), imported record producers (call and tagged template) and saved-producer conditions over empty, nonempty and mixed results. Tests only; no production, snapshot or oracle change. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… no input can reach Behavior-neutral removal of branches proven unreachable from their callers so Linux line coverage can close without fake tests: with_component no longer returns Option, prepares_styled and callback_result match only the live shapes, two redundant prepare guards, the always-None element parameter of the ClassNames local rule readers, the duplicate block-body and spread-snapshot rejections, ConditionalEmission::clone_expression, the unused Expression conditional constructor (ClassConditional trait split) and literal_locations::place (span threaded into constant_literal_at). Generated output, errors and all 767 snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run on the rebuilt binary. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…an, block-return and css-prop helper paths Behavior-neutral splits and removals so the remaining Linux gaps close without fake tests: the raw literal-marker diagnostic that no disassembled name can reach, the finite-style Choice kind (Row split into flags and keys, cross-kind clashes still rejected), one shared parts-or-unsupported body for captured and uncaptured ClassNames sources, one shared known-style side used by the legacy and local classifiers, and order_property as a single matches!. Nine public-path witness cases cover the keyframes name colliding with the styleOrder key through a custom prefix, boolean-literal conditions, block returns of runtime classes (current rejection pinned), nested class helpers in a css prop and ordered tag choices. Output, errors and all 767 snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…ee carriers Source classes (strings, templates, conditionals and, when captured, identifiers and members) no longer share the FinishedClass and CapturedClassBody types with typography RuleClass::Call payloads: UncapturedSourceClass and CapturedSourceClass have no Call arm, the LocalOutput trait keeps from_rule for the payload side, and the source-to-output crossings sit in composed_class_local and the literal scope. This deletes the unreachable Call arms of clone_source_expression, read_in and string_class, the unused read_call and the captured source default arm. One witness case (selected key whose value emits no class, through extract_style_from_expression and gen_class_names) covers the absent-key outcome of the finite emitter. Output, errors and snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run on the rebuilt binary. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…e unreachable order-glue fallbacks Real witnesses for the finite-style union conflict (two css() widths that differ only in theme-token resolution but share class names, selected by a conditional) and for the literal-scope spread drain beside an invalid styleOrder inside ClassNames, plus behavior-neutral removals: the finite_callback collision loop now folds through FiniteStyles::union, the accessor/method arm of the style-call order check (getters, setters and methods are function values the order parser always rejects first), the never-taken Unsupported fallback of the order prescan and attribute reader (parse once, same dispositions and messages), and the wildcard of the wrapped order callback (WrappedCallback is an Arrow or Function enum). Output, errors and snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run on the rebuilt binary. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…per emitted shape finite_styles::outcomes::text now converts the node once with AstKind::from_expression and tries five single-purpose readers (string literal, template, conditional, || fallback, computed lookup) through or_else, each starting with the library accessor and ?, instead of one match with impossible default arms for expressions the emitter never produces. The returned Option is identical for every input including declined sub-expressions (the five shapes are pairwise disjoint and each reader is pure), the pub emitted() and text() signatures are unchanged and no test, exclusion or unreachable placeholder is involved. Output, errors and snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run on the rebuilt binary. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
… string attributes reach it After the order-glue restructure the styleOrder attribute reader sends expression containers, elements and fragments through checked_order or its own placeholder errors, so jsx_expression_to_style_order only ever received string literals and its container and fallback arms were left uncovered by Linux (utils.rs). The string attribute now reads string_order directly (same Static result, same Definitive error on rejection) and the dead function is removed; the one unit test that used it classifies the same values through expression_to_style_order. Output, errors and snapshots stay byte-identical; WASM, Bun and protected spread 248, C1c 16 and diagnostics 16 parity were re-run on the rebuilt binary. Refs #684, #685 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
marked this pull request as ready for review
October 11, 2026 07:55
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 #684, #685 (W38: JSX 외 styleOrder 및 리터럴 CSS 메타데이터). 선행 #750과 W39 통합 merge
7391e11a의 stacked #756/#757 이력을 포함합니다. 최신 통합에서는 #756f2fc451793a8b6ee42a2f2a0dcd8bae09cd601a5와 #75778ef66021a69a8b2d1fbf575839b6e022745408f를 genuine two-parent merge975f3371,932a2b26로 차례로 반영했습니다. 로컬 통합은 GitHub 병합이 아닙니다. 읽기 전용 조회에서 #756/#757/#763은 모두 OPEN/mergedAt=null입니다. #756과 #757이 실제 병합된 뒤에만 #766을 병합해야 하며 자동 병합하지 않습니다.상태: HEAD 4c5527d, 최종 CI 38121147325 / success. 이 head에서 Linux Rust coverage 100.00%(17528/17528 lines), Bun 6472 pass/0 fail, lint와 나머지 세 job(benchmark, landing-next-e2e, vinext-rsc-css-e2e)의 green을 확인한 뒤 본문을 확정하고 ready로 전환했습니다. Never merge — 사용자만 병합합니다.
요약
css()와styled()의 조건부styleOrder, JSX 및 jsx-runtime 경로의 클래스 선택과 순서 레이어를 일관되게 컴파일합니다. 정적 전역 순서는 실제oN레이어에 등록하고, 순서가 효과 없는 API나 증명 불가능한 명시적 메타데이터는 authored 위치의 빌드 오류로 보고합니다. 객체styleOrder와 리터럴style-order는 CSS 선언으로 누출하지 않습니다.승인된 F195의 여섯 실제 seam과 별도 named fix A / B / C1 / C1b / C1c / spread를 전달했습니다. 이후 arrow/helper/diagnostic/logical/saved/leaf 및 이번 session의 coverage-only units를 아래 chronological 순서로 구분합니다. 기능 수정과 test-only 증거를 혼동하지 않습니다. 의존성·스타일링 런타임·sheet 정렬·workflow·threshold·coverage exclusion은 추가/변경하지 않았으며 changepack은 모두 Patch입니다. Linux coverage를 닫기 위해 호출 경로로 도달 불가능함을 증명한 branch만 behavior-neutral하게 제거·분리한 production unit 여섯 개(
94c84404,e2d46d25,49145f4e,a320ff36,e8420b91,4c5527d7)와 test-only coverage unit 여럿을 전달했습니다. 생성 출력·오류 문구·767 snapshot은 byte-identical입니다.동작
순서·오류·합성·평가 정책
'01'은 invalid,+'01'은 exact Number 1로 valid입니다. 공유 exact StringToNumber / canonical parser와 build/editor 허용 집합을 유지합니다. #763은 아직 OPEN이므로 나중에 병합되는 PR이 공유 파서와 겹치는 선언을 reconcile해야 합니다. 겹치는selector/index.ts,css.ts,global-css.ts,keyframes.ts와 기존create-global-style.ts선언 재사용 이력도 유지합니다.&&미선택은 지원합니다.false && 2는 Order::Absent,true ? 2 : '01'은 미선택 invalid arm도 Definitive 오류입니다. ErrorDisposition / OrderError를 타입으로 전달하며 오류 문구로 분류하지 않습니다. NeedsEvaluation만 genuinely exact/static Boa fallback을 허용합니다. condition/getter/보간은 authored 평가 위치와 lazy/한 번 읽기를 보존하며 소스의 서로 다른 두 읽기를 합치지 않습니다.oN레이어에 둡니다. runtime global selection에는 class selector가 없으므로 dynamic order는 오류입니다. keyframes / fontFaces / font-face / native StyleX는 cascade order가 no-effect인 문맥으로 위치 기반 거부를 유지합니다. selector/layer record와 namespace·일반 데이터의 같은 이름은 메타데이터로 오인하지 않습니다.styleOrder:0이나style-order도 일반 데이터입니다. 승인된 prop_modify_utils / order_forward는 styling-input origin으로 forwarding copy만 필터링합니다. runtime-only known Devup factory input에서는 generated native object rest로 정확히 두 메타데이터 키만 제거하며 getter 순서/한 번 읽기·class/style/title/symbol/descriptor는 유지합니다. runtime-only order는 CSS 효과도 DOM 전달도 없습니다. blanket key-name filter나 imported runtime helper가 아닙니다.tlayer는 이 PR에서 바꾸지 않습니다. responsive가 non-responsive 뒤에 오는 정책은 같은 selector group 안에서입니다. 그룹 간 우선순위와 main #705의 실제 hover/active 순서 결함을 혼동하지 않습니다.F195 — 전달된 여섯 seam (
71b09f67)lib.rs::ExtractStyleProp<'a,E=Expression>와extractor/mod.rs::ExtractResult는 실제 supplied payload만 parameterize합니다. 조건/selector와 다른 필드는 원래 Expression/데이터를 유지하고 clone/map은 constructor payload를 잃지 않습니다.Composition::{apply,apply_conditional,overlays,into_props}는 E를 보존하고into_normalised는 Static / Conditional / Supplied / Diagnostic / Unreadable을 normalization 지점에서 직접 구성합니다. erased Vec를 classifier/assert로 되찾지 않습니다. 기존 CascadeKey/Choice/Overlay·정렬·승자 정책은 그대로입니다.gen_class_names / gen_class_name / merge_expression_for_class_name은 default Expression entry를 유지하고 ONE emit_prop / ONE merge_roots를 공유합니다. local normalized top-level만 다섯 변형이며 descendant는 동일 recursive grammar를 사용합니다. generic arbitrary-expression singleton, equality(특히 Logical descendant), trimming/spacing/owned winner를 보존합니다.typography_lookup::dynamic의 CallExpression box 두 producer를 **RuleClass::{Template,Call}**로 보존합니다.extract_rule_styles / extract_rule_member_styles / apply_with_payload는 필요한 recursive transport만 수행합니다. yield_typography / yield_normalised_typography는 같은 declaration/skip traversal과 selector/breakpoint 정책을 공유합니다.utils::call_with_values_box는 기존 Call constructor를 factor하며call_with_values의 Expression entry도 유지합니다. argument/parameter 순서, flags, parenthesized arrow callee, optional=false와 inner spans를 보존합니다.Default inference 이유와 delegates: default generic arguments는 annotated type은 보존하지만 payload-free constructor의 unconstrained E를 추론하지 못해 실제 E0282가 발생했습니다. 승인된 Expression-facing Composition::default(generic Default도 유지), ExtractStyleProp::extract → extract_payload, into_extract → into_extract_payload로 기존 caller/test annotation 없이 inference anchor를 복원했습니다. private payload recursion은 operation당 하나이며 default delegate로 재귀하지 않습니다. 이는 seventh seam이나 duplicated algorithm이 아닙니다.
다섯 unused internal facade 제거 근거: whole-workspace tracked+nonignored-untracked caller/import/alias/function-reference proof 이후 아래 default facade만 제거했습니다. payload backend와 실제 outer API는 유지합니다. coverage exclusion/artificial reference/visibility widening이 아닙니다.
literal_context::reject는 다섯 제거 항목에 포함하지 않습니다. production은 reject_payload를 사용하고 reject는 #[cfg(test)]로 원래 test/body/assertion 그대로 보존했습니다. 실제 caller가 있는 unreadable/unreadable_key/place_in_layer와 default outer extract_style_from_expression도 유지합니다.Helper-arm 정책: restoration helper의 Call/Logical/ComputedMember/other arms(G110–113)은 parsed Call / Logical / Member / Binary를 실제 default carrier/emitter에 공급하는 source-fed control입니다. arbitrary generic singleton contract를 검사하지, 불가능한 local success나 fake cache/seeded enum state를 만들어 coverage를 주장하지 않습니다. 역사적 O242–244 generic folded_side는 독립 obligation이며 최신 목록에 없다는 이유만으로 제거/커버 완료로 치지 않습니다. F199 no-op은 unchanged preservation control입니다.
A — ClassNames complete literal scope (
cbfcd87f)ClassNamesCalls는 원래 template_parts validation을 FIRST 수행한 뒤 Ok에서만 complete metadata-bearing cloned quasi를 lowering합니다. 따라서
color:red;${external};style-order:2의 root red가 scope 전체 order2에 남고 외부/known mixin 및 getteronce를 유지합니다. 단순 whole-template lowering으로 기존 nested-mixin 거부를 없애지 않습니다. 첫 candidate의 nested-mixin acceptance/base drop은 거절·수정했고 원래 1:160 located error는 byte-exact입니다.허용된 Oracle 변경은 literal-mixin / known-mixin / nested-known-rules의 CSS/sheet만 세 건입니다: root red는 o2로 이동하고 inner blue는 o3 유지; JS/map 및 다른 fields는 unchanged입니다. 실제 red
.a{color:red}→ green@layer o2;@layer o2{.a{color:red}}. public 16 observations, parked source 두 회귀와 추가 nested-mixin rejection control이 통과했습니다. parser/capture/emitter/F195/root/sheet source 정책을 바꾸지 않았습니다.B — ClassNames missing literal selection (
41958f11)실제 Emotion React 11.14.0 ClassNames callback cx와 ReactDOM 19.3 SSR default/development에서 missing key는 primitive empty string / noThrow / getteronce임을 확인했습니다. pre-fix public #766은 raw undefined/noThrow였고 exception은 오래된
.trim()test helper에서 발생했습니다. inherited path repair를 승인받아 별도 named B로 수정했으며 F195/A regression으로 재분류하지 않습니다.guard는 pure literal string OBJECT table, static/noncomputed/nonprototype data key와 pure StringLiteral value를 가진 directClass-result boundary에만 적용합니다. existing typed string_class와 saved-tag typeof === 'string' guard를 사용해 missing saved tag와 실제
'undefined'/primitive undefined selector의 legitimate key를 구분합니다.{a:'external-a',undefined:'collision'}에서 missing은'', 실제 undefined key는 collision을 유지합니다. selector를 재실행하지 않고 실제 capture arg에서 한 번 읽으며 raw ?? / || controller는 그대로입니다.18 local source cases / 24 public observations / 3 collision observations가 통과했습니다. Oracle 변경은 literal-member / literal-missing의 JS/map만 두 건이며 CSS/styles/sheet와 다른 fields는 unchanged, A의 세 CSS 변화도 유지합니다. 모든 cx 입력을 정규화했다는 주장이 아닙니다. broader arbitrary dynamic/prototype/nonstring/effectful/computed-key/array fidelity는 inherited 별도 한계입니다.
C1 — bare-return order callback (
48d708b4)USER decision: order callback의 bare return/undefined는 omission과 동일한 no order, outside layers입니다.
p=>{if(p.stop)return;return 2;}및 sync function의 stopped branch가 continued order2를 상속하던 결함을 수정했습니다. 변경은 literal_callback_order::value() selection seam만입니다. 초기 missing alternate는 cloned yes가 아니라 originaltest && yes와 parser의 Order::Absent 표현을 사용하며 명시적 alternate/앞선 selected candidate는 기존test ? yes : no를 유지합니다. explicit undefined 메타데이터 전반을 새로 허용하는 정책은 아닙니다.plain/effectful arrow/function과 valued6/7 early-return을 포함한 새 local regression 6개에서 orders
[None,Some(2)], exact one-token class와 render별 getteronce를 확인했습니다(기존 6 controls 포함 focused12PASS). mapped/plain × single/split × arrow/function = 8 real WASM observations가 통과하고 trace[built,get,early,get,tail]는 유지합니다.새 C1 fixture에서만 의도된 JS class selection / CSS unlayered red alternative / corresponding map 변경이 있습니다. single CSS는
@layer o2;@layer o2{.b{color:red}}.a{color:red}: stoppeda는 outside layer, continuedb는 o2입니다. split은a-a/a-b와 global o2 prelude를 사용합니다. generated code의 authored boundary space를 고쳐 쓴 증거가 아닙니다. original 767 snapshot hashes / 48 raw probes / 22 whole Oracle JSONs는 post-A/B419 baseline 대비 byte-exact, normalization/banner allowance/새 golden 수락은 없습니다. sheet source는 unchanged이고 새 error category는 없습니다.C1b — terminal-bare / all-bare callback wrapper (410b2e5)
기존 terminal-valued route를 유지하면서 supported normal exits의 bare return/falloff를 허용했습니다. wrapper와 capture_literal_styled의 한 consumer seam에서 실제 empty prepared steps를 omission으로 소비하며 제거되는 원래 metadata를 검증합니다.
뒤의 all-bare가 앞의 direct order를 지우되 다시 살리지 않으며 later/inner order·mixin·real spread는 유지합니다. opaque 효과/default/getter 및 pure callback도 원래 호출을 보존하고 OrderStep/value/preparer/parser/capture policy/signature는 바꾸지 않습니다.
여섯 named 출력 terminal-arrow / terminal-function / terminal-arrow-effects / terminal-function-effects / allbare-arrow / allbare-function은 각각 네 mode에서 rejection→compiled로 바뀌었습니다. mixed는 order2/unlayered, all-bare는 whole CSS/sheet/selected classes/declarations가 omission과 같으며 JS는 호출을 유지합니다.
기존 rejection의 정확한 bare/tail-effect/missing-else 세 입력만 positive reconciliation했고 async/generator와 다른 기존 assertions/goldens는 유지했습니다. static-mixin omission과 spread current-bug controls는 다음 별도 unit에서 수리했습니다.
C1c — no-order static css() mixin supplier (ca8e20d)
styled-only depth0 Statement의 실제 singleton finite producer를 primitive CSS-text folding 전에 보존합니다. splitter/segment를 분리하고 default path는 그대로 두며 prepare_styled_template fallback만 새 entry를 사용합니다.
이미 red CSS를 내보내면서 className을 잃던 no-styleOrder mixin을 수리했습니다. 강한 omission 비교는 유지하고 named undefined current-bug control만 corrected string behavior로 reconcile했습니다.
16 outputs를 검증했고 whole CSS/sheet는 red baseline과 동일하며 all-bare code/map/runtime/CSS도 동일합니다. C1b248 whole outputs는 byte-exact이고 sheet source 변경은 없습니다. main 도입 원인은 unchecked입니다.
Spread — recursive supplier / construction capture (19b38fa)
실제 recursive literal_tree lowering을 styled capture 전에 공급하고 typed Preserve / Construction의 한 walk에서 각 source spread를 원래 property 위치에 캡처합니다. 기존 reach/unsafe/recursive-or-snapshot 결정은 유지합니다.
real-spread-nested / real-spread-nested-absence × single/split × map/plain = 8 contracts만 located rejection에서 정상 출력으로 바뀌었습니다. valued는 unlayered root red와 hover blue o2/o3, bare는 whole omission styling과 render당 한 번 호출을 보존합니다.
public248은 240 whole unchanged + 8 corrected, C1c16도 whole exact입니다. scalar source-order/repeated-spread/later-orange/throw controls는 complete inventory·inline 값·sentinel과 뒤 효과 비실행까지 검사하며 comment-hole rejection은 확대 허용하지 않습니다.
Arrow — keyframes audit coverage-only (fcffdf4)
실제 Parser의 expression-arrow camel/quoted-kebab metadata를 원래 key/span과 no_effect로 감사합니다. metadata-free/block audit은 empty이고 public callback의 unsupported verdict는 유지합니다.
6 cases PASS와 임시 arrow recursion omission의 실제 실패 후 복원을 기록했습니다. production/기존 test body/golden 변경은 없습니다.
private wide의 세 target counters는 lossless uint64 positive 증거일 뿐 Linux retirement/global100이나 호출 횟수로 해석하지 않습니다.
Helper — typed assertion coverage-only (6ecb1ee)
typed static_color / class_tokens가 실제 ClassName과 독립 token을 함께 검사하고 non-Dynamic enum 전체를 exact Static multiset으로 비교합니다. dynamic metadata·8/9-rule inventory·inline·source/effect/sentinel assertions는 유지합니다.
네 wrong-EXPECTED checks가 실제 실패했고 각 시도 뒤 frozen bytes를 복원했습니다. production/fixture/golden/public output/new error 변경은 없습니다.
실제 support39/oracle28 measured counterlines는 positive이며 metadata XML class는 UNMEASURED / NOT COVERED입니다. named PASS나 실패 증거를 누락된 coverage counters 대신 쓰지 않습니다.
Diagnostic — literal-mixin metadata coverage-only (31e623c)
실제 Parser/SemanticBuilder/visitor와 scoped literal supplier를 통과시켜 invalid255/externalOrder/getRules의 authored offset·disposition·surviving inventory 및 valid/orderless/conditional selection을 검사합니다. hidden theme field도 typed Eq로 보존합니다.
16 diagnostics observations / 134 checks / 0 failures,16 whole baseline byte comparisons가 PASS입니다. invalid255의 located2:80, ordered blue/red, unlayered 및 true-red/false-green/guardonce를 유지합니다.
native12 PASS와 다섯 wrong-EXPECTED 실패/복원, nine targets 및57 measured positive counters를 별도 기록했습니다. absent classes/functions는 계속 UNMEASURED / NOT COVERED이며 새 error category는 없습니다.
Logical — finite logical selection / nested guards coverage-only (7558c88)
실제 imported makeCss outer-render producer와 one-expression ClassNames child를 사용합니다. finite provenance의 logical/conditional 및 nested guard 선택을 complete typed inventory·selected tokens/declarations·once/lazy trace로 검사합니다.
15 native cases PASS, selection/hidden inventory/order/trace의 네 expected-only 실패 뒤 전체 frozen hashes를 복원했습니다. 독립 literal-array reference는 compile-only이며 render하지 않습니다.
four-mode SDK의 whole CSS/header/rules/order/layers/sheet와 56 truth rows를 검증했습니다.19 exact positive targets와 five new classes의 locally unmeasured 상태는 서로 다른 증거이며 production/policy/golden 변경은 없습니다.
Saved — saved-finite provenance coverage-only (ddd7c01)
state mutation 전에 저장한 실제 OR/AND/coalesce/conditional const와 parts→array alias의 index0/public consumer를 사용합니다. 두 producer의 eager construction, empty/nonempty 및 lazy fallback을 보존합니다.
32 native cases PASS, filtering 전 hidden fields를 포함한 full typed Eq·exact tokens/declarations/order/traces와 네 expected-only 실패/복원을 기록했습니다. mutation patch/hash의 일부는 사후 RECONSTRUCTED이며 최초 실행에서 캡처했다고 주장하지 않습니다.
SDK는 128 truth rows, 현재 logical sibling은56 rows에서 whole CSS/layers/sheet·선택·효과를 검사했습니다.12 positive exact targets와 absent three new classes의 UNMEASURED_NOT_COVERED를 유지하며 production/기존 assertion/golden 변경은 없습니다.
Leaf — captured static-member replay coverage-only
10 cases (8 public + 2 native replay)가 PASS입니다. empty/nonempty literal·constant/interpolated template·static getter·computed key/getter에서 exact class/order/space/selection/declarations/multiplicity/trace와 hidden-field typed Eq를 검사합니다.
native는 실제 alias transform→Parser/SemanticBuilder→capture_style_argument vector→CapturedSource.class/read_in을 거쳐 원래 semantic StaticMember와 captured-original payload를 원래 환경에서 한 번 replay합니다. public post-capture StaticMember reachability 증명은 아닙니다.
selection/hidden CssVariable field/order/trace의 네 expected-only 실패는 각각 exit101/0 passed/1 failed이며 compile error 없이 실패하고 다음 시도 전2317 frozen hashes를 복원했습니다.
private XML의 M81 / M96 / M97은 unique EXACT owner와 positive lossless uint64 counters로 검증했습니다. four new test classes는 UNMEASURED_NOT_COVERED, references는 compile-only/never rendered, SDK whole-CSS는 8 fixtures × 4 modes PASS입니다.
Unit 2 — styled fallback / attrs / order provenance coverage-only
12 cases PASS로 nested-statement legacy fallback, async expression callback located rejection, restored attrs의 title/id/style/class 합성과 mixed producer/order-return provenance rejection을 검사합니다. public extract와 독립 complete typed inventories/전체 located error를 사용합니다.
40 target groups 중 24 REACHABLE /16 caller-proven UNREACHABLE /0 SPLIT-NEEDED로 분류했습니다. sparse-array 가설은 실제 public rejection 뒤 폐기했고 private state를 만들어 대체하지 않았습니다.
이 unit의 변경은 test-only입니다(commit
c225e9b6, 정상 hook 통과). private wide LLVM에서 24개 target line이 모두 positive였고 workspace는 4447/0입니다. 16개 caller-dominated group은 아래 production unit에서 별도로 검증·처리했습니다. local 측정을 Linux coverage100으로 바꾸지 않습니다.Unit 3 — ClassNames composition coverage-only
18 cases PASS입니다(commit
995dddeb). literal/empty/template class order, finite-right fallback, saved finite array index/later override, original-parts rejection, runtime typography 및 실제 computed-member capture/replay를 검사합니다.22 REACHABLE /1 SPLIT-NEEDED /14 UNREACHABLE target groups를 caller/source로 분류했습니다. full typed inventory·selected declarations·exact spaces/trace/located errors는 독립 기대값이며 실제 출력에서 golden을 만들지 않습니다.
이 unit은 test-only입니다. private wide LLVM에서 22개 target line(M70–M75, M77–M80, M83–M85, M87, M89, M98–M104)이 모두 positive이며 workspace는 4465/0입니다. 첫 측정에서 M83이 ZERO여서 CSS-text typography 가설을 폐기하고 important-suffix capture가 TemplateLiteral을 다시 만드는 실제 입력으로 교체했습니다.
Unit 4a / 4b — visit·block·outcomes / constants·roots·utils coverage-only
4a (
f06d0af9): 22 cases. 리터럴 object spread styled(styled.x(...{object}))의 explicit order·responsive·css-prop inline eligibility, normalised supplied/conditional root와 typography, finite spread의 test 1회 읽기, unreadable callback·rules·css capture의 exact located error, legacy tagged-template fallback을 검사합니다. 17개 target line이 positive이고 workspace는 4487/0입니다.4b (
1a460c74): 16 cases. closed local rules의 diagnostic/unreadable 보존과 원래 error 위치, equality가 보존되는 typography payload, runtime JSX array/conditional spread, vanilla-extract metadata 직렬화(number / explicit null), imported record producer(call·tagged template)와 saved-producer 조건(empty/nonempty/mixed)을 검사합니다. 17개 target line이 positive이고 workspace는 4503/0입니다.두 unit 모두 test-only이며 production/snapshot/oracle 변경이 없습니다.
Production dead-branch removal — 두 unit (
94c84404,e2d46d25)Linux가 미커버로 보고한 branch 중 호출 경로와 dominating guard로 도달 불가능함을 확인한 것만 behavior-neutral하게 제거·분리했습니다(가짜 테스트·coverage exclusion 없음). 각 unit은 독립 read-only gate review가 APPROVE했습니다.
94c84404:with_component의 Option 제거(M10),prepares_styled·callback_result의 live shape만 match(M11, M124–M129), 중복 prepare guard 두 개(M130, M132), 중복 block-body·spread-snapshot rejection(M65, M140, M141), ClassNames local rule reader의 항상None이던 element 인자(M106–M109),ConditionalEmission::clone_expression(M43),Expression의 미사용 conditional constructor를ClassConditionaltrait로 분리(M46, M47),literal_locations::place(span을constant_literal_at로 전달, M48).e2d46d25: disassemble된 이름이 도달할 수 없는 raw-marker 진단 제거(M3), finite-styleChoice제거와Row의 flags/keys 분리(M35, M36; cross-kind clash 거부는 동일), captured/uncaptured source가 공유하는local_body(M69), legacy·local이 공유하는known_style_side(M76, M137),order_property를 단일matches!로(M112). 함께 추가한 witness test 9 cases는 custom prefix로 keyframes 이름이styleOrderkey와 같아지는 입력(M12/M13), boolean-literal 조건(M34), block의 runtime class 반환(M63/M64), css prop 안의 nested class helper(M133–M136), ordered tag 선택(M138)을 검사합니다.unit2/3 report의 proposal 중 구현하지 않은 항목은 delivered fix로 취급하지 않습니다(아래 한계 참조).
Production dead-branch removal 후속 — 네 unit (
49145f4e,a320ff36,e8420b91,4c5527d7)Linux run 38117359230(
49145f4e, 99.94%, 10 uncovered)과 38119153290(a320ff36, 99.98%, 3 uncovered)이 남긴 line만 같은 기준으로 닫았습니다: 호출 경로로 도달 불가능함을 증명한 branch만 behavior-neutral하게 제거·분리하고, 가짜 테스트나 coverage exclusion은 쓰지 않았습니다.49145f4e: ClassNames source class(string·template·conditional, capture된 경우 identifier·member)를 typographyRuleClass::Callpayload와 분리해UncapturedSourceClass/CapturedSourceClass로 옮겼습니다.clone_source_expression,read_in,string_class의 도달 불가능한Callarm, 미사용read_call, captured source default arm이 사라집니다(LocalOutputtrait는from_rule을 payload 쪽에 두고, source→output 경계는composed_class_local과 literal scope에 있습니다). 값이 class를 내보내지 않는 선택된 key를extract_style_from_expression과gen_class_names로 검사하는 witness 1 case(M38)를 추가했습니다. 첫 초안은 M37/M39용 가짜 테스트를 포함해 reviewer가 거부했고 commit 전에 제거했습니다.a320ff36: 실제 witness 두 개 — finite-style union conflict(theme token 해석만 다르고 class 이름이 같은 두css()width를 조건식으로 선택; M40)와 ClassNames 안의 invalidstyleOrder옆 literal-scope spread drain(M105). behavior-neutral 제거: finite_callback 충돌 loop를FiniteStyles::unionfold로(M111), style-call order 검사의 accessor/method arm(getter·setter·method는 order parser가 먼저 항상 거부하는 function value; M113·M114), order prescan과 attribute reader의 도달하지 않는Unsupportedfallback(한 번 parse, 같은 disposition·message; M115·M116), wrapped order callback의 wildcard(WrappedCallback은 Arrow/Function enum; M123).e8420b91:finite_styles::outcomes::text를AstKind::from_expression한 번 변환 후 다섯 reader(string literal, template, conditional,||fallback, computed lookup)를or_else로 잇는 구조로 나눴습니다. 다섯 shape는 서로 겹치지 않고 각 reader는 순수 함수라 declined sub-expression을 포함한 모든 입력에서 반환 Option이 같으며pub emitted()·text()signature도 그대로입니다. M37/M39의 default arm이 사라지고 가짜 테스트는 없습니다.4c5527d7: 문자열 attribute가string_order를 직접 읽게 하고 문자열만 받던jsx_expression_to_style_order를 제거했습니다(같은 Static 결과, 거부 시 같은 Definitive 오류). 이 함수를 쓰던 test 하나는expression_to_style_order로 같은 값을 분류합니다. 이 unit은 별도 독립 review 없이 commit body의 동등성 설명과 아래 final gate로 검증했습니다.49145f4e,a320ff36,e8420b91은 독립 read-only gate review가 APPROVE했습니다.전달된 coverage/test-only 이력과 base reconciliation
W38i D (
2245be99)는 실제 parser/extract_style_from_expression wrapper를 통한 typography source-fed 여섯 case와 RuleClass clone/into_expression/condition span/order/once-only getter assertions를 추가한 test-only unit입니다. production/source policy 변경이나 Linux numerator credit이 아닙니다. 이전 REST-B의 conditional literal mixin selected red/blue 보존과 parenthesized @supports nested wrapper 보존도 delivered 이력으로 유지합니다.#756 통합에서는 Tailwind07/08/09/14/15 once-only 및 folded10을 source/trace 계약에 맞춰 reconcile했습니다. nested metadata ESLint fixture는 정확히 두 개 valid→invalid, 원본 source/span은 그대로이고 일반 데이터는 계속 ignored입니다. incoming base snapshot blobs는 승인된 통합 이력이지 F195/A/B/C1의 새 golden acceptance가 아닙니다. 이전 132 Rust snapshot 및 forwarding-origin 15 golden의 개별 hash/field review, DOM class-order review, Boa test-wrapper stack fix와 마지막 rstest case 뒤 serial annotation 이력은 원본 hash·field review 및 실패/수정 기록에 그대로 보존합니다.
새로 생기는 오류
file:line:col, authored key/value/expression/import span을 유지하고 synthetic offset/line1로 대체하지 않습니다.남는 한계
styled.div(p=>{return p.cls;})처럼 block callback이 runtime class를 반환하면 현재Cannot compose ... a rule object, a class, or a condition오류로 거부됩니다(BranchReads가 쓰는 optional-chain slot을 두 번째known_parts가 거부). 소유자가 결함으로 판단하면 수정하고 해당 witness test(w38r_u6_order.rs)의 기대값을 교체해야 합니다. 지금은 현재 동작의 compatibility evidence일 뿐 승인된 계약이 아닙니다.Callarm, M37–M39의text()default arm)는 witness test 또는 behavior-neutral 제거·분리(위 후속 unit 포함)로 모두 닫혔습니다. 최종 수치: Linux uncovered line 0 (100.00% = 17528/17528).검증
-D warnings,cargo test --workspace(snapshot 변경 없음), 실제 WASM/root 재빌드, Bun 6472/0(aggregate 표 100%), lint 0 errors / baseline warnings 2를 다시 통과했습니다. 최종 head의 local gate 수치: 4c5527d(tree 124468dd)에서cargo fmt --all -- --check, Rust 1.99clippy --workspace --all-targets -D warnings,cargo test --workspace4519 passed / 0 failed, 실제 WASM·root 재빌드, Bun 6472 pass / 0 fail(All files 100.00 / 100.00), lint 0 errors / baseline warnings 2, 보호 parity(767 snapshots / 48 raw probes / 22 whole Oracle JSON byte-exact, C1 eight raw + eight runtime exact, spread 248 + C1c 16 + diagnostics 16) 모두 PASS.역사 증거와 보존 경계
전체 원본 아카이브·개별 hash/field review·Linux exact mapping/ledger·gate receipts는 private evidence로 보존합니다. 공개 본문에는 private 상대 링크나 파일명 링크를 넣지 않습니다. 과거 숫자/실패/판단은 체크포인트 기록이며 최종 CI를 대체하지 않습니다.
실제 프로브 출력 — 원본 15개, historical byte-exact
아래는 W38d 원본의 입력/변경 전/후 전체 출력입니다. JS/CSS/banner/path/탭/개행을 변경하거나 재생성하지 않았습니다. 현재 HEAD acceptance나 A/B/C1의 새 출력으로 읽지 않습니다. 합친 fixture의 keyframes 거부와 격리 정상 경로도 그대로 유지합니다.
order-css
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-styled
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-jsx
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-runtime
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-global
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-keyframes
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-semantics-base
입력과 변경 전/후 전체 WASM 출력
변경 전:
변경 후:
order-literal-css
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-styled
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-global
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-emotion
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-sc
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-sc-global
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-dynamic
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후:
order-literal-keyframes
입력과 변경 전/후 전체 WASM 출력
변경 전 (객체 lane 체크포인트, 리터럴 처리 전):
변경 후: