5.9 KiB
5.9 KiB
Plan
Updated: 2026-04-02
Active
- Keep replacing remaining seeded fallback signals with runtime-backed 3proxy data and extend the Docker-verified ingestion path beyond access-log-derived usage.
- Harden websocket-driven live sync and keep forms/edit flows resilient to concurrent runtime updates.
Next
- Wire real counter/log ingestion into dashboard traffic and user status instead of seeded snapshot values.
- Refine Docker/runtime behavior and document real host-access expectations and deployment constraints.
- Expand validation and tests around service mutations, credential safety, websocket reconnect behavior, and runtime failure reporting.
Done
- Researched official 3proxy documentation for config scripting, services, counters, reports, auth, and reload hooks.
- Initialized the repository and established autonomous agent workflow rules.
- Implemented the first UI slice with hardcoded panel auth, operator-focused dashboard, users table, and system config preview.
- Added paranoia-oriented tests for login gating, proxy link encoding, quota edge cases, and traffic share formatting.
- Simplified the UI into a calmer minimalist layout with reduced visual noise and denser operational presentation.
- Moved user creation into a modal flow and tightened the operator UX with quieter navigation and a denser users table.
- Rebuilt the UI shell from scratch around a stable topbar/tab layout with fixed typography and lower visual noise across window sizes.
- Corrected the user-creation flow to select a 3proxy service instead of assigning a per-user port, matching the documented 3proxy model.
- Stabilized the Users table copy action so the column no longer shifts when the button label changes to
Copied. - Added operator actions in the Users table for pause/resume and delete with confirmation modal coverage.
- Added a root quick-start prompt file so a new agent can resume implementation or fixes with minimal onboarding.
- Added a backend control plane with persisted state, 3proxy config generation, runtime actions, and API-backed frontend wiring.
- Added Docker build/compose runtime that compiles 3proxy in-container and starts the panel with a managed 3proxy process.
- Added backend tests for config rendering and user-management API edge cases.
- Added editable System settings with shared validation, a system update API, service/port conflict protection, and UI coverage for local save flows.
- Simplified the System tab layout by removing the redundant Runtime card and collapsing those fields into a compact settings section.
- Moved panel auth to server-issued expiring tokens with
sessionStoragepersistence and Compose-configurable credentials/TTL. - Restored panel language/theme preferences in Settings with
localStorage, merged serviceCommand/Protocolinto a singleType, and removed the legacyadminservice path from managed panel state. - Added service-removal confirmation with linked-user warnings, backend cascade deletion for removed services, and migration that strips persisted legacy
adminservices from stored state. - Made
npm run devstart both the Vite client and Express backend, added a Vite API proxy for local development, and restoredsystemas the default panel theme so the login screen follows OS appearance. - Re-separated the Settings tab into distinct panel-settings and services cards so panel preferences no longer appear inside the Services section.
- Restored editable proxy endpoint in panel settings so copied proxy URLs and displayed user endpoints can be corrected from the UI.
- Replaced seeded dashboard/user usage with live 3proxy access-log ingestion, derived user traffic/status from runtime logs, and added frontend polling so the panel refreshes runtime state automatically.
- Verified the new runtime-backed snapshot flow in Docker by sending real traffic through the bundled 3proxy services and observing live byte counters in
/api/state. - Replaced frontend polling with websocket live sync over
/ws, sending only changed top-level snapshot sections while keeping the currenthttp/wspath compatible with futurehttps/wssdeployment. - Stopped incoming runtime sync from overwriting dirty Settings drafts and added hash-based tab navigation so refresh/back/forward stay on the current panel tab.
- Verified websocket delivery in Docker over plain
ws://127.0.0.1:3000/wsby authenticating, receivingsnapshot.init, mutating panel state, and observing a follow-upsnapshot.patch. - Reworked Users actions into fixed-width icon buttons, added edit-in-modal flow, generated credentials only for new users, and blocked action buttons while commands are in flight.
- Added backend user-update support plus runtime stop control, then verified both in Docker by updating
u-1and stopping the real bundled 3proxy process through the API. - Added a websocket heartbeat so time-based status transitions such as
live -> idle/warnare recalculated predictably even when no new proxy events arrive. - Moved proxy-copy into the Users actions column, added a last-seen/online column from parsed 3proxy logs, and introduced bounded websocket/API reconnect attempts with a visible connection banner and forced logout after full recovery failure.
- Restored proxy-link copying for plain-
httpdeployments by falling back from the Clipboard API toexecCommand('copy'), and added regression coverage for both clipboard paths. - Replaced stale startup mock values with explicit skeleton loading states so the shell no longer flashes fallback dashboard/users/settings data before the first live snapshot arrives.
- Renamed the tracked Docker Compose file to
compose.example.ymland ignored localcompose.ymlso production-specific compose settings no longer get overwritten by pulls. - Expanded byte formatting to cover
KBthroughPB, improving dashboard totals, user usage, and quota remainder readability for both small and very large traffic values.