Architecture Decision Records
ADRs record decisions that should not silently change.
Format
Each ADR includes:
- Status
- Context
- Decision
- Consequences
- Alternatives (optional)
Index
| ID | Title | Status |
|---|---|---|
| lossless-tool-image-storage | Lossless tool-image storage and bounded history mutations | Implemented candidate |
| plugin-remote-workspace-reads | Plugin reads in remote workspaces | Implemented candidate |
| browser-background-lifecycle | Browser page execution outlives side-panel presentation | Accepted |
| asktool-draft-survives-session-switch | AskTool drafts survive a card remount | Accepted |
| tool-abort-abandons-host-call | A user stop ends the turn even when the running tool cannot be cancelled | Accepted for implementation |
| provider-metadata-client-certificate-retry | Provider metadata recovery from optional client certificates | Implemented candidate |
| device-local-project-lists-in-config-sync | Device-local project lists in configuration sync | Accepted |
| s3-only-configuration-backup-sync | S3-only encrypted configuration backup and synchronization | Accepted; supersedes WebDAV decisions in 0300 / 0301 |
| remote-provider-import | Explicit provider import into a running remote Host | Accepted for the experimental SSH MVP |
| remote-project-home-workflow | Remote projects in the shared Chat home workflow | Accepted |
| parallel-read-batches | Ordered preparation and parallel read batches | Proposed |
| composer-mcp-invocations | Composer MCP Invocations | Accepted |
| chronological-system-transcript | Preserve chronological model system state | Accepted |
| mcp-tool-approval-risk | User MCP tools keep the normal approval path | Accepted |
| models-dev-catalog-authority | models.dev owns published model metadata | Accepted for implementation |
| pi-ai-core-0991-authority | Pi 0.99.1 account model authority | Superseded for chat model metadata |
| plan-tool-declarations-and-execution-denials | Keep known tool declarations while denying contract-mode execution | Accepted for implementation |
| trusted-extension-operation-ownership | Trusted extension operation ownership | Implemented candidate |
| scheduled-desktop-automations | Desktop automation scheduling | Accepted for implementation |
| subagent-model-fallback | Ordered subagent model fallback | Accepted for implementation |
| subagent-model-opt-in | Separate Subagent Model Opt-In from Definition Pins | Accepted for implementation |
| 0001 | Use Electron as the desktop shell | Accepted |
| 0002 | Use the pi Agent Harness as the kernel | Accepted |
| 0003 | Hybrid runtime — Rust host core + Node pi agent sidecar | Superseded in part |
| 0004 | No remote Gateway in the MVP | Accepted |
| 0005 | User-installable plugin system | Accepted |
| 0006 | Postpone the plugin marketplace; build the local plugin runtime first | Accepted |
| 0007 | Plugin distribution package format uses .piplug (zip) | Accepted |
| 0008 | Plugin runtime targets isolation in a separate process | Accepted (Target) |
| 0009 | English-first globalization | Accepted |
| 0010 | Use Rust as backend host core | Accepted |
| 0011 | Freeze host RPC, storage ownership, and mode defaults | Accepted |
| 0012 | Universal provider/model coverage via pi-ai + OpenAI-compatible extensibility | Accepted |
| 0013 | Consolidate settings navigation into four destinations | Superseded in part by 0026 |
| 0014 | Adopt host-owned storage schema v2 | Accepted |
| 0015 | Make settings content responsive to window width | Accepted |
| 0016 | Organize the sidebar around retained multi-project tabs | Accepted |
| 0017 | Remove composer workspace context rail | Accepted |
| 0018 | Carry thinking mode through the complete session pipeline | Accepted |
| 0019 | Work panel subsystems (embedded browser, git review, file browsing) | Superseded in part by 0108 |
| 0020 | Configuration provider studio | Accepted |
| 0021 | Platform application chrome | Superseded in part by 0025 |
| 0022 | Application Update Delivery | Accepted |
| 0023 | Independent Conversation Session Fork | Accepted |
| 0024 | Composer Slash Commands and @ File References | Accepted |
| 0025 | Keep Application Menus out of Windows/Linux Windows | Accepted |
| 0026 | Move the Projects Index into Settings as an Archive | Superseded in part by 0036 |
| 0027 | Make pi-ai authoritative for model metadata | Superseded for chat metadata |
| 0028 | Scope work-panel runtime contexts to conversations | Accepted |
| 0029 | Separate native-window and work-panel resize ownership | Superseded in part by 0032 |
| 0030 | Turn-boundary context checkpoint compaction | Accepted |
| 0031 | Keep composer prompt rows free of brand icons | Accepted |
| 0032 | Reserve native width for the docked work panel | Accepted (amended by 0033 and 0122) |
| 0033 | Internal-dock work panel (no native window expansion) | Superseded by 0122 |
| 0034 | Merge the command palette into global search | Accepted |
| 0035 | Surface the OS locale through the preload bridge | Accepted |
| 0036 | Split Settings into AI and Shortcuts destinations | Accepted |
| 0037 | Resolve project instructions in Electron main | Accepted |
| 0038 | Bridge plugin-declared MCP servers in Electron main | Accepted |
| 0039 | Activate plugin skills and ship plugin authoring as a first-party devkit | Accepted (skill delivery revised by D174) |
| 0040 | Resident plugin services and the inter-plugin message bus | Accepted |
| 0041 | Bound host runtime resources and decouple message persistence | Accepted |
| 0042 | Message-scoped inline review cards | Superseded by 0043 |
| 0043 | Message-owned review snapshots and guarded rollback | Accepted |
| 0044 | Session-bound project instruction preflight | Accepted |
| 0045 | Bash tool inherits the user's login-shell PATH | Accepted (amended D600 / issue #571) |
| 0046 | Categorized process log files | Accepted |
| 0047 | Context usage inspector with exact and estimated token sources | Accepted |
| 0048 | Lazy per-turn tool activation | Accepted |
| 0049 | Recover automatic context compaction failures with a retained tail | Accepted (preflight guard amended by ADR 0282) |
| 0050 | Bounded provider stream recovery and diagnostics | Accepted |
| 0051 | Isolate host RPC stdio from the Tokio blocking pool | Accepted |
| 0052 | Plan operating state and approval boundary | Superseded by 0053 |
| 0053 | Plan checkpoint artifact, approval, and execution epoch | Accepted for implementation |
| 0054 | Selectable command shell catalog and execution identity | Accepted for implementation |
| 0055 | Agent-only mode; Chat becomes an internal read-only profile | Superseded by 0052 / 0053 |
| 0056 | User-owned MCP servers and skills, with a shared activation scope | Accepted |
| 0057 | Permission-gated external paths and portable native search | Accepted for implementation |
| 0058 | Extensions Page Density and Theme-Readable Button Surfaces | Accepted |
| 0059 | Persist Composer Clipboard Files in Session Scratch | Accepted (amended 2026-09-14 for #138: prefer editable clipboard text over generated image copies) |
| 0060 | Archive the Regenerate Branch Under the RPC Lock | Accepted |
| 0061 | Imperceptible background context compaction | Accepted (amends 0030 / 0049; clauses 2/4/6/7/8 amended by 0064) |
| 0062 | Bounded Subagents Behind a Task Tool | Accepted for implementation (maxTurns clause withdrawn by 0253) |
| 0063 | A Managed Surface for Global Subagent Definitions | Accepted for implementation (maxTurns field withdrawn by 0253) |
| 0064 | Codex-parity context compaction | Accepted (amended by D623 / issue #970: 90% inline trigger) |
| 0065 | Smooth shell layout and stream feedback | Accepted for implementation |
| 0066 | Empty home direct bottom composer | Accepted for implementation (amends D111) |
| 0067 | ChatGPT-inspired empty-home starter guidance | Superseded by D206 |
| 0068 | Add a keyboard entry point for the work panel | Accepted for implementation |
| 0069 | Make native-tool path mistakes recoverable | Accepted for implementation |
| 0070 | Separate Composer File-Reference Display from Prompt Serialization | Accepted for implementation |
| 0071 | Adopt an Apple-Inspired Global Corner Hierarchy | Accepted for implementation |
| 0072 | Add a global plugin launcher | Accepted for implementation |
| 0073 | Stage next-turn composer configuration and preserve stopped throughput | Accepted for implementation |
| 0074 | Native notification permission for plugins | Accepted |
| 0075 | Manual reload for development-plugin permission ceilings | Accepted |
| 0076 | Capture the Windows-reserved plugin launcher chord in host-core | Accepted |
| 0077 | Add an interactive multi-question asktool | Accepted for implementation |
| 0078 | Cross-platform tray-resident minimize | Accepted for implementation (amended by 0117, 0123, and tray-session-shortcuts) |
| 0079 | Use VitePress for the bilingual documentation site | Accepted |
| 0080 | Prewarm the global plugin launcher after boot | Accepted |
| 0081 | Host-owned cross-platform plugin panel chrome | Accepted |
| 0082 | Localized and page-adaptive plugin panel chrome | Accepted |
| 0083 | Custom global UI font | Superseded in part by 0298 |
| 0084 | Defer new-task session creation until the first message | Accepted |
| 0085 | Make the work panel shortcut a toggle | Accepted (amends 0068) |
| 0086 | Keep macOS on the regular activation policy | Accepted |
| 0087 | Replace textual Edit matching with a line-anchored, tag-verified contract | Accepted for implementation (amends 0043 / 0069) |
| 0088 | Plugin file access is declared per mode, and deletion is recoverable | Accepted (continues 0008 D009) |
| 0089 | Proactive Background Subagent Delegation | Accepted for implementation |
| 0090 | User-Configurable Close Behavior with Close-to-Tray | Accepted for implementation |
| 0091 | Route provider rate limits through bounded same-turn retry | Accepted (amends 0050) |
| 0092 | Use a plugin-owned surface with a host window-control capsule | Accepted |
| 0093 | Keep a strict 46px plugin drag band with a minimal capsule | Accepted |
| 0094 | Admit one desktop instance per data directory | Accepted |
| custom-storage-location | Custom storage location with cold migration | Accepted |
| 0095 | Sign in with a vendor account instead of pasting an API key | Accepted for implementation |
| 0096 | Flatten the Settings directory and colocate marketplace source configuration | Accepted |
| 0097 | Place global defaults under the AI settings destination | Accepted |
| 0098 | Treat every vendor OAuth account as an independent provider row | Accepted for implementation |
| 0099 | Add titled visual clusters to the Settings directory | Accepted |
| 0100 | Make builtin subagents inherit the parent permission mode | Accepted |
| 0101 | Model-aware image attachment transport | Accepted |
| 0102 | Publisher-owned plugin source with a Git-hosted artifact store | Accepted for implementation (supersedes 0006) |
| 0103 | Compact context usage summary | Accepted (amends 0047) |
| 0104 | Plugin-contributed work panel views | Accepted |
| 0105 | Ship Files as a bundled plugin; keep Review in the host | Superseded by 0241 |
| 0106 | Keep only five core builtin commands | Accepted |
| 0107 | Make current-session task notification suppression atomic | Accepted |
| 0108 | Remove the built-in interactive terminal | Accepted |
| 0109 | Open Files entries with the OS-associated application | Accepted |
| 0110 | Version the plugin panel chrome spacing contract | Accepted |
| 0111 | Reveal Files in the OS File Manager | Accepted |
| 0112 | Agent Capability Management Roots and Settings IA | Accepted |
| 0113 | Persist the New Task empty slot immediately and deduplicate it by message count | Accepted |
| 0114 | Persist Provider Model Bindings and Thinking Configuration | Accepted |
| 0115 | Keep plugin clipboard history host-owned and in memory | Accepted (amended 2026-08-21) |
| 0116 | Add OpenCode Go as a Fixed Provider Preset | Accepted (amended: session routing headers) |
| 0117 | Preserve the Windows taskbar entry for native minimize | Accepted |
| 0118 | Keep queued prompts renderer-owned and stop runs at turn boundaries | Accepted |
| 0119 | Event-Driven Subagent Timeouts | Accepted for implementation (killing policy amended by 0166; maxTurns clauses withdrawn by 0253) |
| 0120 | Bounded Session History Windows | Accepted |
| 0121 | Keep Composer prompt enhancement one-shot and main-owned | Superseded by 0324 |
| 0122 | Reserve native width while the work panel is visible | Superseded by 0151 |
| 0123 | Use native taskbar minimize for Windows/Linux window controls | Accepted |
| 0124 | Bind Temporary Sessions to Their Own Scratch Workspace | Accepted |
| 0125 | Renderer Ships Derived Brand Marks and Minified Output | Accepted |
| 0126 | Agent Capability Pages Are One Workbench That Can Author | Accepted (maxTurns clause withdrawn by 0253) |
| 0127 | Transcript Layout Index and Identity-Based Truncation | Accepted |
| 0128 | Share one bounded budget for transient provider failures | Accepted |
| 0129 | The Subagent Idle Watchdog Bounds Silence, Not Slowness | Amended by 0166 (watchdogs no longer kill) |
| 0130 | Bounded Mounted Transcript Window | Accepted |
| 0131 | Spill Large Composer Text Pastes into Session Scratch | Accepted |
| 0132 | Attribute cross-display window moves to the user | Accepted |
| 0133 | Use models.dev as the primary model catalog with pi-ai fallback | Superseded for chat metadata by models-dev-catalog-authority |
| 0134 | Use models.dev as the sole model metadata source with a local snapshot | Superseded for chat metadata by models-dev-catalog-authority |
| 0135 | Retry unchanged edited prompts | Accepted |
| 0136 | Preserve the active task boundary across context compaction | Accepted |
| 0137 | Retained Session Panes | Accepted (amends 0130 clauses 4/5) |
| 0138 | Subagent Peer Messaging | Superseded by 0147 |
| 0140 | Fold the Three Peer Tools Into One Peer Tool | Superseded by 0147 |
| 0141 | Make Expanded Sidebar Width User-Resizable | Accepted |
| 0142 | Allow non-loopback HTTP MCP endpoints with explicit risk disclosure | Accepted |
| 0143 | Make Session Titles User-Renamable | Accepted |
| 0144 | Allow User-Configured Thinking-Level Overrides | Accepted |
| 0145 | Publish Native macOS Intel Artifacts | Accepted (amended by D353 / 0191) |
| 0146 | Assign outer and inner work-panel resize ownership by boundary | Superseded by 0151 |
| 0147 | A2A Protocol Stack for Subagent Coordination | Superseded by 0165 |
| 0148 | Explicitly disable application keyboard shortcuts | Accepted |
| 0149 | Calm transcript running-status motion | Accepted |
| 0150 | Inline SVG empty-home agent mark | Superseded by 0152 |
| 0151 | Keep the work panel inside the fixed application window | Accepted |
| 0152 | Eight-frame empty-home mascot GIF | Accepted |
| 0153 | Checkpoint the streaming reply beside the transcript | Accepted |
| 0154 | Reveal the New Task empty destination before host IO | Accepted |
| 0155 | Add Zhipu / Z.AI Named Endpoint Presets | Accepted |
| 0156 | Simplify the Add-Provider Common Path | Accepted |
| 0157 | Main-owned GitHub issue feedback | Accepted |
| 0158 | Keep approval cards focused and remember the selected mode | Accepted |
| 0159 | Generated plugin settings and plugin-local shortcuts | Accepted |
| 0160 | Shipped locale registry and searchable language picker | Accepted (amended by 0182) |
| 0161 | Searchable theme picker matching language | Accepted |
| 0162 | Cross-session A2A addressing | Superseded by 0165 |
| 0163 | Transcript File References Render as Previewable Chips | Accepted |
| 0164 | Parent agents collaborate across conversations | Superseded by 0165 |
| 0165 | Withdraw the A2A / Peer coordination stack | Accepted (supersedes 0147 / 0162 / 0164) |
| 0166 | Parent-judged subagent lifetime | Accepted (amends 0089 / 0119 / 0129; fatal-error path amended by 0189; maxTurns backstop withdrawn by 0253) |
| 0167 | Agent-chosen Bash timeout | Accepted (amends 0054 / D190 / D273) |
| 0168 | Main-owned http(s)/mailto allowlist for openExternal | Accepted (amends 0109) |
| 0169 | Classified file preview and live workspace events for plugin views | Accepted (amends 0104 / 0105 / 0109 / 0111) |
| 0170 | Ship the work-panel browser as a bundled plugin over public CDP | Accepted (amends 0019 / 0104 / 0105) |
| 0171 | Host-owned completed-turn token history | Accepted (amended by 0173) |
| 0172 | Contained in-chat image display | Accepted (amends fs/read workspace-only clause) |
| 0173 | Plugin-owned token usage dashboard | Accepted (amends 0171) |
| 0174 | Host-owned plugin completions and session context | Accepted (amends D019) |
| 0175 | Explain quiet active turns with live agent activity status | Accepted |
| 0176 | Per-provider User-Agent override | Accepted (amends 0095 / 0156; header map superseded by 0178) |
| 0177 | User-configurable outbound proxy | Accepted |
| 0178 | Per-provider custom HTTP headers | Accepted (amends 0176 / 0095 / 0156) |
| 0179 | Import model configuration from local agent stores | Accepted |
| 0180 | Custom global UI type scale | Accepted |
| 0181 | Main-owned picker capabilities | Accepted |
| 0182 | Traditional Chinese shell locale | Accepted (amends 0160) |
| 0183 | P0 international shell locales | Accepted (amends 0160 / 0182) |
| 0184 | Dock the context usage inspector in the composer toolbar | Accepted (amends 0047 / 0103) |
| 0185 | Korean shell locale | Accepted (amends 0160 / 0183) |
| 0186 | Summarize First-Turn Session Titles with a Main-Owned One-Shot | Superseded by 0323 |
| 0187 | Focus-Aware Native Task Notifications | Accepted (amends 0107 / D117) |
| 0188 | Preserve distinct credentials during model configuration import | Accepted (amends 0179 / D342) |
| 0189 | Parent fatal error aborts leftover delegates | Accepted (amends 0166 / D328) |
| 0190 | Host-gated large-file and dropped-file access | Accepted |
| 0191 | Label Both macOS Release Architectures | Accepted (amends 0145 / D353) |
| 0192 | Alias a configured model and make model ids copyable | Accepted (amends D266) |
| 0193 | Last-request occupancy in the context inspector | Accepted (amends 0047 / 0103 / 0184) |
| 0194 | Optional subagent thinking override | Accepted for implementation |
| 0195 | Viewport-fixed work panel toggle | Accepted (amends 0068 / 0085) |
| 0196 | Show provider retry causes in the active-turn status | Accepted (amends 0175) |
| 0197 | Publish a Windows Portable Package | Accepted (amends 0022 / D126 / D603) |
| 0198 | Name every quiet interval on the live activity row | Accepted (amends 0175 / 0186) |
| 0200 | Host-owned plugin session import and ownership API | Accepted |
| 0201 | Explicit plugin project ids and host-owned session refresh | Accepted |
| 0202 | Expose effective subagent thinking metadata | Accepted |
| 0203 | Local MCP control plane for desktop operations | Accepted (amended by D372) |
| 0204 | Explicit unsigned macOS first-launch helper | Superseded for macOS distribution by 0309 |
| 0205 | Remote Agent Control uses a dedicated Host boundary | Accepted for implementation (post-MVP; amended by D374, D375, and D385) |
| 0206 | Extend provider retries and show bounded progress | Accepted |
| 0207 | Allow three same-path mutation recovery failures | Accepted (amends 0087 / D186) |
| 0208 | Plugin desktop control requires native user consent | Accepted |
| 0209 | PowerShell 7 as a selectable Windows command shell | Accepted (amends 0054 / D190; issue #151 / PR #191) |
| 0210 | Subagent output-token cap | Accepted (extends 0062 / 0063; maxTurns clauses withdrawn by 0253; issue #171 / PR #193) |
| 0211 | Plan-safe plugin actions for read-only inspection | Accepted (amends 0052 / 0053 / 0170; D384) |
| 0212 | Remove diagnostic timing log streams | Accepted (amends 0046 / D183) |
| 0213 | Persist the Host-owned turn queue in host-core | Accepted |
| 0214 | Trusted extensions run in the Agent sidecar | Accepted (v1 implemented; amended by D388 / ADR 0215) |
| 0215 | Agent extensions are a plugin contribution | Accepted (implemented) |
| 0216 | Truncate regenerates under the RPC lock | Accepted (amends 0060 / 0127; issue #211) |
| 0217 | Host stdout sender must not outlive serve | Accepted (amends 0216; issue #211) |
| 0218 | Effective image-input overrides across Composer and transport | Accepted (amends 0101 / D243) |
| 0219 | User-invoked Skills in the composer slash menu | Accepted (amends D123 / D174 / ADR 0024 / ADR 0039) |
| 0220 | Keep Windows work-panel chrome single-purpose | Accepted (amends D154 / D357 / ADR 0195) |
| 0221 | Render canonical thinking-level values without translation | Accepted (amends D369 / ADR 0202) |
| 0222 | Native file and folder drops in the Composer | Accepted (amends ADR 0101 / D397) |
| message-quotes-and-side-chats | Message quotes and renderer-owned side chats | Superseded by 0268 |
| response-annotations | Response annotations as prompt attachments | Superseded by 0268 |
| floating-annotation-index | Floating annotation index and source locations | Superseded by 0268 |
| 0223 | Context Usage Display Preference | Accepted (amends 0184) |
| 0224 | Right panel tab strip and data-driven add menu | Accepted (issue #229) |
| 0225 | Restore deferred tools from effective session context | Accepted (issue #225) |
| 0226 | Reserve chat width for composer controls | Accepted |
| 0227 | Project group manual ordering | Accepted (amended by 0228) |
| 0228 | Long-press the project title to reorder | Accepted (amended by 0229) |
| 0229 | Press-and-move project title reorder | Accepted (amends 0228) |
| 0230 | Skill ships with the Agent core tool set | Accepted (amends D174 / ADR 0048 / ADR 0219; issue #204) |
| 0231 | Ideographic comma opens the composer slash menu | Accepted (amends D123 / D139 / ADR 0024; issue #65) |
| 0232 | Keep macOS DMG opening guidance text-only | Superseded for macOS distribution by 0309 |
| 0233 | Renderer-owned multi-folder project creation | Accepted (amends ADR 0011 / ADR 0016) |
| 0234 | Keep project memory host-owned and path-scoped | Accepted |
| 0235 | Preserve domain facades and enforce architecture budgets | Accepted |
| 0236 | Restore archived projects when session import adds a bound session | Accepted |
| 0237 | Keep Session Orchestration in an Official Plugin | Accepted |
| 0238 | Prioritize MainChat in the three-column shell | Accepted (amends ADR 0226) |
| 0239 | Host-owned session collaboration messages | Accepted (amends ADR 0237 / 0165 / 0213; amended by D446) |
| 0240 | Independent session discovery and navigable collaboration projections | Accepted (amends ADR 0239) |
| 0241 | Ship the file view as a vendored, updatable plugin | Accepted (supersedes ADR 0105; issue #304) |
| 0242 | Delta-only coalesced streaming updates | Accepted (amends 0127 / 0130 / 0149 / 0153; issue #299) |
| 0243 | Skill market public-HTTPS catalog fetch | Accepted (amends 0009; issue #287 / PR #290) |
| 0244 | Bound dependency installation for imported extensions | Accepted |
| 0245 | Harden the MCP market public-network boundary | Accepted |
| 0246 | Opt-in subagent inheritance of the parent tool catalog | Accepted (amends 0062; issue #215 / PR #319) |
| 0247 | Git clone accepts only syntactically public hosts | Accepted (amends home git clone; D416) |
| 0248 | Package theme assets and contributed window backgrounds | Accepted (issue #335) |
| 0249 | ChatGPT-style logical project groups | Accepted (amends ADR 0233 / ADR 0234 / ADR 0016) |
| 0261 | Plugin Appearance Extensions | Accepted for implementation |
| 0251 | Deleting a project removes its owned sessions | Accepted |
| global-sidebar-pins | Show pinned conversations in a global sidebar section | Accepted (amends ADR 0016; issue #306) |
| 0250 | Structured, bounded, and redacted process logs | Accepted for implementation |
| 0262 | Chat file references complete in main and open in the file view | Accepted (amends ADR 0163 / ADR 0241) |
| 0263 | Expose a project's folder roots and complete references across them | Accepted (amends ADR 0262; ADR 0249 §5) |
| 0264 | Host-mediated file actions follow the folder a view is browsing | Accepted (amends ADR 0263; ADR 0249 §5) |
| active-turn-steering | Bind Composer steering to the active durable turn | Accepted (active-turn-steering; issue #164) |
| 0252 | Host turn-end event for plugins | Accepted (D422) |
| 0253 | Remove the subagent turn limit | Accepted (supersedes the maxTurns clauses of 0062 / 0063 / 0119 / 0126 / 0166 / 0210) |
| 0254 | Continue native Pi sessions in their canonical JSONL | Accepted (amends baseline D007; D421) |
| 0257 | Host-mediated real-time capabilities for plugins | Accepted for implementation |
| 0258 | Trusted extension custom agents | Accepted for implementation (D426; issue #401) |
| 0259 | Plugin-declared providers are Host-owned rows | Accepted for implementation (D427) |
| 0255 | Theme assets are absolute paths | Accepted |
| 0256 | Preserve DeepSeek reasoning across context compaction | Accepted |
| 0260 | Plugin runtime theme APIs and sidebar image token | Accepted for implementation |
| 0265 | Priority block and row actions for the Host-owned turn queue | Accepted for implementation (D429; amends ADR 0213 / 0118) |
| session-content-search | Discover sessions by indexed message text | Accepted |
| transcript-reading-ownership | Share renderer history and search views | Accepted |
| 0266 | Plugin fs roots follow the calling session | Accepted (D093) |
| tray-session-shortcuts | Bounded session navigation in the native tray | Accepted (amends ADR 0078; issue #293) |
| 0267 | Plugin labels follow the app language | Accepted (amends 0160; ADR 0182) |
| 0270 | Builtin subagents can be switched off | Accepted for implementation (amends ADR 0063; ADR 0112) |
| 0271 | Rebuild the shared provider transport after repeated unanswered failures | Accepted for implementation (issue #234) |
| 0269 | Move capability documents between the global and project levels | Accepted for implementation (amends ADR 0112) |
| 0268 | Remove quotes, annotations, and side chats | Accepted (supersedes message-quotes-and-side-chats / response-annotations / floating-annotation-index) |
| 0272 | Judge a public-network address on the route the request will dial | Accepted for implementation (amends ADR 0243; issue #419 / PR #473) |
| 0273 | Git checkout as a Create project source | Accepted for implementation (amends ADR 0233; ADR 0247) |
| 0274 | A development plugin is reviewed before it is loaded | Accepted for implementation (amends ADR 0005) |
| 0275 | A floating widget placement for plugin panels | Accepted for implementation (amends ADR 0093 §4; ADR 0092 / ADR 0110) |
| 0276 | Official plugin channel and backup channels | Accepted for implementation (amends ADR 0102; D442) |
| 0277 | Draggable chat content width | Accepted (D439) |
| 0278 | Canonical application ID net.aiuo.pi-desktop | Accepted (D443; amends D141 / D371 / ADR 0204; issue #524) |
| 0279 | Resumable subagent delegations | Accepted for implementation (amends ADR 0062; ADR 0089; issue #513) |
| 0280 | Plugin-owned UI localizes from the host locale | Accepted (amends ADR 0267; ADR 0159) |
| 0281 | Host speech capability | Accepted for implementation (amends ADR 0257) |
| 0282 | Retry and right-size the compaction summary before retained-tail recovery | Accepted (amends ADR 0049; issue #543) |
| 0283 | Remote MCP server OAuth 2.1 authentication | Accepted |
| 0284 | Headless runtime boundary in packages/host-runtime | Accepted for implementation (D447; ADR 0205 R2 prerequisite) |
| 0285 | RACP-WS transport in packages/racp | Accepted for implementation (D448; ADR 0205 R2) |
| 0286 | Remote-host desktop kernel | Accepted for implementation (D449; ADR 0205 R2) |
| 0287 | Host-rendered plugin scenic Settings surfaces | Accepted for implementation |
| 0288 | Package-local theme assets remain available | Accepted for implementation (amends ADR 0255) |
| 0289 | Signed macOS GitHub Releases and in-app update delivery | Accepted (D450; amends ADR 0022 / 0145 / 0191 / 0204 / D078) |
| 0290 | Restore resizable sidebar width with collapse-below-threshold | Accepted (D459; amends ADR 0141 / ADR 0238) |
| 0291 | Remove the speech settings UI | Accepted (amends ADR 0281) |
| 0292 | SSH bootstrap for remote hosts | Accepted for implementation (D453; ADR 0205 R2b, extends ADR 0286) |
| 0293 | SSH password authentication for the remote-host bootstrap | Accepted (D454; amends ADR 0292) |
| 0294 | Project archive is a list + inspector workbench | Accepted (D455; amends D267 / D168) |
| 0295 | Session thinking-parameter omission | Accepted (D456; amends ADR 0194 / ADR 0144 / ADR 0221) |
| 0296 | Signed macOS DMG is a two-icon install | Accepted; ZIP guidance superseded by 0309 (D634) |
| 0297 | Provider-hosted web search as an adapter capability | Accepted |
| 0298 | The app ships no fonts | Accepted (D598; amends ADR 0083 / D232) |
| 0299 | Subagent context budget and delegate compaction | Accepted for implementation (amends ADR 0064; extends ADR 0062 / ADR 0279) |
| 0300 | Host-owned encrypted portable configuration sync | Partially superseded by S3-only configuration backup/sync |
| 0301 | Explicit append-only WebDAV compatibility mode | Superseded by S3-only configuration backup/sync |
| 0302 | A failed compaction keeps the recent window, and an oversized summary is chunked | Accepted for implementation (issue #827; amends ADR 0049 / ADR 0282) |
| 0303 | A skill package carries resources far above the document cap | Accepted for implementation (amends ADR 0300) |
| 0304 | Trust the network endpoints the user enters themselves | Accepted for implementation (amends ADR 0243 / 0245 / 0247; follows ADR 0142 / 0257 / 0300) |
| 0305 | Keep scheduled-task execution settings task-owned | Accepted for implementation (amends scheduled-desktop-automations) |
| 0306 | Brazilian Portuguese (pt-BR) shell locale | Accepted (amends ADR 0160 / 0183 / 0185) |
| 0307 | Sync the API-key service catalog with pi-ai's built-in providers | Accepted (amends ADR 0012 / 0020 / 0116 / 0155) |
| 0308 | Remove the Pull Requests destination and listing tool | Accepted |
| 0309 | Remove bundled macOS first-launch guidance | Accepted (D634; amends D457 / ADR 0296) |
| 0310 | Keep local permission approvals pending until resolved | Accepted for implementation |
| 0311 | Recheck Live Work workspace identity at Host admission | Implemented candidate |
| 0312 | Session-scoped Todo checklist | Accepted for implementation |
| 0317 | Preserve Windows resizing without the native frameless rim | Accepted (D637) |
| 0313 | Default Live Work to the Current Composer Session | Accepted |
| 0315 | A spoken answer selects among an open asktool question's own options | Accepted for implementation (amends the Live Voice Work Session decision path for AskTool only) |
| 0316 | The Live Voice call bar is a docked desktop widget window | Accepted |
| turn-process-and-thinking-display | Turn process and thinking presentation | Accepted |
| provider-display-order | Provider display order | Accepted |
| registry-header-variable-spelling | Remote header variables accept the registry's {name} spelling | Proposed |
| provider-system-certificates | Desktop sidecar uses OS-trusted certificates | Accepted |
| image-generation-capability | Image generation as a configured Agent capability | Accepted |
| retained-browser-pages-per-tab | Retain a host-owned browser page per resource tab | Accepted |
| 0318 | Publish native Linux arm64 artifacts | Accepted (D638) |
| 0319 | Inline external imports in owning Settings destinations | Accepted (D645) |
| 0320 | Host-owned OAuth lifecycle for plugin providers | Accepted for implementation (D647; amends ADR 0259) |
| 0321 | Pin an acceptable address for mixed direct DNS answers | Accepted (D648; amends ADR 0272) |
| 0322 | Plugin providers appear in Add Service | Accepted for implementation (D650; amends ADR 0259) |
| 0323 | Make Session Title Generation a Standalone Plugin | Accepted (D652, amended by D654; supersedes ADR 0186) |
| 0324 | Make Composer Prompt Enhancement an Optional Plugin | Accepted (D653; supersedes ADR 0121) |
| 0325 | Smooth Windows main-window corner compositing | Proposed (implementation candidate; Windows E2E pending) |
| 0326 | Verified SSH Host installation and daily startup | Accepted for experimental implementation (amends ADR 0292; Linux SSH qualification and publication pending) |
| 0327 | Automatic remote Host version realignment | Accepted for experimental implementation (amends ADR 0326 item 6; Linux SSH qualification pending) |
| 0328 | Open arbitrary local files in the embedded Browser | Accepted (D657; amends ADR 0170; issue #1627) |
| 0329 | Isolate parallel sessions of one project in git worktrees | Accepted (Windows E2E pending) |
| 0330 | Open scoped HTML files in the work-panel Browser from plugins | Accepted |
| 0331 | Plugin session follow and host-owned work-panel reveal | Accepted |
| 0333 | A plugin-owned suggestion in the Composer placeholder | Accepted |
| 0334 | OpenAI Fast mode as a per-session switch gated by model settings | Accepted |
| plugin-fetch-redirect-policy | Host-enforced plugin fetch redirect policy | Accepted (implementation candidate for #1475) |
| local-agent-remote-workspace-tools | Local Agent and model requests for remote workspaces | Accepted for implementation | | 0332 | macOS keeps its translucent window surface with an opaque opt-out | Accepted (D665, amended by D666 and D667; supersedes the macOS vibrancy window backing from D348; issue #1064) | | gen-ui-inline-visualization | Inline generative UI visualizations | Accepted (D671) | | 0337 | Keep the request prefix stable across delegation settlements | Accepted (supersedes ADR 0279 §9) |
| model-reasoning-effort-override | Model reasoning effort override | Proposed |
