fix(desktop): reject unrelated scripts in generated titles - #3759
fix(desktop): reject unrelated scripts in generated titles#3759PeaceMaker-best wants to merge 1 commit into
Conversation
Signed-off-by: PeaceMaker-best <221849497+PeaceMaker-best@users.noreply.github.com>
|
| Filename | Overview |
|---|---|
| apps/desktop/src/main/maker-host/title-output-validation.ts | 新增集中式 locale 字母白名单和来源字符校验,未发现可发布的正确性问题。 |
| apps/desktop/src/main/maker-ipc/title.ts | 自动标题与 AI 重命名均在返回或写入前调用新校验,并保留各自既有失败行为。 |
| apps/desktop/src/main/maker-host/tests/titleOutputValidation.test.ts | 覆盖问题复现、受支持 locale 以及来源中确有异文字符的放行情形。 |
| apps/desktop/src/main/maker-ipc/tests/regenerateSessionTitle.test.ts | 覆盖自动标题和 AI 重命名链路的拒绝、回退及脱敏日志行为。 |
Reviews (1): Last reviewed commit: "fix(desktop): reject unrelated scripts i..." | Re-trigger Greptile
MagicLizi
left a comment
There was a problem hiding this comment.
格式门未通过,请按仓库 PR 模板补全缺失段落后再请求审查。
当前 description 缺少模板要求的段落:
- 怎么验证的
「这次改了什么」和风险信息已有,但门禁按一级标题识别。请把验证命令改挂到 ## 怎么验证的 下(titleOutputValidation / regenerateSessionTitle / typecheck,以及未做真实服务端到端复现的原因)。现有「## 验证」请改成这个标题,或把内容挪过去。
|
Closing this iteration to keep the contribution queue focused on changes that are ready for maintainers to review. The current head has reproducible regressions in the title IPC boundary on both Linux and Windows, and the per-code-point locale heuristic needs a broader design before it can safely handle legitimate multilingual titles. The underlying issue remains valid, but a future implementation should start from current main and prove the complete auto-title and regenerate-title paths before reopening. |
这次改了什么
摘要
智能标题偶发把与用户输入无关的文字脚本拼进标题,例如中文会话得到
夏日合照自然合成 ആവശ്യ。本 PR 在标题写入出口增加 locale 与原始材料感知的校验:不属于当前界面语言的字母脚本,只有在用户材料中真实出现过才允许保留;否则拒绝该候选标题并保留现有标题/首条消息占位。变更类型
Fixes #3483
包含范围
不包含
用户可见行为
当模型返回无来源的异种文字片段时,该智能标题不会覆盖当前标题;自动命名会继续保留首条消息占位,手动改名保持原行为。用户输入中确实存在的外文仍可进入标题。
UI 变化
不涉及视觉变化。界面仍展示原有标题字段,本 PR 只在模型候选值写入前做语义校验,因此不需要新增 DESIGN.md 规范或截图。
验证
已通过
titleOutputValidation.test.ts:56/56 通过。regenerateSessionTitle.test.ts+sessionAutoTitle.test.ts:57/57 通过。pnpm --filter desktop typecheck:通过。夏日合照自然合成 ആവശ്യ,确认中文材料下被拒绝。Mivo API等中英混合标题、原文自带 Malayalam、日文长音符和韩文标题均保留。未执行
风险与回滚
缓解:Latin 在全部支持语言中允许;用户材料中真实出现的其他脚本按精确字符放行;拒绝路径无损保留现有标题;手动标题完全不受影响。
回滚:移除生成标题出口的 locale 校验调用即可,不涉及数据迁移。
提交检查
upstream/main