Skip to content

fix(session-title): 修复 <session> 标签包裹用户文本导致标题全部回退到元数据#259

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/fix-session-title-dash-hyphen
Jun 4, 2026
Merged

fix(session-title): 修复 <session> 标签包裹用户文本导致标题全部回退到元数据#259
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/fix-session-title-dash-hyphen

Conversation

@ThreeFish-AI

@ThreeFish-AI ThreeFish-AI commented Jun 4, 2026

Copy link
Copy Markdown
Owner

问题

PR #258 合并后,Dashboard 中 Session Title 全部变成 [Session] {model_name}(Level 4 兜底),用户实际输入未显示。

根因<session> 标签在某些场景下会完整包裹用户文本(而非仅作为前缀)。_NOISE_TAG_PATTERN 使用 re.DOTALL + .*? 匹配 <session>...</session> 时,连同内部用户文本一并删除,导致 Level 1 始终返回空。

改动

_sanitize_user_text 新增二次回退提取executor.py):

当首轮噪声剥离结果为空时,检测是否含 <session> 标签,若是则:

  1. 仅去除 <session> / </session> 外壳标签,保留内部文本
  2. 对内部文本重新做标准噪声剥离
  3. 若得到非空结果,使用它作为标题

这确保用户文本在 <session> 包裹场景下仍可被提取。

新增测试test_router_executor.py):

  • <session> 包裹纯用户文本 → 二次回退提取用户文本
  • <session> 包裹混合内容(元数据 + 噪声 + 用户文本)→ 噪声被剥离,用户文本可见
  • <session> 仅作为前缀(原有行为)→ 不受影响
  • <session> 内全为噪声 → 仍返回空,回退到 Level 4

验证

  • 166 个 executor 测试全部通过
  • Pre-commit hooks(Ruff lint + format)全部通过

当用户实际输入被 <session> 标签完整包裹时,首轮噪声剥离会将
整个 <session> 块连同用户文本一并删除,导致 Level 1 始终返回空。
新增二次回退机制:若首轮结果为空,仅去除 <session> 外壳标签,
保留内部文本后重新剥离噪声,确保用户文本可见。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI ThreeFish-AI changed the title 待更新 fix(session-title): 修复 <session> 标签包裹用户文本导致标题全部回退到元数据 Jun 4, 2026
@ThreeFish-AI ThreeFish-AI merged commit 63a47df into feature/1.x.x Jun 4, 2026
6 checks passed
@ThreeFish-AI ThreeFish-AI deleted the ThreeFish-AI/fix-session-title-dash-hyphen branch June 11, 2026 07:19
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