Skip to content

Architecture Decision Records

This directory holds kenny's architecture decisions in MADR format. Each record is one architectural decision — hard to reverse, cross-cutting, or moving a structural boundary. For the line between "this is an ADR" and "this is an implementation detail", see When (not) to write an ADR in the repository CLAUDE.md.

  • Records are numbered sequentially (NNNN-kebab-title.md), starting at 0001.
  • 0000-template.md is the MADR template — copy it for a new record (/new-adr).
  • A record is immutable once accepted; later decisions amend or supersede it via a new record rather than editing the old one in place.

Index

# Title Status
0001 Record architecture decisions using MADR accepted
0002 Python server, Rust agent accepted
0003 Self-built WebSocket/HTTPS tunnel accepted
0004 Agent initiates the outbound connection accepted
0005 Contract-first development with golden fixtures accepted
0006 MCP over Streamable HTTP between Claude and the server accepted
0007 Telemetry push model and SQLite storage accepted
0008 Operator authentication accepted
0009 Server-hosted Claude chat with a confirm-gate accepted
0010 Containerization (Docker/Compose) and GHCR accepted
0011 Local remote-control kill switch (tray on/off) accepted
0012 Agent distribution: prebuilt binary + config injection accepted
0013 Agent as a Windows service + server-triggered self-update accepted
0014 Auth hardening: token store, rotation, multi-operator, TLS cookie accepted
0015 Server auto-fetch of the prebuilt agent binary from GitHub Releases accepted
0016 Anthropic-native (underscore) capability tool names accepted
0017 Observability: structured logging and a persistent event store accepted
0018 Screenshots captured in the user session via the tray helper accepted
0019 AI recommendations and tool-aware auto-remediation accepted
0020 Agent-side deterministic safety guard for dangerous tool calls accepted
0021 Shared policy catalog, operator deny rules, and a server-side mirror accepted
0022 Orchestrate Windows Quick Assist as a concierge via user-session launch accepted
0023 Mutual agent⇄server authentication via per-agent Ed25519 signatures accepted
0024 Treat agent-supplied data as untrusted in the chat tool-use loop accepted
0025 Vendor a charting library (Apache ECharts) for the fleet Overview dashboard accepted
0026 Parental controls: web-activity observability and on-demand web filtering accepted
0027 Persistent, resumable copilot chat history accepted
0028 LLM categorization of reliability events accepted
0029 Push alerting via ntfy/webhook and a weekly digest accepted
0030 Server-side snapshot diff and trend engine accepted
0031 Security-inventory and resilience telemetry sections accepted
0032 Screen time as aggregated whole-machine session minutes accepted
0033 Agent self-elevating bootstrap installer + fixed install location accepted
0034 AI Forecast panel for the agent drill-down accepted
0035 First-class Linux agent support accepted
0036 Runtime settings resolved DB-over-env, editable in the dashboard accepted
0037 Multi-user authentication: accounts, roles, sessions, and per-user access tokens accepted
0038 Linux agent distribution: convenience install script + server-triggered self-update accepted
0039 Anti-cheat coexistence and publisher legitimacy accepted
0040 Report CPU arch via telemetry; pin arch for fresh Linux installs accepted
0041 OAuth 2.1 authorization server for the MCP connector accepted