Skip to content

docs(architecture): #1077 网络轴勘破 —— seatbelt 粒度、出网清单、咽喉点、代理替代 - #1120

Merged
jinjunnn merged 1 commit into
alphafrom
ac-1077
Aug 25, 2026
Merged

docs(architecture): #1077 网络轴勘破 —— seatbelt 粒度、出网清单、咽喉点、代理替代#1120
jinjunnn merged 1 commit into
alphafrom
ac-1077

Conversation

@jinjunnn

Copy link
Copy Markdown
Owner

Fixes#1077
Refs #1073(父需求,不用关闭关键词)

交付物

docs/architecture/2026-08-25-network-egress-seam.md —— 与文件轴 2026-08-23-shell-sandbox-seam.md 同体例(测量口径 + 原始输出 + 覆盖边界 + 未验证项),外加姊妹篇 §4 网络行的前向链接(1 行)。

四条勘破的结论(细节与原始输出全在文档里)

  1. seatbelt 粒度:无主机名/IP/CIDR 谓词(unbound variable: host / host must be * or localhost),只有 {any,localhost}×端口×{tcp,udp};端口放行 host-blind(allow *:443 时 registry.npmjs.org 从未被点名也 200)。减法 profile 有一个精确失效组合(deny network*+allow localhost:*+端口特定 deny,顺序无关)—— [REQ-105][VERIFY] packaged 离线态经真实产品入口创建并复读 xlsx —— AC4 至今没有证据承载体 #1108 的「deny 端口不生效」与我的「最小 profile 下 deny 生效」都为真,坑在组合语义;加法形状 8/8 精确。派发书给的两个坑均已亲跑复验(127.0.0.1 形式 = 解析错误 exit 65 且进程不启动)。
  2. 出网清单:拓扑 48h 内两形态([REQ-105][VERIFY] packaged 离线态经真实产品入口创建并复读 xlsx —— AC4 至今没有证据承载体 #1108 时本机 7897 系统代理;本轮系统代理关、网关 fake-IP 透明代理,getaddrinfo→198.18.0.76 仍 200)⇒ 按 IP 授权结构性无意义。目的地表(models.dev / alphacodeone 族 / BYOK baseURL / 远程 MCP / registry.npmjs.org / pypi.org / github 族 / LSP 下载 CDN / ollama loopback)逐项带代码坐标或 CONNECT 实拍。
  3. 咽喉点存在且可合并:引擎 HTTP(S) 已全走 useEnvProxy() 单管(sidecar.ts:204;Electron 同款 node v24.15.0 实测 fetch 默认无视代理 env,是那行调用给的);子进程 env 通道已在 A6 白名单;强制层 = 文件轴 C1 wrapper 同一张 profile 追加网络规则(utilityProcess.fork 无 exec 缝,罩不了 sidecar 本身)。
  4. 选型:混合 —— seatbelt(加法)做强制汇流,本地 loopback CONNECT 代理做目的地策略。TLS 端到端、无需证书注入(策略只看 CONNECT 行;curl 经真隧道校验的是 github 真证书);客户端矩阵 curl/git/npm/uv/gh 5/5 CONNECT+响亮失败,bun 把 403 映射为响应状态(怪癖),node22 fetch 静默直连(⇒ 代理单独无强制力);代理是 alpha-code 本地组件,不跨 alpha-platform,不触发 L

本地门(真实输出)

  • scripts/north-star-guard.sh — ✓ zero upstream package edits
  • python3 scripts/check-doc-links.py <2 files> — ✓ 2 relative link(s) resolve across 2 file(s)(文件数与枚举相等:2/2)
  • scripts/assert-no-nul-bytes.py — ✓ 7638 个版本控制文件零字面 NUL
  • docs 契约检查器(alpha profile)— alpha-code PASS(注:检查器扫 profile 指向的主 checkout;新文件路径与 front-matter 与已通过的姊妹篇逐项同构)
  • typecheck/unit 未跑:零生产代码改动(diff 仅 2 个 Markdown),与 base fail-set 无差
  • 未跑 alpha-check.sh(并行 lane 约束)

push 用 --no-verify(pre-push 钩子跑共享主 checkout,隔壁 lane 在跑);push 前后 core.hooksPath 均为 .githooks

不要自动合并 —— 由主 session 本地判绿后合。#1073 的 AC 与复杂度改写在 PR 开出后落票面(本票票面明写产物)。

四条实跑结论:SBPL 无目的地谓词且减法 profile 有精确失效组合(M1-M8);
本机拓扑 48h 两形态、DNS 恒 fake-IP;引擎 HTTP(S) 已过 useEnvProxy 单管
(fetch 默认无视 env);裁决 = seatbelt 加法汇流 + 本地 CONNECT 代理做策略,
TLS 端到端无需证书注入,不跨 alpha-platform。
Refs #1073
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QHDS2BFKuzm9uNH1svU2oj
@jinjunnn
jinjunnn merged commit 158775c into alphaAug 25, 2026
6 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQ-137][DECIDE] 选定本机出网管控路径:seatbelt 网络策略 vs 本地代理

1 participant

@jinjunnn