Skip to content

ci: activate Stage A worker measurement - #569

Merged
lemone112 merged 10 commits into
mainfrom
ci/activate-stage-a-worker
Aug 11, 2026
Merged

ci: activate Stage A worker measurement#569
lemone112 merged 10 commits into
mainfrom
ci/activate-stage-a-worker

Conversation

@lemone112

@lemone112 lemone112 commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

What

  • Repin the thin CI caller to the merged Stage A reusable worker at beecd257371a7a6421079b0d8207a109969aa332.
  • Evolve the executable CI caller contract to require that exact full commit SHA.
  • Preserve hostile mutation coverage for pin drift, branch refs, short SHAs, duplicate references, local references, and a missing pin.
  • Keep caller job names and structure unchanged.

Measurement contract

This is a measurement PR. The first run of this updated head is EXPECTED to fail ONLY on the enforce measured private Program optimized WASM budget step because packages/colors/bench/private-program-wasm.json intentionally does not exist yet.

The observation printed before that failure — raw bytes, gzip bytes, SHA-256, and platform linux-x64 — becomes the canonical Linux measurement consumed by Stage B t02.

Verification

  • RED: old Stage-A caller assertion rejected the new ci.yml pin.
  • GREEN in a clean Linux Node 24.14.0 container: node --test packages/colors/test/private-program-ci-contract.test.mjs (7/7).
  • GREEN in a clean Linux Python 3.14.6 container: MutationTruthTest.test_reusable_workers_bound_jobs_and_binaryen_transport.
  • actionlint .github/workflows/ci.yml
  • Full canonical colors suite is delegated to the GitHub-hosted worker because the local clean container intentionally lacks the byte-bound Binaryen/Rust/WASM build cell.

Summary by CodeRabbit

  • Новые возможности

    • Добавлен манифест приватного WebAssembly-артефакта с информацией о версии, платформе, размере и контрольных суммах.
    • Поддержан запуск браузерных проверок в изолированной среде Chrome.
  • Исправления

    • Улучшена изоляция сборки и безопасная обработка зависимостей.
    • Уточнены сообщения об ошибках и диагностика при проверке приватных программ.
  • Тесты

    • Обновлены проверки CI, релизных контрактов и браузерных сценариев для нового процесса сборки.

Repin the thin CI caller to the merged reusable worker so Linux can produce the canonical private Program optimized WASM observation.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 39 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8797d654-2c7e-4618-8665-660c5a659929

📥 Commits

Reviewing files that changed from the base of the PR and between 6c7ffb2 and 3fb4b8b.

📒 Files selected for processing (6)
  • packages/colors/test/javascript-source-contract.mjs
  • packages/colors/test/private-program-ci-contract.test.mjs
  • packages/colors/test/private-program-mutation-contract.test.mjs
  • packages/colors/test/release-contract.test.mjs
  • scripts/build-private-program.mjs
  • scripts/test-private-program-mutations.mjs

Walkthrough

PR обновляет commit SHA для вызываемого ci-worker.yml. Сборка private Program копирует объявленный Cargo registry index в изолированный cargo-home. Браузерные и mutation-контракты проверяют новые параметры и сообщения ошибок.

Changes

CI и private Program

Layer / File(s) Summary
Фиксация вызываемого workflow
.github/workflows/ci.yml, packages/colors/test/private-program-ci-contract.test.mjs, scripts/test_mutation.py
CI и контрактные тесты используют новый commit SHA для ci-worker.yml. Проверки immutable-ссылки и некорректных ссылок сохранены.
Копирование Cargo registry в sandbox
scripts/build-private-program.mjs, scripts/test-private-program-mutations.mjs, packages/colors/test/private-program-mutation-contract.test.mjs
Добавлена экспортируемая функция copyDeclaredCargoRegistryIndex. Она проверяет containment символических ссылок и копирует registry index в изолированный cargo-home. Тесты проверяют сохранение config.json.
Контракты браузерных доказательств и мутаций
scripts/test-browser-output-sink.mjs, scripts/test-private-program-browser.mjs, packages/colors/test/private-program-ci-contract.test.mjs, packages/colors/test/release-contract.test.mjs, packages/colors/test/private-program-mutation-contract.test.mjs, scripts/test-private-program-mutations.mjs, packages/colors/bench/private-program-wasm.json
Запуск Chrome теперь использует --no-sandbox. Mutation-контракты ожидают PrivateProgramConsumerError и проверяют значения expected и actual. Добавлен манифест WASM-артефакта с параметрами toolchain, контрольными суммами и ограничением размера.

Estimated code review effort: 3 (Moderate) | ~20 минут

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Заголовок точно описывает основное изменение: активацию измерений Stage A через CI worker.
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.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/activate-stage-a-worker

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

Evolve the executable caller invariant with Stage B while retaining exact full-SHA and hostile mutation coverage.
Record the zero-headroom Linux artifact measured by GitHub Actions run 31473003387. The earlier local ledger (339229 bytes, a4d8f459...) predates intervening source changes; the current source-bound CI build and independent canonical Linux rebuild converge at 339336 bytes and 7ca079be....

@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: 2

🤖 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 `@packages/colors/test/private-program-ci-contract.test.mjs`:
- Around line 267-274: В
packages/colors/test/private-program-ci-contract.test.mjs:267-274 извлеките
структурный массив args из goog:chromeOptions в private Program browser proof и
проверьте, что он содержит --no-sandbox, вместо поиска текстовой строки; в
packages/colors/test/release-contract.test.mjs:2177-2181 примените ту же
проверку к output-sink proof. Убедитесь, что проверки не проходят из-за
комментариев или постороннего текста.

In `@scripts/build-private-program.mjs`:
- Around line 947-955: Усилите изоляцию в copyDeclaredCargoRegistryIndex:
канонизируйте sourceIndex с учетом symlink у самого root и его ancestors до
вызова assertRegistryIndexLinksContained, затем копируйте только безопасное
дерево либо materialize все symlink, чтобы targetIndex не содержал source-bound
ссылок. В packages/colors/test/private-program-mutation-contract.test.mjs
добавьте regression-тесты для symlink root и ancestor и проверку отсутствия
source-bound symlink в target.
🪄 Autofix

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: f4e9424f-550d-4de9-9e01-e785885628b2

📥 Commits

Reviewing files that changed from the base of the PR and between 937707e and 6c7ffb2.

📒 Files selected for processing (8)
  • packages/colors/bench/private-program-wasm.json
  • packages/colors/test/private-program-ci-contract.test.mjs
  • packages/colors/test/private-program-mutation-contract.test.mjs
  • packages/colors/test/release-contract.test.mjs
  • scripts/build-private-program.mjs
  • scripts/test-browser-output-sink.mjs
  • scripts/test-private-program-browser.mjs
  • scripts/test-private-program-mutations.mjs

Comment thread packages/colors/test/private-program-ci-contract.test.mjs
Comment thread scripts/build-private-program.mjs
lemone112 and others added 3 commits August 11, 2026 18:01
@lemone112
lemone112 merged commit 74ceb77 into main Aug 11, 2026
10 checks passed
@lemone112
lemone112 deleted the ci/activate-stage-a-worker branch August 11, 2026 19:14
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