Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

feat(http): 会话流契约升级——领域游标 + 快照+gap-free follow + 有界上行(#97 的机制补全,借 DSH gateway)

Đang mở
#132 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

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)。

建议

  1. 事件流引入持久序号/游标;重连语义 = 快照@游标 + gap-free 增量(替代重连即丢);
  2. 慢消费者有界缓冲 + 明确错误(不再静默丢段);
  3. 有界上行(为未来双向流/多路复用铺路,先定契约不必立刻做 mux);
  4. 只读工作区文件 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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của jeffkit/recursive

Tất cả issue của jeffkit/recursive

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.