Skip to content

Bound schema-ordered observation admission - #479

Merged
lemone112 merged 1 commit into
mainfrom
agent/o1b-bounded-admission
Jul 27, 2026
Merged

Bound schema-ordered observation admission#479
lemone112 merged 1 commit into
mainfrom
agent/o1b-bounded-admission

Conversation

@lemone112

@lemone112 lemone112 commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Что изменено

  • заменён открытый хеш-набор с линейным пробированием на два детерминированных сортировочных прохода по одному переиспользуемому scratch-буферу;
  • ошибки дубликатов и ширины теперь выбираются канонически по минимальному opaque ScenarioId, независимо от порядка входа;
  • исчерпание scratch-памяти возвращает типизированный ResourceExhausted до чтения источника;
  • exact replay после прогрева сохраняет тот же backing и выполняется без Core-аллокаций;
  • exact source-bound proof и clean-set receipt перепривязаны к новым байтам observation.rs.

Корневая причина

Предыдущая фиксированная мультипликативная хеш-функция с линейным пробированием допускала квадратичную работу на враждебно подобранных opaque ID. Порядок ранних ошибок также зависел от порядка сценариев клиента.

Эффект

Admission имеет ограничение O(n · w · log n) при O(n) scratch-памяти, не придаёт смысла opaque ID и сохраняет allocation-free exact replay после роста scratch.

Проверка

  • RED: collision-корпус убил старый путь (527870 чтений ID при gate 327680);
  • exhaustive permutations для канонического выбора duplicate/shape errors;
  • deterministic differential property против независимого BTreeMap/BTreeSet oracle;
  • mutation controls: удаление tie-break и добавление квадратичного прохода по ширине убиваются тестами;
  • MSRV Rust 1.85 и stable Rust 1.96: 8/8 targeted;
  • cargo test -p labcolors-core --all-targets --quiet: 895 passed, 6 ignored, интеграционные наборы пройдены;
  • cargo clippy -p labcolors-core --all-targets -- -D warnings;
  • cargo fmt --all -- --check;
  • cargo package -p labcolors-core --allow-dirty;
  • point-support verifier + 5 hostile source-binding tests;
  • clean-set product/full replay + 31 hostile receipt tests;
  • два независимых read-only review-прохода без открытых замечаний.

Summary by CodeRabbit

  • Улучшения

    • Оптимизирована подготовка schema-ordered наблюдений: уменьшено использование временной памяти и улучшена обработка дубликатов.
    • Повторная обработка переставленных наблюдений теперь выполняется без дополнительных аллокаций.
  • Тесты

    • Расширено покрытие проверками корректности порядка, приоритетов ошибок, масштабирования и воспроизведения результатов.
    • Добавлены property-based тесты для сравнения с независимой эталонной моделью.
  • Проверки

    • Обновлены контрольные суммы и криптографические подтверждения связанных артефактов.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Изменена канонизация schema-ordered наблюдений: сценарии сортируются по scenario_id, дубликаты проверяются после сортировки, добавлены property-based и replay-тесты, обновлены связанные контрольные хэши.

Changes

Канонизация schema-ordered наблюдений

Layer / File(s) Summary
Сортировка и проверка сценариев
crates/labcolors-core/src/observation.rs
order_scratch заполняется индексами сценариев, сортируется по scenario_id, а дубликаты выявляются через соседние элементы.
Проверки подготовки и replay
crates/labcolors-core/src/observation_tests.rs, crates/labcolors-core/src/program_mixed_evaluator_tests.rs
Добавлены проверки порядка ошибок, бюджетов чтений, oracle-соответствия и отсутствия аллокаций при переставленном exact replay.
Обновление контрольных данных
crates/labcolors-core/contracts/..., scripts/verify_point_support_surplus.py
Обновлены размеры и SHA-256 артефактов, сертификатные digest-значения и ожидаемый digest исходной капсулы.

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

Possibly related issues

  • Labpics-Team/lab-colors issue 396 — затрагивает ту же канонизацию admission в observation.rs, но сосредоточен на группировке физических кортежей.

Possibly related PRs

  • Labpics-Team/lab-colors#352 — связан с моделью admission и логикой prepare_schema_ordered_observation.
  • Labpics-Team/lab-colors#466 — напрямую пересекается с обновлением proof- и source-digest хэшей.
  • Labpics-Team/lab-colors#477 — связан с подготовкой schema-ordered обновлений и seam prepare_update(...)->commit().
🚥 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 Заголовок кратко и точно отражает основное изменение: ограничение admission для schema-ordered наблюдений.
✨ 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/o1b-bounded-admission

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.

@lemone112
lemone112 marked this pull request as ready for review July 27, 2026 17:07
@lemone112
lemone112 merged commit 4ba86b0 into main Jul 27, 2026
10 checks passed
@lemone112
lemone112 deleted the agent/o1b-bounded-admission branch July 27, 2026 17:07
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