docs(specs): зріз 6 — рішення 6 і 7 щодо консюмерських поверхонь - #601
Merged
Conversation
6. text/run-v8r: замінити зовнішній v8r нативною JSON-Schema валідацією, каталог вшити в бінар. Концерн уже портований, але порт зберіг спавн `bun x v8r` — нативний детектор запускає пакетний менеджер заради JS-валідатора, що читає наші ж завендорені схеми. Закриває заразом питання 3.2 МБ і знімає останню неявну залежність від bun у детекторному контурі. 7. $schema: власний Apicurio-реєстр замість unpkg. Записано дві умови як частину рішення, а не побажання: пінована версія (інакше повертається дрейф класу KNOWN_PLUGIN_RANGES) і анонімне читання (інакше повторюється мовчазна відмова, вже виміряна на git.7n.ai — 401 на анонімний pull). Прийнята слабкість записана явно: airgapped-консюмер підказок IDE не матиме. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8. exports помирає природно: більшість споживачів (types.mjs, llm.mjs, ensure-tool) зникає за рішеннями 3 і слотовими світами. Справжній залишок — тестова інфраструктура плагінів; тести переїжджають у Rust разом із кодом, прецедент plugin_lang_js.rs на 86 тестів проти справжнього .wasm. Межа названа: тести хоста лишаються JS до порту оркестрації. 9. Публічне ядро несе власний OCI-реєстр. Рекомендація фасилітатора була спершу перевірити конфігурацію Forgejo, потім гібрид ghcr.io — аргумент про різну ціну недоступності схем і бінаря. Власник обрав свідомо, ризик прийнятий. З рішення 9 випливає, що офлайн-дисципліна oci-dist і CI-образи з вбудованим бінарем перестають бути зручністю й стають несучими. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…рацій
10. hook лишається портованим, підстава переписується: вимірювання
(hook_cmd.rs:32-39) дало менше 3% латентності від старту node, тобто
виграш зрізу в межах похибки. Порт потрібен, але як крок до бінаря як
вхідної точки, не заради 3%. Цифра фіксується явно, щоб хибна підстава
не була процитована як прецедент.
11. Тест на ПРИЧИНУ для кожного запису, що стверджує живе обмеження.
Ключова відмінність: тест на наслідок консервує обмеження (саме так
rejects_p2_component_profile зробив засновку липкою), тест на причину
червоніє, коли причина зникає.
Заміряно: 105 записів реєстру, з них 30 стверджують живе обмеження.
Рекомендація фасилітатора була вужча (лише чотири контрактні блокери);
власник обрав повне покриття, вимірювання показує здійсненність.
Окремо: поширити CRC на файли без frontmatter.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Продовження ітеративного розбору архітектурних питань (рішення 1–5 — у змердженому #600).
Рішення 6 —
text/run-v8rКонцерн уже портований нативно, але порт зберіг спосіб виклику:
bun x v8r <files>. Тобто нативний Rust-детектор спавнить пакетний менеджер, щоб запустити JS-валідатор, який читає наші ж завендорені схеми.v8rпри цьому в реєстрі тулів відсутній.Рішення — нативна JSON-Schema валідація, каталог вшитий у бінар. Закриває заразом відкрите питання 3.2 МБ
npm/schemas/vendor/**і знімає останню неявну залежність від bun у детекторному контурі (після #590).Відкинуто
npm:v8rу реєстрі тулів: дешево й ідентично сьогоднішньому #590, але консервує аномалію — кожен крок ланцюжка «bun → npm → JS-валідатор → наші схеми» ми вміємо робити самі.Рішення 7 —
$scheman-rules-cli.mjs:126пишеhttps://unpkg.com/@7n/rules/schemas/n-rules.jsonу.n-rules.jsonконсюмера. Після зняття npm — 404, і IDE мовчки втрачає валідацію.Рішення — власний Apicurio Registry. У документі зафіксовано дві умови як частину рішення:
latest— інакше повертається дрейф класуKNOWN_PLUGIN_RANGES(fix(rules): KNOWN_PLUGIN_RANGES наздогнав версії плагінів воркспейсу #578), лише зовні й непомітно;git.7n.ai(GET /v2/→401).Прийнята слабкість записана явно: airgapped-консюмер підказок IDE не матиме.