 Autumn-27andClaude Opus 4.8
|
6bffd491ee
|
feat(workspace): 新增工作空间文件管理器(针对 workDir)
后端 server/workspace.go(全部在 requireAuth 之后,路径限定在 workDir):
- list/read/write/mkdir/delete/download/upload 七个端点
- wsResolve 用 Clean("/"+rel)+前缀校验防 .. 遍历;上传经 filepath.Base
再二次校验;读文本 2MB 上限(超限/二进制仅下载);上传 512MB 上限;
下载文件名过滤 + filename* UTF-8 编码
前端:
- 侧边栏「工作空间」入口(/function/workspace)
- api/types:workspaceList/read/write/mkdir/delete + upload(FormData)
+ download(blob 带 token)
- page:面包屑导航 + 目录表格 + 上传/新建文件夹/刷新 + 每行下载/删除
+ 右侧 Sheet 文本编辑器(二进制/超大仅下载)
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-09 01:01:19 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
e35c766e6a
|
feat(coverage): 覆盖图节点用 lucide 图标 + 精简 label + 抽屉展示关联意图/事实
- 节点图标 emoji → 平台一致的 lucide 图标(白色 SVG data URI,iconSrc)
- 图内 label:服务显示 端口·标题·状态码(不再完整 URL),端点只显示 path
- 点节点抽屉新增「关联意图/关联事实/关联发现」:按 exploration_anchors
反查本任务锚定该资产的节点
- db AssetRefs(assetID);server GET /api/tasks/{id}/asset-refs?asset_id=X
- types/api taskAssetRefs;抽屉按 node.asset_id 拉取渲染
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-09 00:28:19 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
db2e1f9a49
|
refactor(coverage): 资产覆盖图改用 G6 真力导向布局
- 渲染引擎 xyflow+d3-force(静态坐标) → @antv/g6 d3-force 布局
+ drag-element-force/drag-canvas/zoom-canvas:拖拽实时重排、缩放平移
- 动态 import @antv/g6(避开 SSR/静态导出),顶层仅 import type
- 折叠/分页、点击抽屉、展示更多逻辑与配色语义原样保留
- 轮询改为按需刷新(避免力导布局被反复打断)
- 依赖:声明 @antv/g6,移除不再用的 d3-force/@types/d3-force
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-08 13:14:49 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
c396674d2b
|
feat(coverage): 任务新增「资产覆盖图」力导向图 tab
后端(只读,无迁移):
- db BuildCoverageGraph(taskID,expID) 复用 covTargetCTE 拉范围内全部类型资产 +
tested 标记,补连接节点(缺失根域名/公司,灰),按字段派生 child→parent 边
- server GET /api/tasks/{id}/coverage-graph
前端:
- 新 tab coverage-graph-tab:xyflow 渲染 + d3-force 静态力导向布局
- 已测=实色高亮、范围内未测=灰、范围外连接节点=灰虚线;点节点看详情抽屉
- 折叠/分页:同父同类型子节点默认展示 20(已测优先),超出收进折叠节点,
抽屉「展示更多(+20)」把下一批拉进图;布局仅在可见集合变化时重算
- types/api + d3-force 依赖声明 + 注册 tab
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-08 12:30:41 -04:00 |
|
 Autumn-27andClaude Opus 5
|
4c4f65f40a
|
refactor(coverage): 覆盖度改按类型统计 + 新增 list_untested_assets 工具
- 去掉 backlog(避免把未测清单塞进提示词引导 plan),改由 plan 自行判断。
- Coverage 去 Backlog、加 by_type [{type,total,tested}];TaskCoverage 改 GROUP BY type,
累加得总分母/总已测。
- 新增 db.ListUntestedAssets(范围内未测资产,可按类型过滤 + 分页)与 list_untested_assets
工具(type + page/page_size,默认页大小 10),绑 planner、随 BuiltinToolSeeds 播种。
- graph_overview 的 coverage 现为 {denominator,tested,pct,by_type,note};note 提示按需调
list_untested_assets 自行判断,不再推送 backlog。
- /api/tasks/{id}/coverage 去掉 backlog 参数;前端覆盖度卡改为按类型「已测/总数」徽章。
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
|
2026-08-08 11:50:51 -04:00 |
|
 Autumn-27andClaude Opus 5
|
aeadd0d48b
|
feat(coverage): 资产测试覆盖度(task_scope 范围 + fact 派生已测)
按 docs/任务覆盖度设计-最终版.md 实现(轻量版,粗估供 agent 参考):
- 新表 task_scope(覆盖度分母 + per-task 授权边界):CREATE TABLE IF NOT EXISTS 进
schema.sql,随 db.go 每次启动 Exec,旧库自动生效。
- db/task_scope.go:AddAutoScope(insertAssets 按资产类型保守入范围)、AddAgentScope
(add_task_scope 工具:company/root_domain/subdomain/ip/cidr)、ListTaskScope、
TaskCoverage(范围内资产中被 fact 节点锚定过的占比 + backlog 取样)。
- insertAssets 顶层循环按 worker 显式插入的资产类型自动入范围(source=auto);
side-effect 派生的资产不触发(钩子在 handler 顶层、派生在 db 层内部),范围不盲目扩大。
- add_task_scope 工具绑 planner,随 BuiltinToolSeeds 播种(新库/旧库皆 seed)。
- graph_overview 注入 coverage(denominator/tested/backlog_sample + 粗估提示)供 planner 参考。
- HTTP:GET /api/tasks/{id}/coverage、/scope;任务总览页覆盖度卡(含 backlog)。
- 修 toolcatalog_test(record_fact 绑定断言,早前 mainagent 加 recordFact 后未同步)。
验证:go build / vet / agent test / 前端 tsc 均通过。注:DB 层 SQL 尚未经 live Postgres 运行验证。
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
|
2026-08-08 09:09:38 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
e01b659097
|
feat(assets): 资产页新增「应用」Tab + app 字段可搜
- 资产页 TABS 补 app 分类,新增应用列表(应用名/Bundle ID/分类/ICP 备案)+勾选/删除
- DSL 搜索白名单补 bundle_id/category/app_icp(原仅 app_name),前端搜索建议同步
- list/count 本就按 type 通用,app 自动适配;补齐后 app 资产可看/可搜/可删
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-08 06:19:11 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
6d8fa5bc48
|
feat(agent): 触发后处理可配置(运行模式/合并模式/并发上限) + 修复抽屉内下拉误关
每个自定义 agent 可配置触发后如何调度运行:
- 运行模式 serial|parallel:串行排队一次一个 / 每次触发各自并发一个会话
- 合并模式 by_task|all|none(仅 serial):同任务合并 / 全部合并成一条 / 不合并
- parallel 带每 agent 最大并发上限(0=不限),超限排队等空位
实现:
- DB: agents 加 trigger_run_mode/trigger_merge_mode/trigger_max_parallel 三列
(schema + 幂等 ALTER 迁移,已发版补旧库);Agent 结构/scan/SetAgentTriggerBehavior
- 调度重构: triggerRun bool → triggerActive 计数 + triggerCfg 缓存;
StartTriggeredRun 走 pumpLocked/runAndPump 统一泵模型,nextTriggerRun 按合并模式
取(新增 mergeAllRuns);并发安全(session 按 conv-id 隔离,已确认)
- config 接口暴露/接收三字段;max_turns 改可选指针,避免触发 tab 部分 patch 清零
- 前端: 触发 tab 顶部加运行/合并模式下拉 + 最大并发输入,改动即存
修复: 抽屉(Sheet)内 Select 下拉 portal 到抽屉外,点选项/点别处被当成点击外部
误关抽屉。SelectContent 改 position=popper,并给 SheetContent 加 onInteractOutside
守卫(按 e.detail.originalEvent.target 判定弹层内点击则不关)。
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-08 04:23:09 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
f9716269ea
|
feat(agent): 触发器新增「工具调用」条件 + 定时触发改为复选框展开
- 定时触发统一为前置复选框,勾选后展开「每 N 秒」+ 消息(与其它条件一致)
- 新增工具调用触发(P3 第 5 种条件):
- 选中系统工具列表(至少一个),任务执行中这些工具每次调用完成即触发 agent
- 触发消息带上任务 id/描述/目标 + 工具名 + 入参 + 返回内容(各截断 1500 字)
- 只读任务执行的 activity,触发跑的会话写 conversation_activities,天然无自触发循环
- DB: agent_triggers 加 on_tool_call/tool_call_message/tool_names 三列;
已发版,附幂等 ALTER TABLE ADD COLUMN IF NOT EXISTS 供旧库升级补列
- scheduler: 新增 last_toolcall_id 水位线(首启 seed) + fireToolCalls,以 tool_result
为水位、回连 tool_use 取入参,按选中工具集合匹配后触发
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-08 02:59:07 -04:00 |
|
 Autumn-27andClaude Opus 5
|
e86657cfd1
|
fix(ui): 表单弹窗溢出(#11) + LLM 配置弹窗点外部误关闭(#13)
#11 Textarea(field-sizing-content 自动增高)加 max-h-[45vh]+overflow-auto 到顶改内部滚动,DialogContent 加 max-h-[90dvh]+overflow-y-auto 兜底;#13 新建 Profile 弹窗加 onInteractOutside preventDefault,点外部不再关闭。
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
|
2026-08-07 12:20:15 -04:00 |
|
 Autumn-27andClaude Opus 5
|
5000aadd8f
|
fix(chat): 修复会话刷新丢失最终答案(#3) + 反向分页/详情懒加载/会话URL持久化
- 后端消息列表默认按 id 升序取最旧一页,长会话刷新后最终答案落在页外而丢失
(发新消息推进游标才重现)。改为:
- db.ConvActivityPage:反向分页,取最新/更早一页 + hasMore
- 消息接口按 since(增量)/before(更早页)/最新页 三种模式返回
- 前端聊天页:
- 打开会话仅加载最新一页,滚动到顶部再反向加载更早(保持滚动位置不跳)
- Transcript 的 UserRow/AnswerBlock 改为进入视口才拉 detail,避免打开会话即对
整页每步发详情请求
- 选中会话 id 持久化到 URL(?c=<id>),刷新回到当前会话
- 修复新建会话后被"清理失效 id"effect 误清导致停留在新建页、输入框内容与灰色
发送按钮卡死:移除该 effect + onStarted 乐观插入
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
|
2026-08-07 11:45:33 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
3c8a9f74f8
|
fix(web): 守卫跳转登录页前清除 cookie,修复 cookie 与 localStorage 不一致导致的无限重定向白屏
(main)/layout.tsx 的客户端守卫判定未登录时只跳 /login,未清 cookie;
而 proxy.ts 仅凭 cookie 是否存在放行,二者在 cookie 存在但 localStorage
为空时互相弹跳 → 无限重定向 → 白屏。跳转前调用 auth.clearToken() 同步
清除两处凭证,与退出登录/401 处理的既有约定保持一致。
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-07 09:43:30 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
ad9f14f140
|
feat: LLM 录制开关、模型列表第三方回退、命令页改为工具执行
在 review PR5 基础上的三处改进:
1. LLM 录制开关(默认关,settings.llm_record)
- 录制页数据大小下拉框旁加开关;关闭时 Recorder.Stream 直接透传,
不序列化、不累积、不写库,零开销。切换即时生效,无需重建 agent。
2. 模型列表拉取支持 Anthropic 兼容第三方
- pgListModels 改为按序尝试多个候选端点:anthropic 的 /v1/models 拿不到时,
剥掉 /anthropic 回退到 OpenAI 式 /models(自动切 Bearer 头)。
修复 DeepSeek(anthropic) 加载模型 404。
3. 命令页改为「工具执行」列表
- ListCommands 去掉 tool='Bash' 过滤,覆盖所有 tool_use;返回工具名列,
搜索匹配工具名或参数。前端加「工具」列、标题/侧边栏改为「工具执行」。
Co-Authored-By: Claude Opus 4.8 <[email protected]>
|
2026-08-07 09:32:01 -04:00 |
|
lornlee
|
5b58330f01
|
feat: 添加LLM模型清单、命令执行记录录制和LLM请求记录录制功能
|
2026-07-30 15:18:40 +08:00 |
|
 Autumn-27andClaude Opus 4.8
|
a1778e8990
|
fix(chat): 会话列表长标题溢出遮挡删除按钮
- 会话行/第二行加 min-w-0,agent 名可截断
- ScrollArea 视口覆盖 display:table([&_[data-slot=scroll-area-viewport]>div]:block!),消除横向撑开
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
2026-07-26 06:30:03 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
5dbede42b2
|
chore(web): 删除模板残留文档
移除 Studio Admin 模板遗留的 README.md / AGENTS.md / CONTRIBUTING.md(与 ARTEX 无关)。
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
2026-07-26 05:30:04 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
ee97991a5e
|
docs: 重写 README(安装教程 + 12 张截图 + Demo 链接)
- README:清空旧内容,新增安装教程(脚本/Docker/Releases/源码)、配置、开发、
截图预览 12 张、在线 Demo https://artex-demo.vercel.app/
- screenshots/:12 张页面预览
- fix(mock):activity/conversation 的 detail 端点返回真实内容(此前气泡显示占位文)
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
2026-07-26 05:16:43 -04:00 |
|
 Autumn-27andClaude Opus 4.8
|
0ef8561411
|
chore: ARTEX 初始化
ARTEX — AI 自主渗透测试系统(Go 后端 + Next.js 前端,单二进制内嵌)。
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
2026-07-26 04:27:45 -04:00 |
|