Proof: замкнуть Arb source → BUILD → RUN единым receipt - #500
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
WalkthroughPR переводит Arb V1 на source-bound поток ChangesSource-bound Arb receipt
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 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 `@proof/region/v1/arb/pipeline.py`:
- Around line 430-441: В функции _canonical_tar_v1 вычислите paths один раз до
проверки и переиспользуйте его для проверки сортировки и уникальности вместо
повторных генераторов. Сохраните текущую проверку канонического непустого набора
и последующее поведение без изменений.
- Around line 2029-2034: В блоке finally безопасно закрывайте process.stdin:
перехватывайте BrokenPipeError/OSError при вызове close(), чтобы ошибка
завершившегося контейнера не нарушала typed-контракт наблюдателя. Сохраните
последующее освобождение bundle_view и закрытие selector независимо от
результата закрытия stdin.
In `@proof/region/v1/arb/receipt.py`:
- Line 340: Переименуйте поле dataclass `_identity` в
`SourceBoundEvaluatorReceiptV1`, чтобы оно не затеняло модульную функцию
`_identity`; обновите все обращения к полю в `replay_evidence_is_well_bound_v1`
и `SourceBoundEvaluatorReceiptV1.__init__`, сохранив вызовы функции `_identity`
без изменений.
In `@proof/region/v1/arb/tests/test_pipeline.py`:
- Around line 783-793: Усилить
test_snapshot_modes_are_normalized_independently_of_host_umask: после сборки
извлечь sealed bundle из результата и проверить режимы его tar-членов либо
сравнить sha256/identity с эталонной сборкой, выполненной при другом umask.
Сохранить проверку типа результата, но добавить утверждение, которое упадёт при
регрессии нормализации режимов.
In `@proof/region/v1/arb/tests/test_receipt.py`:
- Around line 565-610: Сделайте дочернюю ветку в
test_controller_rejects_a_forked_child_without_consuming_parent_authority
устойчивой к сбоям: перенесите os.close(read_fd) внутрь try, охватывающего весь
код после fork, и обеспечьте запись диагностической ошибки при любом исключении.
Замените неограниченное чтение из read_fd на чтение с таймаутом через select или
эквивалентный механизм, чтобы тест завершался с явной ошибкой вместо вечного
зависания.
In `@proof/region/v1/arb/tests/test_transport.py`:
- Around line 313-322: Replace the inline __import__("inspect") and
__import__("dataclasses") calls in the affected tests with module-level imports
for inspect and dataclasses, then update the existing usages to reference those
imported modules directly while preserving the current assertions.
🪄 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: cebf02a6-4d55-42d6-b7a5-37b27d57bee5
📒 Files selected for processing (15)
.github/workflows/arb.ymlproof/region/v1/PROTOCOL.mdproof/region/v1/arb/build.shproof/region/v1/arb/executor.pyproof/region/v1/arb/pipeline.pyproof/region/v1/arb/receipt.pyproof/region/v1/arb/snapshot.pyproof/region/v1/arb/tests/gate.pyproof/region/v1/arb/tests/native_gate.pyproof/region/v1/arb/tests/test_build_recipe.pyproof/region/v1/arb/tests/test_pipeline.pyproof/region/v1/arb/tests/test_receipt.pyproof/region/v1/arb/tests/test_snapshot.pyproof/region/v1/arb/tests/test_transport.pyproof/region/v1/provenance.py
💤 Files with no reviewable changes (2)
- proof/region/v1/arb/tests/test_snapshot.py
- proof/region/v1/arb/snapshot.py
…nto agent/v5b2c2-arb-receipt
|
Superseded терминальным срезом #514 (Design Freeze M2a): весь объём этого PR — единый receipt-контур Arb source → BUILD → RUN — полностью входит в diff #514 ( |
Что изменено
SourceBoundArbControllerV1связывает допущенные исходники, канонический USTAR bundle, две побайтово равные сборки, точный RUN, content-resolved replay и provenance claim;archive_bytes, а duplicate/case-colliding manifest отвергается;Почему
Раздельные snapshot и pipeline RUN могли доказывать совместимые фрагменты, но не одну причинную цепь. Корень проблемы — независимые authority-точки и возможность сравнить retained source coordinates с ними же. Этот срез заменяет их одним линейным контроллером и повторным admission исходных bytes.
Влияние
Это доказательство происхождения и причинности, а не сертификат математической корректности формулы. Публичный product API не меняется. Следующий слой сможет независимо добавить MPFI evaluator и semantic verifier поверх одного source-bound receipt.
Проверки
python -O: 142 теста, точный manifest из 11 native-skips, inventory6e73ade1e7d5b21d50fe9826a1b39e4043e63bcd090b504dbee5e1c38515e373;python -O: 41/41;py_compileиgit diff --check;0b3d46eab103b309ad504c8dfc5cba9ce7d9c64a91bd37716c901c21661f760a;До Ready for review
После merge родительского #499 ветка будет перебазирована на
main; затем обязателен non-vacuous native receipt/executor gate на свежей одноразовой Linux x86_64 VM.Summary by CodeRabbit
Новые возможности
Документация
Тесты