8 Commits

Author SHA1 Message Date
ssurui
95ee66e836 docs: 记录音频通路卡死导致语音输入输出失效的根因与 SIGSTOP 复现手法
补充长时间运行后 TTS/ASR 一起失效的真实根因(播放阶段缺超时兜底
导致 aplay 卡死、isSpeaking 永久卡住、僵尸进程拖垮 PulseAudio),
以及用 kill -STOP/-CONT 冻结下游服务来可控复现"子进程偶发挂死"
类 bug 的通用排查手法。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QeoAy5KmkHuKWHAktpEsaN
2026-10-06 10:35:03 +08:00
ssurui
e95699b21b docs: 记录 TTS 中途开关漏播及 contextBridge 冻结对象验证踩坑
补充"生成中途打开 TTS 只从当前位置播报"的根因和修复方式,以及
调试时发现的 contextBridge 暴露对象默认冻结、渲染进程里 monkey-patch
拦截调用会静默失败的教训,供以后排查类似问题参考。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QeoAy5KmkHuKWHAktpEsaN
2026-10-05 17:40:53 +08:00
ssurui
a8bce9f985 docs: 记录触屏 hover 粘滞覆盖状态色的踩坑与 CDP 排查方法论
补充语音按钮"绿框"bug 的真实根因(CSS 优先级,非 focus/outline)
和弯路,以及用 CDP 直接读计算样式定位"样式写了但没生效"类问题的
排查方法,供以后排查类似 CSS 问题参考。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QeoAy5KmkHuKWHAktpEsaN
2026-10-05 17:24:10 +08:00
ssurui
1fdbc7353f docs: 记录措辞引导语位置导致误判"查不到"的真实踩坑与修复
补充 withToneHint() 的插入位置问题:追加在提示词末尾会让这条本该
"仅在没有足够信息时才用"的条件引导,变成模型倾向主动找机会使用的
独立指令,真机复测连续3次有1次把有效答案误判成"查不到"。记录修复
方式(嵌入原条件分句内部)和验证方法论的教训(测试必须走完整调用链,
不能绕开直接测生成接口)。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QeoAy5KmkHuKWHAktpEsaN
2026-10-05 17:06:14 +08:00
ssurui
ec7f111038 docs: 更新项目文档,补齐拍照提问、流式播报与提示词机制
CLAUDE.md:
- 文件说明补 visionHandler.ts / CameraCapture.vue / utils/tts.ts,
  并修正 generator.ts 的过时描述(早就不接受 llamacppServer 配置了)
- AppConfig 补 vision 字段,并写明"改 DEFAULT_CONFIG 只对新配置生效"
  这个部署坑(已有设备的 config.json 会盖掉新默认值)
- 新增"拍照提问"章节:三段式流程、"检索用组合文本+生成用原始问题"
  这个分工的理由、视觉能力探测的判据顺序(含 er_backend 日志只留 200 条
  导致 allow_image 会被挤掉、以及为什么不用 config.modelType)、
  摄像头 deviceId 跨会话失效和画面倒置影响识别质量两个坑
- 关键技术约定新增语音流式播报(append 必须累加、加粗重复朗读的成因)
  和系统提示词(为什么"每次换措辞"只写提示词无效、为什么不调 temperature)

README.md:新增"功能"和"启用拍照提问"两节,说明拍照提问是接入知识库
检索而非让模型凭空描述图片,以及需要多模态模型+设置开关两个前提。

文档里引用的文件、函数、IPC 事件已逐一核对与代码一致。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QeoAy5KmkHuKWHAktpEsaN
2026-09-03 21:22:49 +08:00
ssurui
6faf48fff4 docs: 补充打包体积精简的技术记录
记录 789M→664M 精简过程中的三个点:node_modules 排除 glob 必须带
**/ 前缀(真机踩过的坑)、Piper 引擎从未被实际调用只需保留
espeak-ng-data、bge-base/bge-large/punct 模型已从仓库删除的原因。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-23 00:56:19 +08:00
ssurui
b512857629 docs: 更新文档以反映 er_backend 代理重构、arm64 打包脚本与图标修复
- applyPlatformOverrides 章节改为描述统一走 er_backend 代理的现状,
  删除已废弃的按 cardType 推导端口的旧逻辑说明
- AppConfig 里 voice 字段结构更新为实际的 asr/tts 嵌套结构
- 新增"应用图标打包踩坑":files 数组遗漏 resources/icon.png、
  桌面菜单图标需要装全常规尺寸这两个真实踩过的坑
- 版本号管理章节补充三处版本号解析保持一致的说明
- 打包命令统一指向验证过的 package:kylin:arm64:deb(真机 fpm bug 的
  绕行方案),标注旧 package:kylin:arm64 在真机上会失败
- README 数据存储路径修正为实际的 ~/.config/elec_rag_ui/(原文档
  写的 simple-rag-app 是错的,真机验证过实际路径)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 23:52:33 +08:00
ssurui
7a4f149177 docs: 新增 README.md 和 CLAUDE.md 项目文档
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-15 20:10:47 +08:00