agent-98 面板批次: - 会话管理面板改接 history.ListSessions(主web+次级) + 新建次级会话按钮 - 记忆面板手动添加入口 POST /admin/memories(owner) - 知识库真正实现 IndexDocument(分块+落projectindex) + POST /admin/rag 导入端点 - 三面板空态诚实表述(去除'后端M10+提供') - RAG嵌入降级到keyword/line(无直属embedder,不伪造语义,符合红线) agent-99 design/16 §4.6: - model.Message.SenderName + 迁移0006 sender_name 列 - 第三方身份边界: session.ResolveActor判定(非LLM猜) + [第三方·昵称]前缀(不改源content) - 群聊/陌生人落独立sess-xxx(persistIsolated),不写主会话,不广播 - 黑/白名单(allowGroups/denyGroups/allowUsers/denyUsers)最前拦截,不进LLM - 多账号 CHANNELS_JSON 配置 + 每平台多实例 - 管理只读 GET /admin/channels/{platform}/messages(该平台非主人消息流) 实机验证(JWT): 会话管理返回主会话web / 记忆添加成功 / RAG导入documents非空+Cyrene命中; 后端build/vet/test全绿 + 前端build绿
- agent-96: chat_messages 加 platform 列(迁移0004) + IM主人私聊落主会话web(带platform) + 前端按平台过滤契约 + message_persisted 带 platform(复用 BroadcastPersisted) - agent-97: chat_messages 加 device_id 列(迁移0005) + history.Message.DeviceID + Web发消息带deviceId(localStorage getClientId) + IM persistToMain 带 deviceID + 前端气泡展示 SourceLabel + 修主会话基础2个bug(fn scanMessage语法/DDL缺列) - design/16 §4.4(平台) + §4.5(deviceID) 已入档 - 实机: POST /chat 带 deviceId 读回 user/assistant 均带 deviceId+platform; 后端 build/vet/test 绿 + 前端 build 绿 - 红线: 身份靠 actor 元数据; 禁止 shell 读 .env(JWT冒烟由主会话跑)