> For the complete documentation index, see [llms.txt](https://tinyhumans.gitbook.io/openhuman/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tinyhumans.gitbook.io/openhuman/zh/kai-fa/architecture/process-state.md).

# 共享核心中的进程状态

共享核心的进程状态、租户归属和路由要求。

此清单跟踪以下位置中的命名单例候选项 [#7433](https://github.com/tinyhumansai/openhuman/issues/7433)，位于 [云存储 Epic](https://github.com/tinyhumansai/openhuman/issues/7419)。其源代码审查记录于 `3dbdd07e5f07d917dabbbc93fb0a9dd2a24a4347`，并于以下时间添加了 MCP 清理保留： `d1efa8bd58417a0715d3c93655985ccfa9c9759c`。以下 PR 证据于 2026 年 10 月 12 日核查。它并未涵盖核心中的每个静态项，也不证明云部署已获认证。

## 分类

这些类别描述所需的所有权边界。一行可能需要多个：

* **A — 进程：** 引导设置、本地执行句柄或进程能力。
* **B — 作用域化：** 状态必须保留其租户、代理、会话或连接所有者。
* **C — 持久：** 记录需要后端文档、流、Blob 或声明。
* **D — 路由：** 请求必须到达拥有活动句柄的进程，或使用显式的执行器路由协议。

“Pending” 表示该边界仍需要回归测试或实现。仅因为相关记录是持久的，并不意味着进程本地表就能提供分布式声明。

### 配置与身份

表中的路径相对于 `crates/openhuman-core/src/`.

| 状态                                                          | 类别  | 当前边界与剩余工作                                                                                                                                                            |
| ----------------------------------------------------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `security/credentials/identity.rs` `CURRENT_USER`           | B   | 一个进程槽提供提示与追踪身份。待办：追踪已认证配置文件的接纳情况，并在将其视为配置文件拥有的状态之前测试交错身份。                                                                                                            |
| `config/schema/load/active_workspace.rs` `ACTIVE_WORKSPACE` | A   | 进程引导缓存。待办：验证配置文件操作不能通过此回退选择其他工作区。                                                                                                                                    |
| `core/runtime/context.rs` `DEFAULT_CONTEXT`                 | A   | 引导上下文。SaaS 租户解析使用实际的作用域上下文，并拒绝缺失的任务上下文；默认值不是租户权限主体。                                                                                                                  |
| `agent/multimodal.rs` `ATTACHMENTS_DIR`                     | B，C | 首次初始化的本地附件目录。附件字节和索引需要作用域化的 Blob 所有权和导入路径；参见 #7425。                                                                                                                  |
| `threads/store/bus.rs` `CONVERSATION_PERSISTENCE_WORKSPACE` | A   | 桌面订阅者安装会明确拒绝 SaaS。这里不提供共享核心的持久化或路由。                                                                                                                                  |
| `mcp/host.rs` `DEFAULT_CONFIG`                              | A，B | 替换了该问题先前的 `DEFAULT_WORKSPACE` 名称。作用域化客户端会捕获配置；缺失的 SaaS 上下文当前会回退到进程默认值。待办：拒绝回归并修复。                                                                                    |
| `core/logging.rs` `LOG_DIR`                                 | A   | 进程日志输出目标。云日志应使用进程输出或收集器；目录状态不是租户存储。                                                                                                                                  |
| `config/schema/proxy.rs` 代理设置和客户端                           | A，B | 进程代理策略和缓存的 HTTP 客户端。待办：确立仅限操作员的变更，或捕获配置文件策略；租户配置不得在未告知的情况下更改其他调用方的路由。                                                                                                |
| `config/schema/cli_overrides/ops.rs` `CLI_INFERENCE_STATE`  | A   | 启动覆盖项；持久化配置会单独恢复。这是进程配置，不是持久化的租户推断状态。                                                                                                                                |
| `agent/tinyagents/discovery` `SETTINGS`                     | B   | 会话构建会覆盖一项进程策略，而轮次组装会读取该槽位。待办：交错会话回归；发现策略需要捕获的会话所有者。                                                                                                                  |
| `storage/secrets.rs` `KEYS`                                 | A   | 缓存主提供方。原生密钥操作会捕获作用域并派生作用域化数据密钥。待生产 `current()` 隔离控制；更改主源需要重启进程。旧版接入需要单独的源所有权接纳。                                                                                      |
| 已连接集成缓存                                                     | B   | 仅凭凭据的快照和全局失效已在以下项中修正： [PR #7513](https://github.com/tinyhumansai/openhuman/pull/7513)。8 个作用域、诊断和 epoch 归还控制、363 项 Composio 测试以及 5 项作用域化派生控制均已通过。这是一个待处理的 PR，不是已发布行为。 |

### 实时执行与投递

| 状态                                              | 类别    | 当前边界与剩余工作                                                                                                                                                                |
| ----------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `agent/orchestration/busy_guard.rs`             | B，D   | 按配置文件键控的实时轮次守卫，带精确的守卫清理。第二个核心无法观察这些守卫；实时轮次需要所有者路由或持久化声明。                                                                                                                 |
| `agent/orchestration/completion_owners.rs`      | B，D   | 受限 ID 映射到已记录的配置文件；投递会重新打开受信任的配置文件上下文。重启或驱逐可能会丢失路由触发器。                                                                                                                    |
| `agent/orchestration/background_completions.rs` | B，C，D | 工作区路由器和按配置文件键控的门控；完成记录仍使用工作区 JSONL，并带有内存回退。共享投递需要持久记录和声明。                                                                                                                |
| `agent/orchestration/background_delivery.rs`    | B，D   | 按配置文件键控的本地槽位和作用域化投递任务。多个执行器在发布同一完成结果之前需要共享的投递声明。                                                                                                                         |
| `agent/orchestration/running_subagents`         | B，C，D | [PR #7517](https://github.com/tinyhumansai/openhuman/pull/7517) 在实时注册表键和公开控制中捕获租户所有权。经过 6 个基线失败后，7 个主机控制通过。审查后续事项仍然存在：在持久写入之前证明实际的 SaaS RPC 接纳，并拒绝缺少作用域的派生。活动句柄仍需要执行器路由。 |
| `threads/store/bus.rs` `CLAIMED_TURNS`          | A     | 受限的桌面通道/消息去重；SaaS 中已禁用注册和声明。不提供分布式或 SaaS 轮次声明。                                                                                                                           |

### 能力与模块连接

| 状态                                                       | 类别    | 当前边界与剩余工作                                                                                        |
| -------------------------------------------------------- | ----- | ------------------------------------------------------------------------------------------------ |
| `core/event_bind_tokens.rs` `STORE`                      | A，D   | 带过期的随机一次性、绑定客户端能力。SaaS SSE 在消费前会拒绝桌面令牌或缺失的配置文件，并按捕获的配置文件过滤事件。将消费路由到签发令牌的进程；不要将令牌表复制到租户文档中。       |
| `desktop/control/confirmation.rs` `TABLE`                | B，D   | 线程绑定的本地确认；SaaS 不包含此域。待办测试：两个嵌入式 actor 共享同一线程，以及模块替换后的取消。所有权必须包括原始模块实例。                           |
| `security/approval/gate.rs` `GLOBAL_GATE`                | B，C，D | 路由中已包含租户/代理作用域；等待方保留原始文档句柄。待办：缺失策略的回退控制。普通配置文件主机提供其自身策略；跨核心等待方投递仍需要路由。                           |
| `composio/trigger_history.rs`                            | B，C   | 一个不透明模块归档租约的进程生命周期所有者。工作区变更会先释放旧的已捕获客户端，再打开另一个。该模块拥有持久历史；原生归档消费和可信事件配置文件传播仍属于所有者/主机集成工作。         |
| `mcp/module_client.rs` `CLIENTS`, `CLEANUP_RESERVATIONS` | B，D   | 代理目录键为即将退出的客户端和待处理的清理回调保留资源。这些是进程本地的接纳防线。待办：在关闭和回执轮询期间保留已接纳的模块所有者；在清理失败后证明工作区保留和路径接纳。它们不提供分布式租约。 |
| 浏览器 `THREAD_SESSIONS`                                    | B，D   | 键包含作用域目录和线程；会话保留其原始浏览器客户端。普通配置文件拥有各自不同的工作区。待办：显式测试同工作区/不同配置文件碰撞；将活动浏览器句柄路由给其所有者。                 |
| RPC HTTP 主机 `REGISTRY`                                   | A，D   | UUID 监听器句柄会捕获任务和认证状态；list/get/stop 缺少租户所有权。SaaS 排除 Platform 表面。应固定该排除；若要向租户公开监听器，则需要显式的所有者能力。    |
| 语音 `IN_FLIGHT_CORRELATIONS`                              | B，D   | 通过当前 socket 管理器处理全局关联 ID 和延迟回复。SaaS 无头服务禁用 Socket.IO。待办：桌面重连/身份切换控制；旧任务必须保留其连接或拒绝投递。             |

## 部署约束

负载均衡器必须保留实时流、审批、工作进程、浏览器会话和本地能力的所有者。重新连接到另一个核心需要显式交接或类型化拒绝。仅靠共享存储无法转移内存中的任务、socket、取消信号或模块句柄。

SaaS 预设排除的仅桌面表面必须继续保持排除，直到其所有权测试通过。移除某项排除是一种能力变更，即使其存储已迁移到共享后端也是如此。

尚待完成的验收包括复现每个泄漏候选、缩小存储绕过基线、驱动矩阵验证，以及经过回归测试的桌面导入。 [PR #7519](https://github.com/tinyhumansai/openhuman/pull/7519) 为新的核心静态项添加了声明守卫，并保留现有所有权记录；68 项守卫、lane 和 crate 链测试通过。它不会扩展宏，也不会为现有全局项认证。该守卫仍是一个待处理的 PR。准备好的测试和源代码审查并不能满足剩余的执行要求。
