补齐 DirectProject 更早历史入口
补充 DirectProject 初始历史 hasMore 时的按钮与滚动入口 修正 rebase 后 Tauri 命令与 Rust 测试辅助函数可见性 同步更新 DirectProject 历史恢复规范与里程碑验收记录
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
2. 将 app-server 公开事件安全标准化后接入 Thread Manager;在 item 完成持久化成功后追加完成事件,并追加 turn 生命周期事件。
|
||||
3. 增加 Tauri `subscribe/consume/readHistory` 命令与 notify 事件,固定错误和 bootstrap 原子边界。
|
||||
4. 前端改为 subscriptionId 驱动的 raw event reducer;重进/过期时先 bootstrap,完成后原子替换;历史按 itemId 懒加载。
|
||||
5. 移除 DirectProject legacy conversation 读取分支,补齐契约、并发、恢复和失败关闭测试。
|
||||
5. 移除 DirectProject legacy conversation 读取分支,补齐契约、并发、恢复和失败关闭测试;让初始历史切片的 `hasMore` 独立驱动“显示更早”按钮和滚动入口。
|
||||
6. 每个独立切片分别运行定向验证并形成中文小提交;里程碑验收后再清理临时计划。
|
||||
|
||||
## 验证命令
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
- [ ] subscribe 返回 item 历史锚点而不是完整 history;前端可按 itemId 懒加载。
|
||||
- [ ] 未完成 item 的每个 delta 可从 `item.started` 开始重放;不截断 active item。
|
||||
- [ ] legacy conversation 行直接失败关闭,无 fallback、无迁移。
|
||||
- [x] DirectProject 首页历史切片存在 `hasMore` 时,即使当前可见窗口没有隐藏消息,也提供按钮和滚动两种“显示更早”入口。
|
||||
|
||||
## 证据要求
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ readHistory(threadId, { beforeItemId?, limit }) -> {
|
||||
}
|
||||
```
|
||||
|
||||
`subscribe` 不返回完整历史。`lastCompletedItemId` 只是历史读取锚点,前端自行按 item ID 懒加载需要的历史切片。`events` 是当前运行态重建所需的未完成 item 原始事件,以及当前 turn 的生命周期锚点;前端用同一个 reducer 重放 bootstrap 和后续事件。Rust 不保存或理解前端 reducer state。
|
||||
`subscribe` 不返回完整历史。`lastCompletedItemId` 只是历史读取锚点,前端自行按 item ID 懒加载需要的历史切片。`events` 是当前运行态重建所需的未完成 item 原始事件,以及当前 turn 的生命周期锚点;前端用同一个 reducer 重放 bootstrap 和后续事件。Rust 不保存或理解前端 reducer state。只要 DirectProject 历史切片返回 `hasMore`,聊天视图必须显示“显示更早的对话”入口,并允许按钮或滚动触发下一页,即使当前可见消息窗口没有隐藏消息。
|
||||
|
||||
`consume` 不接收或返回 cursor。每个 subscriber 在 Rust 内部持有自己的 cursor,并在加锁的临界区内完成过期判断、读取和 cursor 前进。前端只持有 `subscriptionId` 与 reducer state。并发 `consume` 不重复返回同一批事件。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user