[Enhancement] theme-config 因文件任意处含多行 TOML 就整体拒绝 install(含多行 MCP args 的用户装不上)/ multiline TOML anywhere aborts install

Author: guiguili520Created Jul 17, 2026Updated Aug 27, 2026
Labelsenhancementstatus: considering

复核 v1.2.0 时发现(macOS)。定性为已知限制 / 增强,非直接 bug——见下说明。

现象

theme-config.mjsmain() 开头对整个 config.toml 做多行 TOML 检查:含 """/'''(L232-234)或多行数组(assertSupportedTomlLayout,L235)就整体抛错。调用方在 set -euo pipefail 下,于是 install / uninstall 整个失败

而 install 备份的两个外观键都是 nullchanged 恒为 false(L271)→ install 根本不会改 config.toml。因此对「config 里别处有多行 args = [\n ... \n](常见 MCP 配置)」的用户,明明不需要改配置却装不上。

为什么不建议直接放宽

重写器是基于正则的伪解析(desktopSection),多行字符串/数组会真的骗过它(例如字符串里出现 [desktop]、或数组续行以 [ 开头让 body 提前截断),进而导致恢复时误删/损坏用户配置。仓库现有测试(run-tests.shmultiline / multiline-array 用例)正是特意断言拒绝来防这个。任何放宽都会破坏这些测试或重新引入损坏风险。

建议

安全做法是换真正的 TOML 解析器(或把检查严格限定在可安全行编辑的范围),而非移除守卫。优先级低——当前是安全失败(不丢数据),只是拦住了合法配置。故此项仅记录,不随本轮 PR 改代码。

Source: Fei-Away/Codex-Dream-Skin