2.6 KiB
2.6 KiB
Planned Fixes and Enhancements
This document captures the next set of improvements and fixes for Dereth Tracker.
1. Chat Window Styling and Format
- Terminal-style chat interface
- Redesign the chat window to mimic Asheron’s Call in-game chat: monospaced font, dark semi-transparent background, and text entry at the bottom.
- Implement timestamped message prefixes (e.g.,
[12:34] character: message). - Support command- and system-level styling (e.g., whispers, party chat) with distinct color cues.
2. Incoming Message Parsing
- Strip protocol overhead
- Remove JSON envelope artifacts (e.g., remove quotes, braces) so only raw message text appears.
- Validate and sanitize incoming payloads (e.g., escape HTML, truncate length).
- Optionally support rich-text / emotes by parsing simple markup (e.g.,
*bold*,/me action).
3. Message Color Scheme
- Per-character consistent colors
- Map each character name to a unique, but legible, pastel or muted color.
- Ensure sufficient contrast with the chat background (WCAG AA compliance).
- Provide user override settings for theme (light/dark) and custom palettes.
4. Command Prompt Integration
- Client-side command entry
- Allow slash-commands in chat input (e.g.,
/kick PlayerName,/whisper PlayerName Hello). - Validate commands before sending to
/ws/liveand route to the correct plugin WebSocket. - Show feedback on command success/failure in the chat window.
- Allow slash-commands in chat input (e.g.,
5. Security Hardening
- Authentication & Authorization
- Enforce TLS (HTTPS/WSS) for all HTTP and WebSocket connections.
- Protect
/ws/positionwith rotating shared secrets or token-based auth (e.g., JWT). - Rate-limit incoming telemetry and chat messages to prevent flooding.
- Sanitize all inputs to guard against injection (SQL, XSS) and implement strict CSP headers.
6. Performance and Scalability
- Throttling and Load Handling
- Batch updates during high-frequency telemetry bursts to reduce WebSocket churn.
- Cache recent
/liveand/trailsresponses in-memory to relieve SQLite under load. - Plan for horizontal scaling: stateless FastAPI behind a load balancer with shared database or in-memory pub/sub.
7. Testing and Quality Assurance
- Automated Tests
- Unit tests for
db.save_snapshot, HTTP endpoints, and WebSocket handlers. - E2E tests for the frontend UI (using Puppeteer or Playwright) to verify chat and map functionality.
- Security regression tests for input sanitization and auth enforcement.
- Unit tests for
Refer to this list when planning next development sprints. Each item should be broken down into individual tickets or pull requests.