Core: заменить AlphaAnalog execution единым point-представлением - #518
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 17 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
WalkthroughPR заменяет legacy AlphaAnalog API и модуль ChangesМиграция point representation
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
…d delete its physical recipe path (#578) * test(colors): pin the Material characterization corpus before the C7d lowering Every public Material construction path (Brand / Family / five NeutralPick sources, all four passport themes, mixed per-theme tones, both legal floors, gray-background pole flip, the direct NamedRoleTable boundary with hue: None, and the typed chromatic-source conflict on both boundaries) is pinned bit-for-bit on the current physics: tone hex, selected alpha bits, worst conservative contrast bits, achieved dJ' bits, committed pole, satisfied status and the ordered 60-step bisection bracket. The corpus is the differential oracle for the C7d one-way lowering: a missed construction path, a compositor/order change, a single-backdrop substitute for the [black, white] corridor or a silent degradation breaks these pins. Sensitivity was proven by a deliberate one-bit alpha mutation (RED observed, then reverted). * feat(colors): lower Material into the compiled Program spine and delete its physical recipe path (C7d) - move the 60-step BackdropBox bisection physics verbatim into the private vocabulary-clean generic module corridor_representation (single source of the compositor envelope, directed-search guard and rechecked bracket) - compile every Material construction path (config, DTO tag, direct NamedRoleTable::new / from_validated_parts) one-way into CompiledMaterialInvocationV1; resolve_named_set intercepts the ordinal before recipe dispatch (AlphaAnalog #518 precedent) with order-drift and leftover-invocation InternalInvariant guards - raw RoleSpec::Material arm becomes a typed InternalInvariant guard; resolve_material and the callable old physical path are deleted - public Material syntax stays frozen pre-C7c: material.rs facades delegate bit-identically to corridor physics (locked by a facade/corridor bit-identity test); WASM adapters remain projection-only - zero-floor Material is rejected fail-closed at both compile boundaries (ConfigError::MaterialFloorRequired / NamedRoleTableCompileError::Material) - hostile source scanner: corridor module joins GENERIC_SOURCES and a new gate proves no Material physics outside the generic lowering - canonical reseal of the point-support capsule after the lib.rs module registration (independent verifier PASS) * chore(colors): re-ratchet the runtime WASM exact-byte budget from the C7d CI measurement The Material corridor lowering changes runtime WASM bytes (378113 -> 379268 on the canonical linux-x64 toolchain-pinned job, github-actions-run-31819594271). The budget is an exact measured pin with zero arbitrary headroom, so the new measurement replaces the old one and the checker file SHA-256 is re-bound to the canonical document. * fix(colors): restore the canonical single-LF ending of the resealed point-support proof The C7d reseal rewrote the proof artifact with a CRLF tail on Windows; the release contract requires exactly one canonical JSON object followed by one LF. Byte-level fix only: the JSON payload, verifier PASS and the sealed capsule hashes are unchanged.
- CompiledGlowInvocationV1 (tint/step/mode) compiled at table build, mirroring Material (C7d) and AlphaAnalog (#518) - resolve_named_set intercepts the ordinal before recipe dispatch; order drift and leftover invocations are typed InternalInvariant - raw RoleSpec::Glow arm is now a typed guard: executing it would recreate a second physics source - architecture guard glow_execution_lives_only_in_the_compiled_invocation (sabotage-proven: fails on a second solve_screen_alpha_for_dj call site) - bypass test proves missing invocation fails closed, no recipe fallback
…invocation (#581) * refactor(colors): move encoded-sRGB8 screen law into field_effect as single SSOT - encoded_srgb8_screen_channel in field_effect owns the reference law - glow.rs delegates its channel; local formula deleted - architecture guard glow_screen_physics_lives_only_in_field_effect (sabotage-proven: fails when local formula returns) - differential test pins glow bytes to the field_effect carrier * feat(colors): C7e - execute Glow only through its compiled invocation - CompiledGlowInvocationV1 (tint/step/mode) compiled at table build, mirroring Material (C7d) and AlphaAnalog (#518) - resolve_named_set intercepts the ordinal before recipe dispatch; order drift and leftover invocations are typed InternalInvariant - raw RoleSpec::Glow arm is now a typed guard: executing it would recreate a second physics source - architecture guard glow_execution_lives_only_in_the_compiled_invocation (sabotage-proven: fails on a second solve_screen_alpha_for_dj call site) - bypass test proves missing invocation fails closed, no recipe fallback * chore(colors): ratchet runtime WASM budget to C7e canonical Linux observation * chore(colors): repin runtime WASM budget file SHA after C7e ratchet * fix(colors): type the alpha boundary of the shared screen channel law encoded_srgb8_screen_channel now takes FieldOpacityV1: NaN/infinite/out-of-range alpha is unrepresentable at the law boundary, so garbage input cannot produce a plausible byte result. Domain validation stays centralized in FieldOpacityV1; the quantised composite stream converts its invariant-held alpha bits through a documented expect. * chore(colors): ratchet runtime WASM budget to typed-alpha canonical Linux observation --------- Co-authored-by: Daniel from Labpics <daniilerosov12@gmail.com>
Что изменено
analog.rsзаменён приватнымpoint_representation.rs;RoleSpecи recipe vocabulary;AlphaAnalog,resolve_alpha_analogиresolve_alpha_analog_hex;Почему
Core одновременно владел физикой и authored routing. Это нарушало opaque-ID границу и создавало второй recipe-shaped execution path рядом с generic Paint/Surface/Occurrence.
Влияние
Публичный низкоуровневый helper удалён намеренно: клиентов и обязательств обратной совместимости ещё нет. Конфигурационный frontend пока остаётся замороженным до общего public Program cutover; его byte output не изменён.
Проверки
cargo test --workspace --all-targets: GREEN, core 1007 passed / 7 ignored; WASM 73 passed; остальные workspace gates GREEN;cargo clippy --workspace --all-targets -- -D warnings: GREEN;cargo test --workspace --doc: 37 doctests GREEN;Scope
Этот PR удаляет один специальный execution path. Он не заявляет завершение free-alpha/glass, Material/Glow cutover, cleanliness, LCS или LPC.
Summary by CodeRabbit
Изменения
Документация
Тесты