MUNDERDIFFLIN / LEARN
CHAPTER 19
08 · PERIMETER12 分钟阅读深入

Git、Realtime、Tunnel、Telemetry 与 Updater

这些模块增强工作区隔离、远程触发、语音控制、观测与分发,但它们位于 Agent orchestration 外围。

本课核心问题系统边缘如何既开放集成,又不泄漏核心权限?
学完你能
  • 比较 GitHub、Slack、Webhook、Realtime 的信任边界。
  • 辨别 loopback、secret gating 与公开 tunnel。
01
Git / Workspace

默认共享 cwd;显式 isolate 才创建独立 worktree

spawnAgentCore 在 isRepo 且 isolate=true 时,从当前 branch 创建 `agent/<id>` 分支与 `<harnessHome>/worktrees/<id>`。失败是 best-effort 降级而非硬失败。回收前检查 dirty 与 ahead commits;有未集成工作就保留。

交互图解

Worktree 隔离与保全策略

检查 Git repomainRepoRoot
创建 agent/<id>worktrees/<id>
Agent 执行独立 cwd
退出审计dirty / ahead?
保留或清理fail safe
隔离是 best-effort;清理则偏向保全,脏或领先分支不会被自动删除。
02
Git / GitHub 能力

Git 封装是只读浏览 + 受保护 checkout;GitHub 通过 gh CLI

main/git.ts 封装 status、log、diff、branch、compare、worktree 与 checkout;checkout 在 dirty working tree 时 fail-safe 拒绝。main/github.ts 仅用 gh CLI 读取 issues 和 CI runs,不是完整 PR 协调层。

03
Realtime / Voice / Tunnel

语音 orchestrator 在 Renderer;真实 OpenAI key 留在 Main

Realtime Michael 通过 Main mint 的短期 token 建立 WebRTC session,并使用工具读写 Hive;高风险动作必须语音确认。Slack/Webhook 在 Main 开本地 server,可选 localtunnel/tunnelmole 暴露公网 URL。

04
Telemetry / Analytics / Update

本地 OTel 与外发 PostHog 是两套不同数据面

telemetry.ts 是 loopback-only OTLP collector,用于 token/cost/tool 状态和 breaker;analytics.ts 才是匿名 allowlist PostHog,受 build key、DO_NOT_TRACK 与设置三重门控。updater 只在 packaged build 使用 electron-updater,并提供 GitHub release notify fallback。

05
边界审计

为每个集成画五列:入口、认证、权限、数据、撤销

GitHub CLI、Slack loopback、公开 webhook 和 Realtime 会话使用不同信任模型。统一到一个“integration manager”不会消除这些差异。

门禁卡、客服电话和快递口都连接外部,但不能共用一把万能钥匙。

LESSON CHECKPOINT

能用自己的话回答核心问题了吗?

每一种集成都应写清入口、认证、权限、数据去向与撤销方式。