ZAGROS

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
accepted
0002Implement Zagros in Go
accepted
0003Native Win32 UI drawn with GDI
accepted
0004Run resident in the system tray
accepted
0005Extensions are Starlark packages in zip archives
accepted
0006Android-style permissions declared in the manifest
accepted
0007Themes and config are TOML
accepted
0008Everything search through its DLL, with es.exe fallback
accepted
0009Git-based marketplace with direct GitHub references
accepted
0010Project site uses the Boxy design system, built by GitHub Actions
accepted
0011Portable zip first, then winget and Scoop
accepted
0012Core tools are native Go, the marketplace holds the extras
accepted
0013Tab enters a scope instead of opening a native menu
accepted
0014Host features reach extensions, and the API ships as stubs
accepted
0015One 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
accepted
0016MCP 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 th
accepted
0017Remembered 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 miss
accepted
0018Make the extension API findable by agents without embeddings
accepted
0019Wider file, network, archive and database APIs inside the same sandbox
accepted
0020Structured values and data-format groups in the tools registry
accepted
0021Server databases and directories as host-scoped permissions
accepted
0022A permissioned ai module with provider config, budgets and tool use
accepted
0023Parallel HTTP and background tasks for slow extension work
accepted
0024Raw sockets, DNS, TLS certificates and SSH for extensions
accepted
0025The extension manager explains and configures extensions
accepted
0026Loading, failure and log feedback for extensions
accepted
0027Background updates for Zagros and extensions
accepted