Repository navigation
2.8.0
v2.8.0 · REST BFF:分块上传 / 定时任务 / 官方语音(2026-10-28)
状态:代码与文档已齐,版本号已升到 2.8.0、未打 tag、未推送。 依据
BFF-REST-CONTRACT.md 新增九条只增不改的 REST 端点,让 App 在没有
/ws/mobile 或内核未注入对应服务时仍有同语义退路。
新增
- 分块上传(
chat.write/chat.read):…/attachments/uploads的
POST/GET/GET {uploadId}/PUT chunks/{i}/POST complete/DELETE {uploadId}。
1 MiB 服务端切片、1 小时票据、alreadyReceived断点续传、重复 PUT 幂等、缺块
409+details.missing、超限413、票据未知/过期/跨会话404。 - 定时任务(
chat.write/chat.read):GET/POST /chat/schedules、
PATCH/DELETE /chat/schedules/{id}。五段 Vixie cron + IANA 时区自校验(与内核同判据,
不 import 内核包);PATCH只改传入字段。 - 官方语音(
chat.write/chat.read):GET /chat/speech/catalog、
POST /chat/speech/transcriptions、PUT /chat/speech/config。复用ws-speech.ts的
4 MiB 上限、180 s 超时与目录归一;内核无服务时 200{available:false,reason},
不是 404。
能力位
新增三个位(App 侧已按这三个字符串分支,不得改名或加别名),各自都能在
docs/api/openapi.yaml 里指到依据路径,tests/capabilities.spec.ts 逐条核对:
attachment-chunked-upload-v1→POST /chat/sessions/{sessionId}/attachments/uploads,不降级。chat-schedules-v1→GET/POST /chat/schedules;宿主ctx.schedule缺席时不发位
(此时列表与新建都只会 503,发位等于挂一个必然失败的入口)。speech-transcription-v1→POST /chat/speech/transcriptions;只在 typert Gateway
整体缺席时剔除,内核没装语音包时仍发位 —— 因为目录端点回的是200 {available:false,reason},
客户端要据此区分「桥支持、本机没配」与「桥不支持」,两种状态的 UI 不同。
与契约的三处显式偏差
契约 docs/project/BFF-REST-CONTRACT.md 有三条要求在现行内核上无法照字面实现,
本轮按「尽力实现 + 明确退化」处理,契约文件本身未改(由 Lead 定稿):
POST /chat/schedules的新建入口:内核scheduleRemote 只发布
catalog|changed|delete|history|list|update,没有 create。实现改走宿主 cordis 服务
ctx.schedule.create(sessionId, request);取不到该服务时回503 UPSTREAM_UNAVAILABLEdetails.reason(gateway/invocation-unavailable/schedule/create-unavailable)。
Schedule.createdAt:内核ScheduleRecord没有创建时间字段,视图恒为null(字段保留,
客户端不得据此排序)。PATCH {enabled:false}:内核没有「暂停」操作,静默成功会让 UI 显示已暂停而提醒继续触发,
因此回400 BODY_INVALID+details.reason:'ENABLED_UNSUPPORTED';要停请DELETE。
另:列表只投影 cron 形态,at/every提醒不在 REST 列表中出现。
门禁
npm run typecheck0 错;npm run test全绿(含新增tests/bff-rest.spec.ts);
npm run docs:check(12 docs / STRUCTURE 72 锚点 / INTERFACES 87 锚点);
npm run build通过。- 文档同步:
docs/api/openapi.yaml(+9 路径 / +13 schema)、docs/project/API.md
(新增「REST 对等面」节 + 对等矩阵三项状态)、INTERFACES.md、STRUCTURE.md、
SECURITY.md。
2.7.2 · 版本升级与测试同步(2026-10-28)
基于:v2.7.1。主要完成版本号从 2.7.1 升级至 2.7.2,同步测试预期值、文档版本坏ges与产物校验值。