left4me/l4d2web/routes
mwiegand 553b280e40
feat(l4d2-web): backend for RCON console with persisted transcript
- POST /servers/<id>/console runs a command via rcon.execute_command and
  persists every outcome (success / empty / error) to command_history.
- GET /servers/<id>/console/history returns paginated newest-first JSON
  for client-side up-arrow recall.
- server_detail() now passes the last 50 history rows as console_history
  for server-side replay on page load.
- 404 on ownership mismatch — no admin override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 21:32:13 +02:00
..
__init__.py chore(l4d2): flatten component layout 2026-05-05 23:47:06 +02:00
auth_routes.py auth: stamp password_changed_at marker in session on login 2026-05-11 21:46:20 +02:00
blueprint_routes.py feat(l4d2-web): blueprint rename moves to footer modal — matches overlay/server pattern 2026-05-09 01:37:29 +02:00
console_routes.py feat(l4d2-web): backend for RCON console with persisted transcript 2026-05-14 21:32:13 +02:00
files_routes.py feat(files-overlay): user-managed file content as a third overlay type 2026-05-09 18:59:32 +02:00
job_routes.py feat(l4d2-web): managed global map overlays with daily refresh 2026-05-08 08:05:14 +02:00
log_routes.py feat(l4d2-web): server identity by id, name as display label 2026-05-08 19:22:09 +02:00
overlay_routes.py feat(files-overlay): user-managed file content as a third overlay type 2026-05-09 18:59:32 +02:00
page_routes.py feat(l4d2-web): backend for RCON console with persisted transcript 2026-05-14 21:32:13 +02:00
profile_routes.py profile: happy-path + cross-session invalidation tests 2026-05-11 21:58:26 +02:00
server_routes.py feat(l4d2-web): accept hostname on server update, default empty on create 2026-05-13 14:29:53 +02:00
workshop_routes.py workshop_routes: narrow refresh's steam exception handler 2026-05-11 23:08:41 +02:00