mosaic-init: adapter update rewrites ~/.claude/settings.json and DROPS mcpServers block → mosaic claude refuses to launch #1116

Open
opened 2026-08-08 19:32:40 +00:00 by Ghost · 1 comment

init's adapter update replaces rather than merges ~/.claude/settings.json, dropping the installer's mcpServers.sequential-thinking block; launcher then refuses. Same merge-not-replace class as #1111, and violates the ruled direction (stock ~/.claude left alone; framework in ~/.config/mosaic only). Found by greenfield install test on fomo-lin (Debian 13, node 20.19.2, main). Log: branch greenfield/fomo-lin, docs/reports/greenfield/fomo-lin.md session 2. Reported by scooby, triaged+code-confirmed by fred.

init's adapter update replaces rather than merges ~/.claude/settings.json, dropping the installer's mcpServers.sequential-thinking block; launcher then refuses. Same merge-not-replace class as #1111, and violates the ruled direction (stock ~/.claude left alone; framework in ~/.config/mosaic only). Found by greenfield install test on fomo-lin (Debian 13, node 20.19.2, main). Log: branch greenfield/fomo-lin, docs/reports/greenfield/fomo-lin.md session 2. Reported by scooby, triaged+code-confirmed by fred.

ROOT CAUSE (scooby, gap-7 characterization): the gated settings template OMITS the mcpServers.sequential-thinking block while the launcher hard-requires it, so an ensure-script bolts it onto ~/.claude out-of-band; init then regenerates from the template and drops it → launcher refuses. Structural fix (W-F1): the canonical ungated system base OWNS the mcpServers block (base = gated template minus the two gate-hook entries plus mcpServers). Then nothing bolts on out-of-band and nothing can drop it. This issue closes when W-F1 ships that base.

ROOT CAUSE (scooby, gap-7 characterization): the gated settings template OMITS the mcpServers.sequential-thinking block while the launcher hard-requires it, so an ensure-script bolts it onto ~/.claude out-of-band; init then regenerates from the template and drops it → launcher refuses. Structural fix (W-F1): the canonical ungated system base OWNS the mcpServers block (base = gated template minus the two gate-hook entries plus mcpServers). Then nothing bolts on out-of-band and nothing can drop it. This issue closes when W-F1 ships that base.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#1116