Internals
用于调试 VibeAround 和修改代码的文档。同一个运行时有两种互补的切面:
文档提示:当前文档全部由 Codex 生成,正在积极审阅、扩充和优化中。
用于调试 VibeAround 和修改代码的文档。同一个运行时有两种互补的切面:
- Flows 跟着一个请求按时间往前走:从入口到出口的每一跳,带代码锚点和失败表。追踪行为时从这里开始。
- Modules 把一个组件按空间展开:职责、关键类型、交互关系、不能破坏的不变量,以及已知技术债。改代码时从这里开始。
Flow 经过某个模块的地方会互相交叉链接。面向读者的“为什么这样设计”在架构里;硬数字在计时器与上限里。
Flows
| Flow | 路径 |
|---|---|
| IM 消息 | 平台事件 → 插件 → 分片队列 → Thread → Agent → 流式回复。主干流程,优先读这个 |
| Web Chat | WebSocket 事件 → 会话意图 → 同一条 prompt 路径 |
| 权限请求 | Agent 请求 → oneshot 注册 → 卡片 → 点按 → Agent 继续 |
| Bridge 请求 | 客户端方言 → 解码 → 模型映射 → 上游 → 流式返回 |
| 原生启动 | Profile → launch JSON → va-launch → 终端启动 |
| 交接 | 签发短码 → /pickup → 外部 session 绑定 → route 附着 |
| Web 终端 | 浏览器 xterm ↔ WebSocket ↔ pseudo-tty |
Modules
每页固定结构:职责 · 关键类型 · 交互关系 · 不变量 · 已知技术债。
| Module | 一句话 |
|---|---|
| channels | 各界面与 Thread 之间的消息传输和路由 |
| workspace | 对话状态:workspace、thread、attachment,事件溯源 |
| process | 子进程监管:启动、重启、watchdog、清理 |
| agent | 到一个编程 CLI 的 ACP 连接,以及启动准备 |
| profiles | Provider catalog、profile 存储、启动渲染 |
| pty | Web 终端背后的 pseudo-terminal session |
| previews | Live Preview 注册表、owner/share URL |
| tunnels | ngrok / localtunnel / cloudflare 发布 |
| auth | Daemon token 和配对码 |
| server | axum 外壳:routes、WebSockets、MCP、bridge、启动/关闭 |
子系统深挖
跨多个模块的横切子系统有单独页面:
| 页面 | 覆盖内容 |
|---|---|
| Launch | 四条启动路径、每条路径的 env 组装与注入、各 OS 终端处理、参数来源、desktop 与 CLI producer 差异 |
相关材料
- 已知缺陷与计划重构:
reports/architecture-review-remediation-2026-07-04.md(模块页的“已知技术债”会链接到其中条目)。 - 源码里的 Rustdoc module header 是最细粒度的权威;这些页面是地图,不替代源码。