Kevin
b4f4369b7d
Squash merge feat/expo-app: app-expo, .cursor, workflows, package.json, .husky; remove app-android, app-ios, react-app
2026-03-19 01:13:38 +08:00
Kevin
9e4f301ab9
chore/ update .gitginore to exclude root node modules and app-expo
2026-03-18 21:51:39 +08:00
yangshilin
48b70e1350
Merge branch 'refactor/backend-architecture' into development
2026-03-18 17:18:23 +08:00
yangshilin
2070a03d35
fix: 用户开始录音5s后ai反馈“我在认真听”
2026-03-16 11:24:40 +08:00
yangshilin
981920784f
fix: 修复ai长回复的拆分和回显问题
2026-03-16 10:29:11 +08:00
yangshilin
a088f4bf50
fix: 解决消息重复问题
2026-03-16 10:10:51 +08:00
Kevin
6733abe14f
fix/ add app-expo folder to gitignore
2026-03-16 09:10:16 +08:00
Sully
c2ce4c61f1
修复版本1.0.7的若干问题 ( #11 )
...
* fix/ 0:00 audio ui
* fix/ persist memoir image state and collapse voice history
Keep generated chapter images from staying in processing after successful uploads, and restore segmented voice recordings as a single audio message when reopening conversations.
Made-with: Cursor
* fix/ persist local conversation state and stabilize voice UI
Keep CreateMemory conversations driven by Room so recent text and audio survive page exits, and prevent stale 0:00 voice bubbles while list ordering follows the latest local message time.
Made-with: Cursor
* fix/ server-side root cause for conversation list time and message timestamps
- Add Conversation.last_message_at column with migration and index
- Update last_message_at on text message, audio segment, and AI response
- Sort conversation list by COALESCE(last_message_at, started_at) DESC
- Return real per-message timestamps from Redis history instead of now()
- Pass user_message_timestamp through agent pipeline to avoid LLM delay skew
- Remove all debug logging from server, client, and CI workflow
- Restore import json in conversation_agent (was broken by debug removal)
- Client: remove DebugRuntimeLogger, stop sending transcript as text message
Made-with: Cursor
---------
Co-authored-by: Kevin <kevin@brighteng.org >
2026-03-14 23:58:46 +08:00
Sully
9636c059d0
更新docker构建cd ( #10 )
...
* update github actions
* update github actions
* update github actions
* update github actions
* update github actions
* update github actions
* update github actions
---------
Co-authored-by: Kevin <kevin@brighteng.org >
2026-03-13 23:41:56 +08:00
Kevin
55b342b623
update github actions
2026-03-13 22:16:59 +08:00
Kevin
862f8c43d1
fix/ android-release-build workflow
2026-03-13 17:21:42 +08:00
yangshilin
8e9edca4e7
fix: 修复apk打包时的错误
2026-03-13 17:20:33 +08:00
yangshilin
a2b2b6eb76
fix: 语音消息暂存本地 修复显示异常
2026-03-13 17:11:59 +08:00
yangshilin
c0906723ac
fix: 减少图片生成数量(当前3个section对应一张图)
2026-03-13 16:24:28 +08:00
yangshilin
672abf5ec7
fix: 图片生成失败后重试 前端一直显示生成中
2026-03-13 16:23:51 +08:00
yangshilin
e751114354
fix: 更换app图标
2026-03-13 15:55:50 +08:00
yangshilin
043a89add6
docs: 更新数据迁移指南
2026-03-13 15:15:40 +08:00
yangshilin
ab4fb46c0d
fix: 修复打个招呼的bug
2026-03-13 14:50:04 +08:00
Sully
2eb066dbec
把“章节正文 + 图片”从 chapters 单表/JSON 结构,重构为“章节 chapter + 段落 section + 图片 memoir_images 独立表”的新数据模型,同时联动修改接口、PDF 导出、异步任务、迁移脚本、测试,以及修复 Android 端聊天列表显示问题。 ( #9 )
...
* refactor: 表结构重构,新增段落section和图片image新表
* fix: fix android app import error
* refactor: 重构文件名
* fix: 优化提示词
* fix: 消息气泡显示位置异常问题
---------
Co-authored-by: yangshilin <2157598560@qq.com >
2026-03-13 11:12:10 +08:00
Kevin
1cb804fa37
fix: 1.修复图片闪烁 2.增大图片轮询间隔
2026-03-13 10:53:42 +08:00
Kevin
48594a20ea
fix: fix import path
2026-03-13 09:59:04 +08:00
Kevin
16ae355510
docs: 添加重构相关文档。添加cursor rules
2026-03-13 09:54:47 +08:00
Sully
e0f546dff0
Merge pull request #8 from penghanyuan/fixUi2026-03-11
...
Fix ui2026 03 11
2026-03-12 16:09:41 +08:00
Sully
e2d7f7e28c
Merge branch 'development' into fixUi2026-03-11
2026-03-12 16:07:49 +08:00
Sully
ef2087e86d
Merge pull request #7 from penghanyuan/refactor/recording
...
Refactor/recording
2026-03-12 16:00:32 +08:00
Kevin
f15046c1c1
feat: 客户端语音回放 长录音客户端切片,并行转录
2026-03-12 15:57:45 +08:00
Kevin
ec7107cbf0
修复: 处理审查反馈,修复线程安全问题、清理架构并集成 RecordingCoordinator
...
阻塞问题:
- 修复 uploadAvatar multipart body 为空(AuthService)
- 修复 VoiceRecorder 协程作用域泄漏(release 时调用 cancel)
- 修复 AudioSegmenter/VoiceRecorder 中 MediaMetadataRetriever 泄漏(try-finally)
线程安全:
- WebSocketClient 所有可变状态添加 @Volatile + synchronized(stateLock)
- close() 后 connect() 自动重建协程作用域
- reconnectWithBackoff 从递归改为 while 循环
架构清理:
- DTO 从 network.models 迁移到 model 包,Port 不再依赖 network 命名空间
- ApiService 移除可空回退路径,统一走 RestClientProvider
- AppContainer.apiService 改为 private
- PaymentApiPort 拆分出 TestPaymentApiPort
- 提取 TaskApiPort,ConversationApiPort 继承它,MemoirApiPort 移除重复方法
- TokenManager: mutableStateOf -> MutableStateFlow,runBlocking 增加 Dispatchers.IO
- RestClientProvider.invalidate() 合并 synchronized 块
- 修复 Adapter 文件的 KDoc/import 顺序
- ConversationRealtimeAdapter 用 import 替代全限定类名
视图模型相关:
- CreateMemoryViewModel 集成 RecordingCoordinator(替代直接使用 VoiceRecorder)
- 提取 ensureConnected(),用基于状态的等待替代硬编码 delay()
- handleConversationEnded 轮询 Job 去重
- 移除三处硬编码的 delay(300)/delay(500) 等待
测试:
- 修复 ApiServiceProviderTest 构造函数适配
- 解除 RecordingCoordinator 集成测试的 @Ignore(保留 4 个待处理分段测试)
- 更新 WarmupTest/MyMemoirViewModelTest 以适配新构造函数
- 补充 AudioSegmenter 和 WebSocketClient 测试
2026-03-12 15:36:32 +08:00
Kevin
42441c205c
修复: 加固实时通信与录音生命周期
2026-03-12 14:48:40 +08:00
yangshilin
0ad253fde5
fix: 优化生图提示词
2026-03-12 13:47:12 +08:00
Kevin
29f7202354
文档: 添加 app-android 架构重构计划
2026-03-12 11:34:41 +08:00
Kevin
a7830b39c0
维护: 添加重构计划和参考文档
2026-03-12 11:12:22 +08:00
Kevin
b09f1e8125
文档: 添加注释
2026-03-12 10:55:33 +08:00
Kevin
c573882f3e
重构: 完成网络端口迁移
2026-03-12 10:50:46 +08:00
Kevin
cfccaf3a9d
新增: 抽取 Memoir、Profile、Payment REST 端口
...
按功能划分的 API 端口接口将仓库和 ViewModel 与 ApiService 解耦。
适配器在底层委托给 ApiService;所有依赖由 AppContainer 统一装配。
2026-03-12 10:36:12 +08:00
Kevin
493dedda47
重构: 将 CreateMemoryViewModel 迁移到对话端口
...
ViewModel 现在依赖 ConversationApiPort 和 ConversationRealtimePort,而不是 ApiService/WebSocketClient。
ViewModelFactory 从 AppContainer 装配这些适配器。
2026-03-12 10:36:05 +08:00
Kevin
7e59c65602
新增: 添加 ConversationApiPort 和 ConversationRealtimePort
...
为对话流程定义按能力划分的端口,并提供委托给 ApiService 和 WebSocketClient 的适配器。
2026-03-12 10:35:58 +08:00
Kevin
e3f370a22f
重构: 将 AuthService、ApiService、WebSocketClient 改为适配器
...
各服务现在通过主构造函数接收各自的客户端提供器;
为在迁移期间保持现有调用点可编译,保留了向后兼容的次构造函数。
2026-03-12 10:35:52 +08:00
Kevin
0f53d7ce34
重构: 添加网络客户端提供器
...
引入由组合根持有的 RestClientProvider 和 RealtimeTransportProvider,并显式跟踪就绪状态。
AppContainer 负责提供器生命周期;LifeEchoApp 在 Application.onCreate 中完成装配。
2026-03-12 10:35:45 +08:00
Kevin
c4eb481c5c
chore: 添加网络层基础设施重构计划
2026-03-12 10:14:46 +08:00
yangshilin
e4555cb73a
fix: 修复花括号显示异常问题
2026-03-12 10:13:40 +08:00
Kevin
f24232d9cd
refactor: 取消实时录音分段,改为录音结束后客户端分段。移除skills-lock.json
2026-03-12 10:13:25 +08:00
yangshilin
0cf1d295a4
fix: 进入对话之后默认展示最新消息
2026-03-11 17:08:42 +08:00
Kevin
2e6f997f04
chore: 新增上线检查单与脱敏 env 模板
2026-03-11 16:31:16 +08:00
yangshilin
f3d26c9d0e
fix: 修复回忆录序号问题;隐藏图片提示词,增加缩放和保存功能
2026-03-11 16:09:21 +08:00
Kevin
201dedb84c
fix: 完善 Liblib 图片尺寸兼容处理并补充安全排查记录
...
- 调整 Liblib 图片生成参数,优先使用官方 aspectRatio 预设,非预设尺寸回退为 imageSize 显式宽高。\n- 新增尺寸解析与边界钳制逻辑,并补充对 undocumented 状态 7 的防御性处理说明。\n- 新增密钥排查备忘,记录 .env 中腾讯 COS 凭证硬编码问题,便于后续安全整改。
2026-03-11 15:36:58 +08:00
Kevin
3bf79da540
Merge remote-tracking branch 'origin/development' into development
2026-03-11 15:23:58 +08:00
Kevin
305e5dcde9
修复回忆录图片重试状态透传与前端展示
2026-03-11 15:23:58 +08:00
yangshilin
4d2c31b5a6
feat & fix: 新增打个招呼选项 创建新会话;修复ai重复性提问的问题;修复输入键盘覆盖对话气泡的问题
2026-03-11 14:48:59 +08:00
Kevin
4b4dea8a45
Merge remote-tracking branch 'origin/development' into development
...
# Conflicts:
# api/agents/prompts/memory_prompts.py
2026-03-11 14:29:48 +08:00
Kevin
38562732cd
feat: 打通回忆录章节配图生成与阅读展示链路
...
- 新增 memoir_images 服务与章节图片异步生成流程,补齐占位符解析、Prompt 组装、Liblib provider、腾讯 COS 存储和动态数量控制,支持回忆录章节自动补图。
- 更新章节接口与 PDF 导出逻辑,为已完成图片返回签名地址、过滤无效图片并在导出时嵌入图片且移除占位符,保证阅读端与导出结果一致。
- 更新 Android 回忆录阅读链路,新增内容块解析、内联图片组件、预览弹窗与轮询逻辑,并优化失败态与正文渲染,避免占位文本破坏阅读连续性。
- 补充后端与 Android 测试及接入文档,覆盖 provider、storage、task、PDF、阅读渲染和轮询场景,便于后续维护与联调。
2026-03-11 14:21:02 +08:00