Skip to content

chore: схлопнуть историю WASM-бюджета - #351

Merged
lemone112 merged 1 commit into
mainfrom
agent/c3b-wasm-budget-compaction
Jul 19, 2026
Merged

chore: схлопнуть историю WASM-бюджета#351
lemone112 merged 1 commit into
mainfrom
agent/c3b-wasm-budget-compaction

Conversation

@lemone112

@lemone112 lemone112 commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Что изменено

  • 19 numbered WASM-budget snapshots схлопнуты в один self-contained packages/colors/bench/wasm.json.
  • Checker и release-contract больше не обходят линейную цепочку истории; Git остаётся её единственным хранилищем.
  • Сохранены exact Linux-x64 raw-size gate, нулевой headroom, canonical JSON, pinned recipe/toolchain, deterministic rebuild и path-remap guards.
  • Exact runtime artifact и Linux-x64 закреплены как законы checker-а: валидная альтернативная платформа не может превратить CI hard gate в diagnostic.

Причина

История измерений дублировалась в live tree и заставляла checker/test расти при каждом корректном изменении WASM. Это создавало второй журнал состояния рядом с Git и делало обычное обновление бюджета линейно дороже.

Влияние

Публичный API и runtime-поведение не меняются. Текущий принятый Linux snapshot сохранён без изменения: run 29679743144, 385589 raw bytes, zero headroom. Итоговый diff удаляет 1341 строку.

Проверка

  • npm run build
  • npm run typecheck
  • npm test — 242/242
  • targeted WASM contract — 1/1
  • git diff --check
  • independent hostile review: найден и исправлен bypass darwin-arm64 -> DIAGNOSTIC; повторный review — PASS
  • собственные архитектурный, numerical, API, documentation и performance reviews — PASS

Summary by CodeRabbit

  • Изменения
    • Политика контроля размера runtime-WASM переведена на единый канонический контракт.
    • Устаревшие версионные бюджеты WASM удалены.
    • Проверки размера теперь используют единый источник данных и строго контролируют соответствие артефакта установленному лимиту.
    • Усилена проверка корректности конфигурации, форматирования и целостности бюджета.
    • Обновлены автоматические проверки сборки и сценарии диагностики отклонений.

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

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Проверка размера WASM переведена с версионных snapshots на единый канонический packages/colors/bench/wasm.json. Валидатор теперь строго проверяет схему, SHA256, recipe и один runtime-артефакт, а релизные тесты и документация обновлены под новый контракт.

Changes

Канонический WASM-бюджет

Layer / File(s) Summary
Контракт канонического бюджета
packages/colors/bench/wasm.json, packages/colors/bench/wasm-size-budget-v*.json
wasm.json получил новую схему с отдельными toolchain и recipe, упрощёнными measurement и обновлённой policy; версионные budget-файлы удалены.
Валидация и выполнение бюджета
scripts/check-wasm-size-budget.mjs
DEFAULT_BUDGET указывает на канонический документ, добавлены строгая schema-first валидация и SHA256-контроль, а CLI проверяет один runtime WASM с результатом PASS или DIAGNOSTIC.
Релизные проверки и документация
packages/colors/test/release-contract.test.mjs, packages/colors/README.md
Тесты проверяют самодостаточность, каноническое форматирование, точный build recipe, fail-closed поведение и оценку артефакта; README описывает SSOT и запрет numbered snapshots.

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

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant BudgetChecker
  participant CanonicalBudget
  participant RuntimeWASM
  CI->>BudgetChecker: запускает проверку без overrides
  BudgetChecker->>CanonicalBudget: читает и проверяет канонический JSON
  BudgetChecker->>RuntimeWASM: загружает artifact из budget.artifact
  BudgetChecker-->>CI: выводит runtime PASS или DIAGNOSTIC
Loading

Possibly related PRs

  • Labpics-Team/lab-colors#318: затрагивает тот же WASM size-budget контракт, snapshots и ожидания скрипта и релизных тестов.
  • Labpics-Team/lab-colors#321: изменяет общую механику проверки budget и evaluateWasmBudget.
  • Labpics-Team/lab-colors#342: связан с консолидацией WASM size budget в единый runtime-контракт.
🚥 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 Заголовок точно отражает основную суть PR: история WASM-бюджетов схлопывается в один канонический документ.
✨ 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/c3b-wasm-budget-compaction

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

@lemone112
lemone112 merged commit ad9a1b0 into main Jul 19, 2026
10 checks passed
@lemone112
lemone112 deleted the agent/c3b-wasm-budget-compaction branch July 19, 2026 11: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