Поиск платформы при урезанном окружении процесса - #27
Merged
Segate-ekb merged 1 commit intoSep 2, 2026
Merged
Conversation
При запуске из процессов с неполным окружением (например, дочерние процессы IDE и агентов) переменные ProgramW6432, ProgramFiles(x86), ALLUSERSPROFILE и ProgramData могут отсутствовать. Стандартные пути установки превращались в относительные (<1Cv8>, <1Cv82>), таблица версий оказывалась пустой, а ПутьКПредприятию() возвращал "". - фолбэк ProgramW6432 -> ProgramFiles при сборе стандартных путей - пустые базовые каталоги пропускаются, относительные пути в поиск не попадают - фолбэк ALLUSERSPROFILE -> ProgramData для чтения 1CEStart.cfg - предупреждение в лог, если не найдено ни одной версии платформы Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collaborator
Author
|
CI: падение test (default) / ubuntu-latest не связано с изменениями — та же джоба падает на develop (HEAD 32a1565, run 25373040095) с той же причиной: BDD-шаг сравнивает вывод консоли, а в него попадает предупреждение раннера |
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.
Проблема
При запуске из процесса с урезанным окружением (например, дочерний процесс MCP-сервера, IDE или CI-агента) переменные
ProgramW6432,ProgramFiles(x86),ALLUSERSPROFILEиProgramDataмогут отсутствовать, хотяProgramFilesиAPPDATAзаданы.В этом случае
СобратьСтандартныеПутиУстановки()строит относительные каталоги поиска (1Cv8,1Cv82,1Cv8t), а общесистемный1CEStart.cfgищется по относительному пути1C\1CEStart\1CEStart.cfg. Итог: таблица установленных версий пуста,ПутьКПредприятию()возвращает"", и потребители библиотеки падают с невнятными ошибками —Cannot start process because a file name has not been providedу v8runner и «Приложение ibcmd не обнаружено!» у ibcmdrunner.Подробный разбор с логами: vanessa-opensource/vanessa-runner#748.
Что сделано
ProgramW6432→ProgramFilesпри сборе стандартных путей установки (в урезанном окруженииProgramFilesобычно присутствует).ALLUSERSPROFILE→ProgramDataпри чтении1CEStart.cfg; при пустых переменных файл не ищется по относительному пути.Тесты
Новый тест
ТестДолжен_НайтиПлатформуВУрезанномОкружении_Windows: очищаетProgramW6432/ProgramFiles(x86)/ALLUSERSPROFILE/ProgramData, подставляет фикстуру вProgramFilesи проверяет, что платформа находится через фолбэк. Без фикса тест красный, с фиксом — зелёный; остальные 6 тестов проходят (Windows, oscript 2.1.0).🤖 Generated with Claude Code