Skip to content

feat: 串行消息发送 + sessionLatestUserMessage + 文件压缩检测#32

Merged
slashhuang merged 3 commits into
mainfrom
fix/traceflow-serial-push
Apr 7, 2026
Merged

feat: 串行消息发送 + sessionLatestUserMessage + 文件压缩检测#32
slashhuang merged 3 commits into
mainfrom
fix/traceflow-serial-push

Conversation

@slashhuang

Copy link
Copy Markdown
Owner

修改内容

1. im-push.service.ts

  • 将 sessionFirstUserMessage 改名为 sessionLatestUserMessage
  • 添加 sessionSendingLock 串行锁机制
  • 每次发送 user 消息后更新最新 message_id(覆盖旧值)
  • assistant 消息回复到最新的 user 消息,形成清晰对话线程

2. session-manager.ts

  • 添加 lineCount 字段到 sessionFilePositions
  • 检测文件压缩/重置(行数减少超过 50%)
  • 发送 audit.session.alert 告警事件
  • Reset 会话 position 记录

3. im-push.service.spec.ts(新增)

  • 测试 sessionLatestUserMessage 更新逻辑
  • 测试 assistant 回复到最新 user 消息
  • 测试串行发送锁机制
  • 测试会话开始/结束的状态清理

解决的问题

  1. 多轮对话时 assistant 回复到错误的 user 消息
  2. 文件压缩时静默出错,无告警
  3. 消息发送顺序可能混乱

测试

  • 新增单元测试覆盖核心逻辑
  • 使用 mock 数据,不依赖真实磁盘文件

@slashhuang
slashhuang force-pushed the fix/traceflow-serial-push branch from 37ce9c6 to 9ee3d54 Compare April 7, 2026 07:14
## 修改内容

### 1. im-push.service.ts
- 将 sessionFirstUserMessage 改名为 sessionLatestUserMessage
- 添加 sessionSendingLock 串行锁机制
- 每次发送 user 消息后更新最新 message_id(覆盖旧值)
- assistant 消息回复到最新的 user 消息,形成清晰对话线程

### 2. session-manager.ts
- 添加 lineCount 字段到 sessionFilePositions
- 检测文件压缩/重置(行数减少超过 50%)
- 发送 audit.session.alert 告警事件
- Reset 会话 position 记录

### 3. im-push.service.spec.ts(新增)
- 测试 sessionLatestUserMessage 更新逻辑
- 测试 assistant 回复到最新 user 消息
- 测试串行发送锁机制
- 测试会话开始/结束的状态清理

## 解决的问题
1. 多轮对话时 assistant 回复到错误的 user 消息
2. 文件压缩时静默出错,无告警
3. 消息发送顺序可能混乱
@slashhuang
slashhuang force-pushed the fix/traceflow-serial-push branch from 9ee3d54 to 38c03a0 Compare April 7, 2026 07:36
Abu Bot added 2 commits April 7, 2026 15:38
1. 移除不必要的 await(onSessionStart 是同步函数)
2. 修改返回类型为 unknown(any | undefined 冗余)
@slashhuang
slashhuang merged commit b482f8d into main Apr 7, 2026
2 of 3 checks passed
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