refactor(workspaces): rename @gsd/* scope to @hyveon/*#215
Conversation
Renames all npm workspace packages from the @gsd/* scope to @hyveon/* and moves app/packages/server to app/packages/desktop-main: - @gsd/server → @hyveon/desktop-main (dir renamed accordingly) - @gsd/shared → @hyveon/shared - @gsd/web → @hyveon/web - @gsd/lambda-* → @hyveon/lambda-* (all five lambdas) - @gsd/scripts → @hyveon/scripts Pure rename — no logic changes. All imports, scripts, configs, docs, and package-lock.json updated. 480 tests pass, build clean, lint clean. Closes #142 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Refactors the monorepo workspace naming by migrating the @gsd/* npm scope to @hyveon/*, including renaming the Nest backend workspace from app/packages/server (@gsd/server) to app/packages/desktop-main (@hyveon/desktop-main), and updates code/docs/tooling references accordingly.
Changes:
- Migrated workspace package names and cross-workspace imports from
@gsd/*to@hyveon/*. - Renamed the server workspace to
desktop-mainand updated build/test tooling to point at the new paths. - Updated documentation and scripts to reflect the new scope and workspace layout.
Reviewed changes
Copilot reviewed 38 out of 79 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/package.json | Renames workspace package to @hyveon/scripts. |
| README.md | Updates docs references to @hyveon/* scope (structure diagram partially updated). |
| package.json | Updates root scripts to use @hyveon/* workspace names. |
| docs/superpowers/specs/2026-05-10-electron-desktop-pivot-design.md | Updates design spec to new @hyveon/* scope references. |
| docs/docs/intro.md | Updates docs references to @hyveon/shared and new server package name. |
| docs/docs/guides/submodule.md | Updates docs reference to @hyveon/shared. |
| docs/docs/guides/maintainer.md | Updates maintainer docs for new package scope + server path changes. |
| docs/docs/components/management-app.md | Updates component docs for @hyveon/* packages and new server path. |
| docs/docs/components/lambdas.md | Updates lambda docs to @hyveon/* scope references. |
| docs/docs/components/integration-tests.md | Updates integration test docs to new desktop-main paths and @hyveon/* packages. |
| docs/docs/components/index.md | Updates docs reference to @hyveon/shared. |
| docs/docs/architecture.md | Updates architecture docs reference to @hyveon/shared. |
| CLAUDE.md | Updates repo instructions and package references to @hyveon/* + desktop-main. |
| app/vitest.setup.ts | Updates comment references from @gsd/web to @hyveon/web. |
| app/vitest.config.ts | Updates Vitest aliases and coverage excludes for new desktop-main paths and @hyveon/shared. |
| app/tsconfig.json | Updates TS project references to packages/desktop-main. |
| app/scripts/embed-tfstate.mjs | Writes embedded tfstate into packages/desktop-main/src/generated/. |
| app/packages/web/playwright.integration.config.ts | Points integration server dist path at packages/desktop-main/dist. |
| app/packages/web/package.json | Renames workspace package to @hyveon/web. |
| app/packages/shared/package.json | Renames workspace package to @hyveon/shared. |
| app/packages/lambda/watchdog/src/handler.ts | Updates doc reference to @hyveon/lambda-update-dns. |
| app/packages/lambda/watchdog/package.json | Renames workspace package to @hyveon/lambda-watchdog. |
| app/packages/lambda/update-dns/src/handler.ts | Updates shared import to @hyveon/shared. |
| app/packages/lambda/update-dns/src/handler.test.ts | Updates mocks/importActual to @hyveon/shared. |
| app/packages/lambda/update-dns/package.json | Renames package + dependency to @hyveon/shared. |
| app/packages/lambda/interactions/src/handler.ts | Updates shared imports/types to @hyveon/shared. |
| app/packages/lambda/interactions/src/handler.test.ts | Updates mocks/importActual to @hyveon/shared. |
| app/packages/lambda/interactions/package.json | Renames package + dependency to @hyveon/shared. |
| app/packages/lambda/followup/src/handler.ts | Updates shared imports/types to @hyveon/shared. |
| app/packages/lambda/followup/src/handler.test.ts | Updates mocks/importActual to @hyveon/shared. |
| app/packages/lambda/followup/package.json | Renames package + dependency to @hyveon/shared. |
| app/packages/lambda/efs-seeder/package.json | Renames workspace package to @hyveon/lambda-efs-seeder. |
| app/packages/desktop-main/tsconfig.json | Adds TS config for renamed server workspace (desktop-main). |
| app/packages/desktop-main/src/test-mocks/test-mocks.module.ts | Adds Nest module for integration-test-only mock control endpoints. |
| app/packages/desktop-main/src/test-mocks/test-mocks.controller.ts | Adds HTTP endpoints to control queued AWS SDK mock responses for integration tests. |
| app/packages/desktop-main/src/test-mocks/mock-store.ts | Adds in-process FIFO mock response store for integration tests. |
| app/packages/desktop-main/src/test-main.ts | Adds integration-test Nest bootstrap wiring aws-sdk-client-mock + test-only modules. |
| app/packages/desktop-main/src/services/LogsService.ts | Adds CloudWatch Logs tail + SSE streaming logic. |
| app/packages/desktop-main/src/services/LogsService.test.ts | Adds unit tests for LogsService polling + getRecentLogs. |
| app/packages/desktop-main/src/services/FileManagerService.ts | Adds ECS-on-demand FileBrowser launcher for EFS browsing. |
| app/packages/desktop-main/src/services/FileManagerService.test.ts | Adds unit tests for FileManagerService. |
| app/packages/desktop-main/src/services/EcsService.ts | Adds ECS wrapper for start/stop/status + helpers for file-manager tasks. |
| app/packages/desktop-main/src/services/EcsService.test.ts | Adds unit tests for EcsService. |
| app/packages/desktop-main/src/services/Ec2Service.ts | Adds EC2 ENI → IP resolver. |
| app/packages/desktop-main/src/services/Ec2Service.test.ts | Adds unit tests for Ec2Service. |
| app/packages/desktop-main/src/services/DiscordConfigService.ts | Updates shared import scope to @hyveon/shared. |
| app/packages/desktop-main/src/services/DiscordConfigService.test.ts | Updates shared mocks/importActual to @hyveon/shared. |
| app/packages/desktop-main/src/services/DiscordCommandRegistrar.ts | Updates COMMAND_DESCRIPTORS import to @hyveon/shared. |
| app/packages/desktop-main/src/services/DiscordCommandRegistrar.test.ts | Adds unit tests for Discord command registration via REST. |
| app/packages/desktop-main/src/services/CostService.ts | Adds Fargate estimate math + Cost Explorer query wrapper. |
| app/packages/desktop-main/src/services/CostService.test.ts | Adds unit tests for cost estimation + CE error handling. |
| app/packages/desktop-main/src/services/ConfigService.ts | Adds config + tfstate parsing (runtime + embedded fallback) under desktop-main. |
| app/packages/desktop-main/src/services/ConfigService.test.ts | Adds unit tests for tfstate parsing + config/token behavior. |
| app/packages/desktop-main/src/modules/discord.module.ts | Adds Discord feature module wiring. |
| app/packages/desktop-main/src/modules/aws.module.ts | Adds AWS feature module wiring (Config/ECS/EC2/Logs/Cost/FileManager). |
| app/packages/desktop-main/src/main.ts | Adds desktop-main Nest bootstrap + prod SPA serving with /api carve-out. |
| app/packages/desktop-main/src/logger.ts | Adds Winston logger configuration for desktop-main. |
| app/packages/desktop-main/src/guards/api-token.guard.ts | Adds global bearer-token guard (header + SSE query param support). |
| app/packages/desktop-main/src/guards/api-token.guard.test.ts | Adds unit tests for ApiTokenGuard behavior. |
| app/packages/desktop-main/src/controllers/logs.controller.ts | Adds logs fetch + SSE log streaming endpoints. |
| app/packages/desktop-main/src/controllers/logs.controller.test.ts | Adds unit tests for LogsController. |
| app/packages/desktop-main/src/controllers/games.controller.ts | Adds game list/status/start/stop endpoints over tfstate + ECS. |
| app/packages/desktop-main/src/controllers/games.controller.test.ts | Adds unit tests for GamesController. |
| app/packages/desktop-main/src/controllers/files.controller.ts | Adds file-manager status/start/stop endpoints. |
| app/packages/desktop-main/src/controllers/files.controller.test.ts | Adds unit tests for FilesController. |
| app/packages/desktop-main/src/controllers/env.controller.ts | Adds environment metadata endpoint. |
| app/packages/desktop-main/src/controllers/env.controller.test.ts | Adds unit tests for EnvController. |
| app/packages/desktop-main/src/controllers/discord.controller.ts | Adds Discord config/admin/guild/permission/registration endpoints. |
| app/packages/desktop-main/src/controllers/discord.controller.test.ts | Adds unit tests for DiscordController. |
| app/packages/desktop-main/src/controllers/costs.controller.ts | Adds cost estimate + actual endpoints. |
| app/packages/desktop-main/src/controllers/costs.controller.test.ts | Adds unit tests for CostsController. |
| app/packages/desktop-main/src/controllers/config.controller.ts | Adds watchdog config get/update endpoints. |
| app/packages/desktop-main/src/controllers/config.controller.test.ts | Adds unit tests for ConfigController. |
| app/packages/desktop-main/src/app.module.ts | Adds root Nest module wiring controllers + global guard + request logger. |
| app/packages/desktop-main/package.json | Renames server package to @hyveon/desktop-main and updates dependency on @hyveon/shared. |
| app/package.json | Updates app workspace scripts to use @hyveon/* and desktop-main paths. |
| .gitignore | Fixes generated tfstate ignore path to packages/desktop-main. |
| .claude/agents/discord-iam-reviewer.md | Updates agent guidance references to @hyveon/* scope. |
| │ ├── server/ # @gsd/server (Nest.js API) | ||
| │ ├── web/ # @gsd/web (React + Vite) | ||
| │ ├── shared/ # @hyveon/shared | ||
| │ ├── server/ # @hyveon/desktop-main (Nest.js API) |
There was a problem hiding this comment.
Fixed in 0079f71 — server/ → desktop-main/ in the structure diagram.
|
|
||
| @gsd/desktop-main RENAMED from @gsd/server. Electron main entry | ||
| @hyveon/desktop-main RENAMED from @hyveon/desktop-main. Electron main entry | ||
| point; bootstraps the Nest microservice with |
There was a problem hiding this comment.
Fixed in 0079f71 — "RENAMED from @hyveon/desktop-main" → "RENAMED from @gsd/server".
- README structure diagram: server/ → desktop-main/ - Electron spec: 'RENAMED from @hyveon/desktop-main' → 'RENAMED from @gsd/server' Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Take Hyveon URLs from main and @hyveon/shared package name from branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| ├── app/ # Nest.js + React monorepo (npm workspaces) | ||
| │ └── packages/ | ||
| │ ├── shared/ # @gsd/shared | ||
| │ ├── server/ # @gsd/server (Nest.js API) | ||
| │ ├── web/ # @gsd/web (React + Vite) | ||
| │ ├── shared/ # @hyveon/shared | ||
| │ ├── server/ # @hyveon/desktop-main (Nest.js API) | ||
| │ ├── web/ # @hyveon/web (React + Vite) |
There was a problem hiding this comment.
Fixed in c02336e — server/ → desktop-main/ in the directory diagram.
| | Epic | Scope summary | | ||
| |---|---| | ||
| | **A — Electron shell + build pipeline** | Add `@gsd/desktop-main` (rename of `@gsd/server`) and `@gsd/desktop-preload`. Adopt `electron-vite` + `electron-builder`. Three-target CI matrix. `asarUnpack` for Lambda bundles + `terraform/`. `userData` paths for caches and logs. `fix-path` at boot. Main-process Winston logger. | | ||
| | **A — Electron shell + build pipeline** | Add `@hyveon/desktop-main` (rename of `@hyveon/desktop-main`) and `@hyveon/desktop-preload`. Adopt `electron-vite` + `electron-builder`. Three-target CI matrix. `asarUnpack` for Lambda bundles + `terraform/`. `userData` paths for caches and logs. `fix-path` at boot. Main-process Winston logger. | |
There was a problem hiding this comment.
Fixed in c02336e — "rename of @hyveon/desktop-main" → "rename of @gsd/server".
Code reviewFound 2 issues:
🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
- Dockerfile: COPY and CMD paths updated to packages/desktop-main/ - Makefile: SERVER_SRCS path + all @gsd/* workspace refs → @hyveon/*, including clean target - docs/intro.md, maintainer.md: server/ → desktop-main/ in dir diagrams - Electron spec: Epic A table 'rename of @hyveon/desktop-main' → 'rename of @gsd/server' Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The lockfile regenerated during the @GSD→@hyveon rename nested these two packages under app/packages/web/node_modules/ instead of root. npm ci does not install nested workspace devDependencies, so both e2e and integration CI jobs failed with ERR_MODULE_NOT_FOUND for @vitejs/plugin-react. Relocating both entries to node_modules/ (root) matches the pre-rename state and restores npm ci installation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closes #142
Summary
app/packages/server→app/packages/desktop-mainand changes its package name from@gsd/server→@hyveon/desktop-main@gsd/*scope to@hyveon/*:shared,web, all five Lambda packages (lambda-interactions,lambda-followup,lambda-update-dns,lambda-watchdog,lambda-efs-seeder), andscriptsimport … from '@gsd/…'across the TS source tree, all npm workspace scripts,tsconfig.json,vitest.config.ts,embed-tfstate.mjs, and Playwright configs.gitignoreentry for the generated tfstate file (path was still pointing atpackages/server/)Test plan
npm installsucceeded (lock file regenerated)npm run app:buildpasses (shared → desktop-main → web)npm run app:test— 480 tests pass unchangednpm run app:lint— clean@gsd/references remain (grep -r "@gsd/" --include="*.ts" --include="*.tsx" --include="*.json"returns nothing)🤖 Generated with Claude Code