F0a: выделить приватный point render spine - #347
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (12)
💤 Files with no reviewable changes (1)
WalkthroughПерестроен приватный appearance-граф с типизированными Paint/Surface/Occurrence, двухфазной компиляцией и исполнением. PairLabel переведён на point-адаптер. Обновлены контрактные тесты, документация и WASM size budget с v17 на v18. ChangesAppearance-граф и PairLabel
WASM size budget v18
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant resolve_pair_label
participant PointOpacityOverSurfaceV1
participant composite_over_srgb8_validated
participant resolve_hued_anchor_from_srgb8
resolve_pair_label->>PointOpacityOverSurfaceV1: evaluate tint, opacity, backdrop
PointOpacityOverSurfaceV1->>composite_over_srgb8_validated: compose tint over backdrop
composite_over_srgb8_validated-->>PointOpacityOverSurfaceV1: return derived surface RGB
PointOpacityOverSurfaceV1-->>resolve_pair_label: return surface RGB
resolve_pair_label->>resolve_hued_anchor_from_srgb8: resolve label on derived surface
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.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
Что изменено
Paint → Occurrence → Surface;Opacityменяет straight alpha Paint без знания подложки; exact source-over и replayable certificate принадлежат Occurrence;surfaceFromповторно использует уже видимый результат без второго композита;PairFill → PairLabelребра и фиктивного label occurrence;Корневая причина
Прежний приватный spine смешивал композицию поверхности и identity foreground. Статический компонент компилировался в runtime через
OnceLock, строил dynamic bindings/scratch и представлял структурно невозможные ошибки. Это закрепляло специальный PairLabel-маршрут вместо общей физической алгебры.RED → GREEN
29675926449: ожидалось432107 B, фактически385610 B;b3f95c195801f9817ca2768ca236d66663e19b17612648e49abe6f301cd2c0a3;385610 B, predecessor v17 и canonical file SHA-2562ee1e5b4472aa393eb399e3839ab9ac3cfb832a69fa8b704c3fa4854bc1e11f8;--budget/--runtime-wasm; теперь CI-команда связана ровно с default budget и built artifact, обе мутации дают RED;20/20, PairLabel8/8, alpha23/23;cargo +1.96.0 test --workspace --all-targets --locked, clippy, rustfmt, rustdoc и MSRV 1.85 — green;242/242;12 caught / 2 type-unviable / 0 missed / 0 timeout;Граница среза
Это F0a: приватный point render spine и его точный size-ratchet. Это ещё не публичный универсальный graph API, не полная миграция PairLabel и не joint solver.
Summary by CodeRabbit