file-maplisted
Install: claude install-skill alegauss/claude-tray
# File map (Claude Code Tray)
Every file under `src/`, one row each. **This file is a reference, consulted rather than read** —
which is why it lives here and not in [AGENTS.md](../../../AGENTS.md), whose whole content is loaded
on every turn against a byte budget (T219). AGENTS.md keeps the folder-level map and the placement
rules; the per-file detail is here, complete.
The sources live under `src/`, one folder per subsystem (T129–T132) — the folder is the map, this
file is the detail. **Where does a new file go?** In the folder of the subsystem it belongs to; the
repo root is for the project, not for code. The namespace stays **flat `ClaudeTray`** regardless of
folder, `lang/` never moves, and the csproj globs `**/*.cs` so a new folder needs no csproj edit —
AGENTS.md states all three, because getting them wrong costs a redo.
## `src/Tray/` — the resident app
| File | Responsibility |
|---|---|
| `src/Tray/Program.cs` | `Main` and nothing else: the arg dispatch that routes every flag, `ArgValue`, plus `StartupManager` (the HKCU Run entry) and `WpfInputBridge`. `Utf8Console` is the **one** place the console's code page is set (T283) — a property of being a read-out, not of any flag, and `--selftest` fails if a second file sets it. |
| `src/Tray/TrayContext.cs` | The resident app: tray icon, menu, poll/flash/update timers plus the 6h `_backgroundSample` one (context scan + activity-grid warm-up), `ApplySettings`, tooltip, icon render, the watched-profile list and `OpenMai