desktop is a plugin too

Its sidecar, officer-vnc, was already excluded from the light profile, so calling
it core was only the capability kind saying `execution` — which is about who may
reach it, not whether a light install runs it.

Unmounted the same way as the other twelve: `/desktop`, its capability's api and
ws claims, the `desktop` websocket handler and its upgrade route. Implementation
untouched.

Also reverts a mistake from the previous commit. I had commented entries out of
WSData's `provider` union and left `upgradeWs`'s parameter type listing them,
which would have been a type error the moment either was used — and one I cannot
see here, since node_modules is empty and tsgo does not run. Those unions describe
possible values rather than what is served, and neither is a registration. Only
registrations are commented now, which is what was asked for in the first place.

Totality simulated again: 33 live mounts, 5 websockets, zero problems.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-13 02:14:52 +00:00
co-authored by Claude Opus 5
parent ffca309a77
commit 3cb39662b5
3 changed files with 11 additions and 10 deletions
+3 -2
View File
@@ -334,8 +334,9 @@ export const CAPABILITIES: Capability[] = [
label: 'Desktop',
description: "The server owner's physical screen",
kind: 'execution',
api: ['/desktop'],
ws: ['desktop'],
// api: ['/desktop'], // plugin — switched off 2026-08-13
// ws: ['desktop'],
api: [],
routes: ['/desktop'],
},
// `/browser` — the Chrome-extension relay — is unmounted as of 2026-08-13 and dropped from this claim,
+2 -2
View File
@@ -52,7 +52,7 @@ import { queueRouter } from './api/queue/queue';
// The browser relay is switched off — see server.tsx. Restoring this mount means restoring the
// registry's claim on '/browser' in the same commit, or assertCapabilityTotality refuses to boot.
// import { browserRouter } from './api/browser/router';
import { desktopRouter } from './api/desktop/rest';
// import { desktopRouter } from './api/desktop/rest';
import { bugReportRouter } from './api/bug-report/bug-report';
import { agentStatusRouter } from './api/agent-status/router';
import { chatRouter } from './api/chat/chat';
@@ -227,7 +227,7 @@ const PROTECTED_MOUNTS: [prefix: string, router: ReturnType<typeof createRouter>
['/chat', chatRouter],
['/pipeline-jobs', pipelineJobsRouter],
['/jobs', pipelineJobsRouter], // unified jobs API (script + pipeline); /pipeline-jobs kept for the existing UI
['/desktop', desktopRouter],
// ['/desktop', desktopRouter], // plugin — switched off 2026-08-13
];
for (const [prefix, router] of PROTECTED_MOUNTS) protectedRouter.route(prefix, router);