Skip to content

Remove the Cursor worker from devbox-server (and the spurious yellow 'degraded' status it causes) #32

Description

@louisreingold

Why

We've moved devbox-server to Claude sessions as the way to drive work in an environment. The Cursor self-hosted worker is now dead weight:

  • It autostarts per environment but mostly just sits there / disconnects.
  • When its process isn't alive, status.js marks the whole environment degraded (the yellow dot) — even though WordPress and Claude sessions work perfectly. That's confusing: a fully usable box shows yellow because of an unused worker.

So: rip out the Cursor worker functionality from the server, and with it the worker-liveness component of env status (no more yellow-because-worker-dead).

What to remove (server only)

  • server/src/worker.js — delete (Cursor worker start / liveness / health).
  • server/src/fleet.js — delete (Cursor fleet-API enrichment; only exists for the worker).
  • server/src/manager.js — drop worker autostart in the create pipeline, the worker start in start(), worker supervision in the reconcile loop, and the worker-health gathering in _gather().
  • server/src/status.js — remove the worker-liveness branch. After this, core-up ⇒ running. (Keep degraded only if we still want it for partial core services up — see open questions.)
  • server/src/config.js — remove cursorWorkerAutostart, workerDir, workerManagementAddr, workerIdleReleaseTimeout, fleetApiUrl. Decide on cursorApiKey (see below).
  • server/src/routes.js / status publicView — drop the worker and fleet fields from env responses.
  • server/ui/app.js — remove any worker/fleet display.
  • Docs: server/README.md, server/.env.example, server/AGENT_USAGE.md — strip Cursor-worker config + mentions.

Open questions for the implementer

  1. CURSOR_API_KEY: it's currently a required server env var, but the worker is its only consumer. Once the worker is gone, make it optional / remove it from the required-vars check.
  2. degraded status: keep it to mean "some but not all core services up" (genuine partial failure), or collapse to just running/stopped/failed? Leaning: keep degraded for the partial-core case, just remove the worker cause.

Out of scope

The scaffolder's Cursor support is separate and stays: cursor-agent baked into the workspace image and the npm run cursor launcher (a human can still run Cursor interactively in a devbox). This issue is only about the server's worker orchestration.

Not starting on this now — filing for later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions