# Project Index Updated: 2026-04-02 ## Root - `000_START_HERE.md`: copy-ready continuation prompt for the next agent session - `.dockerignore`: trims Docker build context to runtime-relevant files only - `AGENTS.md`: repository workflow rules for autonomous contributors - `compose.example.yml`: tracked Docker Compose template for the bundled panel + 3proxy runtime; copy it to local `compose.yml` before production edits - `Dockerfile`: multi-stage image that builds the panel and compiles 3proxy - `README.md`: quick start and current project scope - `package.json`: frontend/backend scripts and dependencies, including combined local `dev` startup and websocket support - `tsconfig.server.json`: server type-check configuration - `vite.config.ts`: Vite + Vitest configuration plus local `/api` and `/ws` proxying to the control-plane backend ## Documentation - `docs/PLAN.md`: living implementation plan - `docs/PROJECT_INDEX.md`: this index - `docs/RESEARCH_3PROXY.md`: notes from official 3proxy documentation ## Frontend - `src/main.tsx`: application bootstrap - `src/App.tsx`: authenticated panel shell with API-backed login, `sessionStorage` token persistence, hash-based tab history, websocket snapshot patch sync, bounded reconnect/API fallback policy with connection notices, skeleton-first startup hydration, log-derived last-seen user labels, icon-based user actions, HTTP-safe proxy-link copying fallback, create/edit user modal flows, runtime stop control, localized labels, early theme application, and protected panel mutations - `src/SystemTab.tsx`: Settings tab with separate panel-settings and services cards, editable proxy endpoint, dirty-draft protection against incoming live sync, unified service type editing, remove confirmation, and generated config preview - `src/App.test.tsx`: login-gate, startup skeleton, preferences persistence, hash-tab restoration, websocket-sync safety, reconnect/logout fallback handling, clipboard fallback coverage, generated-credential/create-edit modal flows, runtime stop, pause/resume, delete-confirm, and settings-save UI tests - `src/app.css`: full panel styling including fixed-width icon action buttons, busy-state treatment, startup skeleton shimmer states, and connection banner styling - `src/data/mockDashboard.ts`: default panel state and frontend fallback snapshot - `src/lib/3proxy.ts`: formatting and status helpers, including byte scaling from `B` through `PB` - `src/lib/3proxy.test.ts`: paranoia-oriented tests for core domain rules and byte-format scaling boundaries - `src/lib/panelPreferences.ts`: `localStorage`-backed panel language/theme preferences plus theme application helpers with `system` as the default theme - `src/lib/panelText.ts`: English/Russian UI text catalog for the panel shell, user-edit actions, runtime controls, last-seen labels, and connection recovery notices - `src/shared/contracts.ts`: shared panel, service, user, and API data contracts including per-user last-seen metadata - `src/shared/validation.ts`: shared validation for user creation, system edits, service type mapping, and quota conversion - `src/test/setup.ts`: Testing Library matchers plus browser WebSocket test double ## Server - `server/index.ts`: backend entrypoint, runtime bootstrap, and HTTP server wiring for websocket upgrades - `server/app.ts`: Express app with login, protected panel state/runtime routes, live-sync change notifications, writable system configuration API with linked-user cleanup on removed services, and editable user records - `server/app.test.ts`: API tests for user management plus user editing, runtime stop, system-update safety, cascade delete, and config edge cases - `server/lib/auth.ts`: expiring token issuance and bearer-token verification for the panel - `server/lib/config.ts`: 3proxy config renderer, validation, and dashboard derivation for SOCKS/HTTP managed services - `server/lib/config.test.ts`: config-generation regression tests - `server/lib/liveSync.ts`: websocket broadcaster that emits `snapshot.init` and top-level `snapshot.patch` messages from runtime/store changes plus heartbeat-driven status decay and bounded reconnect-friendly behavior - `server/lib/liveSync.test.ts`: regression tests for patch-only websocket payload generation and heartbeat-driven refreshes - `server/lib/snapshot.ts`: runtime-backed dashboard snapshot assembly that combines stored panel state with parsed 3proxy traffic observations and derives user last-seen/status output - `server/lib/traffic.ts`: 3proxy access-log reader that derives current user usage, recent activity, last-seen timestamps, daily totals, and lightweight live-connection estimates - `server/lib/traffic.test.ts`: parser and empty-runtime regression tests for log-derived traffic metrics - `server/lib/runtime.ts`: managed 3proxy process controller with start/stop/restart/reload operations - `server/lib/store.ts`: JSON-backed persistent state store with legacy admin-service migration ## Static - `public/favicon.svg`: Vite default icon placeholder, to replace later