Phase 004: remove the desktop shell, website tooling, and bundled hermes CLI

- Drop all desktop/Electron branches, scripts, and UI (title bar, pets,
  desktop bridge); LAN endpoint kind is now web/custom only
- Replace the bundled hermes CLI with user-side installation: add
  GET /api/hermes/cli-status plus a HermesMissingView onboarding guide
- Remove the version-management UI (snapshots handled by git) and prune
  dead website/mcu/claude scripts and lockfile entries
This commit is contained in:
2026-10-16 15:33:56 +08:00
parent 8c1ddf415f
commit 4701bf0ad0
49 changed files with 354 additions and 2403 deletions
+1 -9
View File
@@ -9,7 +9,6 @@ describe('shutdown bridge policy', () => {
const originalValue = process.env.HERMES_AGENT_BRIDGE_STOP_ON_SHUTDOWN
const originalGatewayValue = process.env.HERMES_WEB_UI_STOP_GATEWAYS_ON_SHUTDOWN
const originalNodeEnv = process.env.NODE_ENV
const originalDesktop = process.env.HERMES_DESKTOP
const originalForceExitMs = process.env.HERMES_WEB_UI_SHUTDOWN_FORCE_EXIT_MS
afterEach(() => {
@@ -19,8 +18,6 @@ describe('shutdown bridge policy', () => {
else process.env.HERMES_WEB_UI_STOP_GATEWAYS_ON_SHUTDOWN = originalGatewayValue
if (originalNodeEnv === undefined) delete process.env.NODE_ENV
else process.env.NODE_ENV = originalNodeEnv
if (originalDesktop === undefined) delete process.env.HERMES_DESKTOP
else process.env.HERMES_DESKTOP = originalDesktop
if (originalForceExitMs === undefined) delete process.env.HERMES_WEB_UI_SHUTDOWN_FORCE_EXIT_MS
else process.env.HERMES_WEB_UI_SHUTDOWN_FORCE_EXIT_MS = originalForceExitMs
})
@@ -62,18 +59,13 @@ describe('shutdown bridge policy', () => {
expect(shouldStopManagedGatewaysOnShutdown()).toBe(false)
})
it('keeps desktop shutdown force-exit timing long enough for runtime cleanup by default', () => {
it('keeps shutdown force-exit timing long enough for runtime cleanup by default', () => {
delete process.env.HERMES_WEB_UI_SHUTDOWN_FORCE_EXIT_MS
delete process.env.HERMES_DESKTOP
expect(getShutdownForceExitMs()).toBe(15_000)
process.env.HERMES_DESKTOP = 'true'
expect(getShutdownForceExitMs()).toBe(15_000)
})
it('allows operators to override shutdown force-exit timing', () => {
process.env.HERMES_DESKTOP = 'true'
process.env.HERMES_WEB_UI_SHUTDOWN_FORCE_EXIT_MS = '7000'
expect(getShutdownForceExitMs()).toBe(7_000)