Skip to content

docs(register): §2.99 — lang-js parity canons: 0 знято, dispatch плутанина + path:bunx колізія - #583

Merged
vitaliytv merged 1 commit into
mainfrom
docs/parity-canon-misclassification
Aug 31, 2026
Merged

docs(register): §2.99 — lang-js parity canons: 0 знято, dispatch плутанина + path:bunx колізія#583
vitaliytv merged 1 commit into
mainfrom
docs/parity-canon-misclassification

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Summary

  • Задача — зняти три канони plugins/lang-js, заявлені як «борг парності» з готовою fix-гілкою в гості: js/eslint, test/storybook-vitest-config, test/stryker_config.
  • Ревізія показала: знято нуль файлів. Це коректний результат, задокументований §2.99 у docs/plans/2026-08-05-open-questions-register.md (додано в кінець файлу, без правок наявного тексту).
  • test/storybook-vitest-config і test/stryker_config ніколи не мали fix-половини в гості — рядки, процитовані бріфом як «диспатч fix» (15938, 15998 crates/plugin-lang-js/src/lib.rs), лежать у fn detect, а не в fn fix (fn fix починається на 16083). detect і fix живуть в одному impl Guest і розрізняються лише позицією рядка — звідси й хибна класифікація грепом. Причина невиконаності обох уже задокументована в FIX_STAYS_IN_JS (npm/scripts/lib/lint-surface/tests/wasm-plugin-parity.test.mjs:6351), яку бріф не звірив.
  • js/eslint дійсно портовано (fix_js_eslint, диспатч lib.rs:16095), але канон лишається НАВМИСНО: гість гейтить обидва лінтери на ESLINT_TOOL = "path:bunx", а зріз 6 дистрибуції (§2.96) планово знімає bunx з канонічного рядка виклику на консюмерських деревах. Зняти канон зараз = закласти постійний no-op autofix у момент, коли зникне і bunx, і сам канон-fallback.
  • Запис також фіксує процедуру, що ловить цю плутанину за один крок (позиція рядка відносно fn detect/fn fix через awk), і застереження ширше за випадок: коли в репо вже є машинно-перевірюваний реєстр рішень (FIX_STAYS_IN_JS), план має читатися з нього, а не відновлюватись грепом.

Test plan

  • Документаційна зміна, коду не торкається; жодного .mjs-канону не знято, wasm-plugin-parity.test.mjs не змінено.
  • git diff --stat — лише docs/plans/2026-08-05-open-questions-register.md, додавання в кінець файлу.

🤖 Generated with Claude Code

…овані, третій тримає safety net до fix path:bunx

Ревізія брифу про зняття трьох JS-канонів plugins/lang-js показала нуль
підстав для зняття:

- test/storybook-vitest-config і test/stryker_config ніколи не мали
  fix-половини в гості — рядки, процитовані як «диспатч fix» (15938,
  15998), лежать у fn detect, не fn fix (fn fix починається на 16083).
  detect і fix живуть в одному impl Guest і розрізняються лише позицією
  рядка, тому grep CONCERN_X без цієї межі плутає їх; register.md уже
  документує причину невиконаності обох (§2.87, зріз 1) у FIX_STAYS_IN_JS
  (wasm-plugin-parity.test.mjs:6351) — план мав читатися з цієї таблиці,
  не відновлюватись грепом.
- js/eslint дійсно портовано (fix_js_eslint, lib.rs:16095), але канон
  лишається навмисно: гість гейтить обидва лінтери на
  ESLINT_TOOL = "path:bunx", а зріз 6 (§2.96) планово знімає bunx із
  канонічного рядка виклику на консюмерських деревах. Зняти канон зараз —
  закласти постійний no-op autofix у момент, коли останній safety net
  (JS-fallback на порожньому guest-плані) зникне разом із каноном.

Жодного .mjs-файла не знято.
@vitaliytv
vitaliytv force-pushed the docs/parity-canon-misclassification branch from eaab97b to 3c1b99c Compare August 31, 2026 03:52
@vitaliytv
vitaliytv merged commit c33fdcd into main Aug 31, 2026
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