Skip to content

core: replay exact point absence counterfactual - #472

Merged
lemone112 merged 2 commits into
mainfrom
agent/o1a-b-exact-replay
Jul 27, 2026
Merged

core: replay exact point absence counterfactual#472
lemone112 merged 2 commits into
mainfrom
agent/o1a-b-exact-replay

Conversation

@lemone112

@lemone112 lemone112 commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Суть

Вертикальный срез O1a-B добавляет точный appearance-only контрфакт отсутствия одной point-occurrence:

  • compiler-minted путь доказывает принадлежность target к выбранному terminal root и конкретному graph instance;
  • удалённая точка заменяется её собственной уже вычисленной подложкой;
  • downstream-цепочка пересчитывается тем же source-over профилем, порядком и quantization;
  • для выбранного root финальный owned-домен — Empty тогда и только тогда, когда итоговые encoded-sRGB8 bytes совпали, иначе Singleton с нормальным видимым цветом;
  • caller-owned буфер полностью проверяется до вычисления, steady-state replay не аллоцирует и не оставляет частичный результат.

Границы

Срез не расширяет public API, Program, Session, renderer или certificate binding. Client IDs остаются opaque; recipe-роли и клиентская семантика в физику не добавлены. Empty ничего не утверждает о sibling terminal roots и не является положительным quality/cleanliness witness.

Проверка

  • RED → GREEN: 8 целевых тестов, включая независимый exact-dyadic encoded-sRGB8 oracle и зафиксированный CI-ратчет 2^11 property cases;
  • fan-out с двумя terminal roots доказывает root scope и исключение off-path sibling;
  • foreign-graph, capacity preflight, alpha endpoints, opaque erasure, downstream quantization, порядок и точное число повторных композиций покрыты hostile/characterization tests;
  • полный workspace/all-features, clippy, rustdoc, rustfmt и MSRV 1.85 — GREEN;
  • bounded mutation текущего head-кода: 22 мутанта, все 11 компилируемых убиты, 11 некомпилируемы, 0 missed;
  • python3 scripts/verify_point_support_surplus.py — PASS; canonical source capsule и 43 negative controls сохранены.

Независимый Claude Review подтвердил математику replay и обнаружил недоговорённый root scope; замечание исправлено fan-out тестом и точным контрактом. CodeRabbit review исправляется на exact head; merge только после повторного GREEN и закрытия всех доказанных threads.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

В appearance.rs добавлен точный replay удаления point-occurrence с typed-результатами, проверкой graph ownership и контролем capacity. Добавлены независимые тестовые оракулы и property-based проверки; обновлены SHA-256 proof-артефакта и verifier.

Changes

Replay отсутствия point-occurrence

Layer / File(s) Summary
Контракт и выполнение replay
crates/labcolors-core/src/appearance.rs
Добавлены типы replay, ошибки, домены результата и шаги контрфактического прохода; evaluation связывается с graph instance, а сертификаты строятся через общий compose.
Проверка replay независимыми оракулами
crates/labcolors-core/src/appearance_replay_tests.rs, crates/labcolors-core/src/lib.rs
Добавлены точные source-over оракулы, сценарные и property-based тесты, проверки foreign evaluation, capacity и порядка downstream replay; модуль подключён только для тестов.
Обновление proof binding
crates/labcolors-core/contracts/...proof-v1.json, scripts/verify_point_support_surplus.py
Обновлены контрольные SHA-256 proof-контракта, source closure, verifier и эталонной source capsule.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Graph as CompiledAppearanceGraph
  participant View as AppearanceEvaluationView
  participant Certificate as SourceOverCertificateV1
  participant Buffer as Replay steps buffer
  Graph->>View: evaluate_admitted_into(graph_instance)
  View->>View: validate graph ownership and capacity
  View->>Certificate: compose counterfactual certificates
  View->>Buffer: append Removed and Propagated steps
  View-->>Graph: return PointOccurrenceAbsenceReplayV1
Loading

Possibly related issues

  • Задача 392 — затрагивает тот же appearance.rs и SourceOverCertificateV1, связанный с добавленным point-occurrence absence replay.

Possibly related PRs

  • Labpics-Team/lab-colors#470 — добавляет структуры CompiledPointPresentationPathV1 и graph-instance authority, используемые новым replay.
  • Labpics-Team/lab-colors#354 — связан с рефакторингом SourceOverCertificateV1 и replay/composition path.
  • Labpics-Team/lab-colors#465 — обновляет тот же proof-артефакт и ожидаемые SHA-256 verifier.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 Заголовок точно отражает основное изменение: точный replay контрфакта отсутствия point occurrence в core.
✨ 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/o1a-b-exact-replay

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

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 27, 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: 4

🤖 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/appearance_replay_tests.rs`:
- Line 166: Уточните проверку границы в тесте вокруг вычислений с
product_denominator_shift и exact_sum_numerator, чтобы она была доказуемо
безопасна для сдвига backdrop в i128. Либо уменьшите предел denominator_shift до
безопасного значения, учитывающего разрядность backdrop и product_numerator,
либо добавьте комментарий с выводом, обосновывающим предел 120; примените то же
исправление к аналогичному участку строк 196–200.
- Around line 438-445: Configure the proptest containing
replay_matches_an_independent_encoded_srgb8_oracle to run exactly 2048 cases by
adding a local ProptestConfig::with_cases(2048) attribute adjacent to that test
block, without changing the test inputs or assertions.

In `@crates/labcolors-core/src/appearance.rs`:
- Line 1761: Добавьте комментарий непосредственно перед безрефутабельным let в
обработчике PointOccurrenceAbsenceReleaseV1, объясняющий, что это намеренный
guard на исчерпаемость: появление нового варианта enum должно вызвать ошибку
компиляции в этом месте. Не изменяйте поведение проверки и не описывайте лишь
действие оператора.
- Around line 1407-1425: Зафиксируйте у поля steps структуры
PointOccurrenceAbsenceReplayV1 явный инвариант: срез всегда непуст и создаётся
только компилятором с корневым шагом. Свяжите это обоснование с методами first и
last, сохранив их текущее поведение; не добавляйте новые конструкторы или лишнюю
обработку.
🪄 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: 82e1d37f-c127-4974-b74a-6b900c561c34

📥 Commits

Reviewing files that changed from the base of the PR and between d8731c7 and 8ca0c86.

📒 Files selected for processing (5)
  • crates/labcolors-core/contracts/point-support-reference-surplus-q55-bps-proof-v1.json
  • crates/labcolors-core/src/appearance.rs
  • crates/labcolors-core/src/appearance_replay_tests.rs
  • crates/labcolors-core/src/lib.rs
  • scripts/verify_point_support_surplus.py

Comment thread crates/labcolors-core/src/appearance_replay_tests.rs
Comment thread crates/labcolors-core/src/appearance_replay_tests.rs
Comment thread crates/labcolors-core/src/appearance.rs
Comment thread crates/labcolors-core/src/appearance.rs
@lemone112
lemone112 merged commit 34d697b into main Jul 27, 2026
10 checks passed
@lemone112
lemone112 deleted the agent/o1a-b-exact-replay branch July 27, 2026 02:20
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