- 帧壳 `turnId` 在 socket 层不再被丢(`lib/ws.ts` 的 dispatchFrame 补 turnId/seq)—— 按路分桶的前提 - 并行帧组接入:`turn_begin` / `steer_ack` / `pending_ack` / `pending_drain` / `pending_full` / `chat_duplicate` ⇒ 六态 + 灰态 + `(sessionId, turnId)` 两级分桶;`appendChunk` 不再永远写尾气泡 - 多路忙态:`session_interrupted` 不再无条件当空闲(看 mode/activeTurns);`stream_end` 不再只按会话过滤 - `documents` 渲染(含 status/chars/truncated 与**逐字中文 reason**);`turnId` 历史行分组小标 - `System.tsx` 键名改正(真键 HOST/PORT/ADMIN_USERNAME/ADMIN_PASSWORD,避免照抄静默失效) - 主人档案**按平台分组** + 平台下拉 + 账号候选;**写盘仍展平数组**(后端契约不变) - 验证:tsc --noEmit ✅、npm run build ✅、22 个前端测试文件全通过(本次新增 3 文件 108 条断言) - 未做(如实):握手 history handler 与断线补拉、上行 interrupt 按钮、proactive_message/subagent_result 等帧落点、文档上传入口与图片预检、voice 管线、System 的 env 读端点
20 lines
797 B
TypeScript
20 lines
797 B
TypeScript
import type { EnumItem } from "../types";
|
||
import { request } from "./core";
|
||
|
||
/** GET /api/v1/meta/enums 的载荷(design/07 §6,Android 协作 B4):后端发布的权威
|
||
* 枚举表 + 未列出取值的回退策略(`unknown: "display-raw"`)。
|
||
*
|
||
* 客户端优先读这里而不是硬编码映射:表由后端一处维护,来源徽标/情绪标签才不会逐
|
||
* 客户端漂移。取不到(未接线 / 离线)时调用方回落到本仓镜像的 `lib/enums.ts`
|
||
* 标签表 —— 回落也只影响标签文字,不影响取值的原样呈现。 */
|
||
export interface MetaEnums {
|
||
platforms?: EnumItem[];
|
||
moods?: EnumItem[];
|
||
modes?: EnumItem[];
|
||
unknown?: string;
|
||
}
|
||
|
||
export function fetchEnums(): Promise<MetaEnums> {
|
||
return request<MetaEnums>("/meta/enums");
|
||
}
|