-
Notifications
You must be signed in to change notification settings - Fork 68
DeskRPG 2026年5月29日 — multi-adapter NPC system + runtime-schema hardening.
Highlights
Multi-adapter NPC system (Phase 1 + 2A)
NpcAdapterinterface +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 workspacecwd.
- DM Hub — cross-session context +
npc_sessionstable. - Provider management —
provider_resourcestable, CRUD API, health check, CLI OAuth,/providerspage, adapter-type selector inNpcHireModal, adapter info inNpcDialog. - 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.cjsin lockstep with the canonicalschema.ts/schema-sqlite.ts. TaskManagernow writes dialect-correct timestamps — aDatefor PostgreSQL (drizzle pg-core date mode), an ISO string for SQLite — guarded bytask-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 withrestarts=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