ddcat666
|
295374650a
|
refactor(*): 代码质量 - 优化前后端实现并完善协议与画布验证
|
2026-10-08 19:38:57 +08:00 |
|
AetherNo2332
|
b701b3efd1
|
feat(agent): 运行详情分页与增量读取契约 (#600)
Co-authored-by: ddcat666 <26564566+ddcat666@users.noreply.github.com>
|
2026-09-24 11:31:09 +08:00 |
|
AetherNo2332
|
9d0bce6bb5
|
fix(cloud-agent): 续轮交接 - 用有界结构化事实帧替代跨轮散文收束
续轮(POST /agent/runs 带 parentId)过去只把「上一轮已结束(failed)。…已提交生成任务:
a, b」这段散文塞进下一轮历史:新轮看不到上一轮真实改过哪些节点,也无法可靠区分「这是
服务端交接」还是「用户自己写的一句话」。
- 与轮内既有事实帧(cloud_agent_context_frame.go 的 task_repository 帧)同构,把跨轮交接
也改成有界结构化帧:source=server、kind=run_handoff,带 parentRunId / status /
failureReason / submittedTaskIds / canvasChanges / omittedCanvasChanges / authority。
画布改动取自上一轮真实 canvas_updated 事件,最多 12 组(operation、去重后的
nodeId/title、actionCount),超出只记 omittedCanvasChanges,不静默丢。
- 身份改由 providerTextMessage.AgentContextSource 结构体字段承载,canonical 装配时原样
透出;isCloudAgentContinuationMessage 要求「来源元数据 + 【运行状态】前缀 + JSON
source=server/kind=run_handoff」三者同时成立,用户逐字复制帧 JSON 也拿不到该身份
(此前按内容前缀猜,用户自己写一句「上一轮已结束(…)」就会被认成交接)。
- 旧格式兼容:升级前落库的散文交接没有来源字段,改按「紧跟 assistant 回复 + 旧版文案
前缀」识别,只用于历史裁剪与轮次计数;canonical 身份仍只认结构体字段。
- cloudAgentLegacyHistory 重建时把落库的 agentContextSource 一起搬,身份不在重建口丢失。
- 帧按字节封顶:单个 nodeId 截 64 字符、整帧 8 KiB,超限按最近改动优先裁剪并累计
omittedCanvasChanges;失败原因过既有脱敏口径 cloudAgentSafeUserMessage。
- 不搬运 dev 专有内容:不引入事件读取上限常量(上游本就返回全量事件),硬闸口径按上游
的 64 KiB 注释,也不引入 `dropped := 0` / `_ = dropped` 这类死代码。
- docs/content/docs/backend/http-api.mdx 补帧字段与「非授权」口径。
帧只被 isCloudAgentContinuationMessage 用于「历史怎么裁、怎么数轮」;写入与收费闸门读的
是落库策略(审批闸、生成次数闸、视频秒数闸、工具授权),不读消息内容,因此帧不构成重放
写入、重复提交付费任务或扩大权限的授权依据。
|
2026-09-22 01:32:21 +08:00 |
|
ddCat
|
9eb2fcd453
|
chore(release): 版本发布 - publish v1.5.1
|
2026-09-18 15:26:26 +08:00 |
|
ddCat
|
6892732b06
|
feat(agent): Agent 工作台 - 计划插话记忆、统一模型选择器并修复摘要与视频入库
将计划清单、运行中插话和个人记忆接入云端 Agent;全站模型选择器统一为左右二级菜单。画布摘要按预算截断不再整轮拒绝,首页视频未知宽高可入库。README 补充贡献者 morrow。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-09-17 20:21:25 +08:00 |
|
ddCat
|
9727656b2b
|
chore: commit workspace updates
|
2026-09-14 01:11:56 +08:00 |
|