问题描述
在 PI-Desktop v0.14.6(Windows)中,长会话发生自动上下文压缩失败后,切换模型或继续对话会导致新模型无法看到压缩点之前的历史内容。
这不是会话记录被删除:聊天记录仍然存在于本地 SQLite 和 session JSONL 中,但没有被恢复到后续模型的 context。新模型会说类似“之前的具体任务内容无法读取”。
已核实的证据
本机当前会话的持久化记录仍然存在,包含 500 多条消息。会话中有一条 compaction 记录:
{
"failureCode": "CONTEXT_COMPACTION_FAILED",
"fallback": "retained_tail",
"retainedTail": [],
"tokensBefore": 273641
}
该 checkpoint 的 summary 明确表示:
Older messages before this checkpoint are omitted from the next model request.
The complete transcript remains available to the user.
在此之前还发生过 provider 错误(上游返回 sensitive_words_detected)。随后切换到其他模型后,模型只能看到压缩点之后的短上下文,而完整 transcript 仍可在本地恢复。
为保护隐私,没有附加完整 session、数据库或 API 凭据。
复现步骤
- 创建一个较长的 Agent 会话,使上下文接近模型窗口上限。
- 让自动 compaction 运行;如果摘要请求因 provider 错误、超时或其他原因失败,观察 compaction fallback。
- 继续对话,或在同一会话中切换 provider/model,触发 runtime 重建。
- 询问新模型有关压缩点之前的具体任务或文件内容。
- 观察模型表示无法读取之前的历史;但本地 session transcript 仍包含这些消息。
实际结果
- transcript/UI/本地存储中的历史仍然存在;
- compaction 写入了
retainedTail: [] 的失败 checkpoint;
- 后续模型请求不包含压缩点之前的历史,也没有可用摘要;
- 模型继续回答时会失去任务连续性。
预期结果
- 摘要失败时自动重试,或至少保留一个有界且非空的最近上下文;
- 不要写入会使后续恢复得到空 context 的 checkpoint;
- 模型切换和 runtime 重建应从 canonical transcript 或有效 summary 恢复;
- 如果恢复失败,应明确提示用户并提供从完整 transcript 恢复/新建会话的路径,而不是静默继续。
影响
长时间编码任务在 provider 临时错误或 compaction 失败后无法可靠继续,可能导致模型重复工作、误解当前任务或重新处理已经完成的工作。
环境
- PI-Desktop:
v0.14.6
- OS: Windows
- 触发方式:长会话自动 compaction 失败后切换模型/继续会话
相关但不同的问题:#22、#203、#211、#39。
问题描述
在 PI-Desktop
v0.14.6(Windows)中,长会话发生自动上下文压缩失败后,切换模型或继续对话会导致新模型无法看到压缩点之前的历史内容。这不是会话记录被删除:聊天记录仍然存在于本地 SQLite 和 session JSONL 中,但没有被恢复到后续模型的 context。新模型会说类似“之前的具体任务内容无法读取”。
已核实的证据
本机当前会话的持久化记录仍然存在,包含 500 多条消息。会话中有一条 compaction 记录:
{ "failureCode": "CONTEXT_COMPACTION_FAILED", "fallback": "retained_tail", "retainedTail": [], "tokensBefore": 273641 }该 checkpoint 的 summary 明确表示:
在此之前还发生过 provider 错误(上游返回
sensitive_words_detected)。随后切换到其他模型后,模型只能看到压缩点之后的短上下文,而完整 transcript 仍可在本地恢复。为保护隐私,没有附加完整 session、数据库或 API 凭据。
复现步骤
实际结果
retainedTail: []的失败 checkpoint;预期结果
影响
长时间编码任务在 provider 临时错误或 compaction 失败后无法可靠继续,可能导致模型重复工作、误解当前任务或重新处理已经完成的工作。
环境
v0.14.6相关但不同的问题:#22、#203、#211、#39。