Skip to content

fix: resume / 題目解析不再把控制訊息當成題目#24

Merged
MakiDevelop merged 1 commit into
mainfrom
fix/resume-control-message
May 18, 2026
Merged

fix: resume / 題目解析不再把控制訊息當成題目#24
MakiDevelop merged 1 commit into
mainfrom
fix/resume-control-message

Conversation

@MakiDevelop
Copy link
Copy Markdown
Owner

摘要

pilot hotfix(接續 #23)。真人 pilot 打「哈囉」,bot resume 回覆把上一句 _pause_current_question() 控制訊息當題目回放:「剛才問的是:\n好, 這題我們先停在這裡…」。使用者:「那根本不是問題。」

根因

_handle_light_greeting_resolve_current_question 一律把「最後一句 assistant turn」當「當前題目」。但很多 bot 回覆不是題目 —— pause / status reply / 收尾語 / error reply / retalk 提示 / 產生人格檔回覆。

修法(Gemini + Codex 雙審收斂;不改 DB schema、不擴張 ontology)

  • 新增 _is_control_message() — 辨識非問題的控制訊息(6 種 exact 比對 + restart/status/行為模式檔 startswith)。
  • _handle_light_greeting — 最後一句是控制訊息 → fallback 重新 render current pool question,不顯示「剛才問的是」。
  • _resolve_current_question — 最後一句是控制訊息 → 用 base pool question(不把控制訊息餵給 depth evaluator);非控制訊息也先 _clean_resume_question 清前綴。
  • _clean_resume_question — 補認 _gentle_evasion_bridgefix: depth-evaluator 不再把真誠反思誤判成 EVASION #23 新增)的前綴。

不選「pause 不存 DB」:Codex BLOCK — 修不到已污染的 production session。本修法讓 Maki 目前卡住的 session 下一則訊息自動恢復,不需清 DB。

驗證

ruff check src tests   → All checks passed
pytest(全 suite)      → 271 passed
git diff --check        → 乾淨

新測試:_is_control_message 辨識;pause 為 last turn 時 _handle_light_greeting fallback、_resolve_current_question 用 pool question。

review chain

bug 路由 Gemini(多方案)+ Codex(工程穩健度)→ 雙審強烈收斂 → Codex 實作 → Claude 獨立驗證(271 全綠 + 逐行 diff review)。

注意

pilot hotfix —— 合併後需部署 VPS(vm.2ch.tw, git pull + restart)。

🤖 Generated with Claude Code

pilot 真人打「哈囉」,bot resume 回「剛才問的是: 好, 這題我們先停在這裡…」
—— 把上一句 pause 控制訊息當題目回放給使用者。

根因:_handle_light_greeting 與 _resolve_current_question 一律把最後一句
assistant turn 當「當前題目」,但 pause / status / 收尾 / error / retalk /
產生人格檔回覆都不是題目。

Gemini + Codex 雙審收斂的修法:
- 新增 _is_control_message:辨識非問題的控制訊息(6 種 exact + 3 種 startswith)
- _handle_light_greeting / _resolve_current_question 遇控制訊息 → fallback
  重問 current pool question
- _clean_resume_question 補認 _gentle_evasion_bridge 前綴

Constraint: pilot hotfix;不改 DB schema、不加 turn_kind(長期正解,非本輪)
Rejected: pause 不存 DB | Codex BLOCK — 修不到已污染的 production session
Directive: Maki 卡住的 session 不需清 DB,下一則訊息自動恢復

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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