Skip to content

F2a: разделить authored цвета и наблюдаемые поверхности - #352

Merged
lemone112 merged 3 commits into
mainfrom
agent/f2a-observation-admission
Jul 19, 2026
Merged

F2a: разделить authored цвета и наблюдаемые поверхности#352
lemone112 merged 3 commits into
mainfrom
agent/f2a-observation-admission

Conversation

@lemone112

@lemone112 lemone112 commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Что изменено

  • ColorInputId для authored Paint и SurfaceInputPortId для runtime backdrop разделены типом во всём private compiler/static-IR/binding path.
  • Добавлен private #[cfg(test)] admission коррелированных point-sRGB8 observations: полный Scenario связывает все обязательные surface ports одновременно.
  • Равная физика исполняется один раз без скрытого веса, но sorted provenance сохраняется.
  • Один stream-affine head задаёт Empty | Unknown | Observed, монотонную revision, exact idempotency/conflict и Waiting | Ready | Stale без silent fallback.

Причина

Authored цвет и изменяемая наблюдаемая поверхность раньше жили в одном ID/binding-пространстве. Такая модель не могла безопасно добавить runtime revision/freshness и сохранять корреляцию нескольких одновременно наблюдаемых входов без Cartesian-подстановок.

Границы

Это F2a proof-precondition, не публичный Session и не новый solver. Observation/compiler admission остаётся test-only; нет нового DTO, TypeScript/Swift/FFI/WASM wire, field/glass claim, output selection или compatibility layer. Production использует только typed surface port в уже существующем sealed point program.

Проверка

  • RED до реализации: 19 compile errors на отсутствующий observation seam и смешанные bindings.
  • F2a observation tests — 14/14; full core — 561 passed, 6 ignored; npm — 242/242.
  • Independent hostile architecture/numerical/API review — PASS.
  • Canonical Linux CI 29686470897 — PASS на exact head 26c703d02dc4b0af0706a3301d7e6d5393069f23.
  • Native conformance 29686470835 — PASS на self-hosted Linux; macOS штатно skipped.
  • Canonical Linux x64 WASM — 385346 B, zero headroom; byte-exact release, headless Chrome и Node 22 consumer floor — PASS.
  • CodeRabbit exact-head review — APPROVED; доказанное замечание к module docs исправлено, unresolved threads — 0.

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

В appearance graph surface-входы отделены от цветовых входов и переведены на SurfaceInputPortId и Srgb8. Добавлен модуль admission наблюдений с каноникализацией сценариев, контролем схем, корреляций и ревизий. Обновлены тесты и WASM budget metadata.

Changes

Appearance и observation pipeline

Layer / File(s) Summary
Типизированные surface-порты и IR
crates/labcolors-core/src/appearance.rs
Surface-входы используют отдельный SurfaceInputPortId; схемы, compiled IR, ошибки компиляции и binding validation разделяют color- и surface-порты.
Srgb8 runtime materialization и сертификаты
crates/labcolors-core/src/appearance.rs
Bindings, resolved values и surface execution используют Srgb8, а сертификаты получают байтовые значения через bytes().
Тестовые графы и typed binding validation
crates/labcolors-core/src/appearance_graph_tests.rs, crates/labcolors-core/src/constraint_tests.rs
Тестовые графы, bindings и ожидаемые ошибки обновлены для surface-портов и Srgb8.
Observation schema и admission state
crates/labcolors-core/src/observation.rs, crates/labcolors-core/src/lib.rs
Добавлены типы наблюдений, ObservationState, каноникализация сценариев и проверки схем, корреляций и ревизий.
Тесты admission и lifecycle
crates/labcolors-core/src/observation_tests.rs
Проверены admission, корреляция сценариев, canonical identity, Unknown/Observed lifecycle, watermark, ошибки ревизий и владение значениями.

WASM budget metadata

Layer / File(s) Summary
Обновление WASM budget
packages/colors/bench/wasm.json, scripts/check-wasm-size-budget.mjs
Обновлены параметры budget и ожидаемый SHA-256 канонического budget JSON.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Producer
  participant ObservationState
  participant admit_scenarios
  participant ObservationHead
  Producer->>ObservationState: apply ObservationUpdateInput
  ObservationState->>admit_scenarios: validate and canonicalize scenarios
  admit_scenarios-->>ObservationState: canonical payload or ObservationError
  ObservationState->>ObservationHead: apply revision and payload
  ObservationHead-->>Producer: UpdateDisposition and availability
Loading

Possibly related PRs

  • Labpics-Team/lab-colors#310: Изменяет ту же схему surface-входов и типизированные appearance-graph bindings.
  • Labpics-Team/lab-colors#347: Предыдущие изменения point-render spine, surface/occurrence execution и сертификатов.
  • Labpics-Team/lab-colors#350: Связан с evaluate pipeline и materialization ResolvedOccurrence в appearance.rs.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно отражает основное изменение: разделение authored цветов и наблюдаемых поверхностей.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/f2a-observation-admission

Comment @coderabbitai help to get the list of available commands.

@lemone112
lemone112 marked this pull request as ready for review July 19, 2026 11:22
@lemone112

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/labcolors-core/src/observation.rs`:
- Around line 1-6: Обновите модульную документацию над observation.rs, удалив
упоминания proof-сборки, будущего Session consumer-а и временного статуса.
Переформулируйте её как описание текущего контракта модуля: назначения admission
для коррелированных point sRGB8 observations, разделения runtime-поверхностей и
authored color inputs, а также поддерживаемого инварианта revision algebra.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c5c3dcd8-b22e-4178-8bca-092ca4b128a9

📥 Commits

Reviewing files that changed from the base of the PR and between ad9a1b0 and 8fdc4a5.

📒 Files selected for processing (8)
  • crates/labcolors-core/src/appearance.rs
  • crates/labcolors-core/src/appearance_graph_tests.rs
  • crates/labcolors-core/src/constraint_tests.rs
  • crates/labcolors-core/src/lib.rs
  • crates/labcolors-core/src/observation.rs
  • crates/labcolors-core/src/observation_tests.rs
  • packages/colors/bench/wasm.json
  • scripts/check-wasm-size-budget.mjs

Comment thread crates/labcolors-core/src/observation.rs
@lemone112
lemone112 merged commit 4292d22 into main Jul 19, 2026
10 checks passed
@lemone112
lemone112 deleted the agent/f2a-observation-admission branch July 19, 2026 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant