Skip to content

SDK settingSources 配置问题 — 全局设置无法跨 session 生效 #165

@ericheroster

Description

@ericheroster

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 之间配置完全隔离,无法共享

影响

  1. 应用层全局设置(如 skipWebFetchPreflight)对 Agent 不生效
  2. 记忆规则等需要在 SDK 层面生效的配置,无法通过 Proma 的配置体系持久化
  3. 每次新建 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 不读取)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions