Architecture decision records
Decisions
One file per decision, numbered. Status is proposed, accepted or superseded. To change a decision, add a new ADR that supersedes it.
0001Record decisions as ADRs
accepted0002Implement Zagros in Go
accepted0003Native Win32 UI drawn with GDI
accepted0004Run resident in the system tray
accepted0005Extensions are Starlark packages in zip archives
accepted0006Android-style permissions declared in the manifest
accepted0007Themes and config are TOML
accepted0008Everything search through its DLL, with es.exe fallback
accepted0009Git-based marketplace with direct GitHub references
accepted0010Project site uses the Boxy design system, built by GitHub Actions
accepted0011Portable zip first, then winget and Scoop
accepted0012Core tools are native Go, the marketplace holds the extras
accepted0013Tab enters a scope instead of opening a native menu
accepted0014Host features reach extensions, and the API ships as stubs
accepted0015One registry of pure tools feeds the launcher, extensions, stubs and MCP
Launcher behaviour: a family keyword lists the likely variants for the typed text; Tab enters the family scope with every variant; name=value sets parameters; a :: b passes several texts; empty input accepted0016MCP API search for agents, and an opt-in update check
Update check: internal/update reads the latest GitHub release (public metadata only), compares semantic versions (tolerating git describe builds), caches the result, and picks the Windows asset for thaccepted0017Remembered picks per query and per Tab scope
The store is bounded and self-cleaning: 300 contexts (LRU), 6 items per context, queries of at most 40 characters, a 30 day half-life with deletion below a floor, deletion after three consecutive missaccepted0018Make the extension API findable by agents without embeddings
accepted0019Wider file, network, archive and database APIs inside the same sandbox
accepted0020Structured values and data-format groups in the tools registry
accepted0021Server databases and directories as host-scoped permissions
accepted0022A permissioned ai module with provider config, budgets and tool use
accepted0023Parallel HTTP and background tasks for slow extension work
accepted0024Raw sockets, DNS, TLS certificates and SSH for extensions
accepted0025The extension manager explains and configures extensions
accepted0026Loading, failure and log feedback for extensions
accepted0027Background updates for Zagros and extensions
accepted
accepted0002Implement Zagros in Go
accepted0003Native Win32 UI drawn with GDI
accepted0004Run resident in the system tray
accepted0005Extensions are Starlark packages in zip archives
accepted0006Android-style permissions declared in the manifest
accepted0007Themes and config are TOML
accepted0008Everything search through its DLL, with es.exe fallback
accepted0009Git-based marketplace with direct GitHub references
accepted0010Project site uses the Boxy design system, built by GitHub Actions
accepted0011Portable zip first, then winget and Scoop
accepted0012Core tools are native Go, the marketplace holds the extras
accepted0013Tab enters a scope instead of opening a native menu
accepted0014Host features reach extensions, and the API ships as stubs
accepted0015One registry of pure tools feeds the launcher, extensions, stubs and MCP
Launcher behaviour: a family keyword lists the likely variants for the typed text; Tab enters the family scope with every variant; name=value sets parameters; a :: b passes several texts; empty input accepted0016MCP API search for agents, and an opt-in update check
Update check: internal/update reads the latest GitHub release (public metadata only), compares semantic versions (tolerating git describe builds), caches the result, and picks the Windows asset for thaccepted0017Remembered picks per query and per Tab scope
The store is bounded and self-cleaning: 300 contexts (LRU), 6 items per context, queries of at most 40 characters, a 30 day half-life with deletion below a floor, deletion after three consecutive missaccepted0018Make the extension API findable by agents without embeddings
accepted0019Wider file, network, archive and database APIs inside the same sandbox
accepted0020Structured values and data-format groups in the tools registry
accepted0021Server databases and directories as host-scoped permissions
accepted0022A permissioned ai module with provider config, budgets and tool use
accepted0023Parallel HTTP and background tasks for slow extension work
accepted0024Raw sockets, DNS, TLS certificates and SSH for extensions
accepted0025The extension manager explains and configures extensions
accepted0026Loading, failure and log feedback for extensions
accepted0027Background updates for Zagros and extensions
accepted