Skip to content

feat: optional gcloud-doctor for Windows, macOS and Linux - #3

Open
Dimkox wants to merge 2 commits into
masterfrom
feat/gcloud-doctor-cross-platform
Open

Dimkox wants to merge 2 commits into
masterfrom
feat/gcloud-doctor-cross-platform

Conversation

@Dimkox

@Dimkox Dimkox commented Sep 10, 2026 •

Copy link
Copy Markdown
Owner

Назначение

Связать GitMir с Google Cloud через необязательный $gcloud-doctor, а не превращать Google Cloud в зависимость панели или распространять Windows-рецепт на все ОС.

Реализовано

  • Самостоятельный Node.js CLI внутри plugin/skills/gcloud-doctor: Windows/macOS/Linux, фактическая версия SDK, несколько SDK в PATH, Python, эффективный project/region/zone, активная конфигурация.
  • Отдельные проверки локальной записи CLI и доступности ADC-кандидата. Токены, account email и содержимое credential JSON в отчёт не выводятся. cloudAccess всегда not-tested.
  • --json, --project, --min-version, --gcloud, --require-local-adc, --strict, --timeout-ms. Никакой жёсткой привязки к 584.0.0.
  • Навык для установленного Codex plugin, синхронная dashboard-копия и запись в skills.json; npm-команды диагностики и тестов. Runtime assets не зависят от наличия корня исходного репозитория.
  • Подробный русский runbook: различия CLI/ADC, Windows bundled Python и WinGet metadata, macOS Homebrew, Linux APT/YUM, установка из архива, критерии проверки и ограничения.
  • 26 тестов с временными файлами и фиктивным SDK; CI-матрица Windows/macOS/Linux × Node 22.18.0/24.x. GitHub Actions закреплены на прочитанных commit SHA, permissions только contents: read.
  • Исправлен запуск через symlink/junction, используемые штатными установщиками GitMir. Регрессионный тест сначала воспроизвёл пустой stdout, затем прошёл после сравнения realpath обеих точек входа.

Проверено на окончательном commit cead359

node --check plugin/skills/gcloud-doctor/scripts/doctor.mjs

npm run test:gcloud-doctor

GitHub Actions: все 6 заданий завершились success — Windows, macOS и Ubuntu на Node 22.18.0 и 24.x. Проверены синтаксис, запуск help без SDK, реальные fixture-процессы, dashboard registration, отдельная копия установленного навыка и запуск через symlink/junction.

Проверенный run: https://github.com/Dimkox/gitmir-codex-control/actions/runs/34519894461

Дополнительный локальный Linux-прогон, Node 22.16.0: 25 passed, 0 failed, 1 Windows-only test skipped. Этот локальный runtime ниже заявленного floor; поддерживаемые версии отдельно проверены CI-матрицей выше. Платформенные skip в тестах намеренные; Windows-specific процесс и junction проверяются на Windows runner.

Отдельная проблема существующего CI

Общий workflow NodeJS with Webpack на первом commit PR завершился ошибкой: запускает npx webpack и требует интерактивной установки отсутствующего webpack-cli. Этот workflow уже есть на исходном master и данным PR не изменяется. Причина, журнал и критерии исправления записаны в #4. Поэтому успех диагностической матрицы не выдаётся за исправление всего CI репозитория.

Запуск

Из корня checkout этой ветки:

npm run doctor:gcloud
npm run doctor:gcloud -- --json
npm run test:gcloud-doctor

Для установленного/обновлённого плагина: $gcloud-doctor.

Полная документация: maintenance.md.

Границы

Диагностика не выполняет login, обновление SDK, правку реестра, деплой, IAM или операции биллинга. Ремонт требует явного разрешения на конкретную процедуру. Для неразрешённых изменений навык создаёт только диагностическую verify-задачу, а не автоматический ремонт.

Зелёные проверки не доказывают валидность токенов, доступность Google APIs или правильность IAM. Реальный Google SDK, авторизация, обновление компонентов и исходный Windows-ремонт не являются проверенными результатами этих fixture-тестов. Windows timeout не гарантирует уничтожения всех потомков cmd.

Всего 9 изменённых файлов: 6 новых и 3 существующих. Код сервера, runtime dependencies, startup behavior, release workflow и исторический 584.0.0 script не изменены. Публикация остаётся отдельным PR, слияния в master не выполнялось.

Add dependency-free local SDK, Python, PATH, project, CLI and ADC diagnostics for Windows, macOS and Linux. Bundle runtime and maintenance reference inside the installed skill, register the dashboard entry, and expose npm commands without changing server startup or dependencies.

Add 25 fixture-based tests and a Windows/macOS/Linux matrix for Node 22.18.0 and 24.x. Local Linux result: 24 passed, 1 Windows-only test skipped. Live cloud authentication, package updates and original Windows registry repair are not claimed as verified.
Resolve both entry-point paths before comparing them so the symlink/junction layout used by GitMir installers actually runs the CLI. Add a regression test that fails with empty stdout before the fix and passes afterward.

Local verification: syntax check plus 26 tests; 25 passed, 1 Windows-only test skipped, zero failures. Remote cross-platform matrix is rerun for this commit.
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