Skip to content

架构决策记录 ​

ADR 记录那些不应被静默改变的架构选择。中文入口与英文索引保持相同结构;完整记录、状态和决策编号继续以英文页面为源事实。

重点决策 ​

决策说明
ADR 0001:Electron 桌面壳桌面窗口与平台能力的承载层
ADR 0005:本地插件系统用户安装插件的第一阶段边界
ADR 0009:English-first 全球化源语言、术语和协作规则
ADR 0010:Rust host core特权进程、RPC 与持久化的宿主边界
ADR 0053:Plan checkpoint计划审批、artifact 和执行 epoch
ADR 0079:VitePress 文档站双语文档站的结构与部署方式
ADR 0083:自定义全局界面字体设置字体选择器与系统字体枚举(内置字体已由 ADR 0298 移除)
ADR 0089:主动后台子代理委托非阻塞 Task、TaskWait/TaskList/TaskStop 生命周期与权限作用域
ADR 0090:用户可配置的关闭行为首次关闭只问一次,关闭到托盘或退出,设置里可改
ADR 0095:用厂商账户登录用订阅账户代替 API 密钥,凭据留在主进程,sidecar 按请求取短时令牌
ADR 0106:核心五条内置命令将命令面板和输入框 / 菜单冻结为五条第一方命令
ADR 0108:移除内置交互式终端工作面板不再承载 PTY;交互式 shell 由外部终端承担,Agent Bash 保持非交互式
ADR 0128:瞬时 provider 故障的有界重试为瞬时 provider 故障共享一个有界重试预算,跨请求设置和流式传输阶段共用四次重试
ADR 0131:大段 Composer 粘贴写入会话临时目录超过可配置阈值的纯文本粘贴保存为会话临时文件,并在原位置插入内联 @ 引用
ADR 0137:保留的会话面板最近访问的会话各自保留一个已挂载的面板(上限三个),切换是可见性交换而不是重建转录
ADR 0141:展开侧边栏宽度可调整展开侧边栏通过右边缘手柄调整 240–520px 宽度;拖过 160px 会收起(ADR 0290)
ADR 0142:允许非回环 HTTP MCP 端点支持局域网 MCP,并明确提示明文连接风险,插件仍受网络白名单约束
ADR 0145:发布本机 macOS Intel 工件通过匹配的 macOS 原生运行器发布 arm64 与 Intel x64 DMG/ZIP,两个架构工件均带有明确后缀,并合并更新源
ADR 0148:明确禁用应用快捷键缺少覆盖使用默认值,null 表示未绑定并关闭渲染器、菜单和启动器分发
ADR 0174:宿主代发的插件补全与会话上下文插件可通过公开 API 列出已登录模型、读取进行中工具会话,并由宿主代打一次性补全
ADR 0175:解释安静的进行中回合用安静间隔状态行说明停顿(已被 0198 扩展)
ADR 0176:按供应商覆盖 User-Agent每个 AI 服务/OAuth 行可设置可选 User-Agent(已被 0178 的 headers 映射取代)
ADR 0177:用户可配置的出站代理设置里的系统/直连/自定义代理覆盖模型请求、市场、更新和内置浏览器
ADR 0178:按供应商自定义 HTTP 请求头每个 AI 服务/OAuth 行可在高级选项中编辑任意非敏感请求头
ADR 0179:从本地智能体存储导入模型配置设置 → 导入显式扫描 Claude Code / Codex / OpenCode / Pi 的提供商配置并复制 API 密钥
ADR 0180:自定义全局文字缩放设置外观按比例缩放全部界面文字,不使用 px,窗口缩放仍独立
ADR 0181:主进程拥有的文件选择能力文件选择路径留在主进程,以一次性令牌保护导入边界,并移除不支持的文件夹选择
ADR 0182:繁体中文应用程序壳提供独立的繁体中文外壳、系统语言解析和发版日志目录
ADR 0183:P0 国际化应用程序壳语言提供德语、西班牙语和法语完整外壳目录及发版日志
ADR 0184:输入框工具栏中的上下文用量检查器把剩余容量检查器移到模型选择器左侧,答案下方只保留模型徽章
ADR 0185:韩语应用程序壳提供完整韩语外壳、系统语言解析和韩语发版日志目录
ADR 0186:用宿主一次性补全总结首轮会话标题首轮提示先显示回退标题,结束后由主进程按会话模型生成摘要
ADR 0187:按焦点区分任务和交互式本机通知任务横幅仅在窗口失焦时出现;交互询问可通知聚焦的其他会话。字段名为 kind
ADR 0188:模型配置导入保留不同凭据同一端点的不同 API 密钥作为独立提供商导入,相同凭据仍保持幂等跳过
ADR 0189:父级终态错误中止残留委托父级空闲仍不中止委托;429 等终态错误会中止残留子智能体,让“继续”不再 AGENT_BUSY
ADR 0190:宿主门控的大文件与拖拽文件访问大文件范围读取与拖拽文件授权统一经过宿主权限网关,授权只覆盖单个文件且仅存于当前插件进程
ADR 0191:明确标注两个 macOS 发布架构macOS DMG/ZIP 统一使用 -arm64 / -x64 后缀,更新源 URL 与校验和保持一致
ADR 0192:为已配置模型设置别名并允许复制模型 id别名只用于展示;配置页模型 id 可选择复制,请求仍使用真实 id
ADR 0193:上下文检查器按最后一次请求计算占用占用、本轮合计和缓存读写取最新一条助手消息,不再把工具循环里的每次请求加总
ADR 0194:可选的子智能体思考覆盖子智能体可继承、显式关闭或不发送思考参数
ADR 0195:视口固定的工作面板开关非设置页右上角提供与 Cmd/Ctrl+J 等价的指针开关
ADR 0196:在进行中重试行显示 provider 原因悬停或聚焦重试状态行时显示错误摘要、错误码和安全的 provider 消息
ADR 0197:发布 Windows 免安装便携包Windows x64 通道额外发布可解压 ZIP,安装程序仍走应用内更新
ADR 0198:为每个安静间隔命名活动行补齐 starting / preparing / compacting / recovering,并在等待 Subagent 时展示各自的粗粒度动作
ADR 0200:宿主拥有的插件会话导入与归属 API插件历史会话由主机生成 id,并按插件、来源和外部 id 归属
ADR 0201:显式插件项目 id 与宿主拥有的会话刷新插件可显式绑定主机项目,成功写入由主机通知渲染器刷新
ADR 0204:未签名 macOS 首次启动助手只清理 PI-Desktop 的 quarantine 属性,并用 Finder 一键启动可信的未签名应用(由 ADR 0232 修订)
ADR 0232:macOS DMG 只保留打开说明由 ADR 0296 修订:DMG 现为双图标安装;ZIP 仍保留首次启动助手
ADR 0252:插件的宿主回合结束事件宿主在每次已开始的回合结束时向插件宣告一次 session:turnEnded,携带回合身份与终止原因

完整索引 ​

与英文 ADR 索引 逐条对应,编号、顺序与状态保持一致;状态以英文记录为准。

编号标题状态
subagent-model-opt-in区分子代理模型自动调度许可与定义固定模型已接受待实现
0001Electron 桌面壳已接受
0002使用 pi Agent Harness 作为内核已接受
0003混合运行时 — Rust host core + Node pi agent sidecar部分被取代
0004MVP 中不提供远程 Gateway已接受
0005本地插件系统已接受
0006推迟插件市场;先构建本地插件运行时已接受
0007插件分发包格式采用 .piplug(zip)已接受
0008插件运行时以独立进程隔离为目标已接受 (目标)
0009English-first 全球化已接受
0010Rust host core已接受
0011冻结 host RPC、存储归属与模式默认值已接受
0012通过 pi-ai + OpenAI 兼容扩展覆盖所有 provider/模型已接受
0013将设置导航整合为四个目的地部分被 ADR 0026 取代
0014采用宿主拥有的存储 schema v2已接受
0015设置内容随窗口宽度响应式布局已接受
0016围绕保留的多项目标签组织侧边栏已接受
0017移除输入框工作区上下文栏已接受
0018让思考模式贯穿完整会话管线已接受
0019工作面板子系统(内嵌浏览器、git 审阅、文件浏览)部分被 ADR 0108 取代
0020配置 provider 工作台已接受
0021平台应用外壳部分被 ADR 0025 取代
0022应用更新交付已接受
0023独立的对话会话分叉已接受
0024输入框斜杠命令与 @ 文件引用已接受
0025Windows/Linux 窗口不显示应用菜单已接受
0026将项目索引作为归档移入设置部分被 ADR 0036 取代
0027让 pi-ai 成为模型元数据的权威来源已接受
0028将工作面板运行时上下文限定到对话已接受
0029分离原生窗口与工作面板的调整大小归属部分被 ADR 0032 取代
0030回合边界上下文检查点压缩已接受
0031输入框提示行不放品牌图标已接受
0032为停靠的工作面板预留原生宽度已接受(由 ADR 0033 与 ADR 0122 修订)
0033内部停靠工作面板(不扩展原生窗口)已被 ADR 0122 取代
0034将命令面板并入全局搜索已接受
0035通过 preload 桥暴露操作系统区域设置已接受
0036将设置拆分为 AI 与快捷键两个目的地已接受
0037在 Electron main 中解析项目指令已接受
0038在 Electron main 中桥接插件声明的 MCP 服务器已接受
0039激活插件技能并以第一方 devkit 提供插件开发已接受(技能交付由 D174 修订)
0040常驻插件服务与插件间消息总线已接受
0041限制宿主运行时资源并解耦消息持久化已接受
0042消息级内联审阅卡片已被 ADR 0043 取代
0043消息拥有的审阅快照与受保护回滚已接受
0044会话绑定的项目指令预检已接受
0045Bash 工具继承用户登录 shell 的 PATH已接受
0046按类别拆分的进程日志文件已接受
0047带精确与估算 token 来源的上下文用量检查器已接受
0048按回合惰性激活工具已接受
0049用保留尾部恢复自动上下文压缩失败已接受(预检守卫由 ADR 0282 修订)
0050有界的 provider 流恢复与诊断已接受
0051将 host RPC stdio 与 Tokio 阻塞池隔离已接受
0052Plan 运行状态与审批边界已被 ADR 0053 取代
0053Plan checkpoint已接受待实现
0054可选择的命令 shell 目录与执行身份已接受待实现
0055仅 Agent 模式;Chat 成为内部只读配置已被 ADR 0052 / ADR 0053 取代
0056用户拥有的 MCP 服务器与技能,共享激活作用域已接受
0057权限门控的外部路径与可移植原生搜索已接受待实现
0058扩展页密度与主题可读的按钮表面已接受
0059将输入框剪贴板文件持久化到会话临时目录已接受
0060在 RPC 锁下归档重新生成分支已接受
0061无感知的后台上下文压缩已接受(修订 ADR 0030 / ADR 0049;第 2/4/6/7/8 条由 ADR 0064 修订)
0062Task 工具背后的有界子智能体已接受待实现
0063全局子智能体定义的托管界面已接受待实现
0064与 Codex 对齐的上下文压缩已接受(修订 ADR 0061 / ADR 0030)
0065平滑的外壳布局与流式反馈已接受待实现
0066空首页直接使用底部输入框已接受待实现(修订 D111)
0067受 ChatGPT 启发的空首页起始引导已被 D206 取代
0068为工作面板增加键盘入口已接受待实现
0069让原生工具的路径错误可恢复已接受待实现
0070将输入框文件引用展示与提示序列化分离已接受待实现
0071采用受 Apple 启发的全局圆角层级已接受待实现
0072增加全局插件启动器已接受待实现
0073暂存下一回合输入框配置并保留停止时的吞吐已接受待实现
0074插件的原生通知权限已接受
0075开发插件权限上限需手动重载已接受
0076在 host-core 中捕获 Windows 保留的插件启动器组合键已接受
0077增加交互式多问题 asktool已接受待实现
0078跨平台托盘常驻最小化已接受待实现(由 ADR 0117 与 ADR 0123 修订)
0079VitePress 文档站已接受
0080启动后预热全局插件启动器已接受
0081宿主拥有的跨平台插件面板外壳已接受
0082本地化且随页面自适应的插件面板外壳已接受
0083自定义全局界面字体部分被 ADR 0298 取代
0084推迟新任务会话创建直到首条消息已接受
0085让工作面板快捷键成为开关已接受(修订 ADR 0068)
0086macOS 保持常规激活策略已接受
0087用行锚定、标签校验的契约取代文本匹配 Edit已接受待实现(修订 ADR 0043 / ADR 0069)
0088插件文件访问按模式声明,删除可恢复已接受(延续 ADR 0008 D009)
0089主动后台子代理委托已接受待实现
0090用户可配置的关闭行为已接受待实现
0091将 provider 限流路由到有界的同回合重试已接受(修订 ADR 0050)
0092使用插件拥有的表面与宿主窗口控制胶囊已接受
0093保持严格 46px 插件拖拽带与极简胶囊已接受
0094每个数据目录只允许一个桌面实例已接受
0095用厂商账户登录已接受待实现
0096扁平化设置目录并就近放置市场源配置已接受
0097将全局默认值放在 AI 设置目的地下已接受
0098将每个厂商 OAuth 账户视为独立的 provider 行已接受待实现
0099为设置目录增加带标题的视觉分组已接受
0100内置子智能体继承父级权限模式已接受
0101按模型感知的图片附件传输已接受
0102发布者拥有的插件源与 Git 托管的工件存储已接受待实现(取代 ADR 0006)
0103紧凑的上下文用量摘要已接受(修订 ADR 0047)
0104插件贡献的工作面板视图已接受
0105将 Files 作为捆绑插件发布;Review 留在宿主已被 ADR 0241 取代
0106核心五条内置命令已接受
0107让当前会话任务通知抑制原子化已接受
0108移除内置交互式终端已接受
0109用操作系统关联应用打开 Files 条目已接受
0110为插件面板外壳间距契约设定版本已接受
0111在操作系统文件管理器中显示 Files已接受
0112Agent 能力管理根目录与设置 IA已接受
0113立即持久化新任务空槽并按消息数去重已接受
0114持久化 provider 模型绑定与思考配置已接受
0115插件剪贴板历史由宿主拥有并保存在内存中已接受(于 2026-08-21 修订)
0116将 OpenCode Go 作为固定 provider 预设已接受(已修订:会话路由请求头)
0117原生最小化时保留 Windows 任务栏条目已接受
0118队列中的提示由渲染器拥有,并在回合边界停止运行已接受
0119事件驱动的子智能体超时已接受待实现
0120有界的会话历史窗口已接受
0121输入框提示增强保持一次性且由主进程拥有已接受
0122工作面板可见时预留原生宽度已被 ADR 0151 取代
0123Windows/Linux 窗口控制使用原生任务栏最小化已接受
0124将临时会话绑定到独立的临时工作区已接受
0125渲染器交付派生品牌标记与压缩输出已接受
0126Agent 能力页面是一个可创作的工作台已接受
0127转录布局索引与基于身份的截断已接受
0128瞬时 provider 故障的有界重试已接受
0129子智能体空闲看门狗约束沉默而非缓慢已由 ADR 0166 修订(看门狗不再终止)
0130有界的已挂载转录窗口已接受
0131大段 Composer 粘贴写入会话临时目录已接受
0132将跨显示器窗口移动归因于用户已接受
0133使用 models.dev 作为主模型目录并以 pi-ai 回退已被 ADR 0134 取代
0134使用 models.dev 作为唯一模型元数据来源并保留本地快照已接受
0135重试未修改的已编辑提示已接受
0136跨上下文压缩保留活动任务边界已接受
0137保留的会话面板已接受(修订 ADR 0130 第 4/5 条)
0138子智能体对等消息已被 ADR 0147 取代
0140将三个 Peer 工具合并为一个 Peer 工具已被 ADR 0147 取代
0141展开侧边栏宽度可调整已接受
0142允许非回环 HTTP MCP 端点已接受
0143会话标题可由用户重命名已接受
0144允许用户配置的思考级别覆盖已接受
0145发布本机 macOS Intel 工件已接受(由 D353 / ADR 0191 修订)
0146按边界分配外层与内层工作面板的调整大小归属已被 ADR 0151 取代
0147子智能体协调的 A2A 协议栈已被 ADR 0165 取代
0148明确禁用应用快捷键已接受
0149平静的转录运行状态动效已接受
0150内联 SVG 空首页 agent 标记已被 ADR 0152 取代
0151将工作面板保持在固定应用窗口内已接受
0152八帧空首页吉祥物 GIF已接受
0153在转录旁为流式回复建立检查点已接受
0154在宿主 IO 之前显示新任务空目的地已接受
0155增加智谱 / Z.AI 命名端点预设已接受
0156简化添加 provider 的常见路径已接受
0157主进程拥有的 GitHub issue 反馈已接受
0158保持审批卡片聚焦并记住所选模式已接受
0159生成的插件设置与插件局部快捷键已接受
0160内置区域设置注册表与可搜索的语言选择器已接受(由 ADR 0182 修订)
0161与语言选择器一致的可搜索主题选择器已接受
0162跨会话 A2A 寻址已被 ADR 0165 取代
0163转录文件引用渲染为可预览的芯片已接受
0164父级 agent 跨对话协作已被 ADR 0165 取代
0165撤回 A2A / Peer 协调栈已接受(取代 ADR 0147 / ADR 0162 / ADR 0164)
0166由父级判断的子智能体生命周期已接受(修订 ADR 0089 / ADR 0119 / ADR 0129;致命错误路径由 ADR 0189 修订)
0167由 Agent 选择的 Bash 超时已接受(修订 ADR 0054 / D190 / D273)
0168主进程拥有的 openExternal http(s)/mailto 白名单已接受(修订 ADR 0109)
0169插件视图的分类文件预览与实时工作区事件已接受(修订 ADR 0104 / ADR 0105 / ADR 0109 / ADR 0111)
0170将工作面板浏览器作为捆绑插件通过公开 CDP 交付已接受(修订 ADR 0019 / ADR 0104 / ADR 0105)
0171宿主拥有的已完成回合 token 历史已接受(由 ADR 0173 修订)
0172受约束的聊天内图片显示已接受(修订 fs/read 仅工作区条款)
0173插件拥有的 token 用量仪表盘已接受(修订 ADR 0171)
0174宿主代发的插件补全与会话上下文已接受(修订 D019)
0175解释安静的进行中回合已接受
0176按供应商覆盖 User-Agent已接受(修订 ADR 0095 / ADR 0156;请求头映射已被 ADR 0178 取代)
0177用户可配置的出站代理已接受
0178按供应商自定义 HTTP 请求头已接受(修订 ADR 0176 / ADR 0095 / ADR 0156)
0179从本地智能体存储导入模型配置已接受
0180自定义全局文字缩放已接受
0181主进程拥有的文件选择能力已接受
0182繁体中文应用程序壳已接受(修订 ADR 0160)
0183P0 国际化应用程序壳语言已接受(修订 ADR 0160 / ADR 0182)
0184输入框工具栏中的上下文用量检查器已接受(修订 ADR 0047 / ADR 0103)
0185韩语应用程序壳已接受(修订 ADR 0160 / ADR 0183)
0186用宿主一次性补全总结首轮会话标题已接受
0187按焦点区分任务和交互式本机通知已接受(修订 ADR 0107 / D117)
0188模型配置导入保留不同凭据已接受(修订 ADR 0179 / D342)
0189父级终态错误中止残留委托已接受(修订 ADR 0166 / D328)
0190宿主门控的大文件与拖拽文件访问已接受
0191明确标注两个 macOS 发布架构已接受(修订 ADR 0145 / D353)
0192为已配置模型设置别名并允许复制模型 id已接受(修订 D266)
0193上下文检查器按最后一次请求计算占用已接受(修订 ADR 0047 / ADR 0103 / ADR 0184)
0194可选的子智能体思考覆盖已接受待实现
0195视口固定的工作面板开关已接受(修订 ADR 0068 / ADR 0085)
0196在进行中重试行显示 provider 原因已接受(修订 ADR 0175)
0197发布 Windows 免安装便携包已接受(修订 ADR 0022 / D126 / D603)
0198为每个安静间隔命名活动行已接受(修订 ADR 0175 / ADR 0186)
0200宿主拥有的插件会话导入与归属 API已接受
0201显式插件项目 id 与宿主拥有的会话刷新已接受
0202暴露有效的子智能体思考元数据已接受
0203桌面操作的本地 MCP 控制平面已接受(由 D372 修订)
0204未签名 macOS 首次启动助手已接受(由 D406 / ADR 0232 修订)
0205远程 Agent 控制使用专用的 Host 边界已接受待实现(MVP 之后;由 D376 修订)
0232macOS DMG 只保留打开说明已接受(由 D457 / ADR 0296 修订;修订 D371 / ADR 0204)
0241文件视图改为 vendor 的可更新插件已接受(取代 ADR 0105;issue #304)
0242仅增量且合并的流式更新已接受(修订 0127 / 0130 / 0149 / 0153;issue #299)
0243技能市场公网 HTTPS 目录拉取已接受(修订 ADR 0009;issue #287 / PR #290)
0245加固 MCP 市场公网网络边界已接受
0262聊天里的文件引用在主进程补全,并在文件视图中打开已接受(修订 ADR 0163 / ADR 0241)
0263向插件视图暴露项目的文件夹根,并跨根补全引用已接受(修订 ADR 0262;ADR 0249 §5)
0264交给宿主执行的文件动作跟随视图正在浏览的文件夹已接受(修订 ADR 0263;ADR 0249 §5)
global-sidebar-pins在侧边栏全局显示置顶会话已接受(修订 ADR 0016;issue #306)
active-turn-steering用 Alt+Enter 向当前回合补充指令已接受
0251删除项目会一并删除其拥有的会话已接受
0253移除子智能体轮次上限已接受(取代 0062 / 0063 / 0119 / 0126 / 0166 / 0210 中关于 maxTurns 的条款)
0265排队队列的优先区块与行内操作已接受待实现(修订 ADR 0213 / 0118)
0267插件标签跟随应用语言已接受(修订 ADR 0160;ADR 0182)
0272按请求实际会走的线路判定公网地址已接受待实现(修订 ADR 0243;issue #419 / PR #473)
0276官方插件渠道与备份渠道已接受待实现(修订 ADR 0102;D442)
0278规范应用 ID net.aiuo.pi-desktop已接受(D443;修订 D141 / D371 / ADR 0204;issue #524)
0279可恢复的子代理委托已接受待实现(修订 ADR 0062;ADR 0089;issue #513)
0280插件自有界面按宿主语言自行本地化已接受(修订 ADR 0267;ADR 0159)
0282压缩摘要先重试并按实际提示大小预检,再回退保留尾部已接受(修订 ADR 0049;issue #543)
0283远程 MCP 服务端 OAuth 2.1 认证已接受
0284packages/host-runtime 的无头运行时边界已接受(实施中)(D447;ADR 0205 R2 前置)
0285packages/racp 的 RACP-WS 传输已接受(实施中)(D448;ADR 0205 R2)
turn-process-and-thinking-display回合过程与思考展示已接受(2026-09-20 修订)
0289签名的 macOS GitHub Release 与应用内更新已接受(D450;修订 ADR 0022 / 0145 / 0191 / 0204 / D078)
0290恢复可拖拽侧边栏宽度,过窄时收起已接受(D459;修订 ADR 0141 / ADR 0238)
0291移除设置页面的语音界面已接受(修订 ADR 0281)
0292远端主机的 SSH 引导已接受实施(D453;ADR 0205 R2b,扩展 ADR 0286)
0294项目存档改为列表 + 检查器已接受(D455;修订 D267 / D168)
0295会话思考参数不发送已接受(D456;修订 ADR 0194 / ADR 0144 / ADR 0221)
0296已签名 macOS DMG 改为双图标安装已接受(D457;修订 ADR 0232 / ADR 0204)
0297提供商托管联网搜索作为适配器能力已接受
0298应用不再随包发布任何字体已接受(D598;修订 ADR 0083 / D232)
registry-header-variable-spellingRemote header variables accept the registry's {name} spellingProposed

什么时候看 ADR ​

  • 规格告诉你系统应该怎样工作。
  • ADR 告诉你为什么选择这个边界,以及哪些替代方案被放弃。
  • 决策日志记录更细的冻结条款和后续修订。

前往 英文 ADR 索引 查看完整记录,或打开 中文决策日志 按编号检索。

Tray session shortcuts ​

定时任务的调度、存储、权限与桌面入口决策见 ADR: Desktop automations。

ADR tray-session-shortcuts defines bounded native session groups and the renderer/Main ownership boundary.

本地优先 · 模型可替换 · 插件可扩展。 AIUO.NET