cooper
|
c77e235d96
|
fix style pack prefs sync consistency
|
2026-05-13 22:22:38 +08:00 |
|
cooper
|
ae2c7e4e74
|
fix style pack export guard and switch-style sync
|
2026-05-13 21:45:13 +08:00 |
|
cooper
|
a4c4cc224b
|
fix tray style activation and streamed text consistency
|
2026-05-13 21:14:46 +08:00 |
|
cooper
|
16dd99cf67
|
refine style store runtime clarity and card layout
|
2026-05-13 19:18:58 +08:00 |
|
cooper
|
0c6cc8b292
|
refine style pack runtime semantics and editor clarity
|
2026-05-13 17:53:29 +08:00 |
|
cooper
|
0a19ad316e
|
fix: surface style store editor action
|
2026-05-13 17:09:41 +08:00 |
|
cooper
|
c77d9f42ed
|
fix: restore backend test prompt stub
|
2026-05-13 16:42:37 +08:00 |
|
cooper
|
7616ef0422
|
fix: align polish streaming test signature
|
2026-05-13 16:11:18 +08:00 |
|
cooper
|
b5001dc78f
|
fix: streamline style store editor flow
|
2026-05-13 15:43:40 +08:00 |
|
cooper
|
4127fe6a28
|
fix: align style pack branch with beta settings
|
2026-05-13 14:12:19 +08:00 |
|
cooper
|
8174cb4e8c
|
feat: add style pack management UI
|
2026-05-13 14:08:10 +08:00 |
|
cooper
|
8baf160ea2
|
feat: add style pack runtime and persistence
|
2026-05-13 14:06:29 +08:00 |
|
cooper
|
e331784b3b
|
docs: add Cooper's circular avatar image
- Add assets/people/cooper.png (circular avatar)
- Replace GitHub API link with local image file
- Match TRIP and Chris233's avatar style
|
2026-05-08 00:34:48 +08:00 |
|
cooper
|
620e817939
|
docs: make Cooper avatar circular
Add border-radius: 50% to Cooper's avatar to match TRIP and Chris233's circular style.
|
2026-05-08 00:32:29 +08:00 |
|
cooper
|
dd96d64672
|
docs: add website URLs back to developer section
- Add website URLs below each developer's name
- Increase cell width from 110 to 140 to accommodate URLs
- Keep circular avatars and table layout
|
2026-05-08 00:27:31 +08:00 |
|
cooper
|
712e9564f2
|
docs: refine developer section
|
2026-05-08 00:02:23 +08:00 |
|
cooper
|
188efa7e68
|
docs: add Cooper to developer list
|
2026-05-07 19:59:38 +08:00 |
|
 cooperandClaude Sonnet 4.6
|
27451298da
|
audit(system): 完成系统级多尺度审计 - 发现 3 大架构风险和 13 项技术债务
建立多尺度审计框架(4 个尺度):
- 尺度 1: 系统级(架构、安全、扩展性)
- 尺度 2: 模块级(设计、接口、依赖)
- 尺度 3: 功能级(实现、体验、边界)
- 尺度 4: 代码级(bug、风格、性能)
**系统级审计关键发现**:
架构风险(3 项):
- 🔴 Coordinator 过于庞大(3462 行)
- 🔴 缺少统一的 ASR Provider trait
- 🔴 测试基础设施缺失(覆盖率接近 0%)
技术债务(13 项):
- P0: 2 项(测试相关)
- P1: 5 项(架构 + 测试 + 代码)
- P2: 4 项(架构 + 文档 + 代码)
- P3: 2 项(文档)
- 预计偿还成本: 14 周(3.5 个月)
**关键决策**:
1. ✅ 需要架构重构
2. ⏸️ 暂停低尺度审计(先解决高尺度问题)
**下一步行动**:
1. 编写测试策略文档
2. 编写 Coordinator 拆分设计文档
3. 编写 ASR Provider trait 设计文档
**审计产出**:
- 多尺度审计框架文档
- 架构风险地图
- 技术债务矩阵
- 系统级审计总结
- 系统级审计脚本
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-04 23:16:12 +08:00 |
|
 cooperandClaude Sonnet 4.6
|
7e7b200198
|
docs(epic): 建立 Cooper 贡献体系 - 两大 EPIC 母体与 Finding 流程
建立完整的贡献规划体系:
**两大 EPIC 母体**:
- EPIC-001: 测试基础设施建设 (41 tasks, 6 weeks)
- 目标:测试覆盖率 0% → 60%+
- Phase 1: 核心模块单元测试
- Phase 2: 集成测试
- Phase 3: CI 自动化
- EPIC-002: ASR 功能扩展与优化 (71 tasks, 6 weeks)
- Phase 1: 混淆词纠错层 (对应 #89)
- Phase 2: 本地 ASR 支持 (对应 #211)
- Phase 3: ASR 架构优化
**Finding 基础设施**:
- finding-helper.sh: 自动化分析脚本
- 生成 4 份 finding 报告:
- 测试覆盖率分析
- ASR 模块分析
- 依赖关系分析
- Finding 总结
**工作流程文档**:
- COOPER_README.md: 快速开始指南
- COOPER_WORKFLOW.md: 详细工作流程
- COOPER_CONTRIBUTION_STRATEGY.md: 贡献策略分析
**关键指标**:
- 包含测试的文件数: 15
- 测试函数数: 76
- ASR 模块代码量: 1164 行
下一步:开始实现混淆词纠错层(EPIC-002 Phase 1)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-04 23:00:25 +08:00 |
|
cooper
|
84e1649681
|
docs: 添加 Watchdog 线程影响分析与风险评估
- 分析了 5 个潜在风险点
- 验证了 ASR 资源清理逻辑
- 结论:当前实现完全安全,可以合并
|
2026-05-04 22:31:08 +08:00 |
|
cooper
|
d1c68f0f30
|
test: 添加实机测试报告(仅保留在 fork)
- BUILD_TEST_REPORT.md: 构建和启动测试
- P1_TEST_REPORT.md: 麦克风异常恢复测试
- TEST_VERIFICATION.md: 代码审查验证
这些文档仅用于 fork 仓库的测试记录,不提交到上游 PR
|
2026-05-04 22:21:14 +08:00 |
|
cooper
|
4e66c91e07
|
docs: 添加 Issue #238 修复的代码审查验证报告
|
2026-05-04 21:54:35 +08:00 |
|
cooper
|
a8741dd568
|
fix(recorder): watchdog 从播放开始时计时,避免慢启动误报
- 移除 StreamState::stream_start_time 字段
- 在 watchdog 线程内部记录启动时间
- 确保首次回调截止时间从 stream.play() 成功后开始计时
- 修复慢速后端可能导致的过早超时问题
|
2026-05-04 21:46:07 +08:00 |
|
 cooperandClaude Sonnet 4.6
|
87838617f8
|
fix(recorder): 添加首次回调截止时间检测
根据 code review 反馈,修复 watchdog 的行为缺口:
## 问题
修复 Finding 3 后,虽然避免了误报慢启动设备,但也失去了对
"第一个回调永远不到达"这种失效模式的检测能力。
如果 stream.play() 成功但 CPAL 从未发送任何回调,watchdog
的 `if let Some(last_time)` 分支永远不会执行,session 仍然
可能无限期挂起。
## 修复方案
添加"首次回调截止时间"机制,watchdog 现在检查两种情况:
1. **首次回调未到达**(last_callback_time = None)
- 检查是否超过 FIRST_CALLBACK_DEADLINE_SECS (5秒)
- 如果超过,报错:"录音启动后 X 秒内未收到回调"
2. **回调中途停止**(last_callback_time = Some)
- 检查是否超过 CALLBACK_TIMEOUT_SECS (3秒)
- 如果超过,报错:"录音回调静默停止 X 秒"
## 技术细节
- 在 StreamState 中添加 stream_start_time 字段
- 在 watchdog 中使用 match 语句区分两种情况
- 5 秒首次回调截止时间足够慢启动设备,但能捕获永不回调的失败
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-04 21:39:52 +08:00 |
|
 cooperandClaude Sonnet 4.6
|
2050524cbf
|
fix: 根据 code review 修复三个问题
根据 code review 反馈,修复以下问题:
## 1. High: 超时后未清理 ASR session
- 在全局超时分支中添加 asr.cancel() 调用
- 避免 websocket/read tasks 继续运行造成资源泄漏
- 影响文件:coordinator.rs (dictation 和 QA 路径)
## 2. Medium: QA 路径缺少超时保护
- 为 QA 路径的 await_final_result() 添加相同的超时保护
- 保持 dictation 和 QA 路径的一致性
- 影响文件:coordinator.rs:2288-2298
## 3. Medium: Watchdog 误报慢启动设备
- 将 last_callback_time 初始化从 Some(Instant::now()) 改为 None
- 只有在第一次回调后才开始计时
- 避免慢启动设备被误判为"静默停止"
- 影响文件:recorder.rs:333
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-04 19:43:34 +08:00 |
|
 cooperandClaude Sonnet 4.6
|
e0d459bbd0
|
fix(recorder): 添加 liveness watchdog 和全局超时保护以修复 #238
根据 Issue #238 的分析,录音器异常停止后会导致胶囊卡在 processing 状态。
本次修复实施了两层防护机制:
## 修复 1: Recorder Liveness Watchdog
- 在 StreamState 中添加 last_callback_time 字段跟踪最后一次回调时间
- 在 process_callback 中更新时间戳
- 在 run_audio_thread 中启动 watchdog 线程,每秒检查一次
- 如果 3 秒没有回调,主动触发 runtime_error 通知 coordinator
- 解决了"录音回调静默停止"的根本问题
## 修复 2: Coordinator 全局超时保护
- 添加 COORDINATOR_GLOBAL_TIMEOUT_SECS = 15 秒常量
- 在 end_session() 中为 await_final_result() 和 transcribe() 添加超时保护
- 超时时强制恢复到 Idle 状态,显示错误胶囊
- 作为最后的防线,即使 ASR 超时机制失效也能恢复
## 技术细节
- Watchdog 使用独立线程,避免阻塞主线程
- 超时时间设置为 15 秒(比 ASR 的 12 秒 FINAL_RESULT_TIMEOUT 稍长)
- 保持与现有错误处理机制的一致性
Fixes #238
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-04 19:06:08 +08:00 |
|