feat(http): 会话流契约升级——领域游标 + 快照+gap-free follow + 有界上行(#97 的机制补全,借 DSH gateway)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust
- Lĩnh vực
- api, backend-api-design
Hướng nghiên cứu
Start by reading #97, which this issue depends on, then compare the cited DSH references: gateway/README.md, gateway/src/stream-server.ts, gateway/src/client/remote-stream.ts, and session-controller/src/history.ts. The issue does not name Recursive entry points or tests, so first locate its session-stream and workspace-file APIs. Done means reconnect restores state with snapshot plus gap-free events, slow consumers get an explicit error, and oversized or out-of-workspace file reads fail.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:depends-on: #97 · 来源:DSH api/gateway 包借鉴(jeffkit 拍板跟进)
基线 HEAD = 4e1aee98。
Summary
与 #97 互补:#97 修的是"lagged 静默丢弃 + 1h 硬超时断裂"的既成缺陷;本单是把会话流契约层升到 DSH gateway 的水准(#97 落地后本单的游标/快照语义才是完整形态,故 depends-on)。
参照 DSH packages/api/:
- 单 WS 多路复用 + 每流有界上行:所有逻辑流走一个 mux;每流自带 Client→Host uplink,Host 侧上行按字节封顶(默认 256KiB),超限以
gateway/uplink-overflow失败该逻辑流而不关 socket(gateway/README.md:35,88;gateway/src/stream-server.ts:303-396);心跳即 Pong 期限。 - 重连层不推断重放、领域自带游标:连接层只做物理重连(jitter 指数退避),换 generation 后由领域校验打开基线(
gateway/src/client/remote-stream.ts:39-140);journal-stream 帧型opened(cursor,page)/entry/replace/prepend(client/journal-stream.ts:16-45)。 - 历史回溯 = 快照 + 无缝隙增量:
page按消息对齐翻页(beforeSeq/throughSeq);follow先给调用方游标处的完整快照,再给 gap-free 持久事件(session-controller/src/history.ts:38,77-140)——recursive 现状是全无此语义(#97)。 - 只读工作区文件服务:行页/字节窗读取,页携带文件
version(可判过期)、超大文件报错而非截断、拒绝末端符号链接、目录列举强制工作区包含、零变更操作(api/workspace-files/README.md)。
建议
- 事件流引入持久序号/游标;重连语义 = 快照@游标 + gap-free 增量(替代重连即丢);
- 慢消费者有界缓冲 + 明确错误(不再静默丢段);
- 有界上行(为未来双向流/多路复用铺路,先定契约不必立刻做 mux);
- 只读工作区文件 API(version 判过期、超大报错、符号链接防护、零变更)。
验收
- 断网重连后客户端状态无损恢复(快照+增量无缝隙,对照测试);
- 慢消费者触发明确错误而非缺段;缓冲上限可配;
- 只读文件服务读不出工作区外路径;过大文件返回错误而非截断。
- Ngôn ngữ chính
- Rust
- Star
- 4
- Fork
- 0
- Merge trung bình
- 5 giờ 32 phút
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của jeffkit/recursive
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
jeffkit/recursive#134 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
jeffkit/recursive#88 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 58/100
jeffkit/recursive#87 · 11 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
jeffkit/recursive#86 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
jeffkit/recursive#52 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của jeffkit/recursive
Issue tương tự
-
[Feature] 设置里面的同步功能Đang mởenhancement user-priority/P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
agent:triaged bug bughunt pm:npm priority:p1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
SocketDev/socket-patch#1127 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày