WebSocket durable cursor 最小骨架
这页先把 cursor 记录从“只在请求里带一次”推进到“最小 runtime-store 可回读”的状态。
当前先把 cursor 记录 / 事件回读 / resumeMode 串起来,让实时链开始有最小“回到上次位置”的语义。
当前最小 cursor 语义
先把 cursor store、事件回读和 resumeMode 说清楚。
GET /api/coach/event-cursors:查看当前 viewer_role / viewer_token / channel 的最小游标记录
POST /api/coach/event-cursors:补 last_cursor / last_event_id / last_event_at
GET /api/coach/events:如果请求没带 cursor,会尝试回读 runtime-store 里的游标
resumeMode:当前会在 fresh-subscribe / cursor-replay / stored-cursor-replay 间切换
cursorSource:当前会标记 request / runtime-store / none
执行边界
这层已经开始可回读游标,但仍不是完整实时恢复系统。
这层是最小 durable cursor 骨架,但当前仍是 in-memory runtime,不是正式持久化游标系统。
先把游标记录和事件订阅重新接上,让“断开再回来”至少有一套稳定语言和最小记录。
后面如果继续推进,再补真正 durable store、客户端恢复策略和 token 刷新链。