WebSocket token / 订阅恢复最小骨架

这页先把 viewer_token 和 cursor-replay 的最小恢复语义固定下来。

当前先把 token → role → channel 边界 → cursor 恢复 串起来,让实时链从“只有频道名”再往前走一步。

当前最小恢复语义

先把 token、role、cursor 的最小关系说清楚。

viewer_token:founder-stream-demo / hr-stream-demo / demo-stream-preview
带 token 时:先用 token 解析 viewer_role,再决定 allowedChannels
token 无效:当前直接返回 401
带 cursor 时:当前按 cursor-replay 语义恢复订阅
heartbeat / snapshot:都会回 authMode / resumeMode

执行边界

这层已经补了 token / 恢复语言,但仍不是完整实时会话系统。

这层是最小 token / 恢复骨架,不是正式签名、过期时间或会话续期系统。
先把 token、role、cursor 三者关系稳定下来,让 week5 的实时链路开始有最小恢复语言。
后面如果继续推进,再补正式签名 token、durable cursor、更完整的失败退避和客户端恢复策略。