onesvm-browser-server/docs/impl-20260901.md
chii 854ffcb2b1 docs: 补实现交付记录并同步 inventory 专项
记下 W6 怎么跑与国内/MCP 冒烟结果;联调入口改为 mgr1 :8640。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 15:08:59 +08:00

51 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
type: receipt
status: active
created: 2026-09-01
---
# 控制面实现交付记录
> 对应 `contract-20260901-browser-impl` / `plan-20260901-03`(实现)+ `plan-20260901-04`(W6 热修)。
> 机制细节仍以 `design-arch-20260901.md` 为准;决策以 `plan-final-20260901.md` 为准。
## 交付了什么
| 块 | 路径 |
|---|---|
| 单二进制三角色 | `server/cmd/browser-server`(`-role=gateway\|scheduler\|proxymanager`) |
| 公共包 | `server/internal/{contract,store,auth,policy,safetyscan,httpx,config}` |
| 五 Dock 适配器 | `server/internal/dock`(searxng-cn/global、trafilatura、lightpanda、headless-shell) |
| Swarm stack | `stacks/browser-server.yml`(10 服务;shell `replicas=0`) |
| 本机冒烟 / 部署脚本 | `scripts/smoke-local.sh` · `scripts/deploy-mgr1.sh` |
| 镜像 | `onesvm/browser-server:dev` · `onesvm/trafilatura-http:dev`(日常复用 tag) |
## 怎么跑
```bash
# 单测
make test
# 本机 compose 冒烟(stub 引擎)
make smoke
# mgr1 部署(须用户 🟡 确认;读 gitignore deploy.env)
bash scripts/deploy-mgr1.sh # dry-run
bash scripts/deploy-mgr1.sh --apply
```
入口:`http://192.168.1.51:8640`(MCP `POST /mcp`,HTTP `POST /v1/search` `/v1/read`)。认证头 `X-Service-Token`。
## 验收链
- 实现轮:V1 verify → ITER-3 → V2 reverify PASS → V3 arch-review PASS-with-debt → ITER-4(D-1/D-2)
- 部署轮 W6:stack 已在 mgr1;海外订阅经 central-proxy bootstrap;探活 `alive=41/52`(2026-09-02)
- 国内/MCP 冒烟(同日):401 / 签发 / `tools/list=[search,read]` / MCP `tools/call` 200;`/v1/search` `/v1/read` 信封 200 但 `error=upstream`(searxng-cn 上游超时/空结果,网关未崩)
- 产物(gitignore):`.dsh/artifacts/run-20260901-browser-impl/`
## W6 热修(已入镜像)
- `BROWSER_SERVER_SUB_FETCH_PROXY`:仅订阅拉取走 `.53:7890`
- mihomo 卷 nonroot 可写;热载路径用容器内 `/root/.config/mihomo/config.yaml`
- 生成配置剥离 dns/geosite;mihomo limit **128m**
- `NewManager` 接线 mihomo delay 探针(修全池探活 nil panic)