跳到正文

Project

Project 把一个项目的成员、使用的知识和待发布修改组织在一起。本机仓库目录可以绑定到这个 Project,让 Agent 在工作时找到正确的 Memory。Project 的身份由 Server 签发,不能用文件夹名称代替。

本页保留历史地址 /workspace;当前 API 使用 project_id。Project 与 Organization 的关系见核心数据模型

一个 Project 管理什么

内容保存在哪里用途
名称、描述、成员Server标识项目及访问权限
Org SelectionServer决定该 Project 使用哪些已发布 Organization Memory
Project Ref / CommitServer,并同步到 daemon给选择结果建立一个可安装的版本
Project 携带的 Draft先在本机持久化,再同步到 Server保存以 Organization 为发布目标的提案
本机目录绑定daemon把当前仓库目录解析为 project_id
安装 generation 与检索索引daemon 管理的文件 / SQLite支持 Agent 在本机读取和检索

成员授权与内容选择是两件事。被选中表示内容进入该 Project 的基线,不意味着个人 Bundle、目录绑定或某个 Agent 请求可以改变成员权限。

在 Memory 中创建和配置

通过 Memory 顶部项目选择器的 New Project… 创建项目。普通组织成员也能创建;创建者成为项目管理员,可以修改资料、添加或移除已有组织成员、选择 Memory、删除项目。这些权限不会授予组织管理或组织内容发布权限。

点击选择器旁的 Project Settings 配置当前项目。Repositories on This Mac 和缓存设置仅在本机生效,其他成员分别绑定自己的目录。普通成员和组织管理员的选择器末尾都显示 New Project…

组织管理员可通过 Settings → Organization → Projects 查看组织全部项目,并管理项目信息和成员,包括尚未加入的项目。读取这些项目的 Memory 仍需成员权限。

选择怎样变成当前可读内容

text
Organization 当前 Memory + Project Org Selection
  → Server 生成 Project Commit / Ref
  → daemon 安装快照
  + 该 Project 的 open/submitted Draft 修改
  → Effective Memory

以 Payments 为例,它选择部署回滚检查单后,所有绑定到这个 Project 的工作目录都指向同一个 Server Project。某次编辑生成由 Payments 携带的 Draft;同步到另一台安装后,那台安装也能呈现这个 Project 的提案。它不是某个目录中独立发布的文件,也不会变成另一个 Project 的未发布修改。

未发布修改仅叠加到承载它的 Project。merge 后,Organization 内容更新,选中受影响资源的 Project 才会获得新的投影。对于新建 Memory,Server 还会把它自动加入发起 Project 的选择。

GET /api/v1/projects/{project_id}/memories 是历史 Project-authority 数据的读取接口。它不包含当前选择投影和本地 Draft,不能用它代替 Effective Memory。

目录绑定怎样工作

绑定关系是:

text
规范化的 Server 地址 + 本机规范目录 → Server project_id

daemon 把关系保存在中心 SQLite 的 project_bindings 中。调用者位于子目录时,优先匹配最长的已绑定祖先目录;Git worktree 没有自身绑定时,还可以通过主 checkout 的仓库根解析。移动或重新绑定目录改变的是本机定位关系,不改变 Server Project 身份。

纳管 host-plugin 和手工启动的 mcp serve 都必须从工作目录解析绑定,并在启动及每次 tools/call 时校验。绑定丢失或改变时请求失败,无绑定目录不能回退到 Desktop 当前选中的 Project。

因此,两个已经绑定的 Agent 进程可以同时服务不同仓库,切换 Desktop 选中项不会重定向纳管进程。工具请求本身不能随意指定另一个 project_id 来绕过绑定。

当前 runtime 不再读取或迁移 ~/.clumsies/config.toml,旧 ws_id 也不是 Project 身份。安装与入口细节见Adapter本地运行时

Project Local Storage

一台安装可以为某个 Project 选择 generation 与检索数据库的保存位置。这个设置以 Server 地址和 project_id 为键,仅作用于本机,不属于 Server Project 元数据。

用户选中的目录是 daemon 托管子目录的父目录。中心 Draft、同步操作、凭据、快照缓存对象和共享模型不会跟着移动。自定义目录不可用时,daemon 返回明确错误,不会悄悄建立另一份活动缓存。具体迁移和恢复流程见本地运行时

排查“为什么没读到这份 Memory”

按数据流依次检查:当前目录绑定的 Project、该 Project 的 Org Selection、daemon 已安装的 Project Commit、是否有 Draft 覆盖、检索索引是否就绪。发布成功但本机尚未同步、项目未选择、Draft 覆盖旧基线,是不同的问题。

继续阅读:Organization Memory核心数据模型系统架构。实现依据:绑定解析MCP 入口Project 投影本地存储