Repository navigation
移除 OAuth 与第三方身份绑定,改用本地公私钥 - #238
Conversation
Remove third-party account binding and OAuth authority; preserve native signing, bounded browser sessions, Git credentials, legacy certificates, content and atomic upgrade/recovery.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
核对 main 三项 HTTP/nginx 测试仍假设 Authorization 请求返回 200/400,但新的 BrowserSessionBoundary 明确返回 401/signature_required;另一个跨站 fixture在 http://peer.test 默认启用 browser,被 load_browser 以 secure_channel_required 拒绝。 建议同步这四处身份/安全 origin 契约,保留 no-store、无日志/响应哨兵泄露、URL 拒绝和无业务写入断言。Authorization 拒绝测试与 URL 边界矩阵应分开,避免所有请求提前被 401 拦截后丢失覆盖。不要恢复 OAuth 或放宽生产 HTTPS 检查。修复后需在最终 SHA 重跑完整 Rewrite contracts;本条是日志与源码核对,未新增执行测试或部署。 |
目标
按用户要求,身份以本地公私钥为基础,不绑定第三方身份。不引入区块链、外部钱包或交易费用。
改动
139 个文件变更,新增 2380 行,删除 10679 行,净减少 8299 行。验证辅助文件只在隔离 CI 分支,不进入本 PR。
已执行的验证
提交:
d570d2f074615107fc3f54ef03d9923a2a80244c基础:
705b44f0f9583a644fbfaf974635be5ca65b4fca测试与交付共用源码树:
61cf6b7799080d9d126b1f07fa55a74c66bbbe20最终验收与证据;分组原始结果。
分组首次结果为 582 通过、1 失败。唯一失败是配置测试调用的系统总自检。按仓库原有 CI 补齐 bubblewrap/AppArmor 等系统工具后,对整个配置契约文件复测 19 项全部通过。产品源码未改动,未删除断言或跳过该项。最终报告保留原始失败,并以相同源码的复测结果替换同名用例,不重复计数。最终流水线核对三组源码树、测试文件覆盖、全部最新结果后才允许推送此分支。
升级前置条件
尚未合并、尚未部署。此 PR 保持草稿,避免在旧用户尚未准备好密钥时直接发布。
这是身份协议的不兼容升级。仍依赖第三方登录的旧用户,必须先在旧版本中通过既有恢复或托管转自持流程取得可用的原身份密钥,并实际验证签名与备份。不能凭邮箱或提供方声明接管旧账号。
本次保留历史托管资料、原生 API/任务委派和恢复机制,不自动将所有旧托管身份转为自持,也不销毁用户资料。
部署者须删除旧
[oauth]/[login]配置,配置 HTTPS 与[browser],更新独立托管只读数据库角色对credential_states的查询权限。完整步骤见docs/KEY_IDENTITY.md。旧 OAuth 私有 MCP 连接器不会继续保持连接,须改用 CLI 或原生签名请求。