Skip to content

feat(ir): CONTRACT-PREP — машинный код ошибок candidate-гейта + semver-класс промоушена - #87

Merged
lemone112 merged 2 commits into
masterfrom
feat/contract-prep-error-codes
Aug 23, 2026
Merged

feat(ir): CONTRACT-PREP — машинный код ошибок candidate-гейта + semver-класс промоушена#87
lemone112 merged 2 commits into
masterfrom
feat/contract-prep-error-codes

Conversation

@lemone112

Copy link
Copy Markdown
Contributor

Узел CONTRACT-PREP-01 плана product-lab-icons r3 (хвосты контракт-ревью PR #85, до релизного поезда).

  • GlyphModelError с code: 'CANDIDATES_REQUIRED' — оба fail-closed сайта candidate-гейта кидают типизированную ошибку; код — публичный контракт, текст — нет (Хайрам-риск №1 из ревью закрыт). Тип GlyphModelErrorCode экспортирован из ./ir.
  • semver-policy: класс «промоушен candidate→accepted = minor» — байты default-рендера меняются заявленно; потребителям, снапшотящим svg/d, рекомендован пин minor (Хайрам-риск №2 закрыт до первого потребителя).
  • Тесты матчат инстанс + code, текстовая проверка субпата сохранена; sabotage: code='WRONG' → 3 failed.
  • Ratchet по измерению: index.js 805449→805715 B (цена класса ошибки), d.ts 9594→10152 B; census перегенерирован.

Verify на exact head: 70 files / 808 tests, exit 0 (локально; авторитет — CI PR).

Остаток CONTRACT-PREP-01 (snapshot JS-export-листа) — следующий срез: он требует нового verify-гейта, не смешиваю с контрактной правкой.

…didate-гейта

Обе ошибки гейта (candidate-модель без корпуса; anatomy-декларация вне
runtime-проекции) теперь GlyphModelError с полем code — потребитель
ветвится по коду, текст сообщения контрактом не является. Тесты матчат
code + инстанс, сохраняя проверку субпата в тексте. Ratchet и census
обновлены по факту измерения (dist/ir/index.js 805449→805715 B,
index.d.ts 9594→10152 B).
Байты shipped model-рендера default-режима при промоушене меняются
(source-fallback → model-построение) — заявленное поведение, не breaking;
снапшотящим svg/d потребителям рекомендован пин minor.
@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 31 minutes.

View limit details

Limit details: You’ve used the included review currently available. Your 106 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

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).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1abcd73a-ad80-489d-a9b3-502db05f6b3c

📥 Commits

Reviewing files that changed from the base of the PR and between 545c431 and 8c66be9.

📒 Files selected for processing (5)
  • docs/semver-policy.md
  • release/package-size-ratchet.json
  • semantics/census.json
  • src/ir/index.ts
  • test/ir-candidates-gate.test.ts

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

@lemone112
lemone112 merged commit 14ccd5e into master Aug 23, 2026
7 checks passed
@lemone112
lemone112 deleted the feat/contract-prep-error-codes branch August 23, 2026 21:53
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