-
Notifications
You must be signed in to change notification settings - Fork 70
SDK settingSources 配置问题 — 全局设置无法跨 session 生效 #165
Copy link
Copy link
Open
Description
SDK settingSources 配置问题 — 全局设置无法跨 session 生效
问题描述
Proma 应用层配置(~/.proma/settings.json)与 SDK 配置体系完全割裂:
SDK 适配器硬编码了 settingSources: ['project'],导致 SDK 只读取 session 工作目录下的 .claude/settings.json,完全忽略用户级别的 SDK 配置。
现状
SDK 实际读取的路径:
~/.proma/agent-workspaces/<workspace>/<sessionId>/.claude/settings.json
Proma 自己的配置:
| 文件 | 存在 | SDK 是否读取 |
|---|---|---|
~/.proma/settings.json |
✅ | ❌ 不读取 |
~/.proma/sdk-config/.claude.json |
✅ | ❌ 不读取 |
结果:
- Proma 应用层写入全局配置的参数(如 WebFetch 安全检查跳过),SDK 完全看不到
- 每个 session 的
.claude/settings.json是 SDK 自行创建的空文件,Proma 应用层无法写入 - 不同 session、不同 workspace 之间配置完全隔离,无法共享
影响
- 应用层全局设置(如
skipWebFetchPreflight)对 Agent 不生效 - 记忆规则等需要在 SDK 层面生效的配置,无法通过 Proma 的配置体系持久化
- 每次新建 session 都是"空白"状态,依赖源码中的硬编码规则
建议修复
修改 apps/electron/src/main/lib/adapters/claude-agent-adapter.ts 第 319 行:
- settingSources: ['project'],
+ settingSources: ['user', 'project'],这样 SDK 会同时读取:
user级别:~/.proma/sdk-config/.claude.json(Proma 可写入)project级别:session 目录的.claude/settings.json
从而实现 Proma 应用层配置对 SDK 的透传,无需修改源码即可通过 Proma 配置中心管理 SDK 行为。
相关代码
- 适配器配置:
apps/electron/src/main/lib/adapters/claude-agent-adapter.ts:319 - SDK 配置目录:
~/.proma/sdk-config/.claude.json(存在但未被使用) - Proma 全局配置:
~/.proma/settings.json(存在但 SDK 不读取)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels