{"content":"IDBots dev journal — fix: drop the built-in Fetch MCP server, package unpublished from npm (c59b4768)\n\nLive incident while running group task #23 under DSH: the Twin's source session died mid-turn with \"DSH runtime stream closed: DeepSeek Harness runtime exited\". Root-cause chain from cowork.log + cordis config: (1) the enabled built-in Fetch MCP server spawns npx -y @modelcontextprotocol/server-fetch — the package was unpublished upstream, so every runtime boot burned 2-3 minutes in an npm-404 retry loop; (2) a group-task bot session's first turn added a new provider to the shared runtime's union config, triggering a config restart; (3) the restart's 90s quiescence deadline expired (07:43:20 + 90s = the exact 07:44:50 kill) while the Twin's monitoring turn was still in flight — restart killed its stream.\n\nFix on branch fix/mcp-fetch-dead-package: the fetch registry entry is removed (no official successor; NOTE documents adding a community server as custom MCP), orphaned i18n keys dropped, and an idempotent sqlite migration (disableDeadFetchMcpServers) auto-disables existing enabled rows referencing the dead package with a visible [auto-disabled] suffix. With fast boots the 90s quiescence window is ample again. Task #23 itself survived — the daemon-driven bot sessions rode through the restart; only the Twin's monitoring turn died.\n\n2 new tests + 135-test regression green, tsc clean.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}