feat(traffic): 正文入库 + 全文搜索,删除改为 SQL 事务
流量录制不再镜像 URL 路径写文件树,改为整条 exchange 落 SQLite: - record: 元数据/头/正文写库;>256KB 的 body 才溢出到 _blobs(单层 桶、按 hash 去重),库里留 8KB 预览 + 指针。文本正文全量喂 trigram FTS 索引(二进制按 content-type 跳过),支持任意子串与中文全文搜索。 - 删除退化为一个 SQL 事务级联删四张表,host 树后台异步回收,不再在 写锁内 RemoveAll + 全树扫描——删除从数小时降到毫秒级,期间不再停摆录制。 - gcBlobs 改走 blob_refs 反查,顺带清理空桶目录;保留对旧文件树的 引用扫描与 Get 回落,历史数据免迁移仍可读、可搜(元数据)、可删。 - 新增 traffic_blob 工具与 GET /api/traffic/blob 流式下载大 body; traffic_search 增加 body_contains 全文参数。 新表均为 CREATE TABLE IF NOT EXISTS,旧库自动补建,无需 ALTER 迁移。 Claude-Session: https://claude.ai/code/session_01RtPQYJ8W1mcaace3sHWGDm
This commit is contained in:
1 parent
22ae280584
commit
fb666c03cc
4 files changed
+1174
-193
No files matched your search
+1
-1
@@ -159,7 +159,7 @@ func workerTrafficBlock(proxyAddr string) string {
|
||||
if proxyAddr == "" {
|
||||
return ""
|
||||
}
|
||||
return "\n\n**流量工具**:\n- traffic_search / traffic_get:目标流量已被记录代理全量落库(本地文件树 data/traffic/<host>/<访问路径>/)。回看响应、找已访问过的资源,**先查流量、不要重复 curl 同一 URL**。traffic_search **必须指定 host**、默认只回 3 条极轻量索引(id/method/url/status/resp_len,无响应内容),需要更多显式调大 limit;要看某条原文用 traffic_get(id)。"
|
||||
return "\n\n**流量工具**:\n- traffic_search / traffic_get / traffic_blob:回看响应、找已访问过的资源,**先查流量、不要重复 curl 同一 URL**。traffic_search **必须指定 host**、默认只回 3 条极轻量索引(id/method/url/status/resp_len,无响应内容),需要更多显式调大 limit;可用 body_contains 在请求/响应正文里做全文搜索(至少 3 字符,支持子串和中文,如找密码/密钥/报错/内网地址);要看某条原文用 traffic_get(id),其中超大正文显示为 @blob sha256:<hash>,用 traffic_blob(hash) 分段取全文。"
|
||||
}
|
||||
|
||||
// artifactSpec is 段 [C]: the code-owned, non-editable tail appended to every
|
||||
|
||||
Reference in new issue
Block a user