Skip to content
This repository was archived by the owner on Sep 11, 2026. It is now read-only.

feat(plugin-ci-github): T0-фіксер rust/toolchain_cache у гості - #515

Merged
vitaliytv merged 1 commit into
mainfrom
feat/guest-fix-toolchain
Aug 28, 2026
Merged

vitaliytv merged 1 commit into
mainfrom
feat/guest-fix-toolchain

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Другий фіксер у цьому гості й найтісніший за бюджетом порт усієї міграції.

Бюджет мірявся поетапно, не в кінці

етап приріст накопичено
каркас (одна трансформація) +8 436 27% запасу
друга трансформація +5 896 —
разом +14 332 46% запасу

Лишилось 16 666 байт; гість на 99.4% бюджету. Ліміт не піднімався, функціональність не урізана — обидва T0-патерни канону портовані повністю.

Показово, що другий крок вийшов удвічі дешевшим за перший: Vec/splice/format!-машинерія вже була злінкована каркасом. Тобто оцінка після першого заміру виявилась консервативною — і це аргумент за те, щоб міряти рано, а не боятись наперед.

Головна економія — там, де й припускалось

Сканувальний рушій уже жив у гості на боці детектора. scan_toolchain_steps розширено трьома полями (line / dash_col / cache_line), які раніше свідомо не носились («detect їх не читає»), а тепер потрібні фіксеру для координат вставки.

Другого скана не написано. Жодного нового regex-патерну не знадобилось — усі чотири текстові патерни концерну вже були портовані вручну на detect-боці.

Червоно-зелена перевірка — і чому саме так

Дві незалежні мутації, і важливо, що набори червоних не перетинаються:

  • інверсія фільтра в insert_rust_cache → 5 тестів;
  • інверсія в add_cache_workspaces → 4 інші.

Тобто обидва інваріанти спостерігаються окремо, а не одним спільним сценарієм — саме та пастка, на яку наштовхнувся #511.

Уточнення до моєї постановки

Число «conftest verify 55/55» було вужчим підрахунком пʼятьох конкретних policy-тек. Повний каталог plugins/ci-github/rules/ga/ дає 88/88 — і до, і після. Не регресія, інший scope.

Тести

plugin-ci-github 87 → 98, parity + JS-фіксер 28, conftest 88/88, .rego не торкано.

🤖 Generated with Claude Code

Другий фіксер у цьому гості й найтісніший за бюджетом порт міграції.

Бюджет був головним ризиком, тому мірявся поетапно, а не в кінці:
- каркас (одна трансформація): +8 436 байт, 27% запасу;
- друга трансформація: +5 896 понад те — вдвічі дешевше, бо
  Vec/splice/format-машинерія вже злінкована першим кроком.

Разом +14 332 із 30 998 доступних. Лишилось 16 666; гість на 99.4% бюджету.
Ліміт не піднімався, функціональність не урізана — обидва T0-патерни канону
портовані повністю.

Головна економія — там, де я й припускав: сканувальний рушій уже жив у гості
на боці ДЕТЕКТОРА. `scan_toolchain_steps` розширено трьома полями
(`line`/`dash_col`/`cache_line`), які раніше свідомо не носились («detect їх
не читає»), а тепер потрібні фіксеру для координат вставки. Другого скана не
написано, жодного нового regex-патерну не знадобилось.

Червоно-зелену перевірку зроблено двома незалежними мутаціями, і важливо, що
набори червоних НЕ ПЕРЕТИНАЮТЬСЯ: інверсія фільтра в `insert_rust_cache` валить
5 тестів, у `add_cache_workspaces` — 4 інші. Тобто обидва інваріанти
спостерігаються окремо, а не одним спільним сценарієм.

Уточнення до моєї постановки: число «conftest verify 55/55» було вужчим
підрахунком пʼятьох конкретних policy-тек. Повний каталог
`plugins/ci-github/rules/ga/` дає 88/88 — і до, і після; не регресія, інший
scope.

JS-фіксер не видалено — спершу парність.

Тести: plugin-ci-github 87 → 98, parity + JS-фіксер 28, conftest 88/88.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv force-pushed the feat/guest-fix-toolchain branch from 17a657a to 8a887bc Compare August 28, 2026 07:58
@vitaliytv
vitaliytv merged commit f69a75f into main Aug 28, 2026
1 of 5 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant