会话管理

把「打开报错」的历史会话一键适配回来,或转交归还给原生打开。

1. 什么时候用这一页

ChatGPT.app 的会话在建立时会把 provider 写进内核 DB。如果这个 provider 后来被删掉或改名 (换网关、清理旧供应商、从 CLI 录过又删掉的临时条目……),这些历史会话再打开就会打开即报错: 会话本身还在,但它指向的 provider 已经不可解析。

Coskey 的「会话」页把这件事显性化,并给两条出路:

出路 做什么 适用
适配(接管) 把该会话记到 Coskey 名下、打开时改走本地中转:之后照常打开,会话内还能自由切模型 provider 不可解析的会话;或未受管但想交给 Coskey 管的会话
转交(归还) 把持久化 provider 改回一个原生可解析的值(如 openai):交还 ChatGPT.app / codex 原生打开 想彻底退出 Coskey 管理,或本来就该用官方模型的会话

2. 会话页怎么看

会话页总览

  • 顶层「适配状态」:全部 / 已适配 / 未适配 / 打开报错,括号里是数量;
  • 细化过滤 + 搜索:再往下细分成 已适配 / 未适配 / 未适配·打开报错 / 未适配·可打开 / 原生 / 可转交 / 已转交 / 全部;会话名 / threadId / 目录都能搜;
  • 批量按钮:「适配全部报错风险(N)」与「转交全部报错会话(N)」只统计能处理的那部分;
  • 按项目分组:与 ChatGPT.app 左侧的项目一致,无归属的进「其它」;
  • 每行:会话名 / threadId、归属/状态列(首行是生效归属,次行是状态(已适配 / 原生 / 未适配 / 已转交),末行是状态徽标)、模型列(内核保存 / 会话钉住 / 最近下发),右侧是 单条「适配」(插头)「转交」(右箭头)图标按钮;
  • 状态徽标:provider 不可解析(可救)、会话文件缺失(rollout 已丢,接管/转交都救不回来)、 已归档、使用中、内核已删除(仅 Coskey 有记录)、窗口待生效。

3. 一键适配:解决「打开历史会话报错」

点「打开报错(N)」,列表只剩有问题的会话:

过滤打开报错的历史会话

  • 两行 provider 不可解析(provider = legacy,早已不在配置里)——这是可以救的;
  • 「sandbox」分组里还有一行 会话文件缺失——rollout 文件已丢,任何 provider 改写都救不回来, 只能在 ChatGPT.app 里处理(或删除);批量按钮只统计能处理的部分,缺失文件那条不在其中。

点「适配全部报错风险(2)」,确认弹窗会列出这次要适配的会话,并说明点下去之后什么时候生效:

适配确认

确认后这两个会话归到 Coskey:「归属/状态」列首行显示 coskey,内核保存的旧值留作次行小字; 顶部提示第一行是「已适配 2 个会话」(后面只有非零项才追加,比如「1 个原生会话无需适配」), 当前分组里已经没有打开报错的会话,列表给出空态(救不回来的那条在 sandbox 分组):

适配完成

切到「已适配(3)」可以核对结果:归属都是 coskey,最近下发是当前默认模型——前两条(刚适配、 还没重新打开过)下面还带着次行小字「内核保存:legacy」,第三条(打开过、内核已落库)就没有了:

已适配列表

之后再在 ChatGPT.app 里打开这些会话就不会报错了;会话内容不变,会话里还能自由切换其它 供应商的模型。适配只在 Coskey 侧登记路由、并记下接管前的值,不改写内核 DB:内核里的 provider 会在该会话首次使用后自己落成 coskey(次行小字也就是这时候消失)——卸载 Coskey 时 可选「恢复接管前 provider」改回去。

4. 单条操作与其它过滤

  • 每行右侧的「适配」「转交」只处理这一条,适合精确救某一个会话;
  • 「转交」要选一个原生可解析的目标 provider(openai、或 ~/.codex/config.toml 里定义过的 名字);转交后会话由 ChatGPT.app / codex 原生打开,暂不经 Coskey,随时可以再适配回来;
  • 「未适配·可打开」列出 provider 仍可解析、只是没交给 Coskey 的会话——想统一管理就批量适配, 不想动就放着;
  • 「可转交」列出可以归还的会话,批量「转交全部可转交」= 一次性归还;转交过的会话状态显示 已转交,在「已转交」细化分类里可以找回;
  • 「显示归档」默认关闭,归档会话既不计入计数也不进列表(Coskey 不修改归档状态)。

5. 与 CLI 的对应关系

GUI 操作 CLI 等价
单条 / 批量适配 coskey take-over <threadId>... [--all] [--pin <模型>]
单条 / 批量转交 coskey hand-over <threadId>... [--all] [--to <provider>] [--dry-run]
解除钉住 coskey unpin <threadId>
查看列表 coskey threads [--group] [--adapted yes|no|broken]

6. 常见问题

现象 原因 / 处理
打开某个历史会话就报错 该会话持久化 provider 已不可解析:在「打开报错(N)」里一键适配
适配之后还是打不开,列表写着「会话文件缺失」 rollout 文件已丢(内核 DB 里指向的会话文件不存在),Coskey 无法修复;回 ChatGPT.app 处理该会话
适配会改我的会话内容吗 不会:只把内核 DB 里的 provider 字段改写成本地中转,并在 Coskey 侧记下接管前的值
不想再让 Coskey 管这个会话 用「转交」把它归还给原生可解析的 provider(写入前自动备份内核 DB)
数字对不上 顶部「显示归档」默认关闭,归档会话不计入计数;子代理会话跟随父会话展开

下一步:状态与设置。