安全模型
ThreadCells 面向由一人或一小组受信任人员操作的一台受信任 Linux 主机。它协调功能强大的原生编码代理;它不是用于敌对用户、提示、仓库或提供商插件的沙箱。
实际信任边界
主机和运行时用户
ThreadCells 操作系统账户可读取或执行的任何内容,都可能被原生代理访问。请使用专用账户、最小化文件系统权限、经过审查的提供商安装,以及适合自动化的仓库。
托管工作树将写入者隔开,但不对其进行隔离。不要向运行时账户提供代理不需要的凭据或主机访问权限。
Web 访问
常规 UI 和打包文档不提供通用用户登录。绑定到 127.0.0.1。偶尔访问时使用 SSH 隧道,或使用 Caddy 加 Authelia 提供已认证的 HTTPS URL。绝不公开暴露原始 ThreadCells 端口。
已安装的 PWA 保持相同的网络信任边界。其服务工作线程无法提供离线运行状态,也不会缓存 API、终端、授权、工作流、结果或 Statistics。
操作员授权
敏感的控制平面变更使用由不同 OS 主体配置的独立操作员验证器。密钥的精确最小长度为五个字符;建议使用更长的随机生成值。
ThreadCells 存储加盐 scrypt 验证器、短时有效会话/授权摘要、范围、签发者、到期时间、使用记录和审计记录——而非明文。服务账户不得能够替换验证器及其每一级父目录。五分钟浏览器会话使用 HttpOnly、SameSite=Strict cookie。
此边界保护已配置的变更。它不会将整个 Web UI 变成多用户认证应用。
例外的所有者启动
所有者执行器/XHigh 启动需要一次性能力,该能力绑定到精确的不可变配置文件修订、提供商配置修订、项目/工作树、会话请求、拓扑、签发者和委派深度。它会与终端元数据原子地一同被消耗。
针对内置 critical_sol_xhigh_owner 的 Web Create Session 和 Add Agent 流程需要相同的例外警告、明确确认、操作员解锁和有范围的一次性能力。Add Agent 将授权绑定到现有会话和已解析的规范工作树,而不接受用户输入的路径。本地 critical_sol_xhigh_owner --owner-xhigh 路径需要明确的交互式确认和仅回环地址启动。这些路径均不向子项或无关的 Web Settings 授予权限。提示文本无法创建或委派所有者权限。
提供商和导入构件
提供商适配器是可执行的受信任包,需要操作员审查。提供商/配置文件 JSON 是不受信任的声明式输入:可执行路径、命令、shell 标志、环境、原始密钥、任意 MCP 命令和未授予的通配符权限都会被拒绝。
提供商认证保留在提供商自身受支持的机制中。注册表导出会省略密钥值和一次性授权。
每终端控制凭据的范围限定于终端/提供商进程。ThreadCells 通过无凭据引导程序启动长期运行的 tmux 服务器,因此其持久进程命令行不会保留终端凭据。对于以同一受信任运行时账户运行的进程,这些凭据仍然敏感。
Telegram 通知
Telegram 投递为可选功能,默认禁用,适用于整个安装,并独立于项目配置。其机器人令牌是仅写入的 Web 设置,存储在私有 ThreadCells 状态根目录中由运行时拥有的 0600 常规文件内。读取 API 只公开安全的配置状态。操作员授权保护更新以及显式连接/测试操作。
生命周期消息使用固定的安全摘要,不包含提示、终端输出、异常正文、路径或凭据。对外投递对于工作流执行是故障开放的,并且会持久去重;启用通知不会重放禁用期间观察到的事件。
数据敏感性
请将 SQLite 数据库、终端日志、提示、结果、附件、托管工作树、备份、操作员验证器和提供商原生 rollout 历史视为敏感数据。即使 ThreadCells 本身避免记录凭据,它们也可能包含专有代码或用户提供的内容。
不要将明文操作员/提供商/Telegram 密钥放入仓库、环境转储、支持包、遥测、浏览器存储、API 响应或截图中。
破坏性操作
内务处理以计划为先,并按 fail-closed 原则执行。未知、不可读、打开、活跃、被引用、身份已变更或元数据不完整的资源仍受保护。绝不自动删除备份。
Full Cleanup 是同一 Housekeeping 权限内更积极的保留模式,而不是独立删除子系统。它复用服务器端操作员会话和永久操作确认,不接受调用方选择的文件系统路径,与启动/提供商/Heavy 准入串行,并在变更前立即重新验证全空闲生命周期。活跃发布版本、SQLite 状态、Ready 智能体继续执行权限、提供商凭据/状态、当前源代码/工具权限及含糊资源均保持受保护。只有通过这一显式操作,已证实不活跃的本地回滚发布版本才会被有意移除。
路径名删除仅限于通过套接字激活的 root helper。它重新认证同一操作员权限,只接受精确的规范 plan ID,要求控制平面进程持有所有准入栅栏,并在相对于描述符执行删除之前锁定隔离目录身份,防止运行时用户替换。非特权 API 不提供任意路径操作,也没有权限更弱的回退操作。
部署会保留回滚运行时和数据库备份。公开发布、公共网络暴露和破坏性历史变更仍是单独的所有者决策。
操作员职责
- 修补 OS、ThreadCells、提供商 CLI、反向代理和认证层。
- 在授予写入访问前审查提示、配置文件、适配器和仓库。
- 保持运行时用户和服务环境处于最小权限状态。
- 备份并测试持久状态恢复。
- 在合并、部署或发布前检查 diff/结果。
- 保持仅回环或经认证代理的访问控制。
- 通过安全的管理流程轮换提供商凭据并替换操作员验证器。
报告安全问题
请遵循 SECURITY.md。不要包含实时凭据、私有状态,或超出维护者安全复现所需范围的公开利用细节。
