--- summary: "个人 GitHub 联系、个人模型帐户和 Apple 配套日记的所在地" read_when: - "检查每个人的凭据和选择的存储位置" - "了解 Apple 伴随交付期刊及其迁移行为" title: "每人和同伴的存储空间" --- ## 个人 GitHub 连接和发布 个人 GitHub 连接状态使用现有的 `secret_store_entries` 身份范围,主要经过身份验证的配置文件为 `scope_id` 和固定专用名称 `github-connection`。它不是通用身份秘密 API 或配置文件首选项。一条有界记录拥有选择、待定设备授权和刷新恢复。个人管理的 CLI 凭证使用单独的 `credentials/github/personal/` 目录,位于较旧的 system/agent 清理根之外。 个人发布使用惰性的相同版本 `github_personal_publication_requests` 表。它记录请求配置文件、选定的连接生成和帐户、不可变的 target/workspace 快照、重复预防和结果;它不包含任何令牌。读取状态不会创建表。现有系统和代理请求保留在其原始表中。 本地共享和个人发布记录使用首次使用 `github_publication_session_lifecycles` 伴随表将每个请求绑定到其承认的会话生命周期修订。关键是出版物种类及要求ID;绑定在与请求相同的事务中提交。明确的 `NULL` 记录该会话在入院时没有修订。丢失的绑定不能授权未完成的发布,并且永远不会从当前会话中填充。终端收据历史记录仍然可读。 伴随表使现有的本地请求表定义及其接收摘要保持不变。状态模式 18 将 `requester_authority_json` 添加到该同伴和存储库发布收据中,以便共享请求保留其原始请求权限。历史行保持不受约束;终端收据仍然可读。这些可选表需要版本提升,因为即使可以为空,附带的模式验证器也会拒绝其他列。请参阅 [ 状态架构 18](/reference/database-schemas/state-schema-history#state-schema-18) 以了解迁移和回滚。 较旧的版本会忽略个人请求表和身份范围的凭证行,而不是作为 System.out.println 执行个人请求。重新升级仍会强制执行原始授权到期。未完成的个人出版物需要在网关重新启动后由同一经过身份验证的所有者重新确认;远程结果协调重用原始请求标记。 断开连接会删除可用的本地凭据,并保留无秘密的断开连接选择以隔离过时的工作。配置文件合并保留目标状态,包括显式断开连接;仅当目标没有状态且具有新的选择权限时,源连接才会传输。由于在旧版本上执行的配置文件合并而搁浅的凭据需要重新连接,而不是通过别名运行时采用。 个人发布收据在逻辑会话的生命周期内保留。 Archive/reset 保留收据并使不兼容的未完成工作无效。已调度的 GitHub 操作仍然可以记录其观察到的结果,而无需获得其他操作的权限。永久会话删除会隔离执行并删除其个人收据和生命周期绑定。重复预防没有基于时间的到期时间,并且删除本地状态不会撤消已创建的 GitHub 提交或拉取请求。 请参阅已接受的 [ 个人 GitHub 所有权和发布设计 ](https://github.com/openclaw/openclaw/issues/133590) 以及面向操作员的 [GitHub 连接指南 ](/concepts/user-model#github-connections)。 ## 个人模特账户 个人模型帐户使用现有的 `secret_store_entries` 身份范围,由主网关配置文件键入。版本化的 `model-accounts` 记录拥有提供者选择,而每个 `model-account:` 记录拥有一个内联 OAuth 或令牌凭证及其使用状态。每条记录保留现有的 64 个 KiB 秘密存储限制;连接更多帐户或合并配置文件不会将凭证合并到一种大小限制下。这不会添加表、列、索引或架构版本。通用秘密-list/read 方法和配置文件首选项不会公开这些记录。 在网关重新验证发起授权后,凭证及其选定的链接将在一个同步事务中提交。运行时仅加载明确选择的凭据,并将刷新和使用更新路由到同一所有者。共享和代理本地身份验证保存不包括保留的个人配置文件命名空间,包括运行时快照和 CLI 镜像。 共享状态读取器通过一次批量查询加载选定的个人凭证。一跳配置文件合并使现有凭证 ID 保持可用,而缺少合并目标和未展平的合并链永远不会提供凭证。网关技能创作角色和请求者检查使用配置文件所有者的提交目录,包括其写入收据,而不在主线程上读取 SQLite。 取消链接记录显式断开连接的选择并保留现有会话 pin 使用的凭据。经过验证的身份合并仅传输实时源的记录,保留目标的选择和断开连接,同时保留固定会话的旧凭据 ID。运行时不会采用旧版本在别名上搁浅的凭据。兼容降级会将私人记录保留在旧共享帐户池之外;重新升级可以使用保留的记录,而因旧身份合并而搁浅的帐户需要重新连接。 有关连接、取消、会话计费和取消链接行为,请参阅 [ 每人模型帐户](/concepts/multi-user#per-person-model-accounts)。 ## Apple 同伴投递日记 Companion Watch 聊天具有单独的应用程序本地存储。它不会更改网关控制平面或每个代理数据库架构,并且 `openclaw doctor` 不会迁移它。打开更新的 iPhone 和 Watch 应用程序以使用新的传输协议。请参阅 [ 观看语音和聊天 ](/platforms/ios#apple-watch-voice-and-chat) 了解交付状态和恢复情况。 iPhone现有的`client-state.sqlite`拥有`watch_message_journal`。名为 GRDB 的迁移 `client-state-watch-message-journal-v9` 将该表和可为空的 `watch_route_generation TEXT` 列添加到 `gateway_routing_identity`。忘记并重新配对后代发生变化;来自旧配对的延迟回调或排队命令不能成为新的工作。入场、接受运行身份和终端收据状态共享一个日志所有者,与一般聊天发件箱分开。日志的可为空 `command_fingerprint BLOB` 存储每个已承认命令的标准化序列化字节的 SHA-256。取消会保留此哈希值,因此在清除其命令文本后,重新使用内容或提交时间已更改的 ID 无法返回原始结果。散列随该行过期或被 Forget 删除;旧版导入没有命令指纹。迁移是通过共享 Apple 客户端存储注册的,因此 Mac 客户端也可以看到附加架构;它不处理同伴手表交付。 附加 `client-state-watch-message-legacy-receipts-v1` 迁移创建 `watch_message_legacy_imports`。它存储精确的旧命令 ID 和导入内容的 SHA-256 哈希值,而不是文本或网关 ID。可为空的内容哈希记录旧应用程序的 ID-only 最近消息抑制策略;它不是匹配主体或成功执行的证明。 每当手机准备其日志时,旧手表 UserDefaults 都会在一次 SQLite 事务中进行解码和协调。在清理检查两个源 blob 是否未更改之前,导入的行及其哈希收据会一起提交。这也可以恢复降级后旧应用程序写入的消息。无法证明的排队文本变为 **Needs review**,永远不会自动发送。与先前忘记的网关相关的冲突 ID 或未见消息会保留源并显示恢复错误,而不是丢弃或重定向文本。 导入的文本将保留到显式丢弃或网关忘记为止。它的仅散列收据没有定时过期,并且在这两个操作中仍然存在,因此相同的旧快照无法复活已删除的文本。此存储会随着旧版 ID 的增加而增长,并且只能通过完全载入重置来删除,这会在删除客户端状态之前清除旧的 UserDefaults。新命令及其回复重播有一个不可变的 48 小时期限。关闭隐藏已完成的卡片,而不更改其收据、确认状态或截止日期;主动交付不能被丢弃或驳回。下次使用交付状态(包括打开手机的交付列表)时,会删除过期的副本。空闲或暂停的应用程序不保证立即删除挂钟。 手表拥有其出站命令并在其自己的 SQLite 日志中接收结果。 90 秒的语音超时不会删除此交付状态或取消远程运行。两个应用程序都会在发出应用程序级许可或终端收据之前进行提交。永久拒绝显然不是承认,并且不会创建电话日志行。如果在记录接受的运行之前调度变得不明确,则恢复会报告不确定性,而不是再次自动执行消息。该手机保留了当前的 WAL 政策:这是应用程序终止恢复,而不是断电耐久性声明。 Forget 会删除现有不可逆删除事务中的电话日记行,包括在没有路由父级的情况下导入的行。手机首先考虑保留的遗留源,如果不能安全地完成,则拒绝删除。附加模式使旧读取器的显式路由更新保持完整,并且删除触发器在降级后保持其忘记路径有效。较旧的应用程序无法提供新的收据协议。不要删除迁移标记或重置 `client-state.sqlite` 以降级:该文件还包含其他用户拥有的客户端状态。 [ 接受的设计](https://github.com/openclaw/openclaw/issues/136617) 记录架构、迁移、所有权、保留和验证边界。