fix(db-update): -Dynamic принимает on/off — значение "-" парсер PowerShell не связывает

Документированная форма -Dynamic <+/-> работала наполовину: `-Dynamic "+"` через
powershell.exe -File связывается, а `-Dynamic "-"` парсер не связывает вовсе —
процесс выходит с кодом 2, не напечатав ни строки, и до скрипта управление не
доходит. То есть «отключить динамическое обновление» из навыка было недостижимо,
и притом молча. Склеенная форма из примера SKILL.md (-Dynamic+) — тоже ошибка
разбора. В .py-порте все формы связывались, так что расхождение было ещё и между
портами.

Каноническая форма теперь словесная: -Dynamic on / off. "+"/"-" и yes/no
принимаются для совместимости, но в инструкции не значатся. Значение
нормализуется сразу после разбора, обе ветки (1cv8 -Dynamic+/-, ibcmd
--dynamic=auto/disable) получают прежний вход.

Кейсы dynamic-on / dynamic-off фиксируют, что именно уходит платформе; на прежнем
скрипте dynamic-off падает.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QoAJmoNbgWKobA7JGgN5S3
This commit is contained in:
Nick Shirokov
2026-09-04 19:47:25 +03:00
co-authored by Claude Opus 5
parent a0f2c4988a
commit 057c1044d9
5 changed files with 57 additions and 16 deletions
@@ -0,0 +1,18 @@
{
"name": "-Dynamic off передаётся платформе как -Dynamic-",
"fakePlatform": {
"log": "Обновление конфигурации успешно завершено\r\n"
},
"args_extra": [
"-V8Path",
"{fakePlatform}",
"-InfoBasePath",
"{workDir}/ib",
"-Dynamic",
"off"
],
"expect": {
"stdoutContains": "/UpdateDBCfg -Dynamic-"
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется командная строка"
}
@@ -0,0 +1,18 @@
{
"name": "-Dynamic on передаётся платформе как -Dynamic+",
"fakePlatform": {
"log": "Обновление конфигурации успешно завершено\r\n"
},
"args_extra": [
"-V8Path",
"{fakePlatform}",
"-InfoBasePath",
"{workDir}/ib",
"-Dynamic",
"on"
],
"expect": {
"stdoutContains": "/UpdateDBCfg -Dynamic+"
},
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется командная строка"
}