fix(gemini): restore context after stopping a reply#1932
fix(gemini): restore context after stopping a reply#1932piorpua merged 1 commit intoiOfficeAI:mainfrom
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Code Review:fix(gemini): restore context after stopping a reply (#1932)变更概述本 PR 修复了 Gemini 对话在用户中途停止回复后丢失上下文的问题。通过在 方案评估结论:✅ 方案合理 方案准确定位了 bug 根源:中途停止流时内存中的 Gemini chat 状态可能残留不完整 turn,导致下一次请求使用了污染状态。通过先 问题清单🔵 LOW —
|
| # | 严重级别 | 文件 | 问题 |
|---|---|---|---|
| 1 | 🔵 LOW | src/process/agent/gemini/index.ts:929 |
geminiClient 为 null 分支未覆盖测试 |
结论
✅ 批准合并 — 无阻塞性问题,修复方案正确,测试质量良好,仅有一处 LOW 级别覆盖率不足,不影响合并。
本报告由本地 pr-review skill 生成,包含完整项目上下文,无截断限制。
|
✅ 已自动 review,无阻塞性问题,正在触发自动合并。 |
* 'main' of github.com:wuhao1477/AionUi: (40 commits) fix(agents): prevent unhandled promise rejection in bootstrap initialization (iOfficeAI#1933) fix(gemini): restore context after stopping a reply (iOfficeAI#1932) fix(codex): reject start promise immediately on process exit during startup (iOfficeAI#1929) fix(conversation): sync renamed titles with detail view (iOfficeAI#1927) fix(paste): deduplicate filenames when pasting multiple images simultaneously fix(mobile): add SafeArea support and update app icon (iOfficeAI#1926) fix(database): guard against undefined params in databaseBridge providers (iOfficeAI#1924) fix(conversation): validate type field before creating conversation (iOfficeAI#1921) fix(docs): restore wechat_group_5.png reference to wx-5.png in readme fix(snapshot): add maxBuffer to git add/commit exec calls (iOfficeAI#1914) refactor(acp): consolidate AGENT_SKILLS_DIRS into ACP_BACKENDS_ALL (iOfficeAI#1913) fix(gemini): guard against EACCES in workspace realpath during init (ELECTRON-BM) (iOfficeAI#1912) fix(channels): send raw QR ticket instead of page URL in WeChat WebUI login SSE (iOfficeAI#1910) .md format chore(pr-automation): fix missed sleep 5 in comment to sleep 10 chore(pr-automation): increase auto-merge retry delay to 10s chore(pr-automation): add 5s retry for transient GitHub mergeStateStatus UNKNOWN fix(docs): remove trailing whitespace in OfficeCLI readmes chore(pr-automation): verify auto-merge success before labeling bot:done fix(snapshot): guard against non-existent workspace in WorkspaceSnapshotService.init (iOfficeAI#1906) ...
Summary
Root Cause
Stopping a Gemini reply aborted the active stream, but the worker kept its in-memory chat state. If the stop happened mid-turn, the next send could reuse a malformed chat history and lose prior context.
Testing
Closes #810