jkooe
1249c90725
feat(agent): selfupdate 代理出网 + LKG 内容指针 + L2/AgentUpdate 契约补全
P0-1 被控端自更新境内必然失败(裸 fetch 不读代理):
- 新增 apps/agent/src/net/proxy.ts + index.ts:sidecar 已验证出网方案的
TS 移植(NA_PROXY → 环境变量 → 系统代理;PAC/socks 明确报错不静默降级;
重定向链共享超时预算;CONNECT 自管 abort;TLS 默认校验证书)。
只依赖 node 内置模块,不 import 项目内任何模块(依赖严格单向)
- selfupdate.download 改走代理;成功/失败均带回 via/proxy/proxy_source/
outbound_notes 诊断;错误分类同款移植 sidecar main.mjs:146-165
(ECONNRESET 不得报成「请求超时」——真机教训)
- httpGet 增 maxBytes 双闸(content-length 预检 + 流式中断),
保住「64MB 上限」安全属性
- 回环目标恒直连(CI/dev 机 HTTP_PROXY 不得误送自建镜像进代理——
e2e 实踩:代理另一侧的 localhost 不是本机 → 404)
A-P0-3 LKG 只有指纹没有内容指针:
- LkgRecord 只增 hash_full(64 位全量)+ backup_glob(.bak*)两字段;
新增 lkgHashMatches(全量优先、老记录回落 12 位前缀,不猜)
- selfupdate 备份保留最近 3 个(planBackupCleanup 纯函数,最旧先删)
P1-4 system.audit.l2 returns_schema 空壳 → 四 action 属性并集补全;
AgentUpdate returns 增 via/proxy/proxy_source/outbound_notes 四个只增字段
安全属性逐条不变:sha256 强制校验 / 先校验后落盘 / 写后校验失败回滚 /
TLS 默认校验证书 / 只接受 http(s)
测试:新增 agent-proxy 17 例 + selfupdate-backup-cleanup 8 例 +
lkg 新增 4 例;单测 403/403、e2e 33/33、typecheck 全绿
2026-10-25 23:58:30 +08:00
..
2026-10-13 22:35:40 +08:00
2026-09-27 17:04:21 +08:00
2026-10-25 23:58:30 +08:00
2026-10-10 14:27:12 +08:00
2026-09-29 11:27:52 +08:00
2026-10-13 17:16:36 +08:00
2026-10-17 03:24:17 +08:00
2026-10-17 03:24:17 +08:00
2026-10-13 17:16:36 +08:00
2026-10-11 14:34:41 +08:00
2026-10-07 10:14:12 +08:00
2026-10-10 00:39:28 +08:00
2026-10-13 22:35:40 +08:00
2026-09-27 17:04:21 +08:00
2026-09-29 14:33:01 +08:00
2026-10-10 14:27:12 +08:00
2026-09-27 17:04:21 +08:00
2026-10-07 00:59:40 +08:00
2026-09-29 14:38:53 +08:00
2026-10-07 00:59:40 +08:00
2026-10-10 14:27:12 +08:00
2026-10-25 23:58:30 +08:00
2026-10-10 14:27:12 +08:00
2026-09-29 14:25:35 +08:00
2026-10-10 07:50:13 +08:00
2026-09-30 00:19:10 +08:00
2026-10-10 14:27:12 +08:00
2026-10-13 22:35:40 +08:00
2026-10-05 02:25:19 +08:00
2026-10-07 02:00:10 +08:00
2026-09-30 00:51:56 +08:00
2026-10-13 18:57:04 +08:00
2026-10-25 23:45:02 +08:00
2026-10-13 22:35:40 +08:00
2026-10-25 23:58:30 +08:00
2026-10-13 22:41:02 +08:00
2026-09-27 17:04:21 +08:00
2026-09-27 17:04:21 +08:00
2026-10-13 18:57:04 +08:00
2026-09-30 01:27:37 +08:00