Architecture decision records
One short file per decision, numbered in order. Written when the decision is made, not afterwards — see CLAUDE.md section 8.
Copy 0000-template.md. Every ADR carries a “What failed” section.
| ADR | Title | Status |
|---|---|---|
| 0001 | Out-of-process pane hosts, and the rule that actually keeps the shell alive | accepted |
| 0002 | Terminal stack: .NET 10 + Avalonia, adopted VT engine behind our own interface | accepted |
| 0003 | Foreign-app embedding: what “any Windows app” actually means | accepted |
| 0004 | Capturing the working directory: ship the shell snippets | accepted |
| 0005 | Layout engine: canonical mutable tree, geometric focus, format-neutral snapshots | accepted |
| 0006 | Session file format: TOML, with the layout tree flattened | accepted |
| 0007 | Hosting foreign windows: NativeControlHost, and embed only | accepted |
| 0008 | Out-of-process pane-host IPC and detach cleanup | accepted |
| 0009 | Phase 1 terminal runtime and named actions | accepted |
| 0010 | Phase 2 persistence runtime and cwd recovery | accepted |
| 0011 | Phase 3 foreign-app runtime and compatibility selection | accepted |
| 0012 | Phase 4 pane providers and built-in file browser | accepted |
| 0013 | Phase 5 platform layer | accepted |
| 0014 | Nested tab groups, tab placement, and a real toolbar | accepted |
| 0015 | Profiles, the application catalogue, and empty panes | accepted |
| 0016 | Looking like Windows 11 | accepted |
| 0017 | Input-queue attachment: measured | accepted |
| 0018 | Terminal.Emulation: the supply-chain position | accepted for 0.x |
| 0019 | Network filesystems: delegate to Windows, ship no client | accepted |
| 0020 | SFTP and FTP: implement them, because nothing else will | accepted |
| 0026 | Optional GPU rendering with software fallback | accepted |
| 0027 | Terminal input, responsive tabs and close protection | accepted; native acceptance open |
| 0028 | Resizable tabs, preserved names and terminal key ownership | accepted; native acceptance open |
| 0029 | Explorer folder launches and single-instance routing | accepted; native acceptance open |
| 0030 | A per-user installer, and updating from About | accepted |
| 0031 | Isolated development profile | accepted |
| 0032 | Safe foreign-window discovery | accepted |
| 0033 | Verified foreign-window reattachment | accepted |
| 0034 | DPI-aware foreign hosting | accepted |
| 0035 | Terminal row cache and frame clock | accepted |
| 0036 | ReadyToRun startup and safe deferral | accepted |
| 0037 | Pane chrome and failure surfaces | accepted for owner visual review |
| 0038 | Root tabs in the custom caption | accepted for owner visual review |