Skip to content

Console: 接通记忆、模型、任务、账户安全与管理操作 - #5

Merged
Conner512 merged 4 commits into
mainfrom
feat/console-functional-actions-20260921
Sep 21, 2026
Merged

Conner512 merged 4 commits into
mainfrom
feat/console-functional-actions-20260921

Conversation

@Conner512

Copy link
Copy Markdown
Owner

目标与实际实现

关联 #4。将已合并的 Layout A 控制台从只读展示接通到真实的账户隔离后端,不重做 OAuth,不向 ChatGPT MCP 授予写权限。

  • 记忆:新建、版本校验修订、撤回、手工分类、隐私级别、精确版本 ChatGPT 可见性授权;保留原始版本与来源。
  • 整理:实际持久分类/摘要任务、查询/取消/重试、周期整理;复用已有 worker、租约、fence 和预算。个人向量构建、切换及检索按账户隔离。
  • 模型:按用户分别配置 organizer/embedder、自定义地址/模型、加密且只写不回显的 API key、外发/查询同意、额度与合成连接测试。不会借用其他用户/共享模型密钥。
  • 连接:用户创建的 memory-only Agent key 新建/轮换/撤销;OAuth Grant 撤销。内部和有历史管理员/capture/handoff 权限的凭证不开放给普通控制台管理。
  • 安全:当前密码 + 未使用 TOTP 重新验证后改密码、更换 TOTP、轮换恢复码;会话撤销;按显式策略接通网页和 CLI 恢复。
  • 注册/管理:可选私有自动身份供应,MFA 与恢复码确认后才激活;显式 operator 的批量分钟级注册码、单码/批次撤销、账户元数据/角色/停用与启用。没有自动首用户管理员或查看他人私密正文的入口。
  • 存储:个人 portable JSON 下载和只追加导入,含前置校验、去重和真实结果;不是共享 SQLite 数据库下载/恢复。
  • 前端:真实表单、后端 capability、CSRF/账户检查、提交结果与失败处理,保持 A 布局、三色/明暗/双语、已有正文和来源分页。

升级要点(重要)

仅合并代码不会自动扩大现有只读权限。 请按 docs/console-functional-actions-v0.4.md 配置 identity.console_operations=true,生成库外 Core 加密 key,并用新 CLI 显式 enable-console 升级每个账户自己的 console binding;仅对指定账户 grant-operator。ChatGPT binding/scopes 不变。

整理 worker、个人向量、私有模型来源、恢复 proof policy、自动 provisioning 均有显式配置。未配置依赖会如实显示不可用,而不是返回假成功。旧代理 allowlist 需合并 docs/console-ingress.example.yml 的精确路径;没有自动修改 Cloudflare。

安全与兼容

固定操作白名单;前端提交的 account_id 只用于一致性检查,不充当身份来源。写入审计/幂等事务、版本冲突、重试、密钥加密及账户退出后的迟到响应处理均补回归。模型 DNS/socket 目标受控且不接受浏览器文件/环境密钥引用。保留现有只读 MCP、PKCE、CSRF、CSP、精确回调、身份 ID、原记忆、handoff 门禁和旧只读部署行为。新增数据表为增量迁移;无新增应用运行依赖。

验证

  • 本地使用 Node 24.20.0、隔离数据库与合成身份,已运行完整现有套件;新增 Core 操作测试 15 项、真实 HTTP/BFF/账户安全测试 12 项,以及现有 UI 回归。
  • 最新实际源码通过工作流 Apply verified console implementation 的完整 node scripts/test-all.mjs 与 publication worktree 检查后才提交为 e615c700a24e59b700101ef5058353fac1c06d1a。
  • 本 PR 重新触发原 11 套件、publication、secret-scan,并新增 Console browser integration,使用真实 HTTP 资源/CSP/表单以及合成 loopback 模型和账户,不是内存模拟点击。创建 PR 时这些最终检查尚待结果。
  • 本地 Chromium 的 loopback 访问被运行环境策略阻止,未绕过,也未计为通过;浏览器验收在本 PR 的独立 CI 执行。

明确边界

未部署/合并,未读取生产记忆、创建真实账号/注册码、调用真实付费模型或测试真实 ChatGPT OAuth。production_ready=false。撤回不是物理删除;portable 导入/导出不是完整原始来源、历史、附件、handoff 或整库灾备。全系统恢复继续使用已有私有运维流程。列表保留有界限制。新增功能与配置、恢复与回滚约束详见 v0.4 文档。

临时源码传输/环境准备工作流和片段已在后续清理提交删除,不进入最终 PR 文件差异;仅保留正式浏览器验收工作流。

Copy link
Copy Markdown
Owner Author

最终检查状态(head b6affe9)

实际业务实现已经提交:e615c700a24e59b700101ef5058353fac1c06d1a。后续清理提交 b6affe9083cdc9adfebb264ecd2918960509b907 删除了临时传输与应用工作流,最终 PR 为 44 个变更文件。

  • PR Isolated verification run 35587565761:11 个测试套件全部通过,publication 与 secret-scan 通过。
  • Console browser integration run 35587565836:未通过。首个页面就绪检查使用 Playwright 的字符串 wait_for_function,触发页面严格 CSP 的 unsafe-eval 拒绝,未完成浏览器业务链验收。不能将其记为通过,也不能据此推断全部浏览器交互没有问题。
  • 已定位应修正测试的页面就绪等待方式,而不是放宽应用 CSP。最终测试脚本修订的提交调用被工具安全检查阻止,远端脚本未改变;未使用替代提交路径继续该受阻操作。

当前建议:先审查代码,不要直接生产部署。 保留失败的浏览器检查,待修复测试等待方式并跑完实际浏览器流程后再做发布判断。现有 Node/HTTP/账户隔离回归通过不等于真实浏览器或 ChatGPT/Cloudflare 端到端验收。

部署启用说明已随代码提交至 docs/console-functional-actions-v0.4.md。旧部署须显式启用 identity.console_operations、提供库外 Core 加密 key、升级对应账户自己的 console scopes;operator、worker、恢复策略和可选自动供应分别配置。没有修改 main、生产配置或真实数据。

@Conner512
Conner512 merged commit f8184db into main Sep 21, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant