Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
新增独立侧边栏「深度测评」,让测评以持久化任务持续规划、执行和积累证据。离开页面不影响后台执行;获得新进展后可以派生后续工作,走不通的方向可以保留缺口并由替代路线继续推进。整个生命周期不依赖聊天,也不创建隐藏会话。
实现:
验收与长程能力:
安全边界:
审批使用服务器生成的 approval_id,绑定完整参数摘要和执行者;执行前重新检查审批人及独立的 hitl:write 资源范围。恢复、切换执行者或策略变化不会沿用失效授权。
证据发布要求 revision 匹配所展示的内容;前端切换任务时立即清空旧控制界面。
暂停/停止返回前关闭新进程与异步 MCP worker 的提交入口;截止时间同样关闭入口,防止取消等待后仍新提交动作。
非全局资产导入不再更新无 owner 的已有记录;项目内去重在事务中检查原资产归属。项目绑定透传给 MCP,资源读取、更新、删除和目标项目受同一边界约束。
所有测评 JSON 写入口限制为 128 KiB,Cookie 写操作检查来源;工具批次/参数和历史调用 ID 有界且不可重放。
模型/审批配置按写入锁生成独立快照。列表不加载私有轨迹,日志按条数和约 1 MiB 分页,减少长任务轮询开销。
API 客户端需提交当前 approval_id / evidence revision;过期请求返回 409,旧页面应刷新后操作。详细触发条件与回归入口见 docs/DEEP_ASSESSMENT_SECURITY_REVIEW.md。
新增独立「执行 DAG」页签,直接展示真实步骤依赖;分层布局正确处理并行分支与多前置步骤汇合。支持状态更新、缩放/适应画布、节点定位、依赖路径高亮及详情;状态刷新保留视口、选择与拖动位置。适配深色和窄屏,提供空任务、缺失依赖/环路提示及图形组件不可用时的可操作后备视图。复用本地 Cytoscape,不新增 CDN 或图形依赖。
新建界面采用居中分区布局、可搜索工具选择和固定操作栏,适配窄屏与深色模式。所有工作台 API 和下载复用真实 apiFetch 登录凭据;浏览器夹具通过实际 auth.js 登录,验证列表/新建/控制/下载均携带令牌。
验证:
go test ./...通过。go test -race ./internal/assessment ./internal/handler ./internal/app ./internal/database ./internal/multiagent通过;最后的调度和检查点改动另经 assessment race 检查。node --test web/static/js/*.test.cjs:342/342 通过。node scripts/assessment-browser-smoke.mjs:真实前端与本地夹具 API 的创建、选择、策略显示、启动、审批、完成、图、XSS 转义、轮询保留输入、390px 布局通过;DAG 覆盖并行/汇合、增量规划、轮询保留视口与节点位置、缩放定位、键盘选择、暗色/窄屏、空草稿和组件缺失后备视图。布局单测另覆盖 100 个步骤、缺失引用、环路及特殊键名。go vet ./internal/assessment ./internal/handler ./internal/app ./internal/database和git diff --check通过。验证边界:模型/工具使用本地模拟服务和确定性夹具,未做真实模型与真实目标的长时对标,不能据此宣称漏洞发现率或成本已优于其他系统。范围文本传给规划器和 Worker;任意 Shell/外部 MCP 的网络隔离由部署环境提供。任务时间包含审批等待;缺失 usage 时保守计费。全局 review_edit 在工作台采用人工批准,参数修改通过拒绝、补充方向及重试完成。面向单服务进程。
额外扩大到整个 security 包的 race 检查时,未改动的
internal/security/shell_noninteractive_test.go中TestNonInteractiveStdinReadBlocksWithoutRedirect报告cmd.Process并发访问;常规全量测试通过,本 PR 未修改该测试。文档:
docs/DEEP_ASSESSMENTS.md。