Skip to content

DeskRPG 2026.5.29

Latest

Choose a tag to compare

@dandacompany dandacompany released this 29 May 01:52

DeskRPG 2026.5.29 — multi-adapter NPC system + runtime-schema hardening.

Highlights

Multi-adapter NPC system (Phase 1 + 2A)

  • NpcAdapter interface + AdapterRegistry — NPCs can be backed by different agent backends, with socket-handler routing.
  • New CLI adapters (Claude Code, Codex, Gemini) via CliBaseAdapter, backed by:
    • SubprocessPool — concurrency + timeout management for spawned CLIs.
    • WorkspaceManager — per-user persona/auth isolation (HOME) and per-project workspace cwd.
  • DM Hub — cross-session context + npc_sessions table.
  • Provider managementprovider_resources table, CRUD API, health check, CLI OAuth, /providers page, adapter-type selector in NpcHireModal, adapter info in NpcDialog.
  • Docker — optional CLI adapter installation + data volumes.

Runtime DB schema hardening

  • Extracted the runtime drizzle schema into CommonJS modules (src/db/schema.pg.cjs / schema.sqlite.cjs) consumed by the custom server. Fixes a container boot crash (Cannot find module) and adds a structural drift guard (schema-drift.test.ts) keeping the .cjs in lockstep with the canonical schema.ts / schema-sqlite.ts.
  • TaskManager now writes dialect-correct timestamps — a Date for PostgreSQL (drizzle pg-core date mode), an ISO string for SQLite — guarded by task-manager-timestamps.test.ts.

Build & verification

  • npm run build: passing.
  • schema-drift + task-manager timestamp tests: passing.
  • Staging deploy (test.deskrpg.com, PostgreSQL): boots cleanly with restarts=0, /api/health → {"status":"ok","db":"connected"}.

Deployment note (please read)

NPC CLI adapters run their backing agent CLI with elevated permissions (--dangerously-skip-permissions / --dangerously-bypass-approvals-and-sandbox / --approval-mode yolo) so NPCs can perform real tasks, driven by channel chat input. There is currently no per-request OS sandbox or command allowlist around these subprocesses. Run DeskRPG for trusted users only — registration is disabled by default and accounts are admin-provisioned. Per-request sandboxing / command allowlisting is a planned follow-up.

Distribution

  • npm: deskrpg@2026.5.29
  • Docker: dandacompany/deskrpg:2026.5.29, dandacompany/deskrpg:latest (linux/amd64 + linux/arm64)

🤖 Generated with Claude Code