Crowd Memory 文档 v0.1.1

配置

多数情况下不需要配置。只有记忆服务装在其他目录、或要改变插件行为时,才需要看这一页。

环境变量#

插件在 DSH 启动时读取以下环境变量,修改后需要重启 DSH。

变量作用不设置时
CROWDMEMORY_ENDPOINT_FILE记忆服务 endpoint.json 的绝对路径使用 ~/.crowdmemory/state/endpoint.json
CROWDMEMORY_PROJECT项目名。建议设为仓库名使用会话工作目录的目录名
CROWDMEMORY_PROFILE记忆模板session-default

项目名用于「同项目」排序。如果每次的工作目录名不同,请固定设置 CROWDMEMORY_PROJECT。

插件配置#

插件在 DSH profile 中插入一行 id: crowdmemory。可配置的键:

键类型默认值说明
endpointFilestring见上表endpoint.json 的绝对路径。为空时插件不加载;为相对路径时工具照常注册,但每次调用都返回 endpoint_untrusted
projectstring工作目录名项目名,最长 256 个字符
profilestringsession-default记忆模板,可写 id 或 id@revision。工作流记忆用 workflow-default
injectbooleantrue为 false 时不推送
notesbooleantrue为 false 时不提供 memory_note
workflowbooleantrue为 false 时不处理 DSH workflow 事件
sessionIdstring不设置只服务指定的 DSH 会话
timeoutMsobject见上限与超时按事件类型覆盖超时,单位毫秒

修改插件配置#

在 DSH profile 的覆盖层 ~/.dsh/profiles/<profile>/cordis.patch.yml 中重写整行。将端点替换为自己的绝对路径;下面使用会话模板,按 workflow 采集时改为 workflow-default:

yaml
- id: crowdmemory
  config:
    endpointFile: /absolute/path/to/CMLocal/.runtime/crowdmemory/state/endpoint.json
    profile: session-default
    project: my-repo
    inject: true
    notes: true
    workflow: true
    timeoutMs:
      query: 5000

检查插件是否已加载:

bash
dsh --profile <profile> --dump-config | grep -A8 'id: crowdmemory'

桌面版#

从程序坞或访达启动的桌面版读不到 shell 中设置的环境变量。记忆服务装在默认目录 ~/.crowdmemory 时不受影响。装在其他目录时,任选一种方式:

  • 在 desktop profile 的覆盖层中把 endpointFile 写成绝对路径(见上一节)。
  • 启动桌面版之前执行 launchctl setenv CROWDMEMORY_ENDPOINT_FILE <绝对路径>。

记忆服务的安装目录#

crowdmemory-runtime 的所有命令都接受 --prefix <目录>,默认 ~/.crowdmemory,也可以用环境变量 CROWDMEMORY_RUNTIME_PREFIX 指定。使用其他目录时,endpoint.json 位于 <prefix>/state/endpoint.json,需要同时设置 CROWDMEMORY_ENDPOINT_FILE。完整选项见记忆服务命令。