Commit Graph
19 Commits
Author SHA1 Message Date
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 5 349b0d104d feat(agent): 主 agent 默认工具集增加 report_finding/record_fact
- MainAgentTools 加入 addFinding/recordFact,主 agent 确证漏洞或事实时可直接登记
- report_finding 描述前置[重要]标注,强化调用约束
- gofmt 对齐 tools_insert 参数缩进与 import 顺序

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-07 10:04:21 -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 89e6df837a Merge: PR5 LLM 录制/工具执行 + session 修复/录制开关/模型列表回退
合入 lornlee 的 PR #5(LLM 模型清单、命令执行录制、LLM 请求录制),
并在其基础上修复 session 断链、增加录制开关(默认关)、模型列表第三方回退、
命令页改为工具执行列表。

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-08-07 09:35:06 -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
Autumn-27andClaude Opus 4.8 10f891a21d fix(llmrec): 从 ctx 读取 session,修复 task/worker 列为空
原实现依赖 SetSession() 写入共享的 sessionID 字段,但该方法从未被调用,
导致 session/task/worker 恒为空、落库为 NULL,前端两列无数据。且共享可变字段
在 planner 与多 worker 并发调用同一 Recorder 时会互相覆盖、串号。

norma 已通过 transcript.WithSessionID 把 session 注入 ctx(格式 exp<N>-<role>),
改为在 Stream 中按 ctx 逐调用读取,天然 per-call、无竞争。删除未使用的
SetSession/getContext 及共享字段。

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-08-07 08:52:24 -04:00
Autumn 8d3b0d17e7 Update README.md 2026-08-07 10:20:56 +08:00
Autumn a642403764 add Cairn 2026-08-07 10:19:50 +08:00
lornlee 5b58330f01 feat: 添加LLM模型清单、命令执行记录录制和LLM请求记录录制功能 2026-07-30 15:18:40 +08:00
Autumn-27andClaude Opus 4.8 0f94849012 fix(docker): 用 NodeSource 装 Node 20(Playwright 要求 >=20)
bookworm 自带的 apt nodejs 是 18.20.4,Playwright 全局安装报
"requires Node.js 20 or higher" 导致镜像构建失败。改为从 NodeSource
装 20.x(自带 npm),移除 apt 的 nodejs/npm。

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-28 12:11:04 -04:00
Autumn-27andClaude Opus 4.8 3f798ec74e chore(docker): 预装 Playwright MCP/CLI 及 chromium
镜像内全局预装 @playwright/mcp、@playwright/cli、playwright,并
`playwright install --with-deps chromium` 预置浏览器及系统依赖,运行时
不再联网下载。browser MCP 启动参数去掉 -y 与 @latest(改用已装好的本地版本)。

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-28 11:52:53 -04:00
Autumn-27andClaude Opus 4.8 abc551cc76 fix(worker): 写回计数按事实/资产/漏洞分开统计
原先 record_fact/insert_assets/report_finding 共用一个 wrote 计数器,
日志却统一打印成"写回 N 条事实",把资产、漏洞也算进"事实"里,容易误导
(如枚举意图插入 25 个资产 + 1 条 fact 会显示"写回 26 条事实")。

改为 WriteCounts{Facts,Assets,Findings} 分类计数,日志打印
"写回 事实1 资产25 漏洞0",Total() 保留"是否落库任何东西"的判定。

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-28 11:52:53 -04:00
Autumn-27andClaude Opus 4.8 2c3ca4b194 chore(skill): 更新 ScopeSentry skill 内容
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-26 06:31:32 -04: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 35648937e3 README 增加了 ScopeSentry 资产同步说明
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-26 05:37:51 -04:00
Autumn-27andClaude Opus 4.8 b284df2d93 docs(readme): 增加 ScopeSentry 资产同步说明
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-26 05:34:46 -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