Skip to content

fix(acp): load session#1416

Open
zvzuola wants to merge 1 commit into
GCWing:mainfrom
zvzuola:main
Open

fix(acp): load session#1416
zvzuola wants to merge 1 commit into
GCWing:mainfrom
zvzuola:main

Conversation

@zvzuola

@zvzuola zvzuola commented Jul 4, 2026

Copy link
Copy Markdown

Summary

Fixes #

Type and Areas

Type:

Areas:

Motivation / Impact

Verification

Reviewer Notes

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@GCWing GCWing requested a review from wgqqqqq July 4, 2026 13:35
@limityan

limityan commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

Review 结论:建议合并前先整改。

  1. 必须修复:src/crates/interfaces/acp/src/runtime/replay.rs 回放用户消息时直接使用 user_message.content。ACP 图片输入在解析时会把图片转成 [Attached image: ...] 这类内部占位文本,同时把原始用户文本保存在 metadata.original_text。因此 session/load 恢复带图片的历史时,会把内部占位符展示给用户,并且再追加图片 block。建议回放时优先使用 metadata.original_text,无该字段再 fallback 到 content,并补一个带图片 prompt 的回放测试。

  2. 建议同步修复:src/crates/interfaces/acp/src/runtime/model.rsmodel_display_name 改为优先显示 model.model_name,会把用户配置的友好模型名替换成底层 provider model id。ACP 模型列表/状态应继续使用 AIModelConfig.name 作为显示名,model_name 可以保留在 description 中。

  3. 建议补强:tool_call_replay_updatestool_result: None 一律回放为 InProgress,没有参考 ToolItemData.status / interruption_reason。如果历史里存在 cancelled/failed/running 的无结果工具,恢复后可能出现卡住的工具状态。建议按持久化状态映射,或补测试证明该状态不可达。

验证:cargo test -p bitfun-acp 通过,git diff --check origin/main...HEAD 通过。

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.

2 participants