May 20th, 2026
Три аудит-finding'а закрыты в runtime-слое embedded Open Design: per-file SHA-256 verify при каждом запуске, сериализация view-show вызовов и защита от race в stop().
RoxDesignRuntimeManager верифицирует SHA-256 пяти security-perimeter entry points из MANIFEST.json.fileDigests на каждом старте. Modify-after-install attack блокируется — malware не может подменить .js/.mjs файлы между install и launch.ManagedRoxDesignView отслеживает in-flight loadPromise per-entry. Второй вызов show() ждёт завершения первого loadURL — больше нет race-condition, когда второй show прерывает первый mid-flight.RoxDesignRuntimeManager.stopping = true до child.kill — handler child.once('exit') early-return'ит вместо emit'а sidecar-exited IPC. Intentional shutdown больше не выглядит как crash.stopping reset'ится в false после stopProcesses() — можно перезапускать без перезапуска приложения.Откройте Open Design, закройте его кнопкой в TopBar, откройте снова — без crash-banner. Если кто-то изменит .js файлы в resources/rox-design/ — runtime откажется стартовать с понятным error.