Commit graph

  • 196d2db33e
    feat(l4d2-web): seed example script overlays from examples/script-overlays/ master mwiegand 2026-05-08 18:41:08 +0200
  • 6b4eef22c2
    feat: server Reset action — wipe runtime, keep DB row mwiegand 2026-05-08 18:10:32 +0200
  • c8a2d563ce
    fix(l4d2-web): server delete job now removes the DB row mwiegand 2026-05-08 18:09:45 +0200
  • fb3c6be052
    feat(l4d2-web): per-overlay job list + redirect to job after build-triggering edits mwiegand 2026-05-08 17:44:22 +0200
  • 5e2c771276
    chore(l4d2-web): remove orphaned 'Global map overlays' admin section mwiegand 2026-05-08 17:25:15 +0200
  • ebddb0fab2
    chore(deploy): install p7zip + coreutils for script-overlay tooling mwiegand 2026-05-08 17:23:23 +0200
  • 406f2196f8
    fix(l4d2-web): write sandbox script tmpfile under LEFT4ME_ROOT, not /tmp mwiegand 2026-05-08 17:14:21 +0200
  • 023cc5c9b0
    fix(deploy): chown WAL+SHM sidecars too, not just left4me.db mwiegand 2026-05-08 17:11:42 +0200
  • f6ca85fc6f
    fix(deploy): chown left4me.db to left4me:left4me, not root:left4me mwiegand 2026-05-08 17:09:47 +0200
  • abc907b14b
    docs(specs): script sandbox v3 — egress filter design + plan mwiegand 2026-05-08 17:08:47 +0200
  • 7e66936d03
    feat(deploy): restrict script-sandbox egress to public internet only mwiegand 2026-05-08 17:04:57 +0200
  • ae443299c8
    chore(deploy): drop bubblewrap apt dep + tighten left4me.db mode mwiegand 2026-05-08 16:48:26 +0200
  • 4ee8f6af44
    refactor(deploy): rewrite left4me-script-sandbox to systemd-only — drop bwrap mwiegand 2026-05-08 16:47:30 +0200
  • efaaf84cd9
    docs(specs): script sandbox v2 — systemd-only design + plan mwiegand 2026-05-08 16:46:13 +0200
  • a62f26ba4a
    fix(l4d2-web): normalize CRLF to LF in script overlay POST mwiegand 2026-05-08 16:20:10 +0200
  • 908bca3687
    fix(l4d2-web): ScriptBuilder — chmod script tmpfile to 0644 for sandbox read mwiegand 2026-05-08 16:18:00 +0200
  • cf865d4915
    fix(deploy): one-shot cleanup of orphan overlay dirs after globals removal mwiegand 2026-05-08 16:16:33 +0200
  • 06ae84fbe4
    fix(deploy): script-sandbox helper — UID drop via systemd-run, --unshare-user-try, /etc/alternatives mwiegand 2026-05-08 16:12:46 +0200
  • 1e62a44c16
    docs(deploy): replace globals overlay description with script overlays mwiegand 2026-05-08 15:56:24 +0200
  • e51a4d58a4
    chore(deploy): provision l4d2-sandbox + bubblewrap; drop globals refresh timer mwiegand 2026-05-08 15:54:57 +0200
  • 75e703e1a4
    feat(deploy): left4me-script-sandbox helper + sudoers fragment mwiegand 2026-05-08 15:53:21 +0200
  • d351bcbee5
    feat(l4d2-web): script overlay UI mwiegand 2026-05-08 15:50:36 +0200
  • be22744d54
    feat(l4d2-web): script overlay routes (script update / wipe / build) mwiegand 2026-05-08 15:48:15 +0200
  • 879c54cbda
    refactor(l4d2-web): drop refresh_global_overlays from scheduler mwiegand 2026-05-08 15:45:34 +0200
  • 9f476e3456
    refactor(l4d2-web): drop global-overlays subsystem in favor of script type mwiegand 2026-05-08 15:43:41 +0200
  • d29afa41fa
    feat(l4d2-web): ScriptBuilder + BUILDERS registry update mwiegand 2026-05-08 15:39:13 +0200
  • 43dc9b0ccf
    feat(l4d2-web): script overlay schema — add overlay.script + last_build_status, drop globals tables mwiegand 2026-05-08 15:33:04 +0200
  • 78ead0b41d
    docs(specs): script overlay type — design + implementation plan mwiegand 2026-05-08 15:27:14 +0200
  • 9985ecc56c
    chore(deploy): cleanup left4me-web hardening + docs for kernel overlayfs mwiegand 2026-05-08 12:29:49 +0200
  • 172e574a00
    chore(deploy): drop fuse-overlayfs apt dep + one-shot migrate upper/work mwiegand 2026-05-08 12:28:00 +0200
  • 93a60befb6
    refactor(l4d2-host): start/stop/delete go through OverlayMounter; drop fuse module mwiegand 2026-05-08 12:26:28 +0200
  • d5b321b557
    feat(l4d2-host): KernelOverlayFSMounter + left4me-overlay helper mwiegand 2026-05-08 12:23:58 +0200
  • db120d77d3
    docs(specs): kernel overlayfs migration design + plan mwiegand 2026-05-08 12:19:26 +0200
  • d5d710afa7
    fix(l4d2-host): make stop_instance idempotent on the unmount step mwiegand 2026-05-08 11:24:04 +0200
  • 38548ab0d7
    chore(deploy): raise gunicorn thread pool to 32 for SSE headroom mwiegand 2026-05-08 11:19:03 +0200
  • 4552af6544
    fix(l4d2-web): keep SSE log stream from pinning gunicorn threads mwiegand 2026-05-08 11:18:56 +0200
  • ffc4cdbd7d
    refactor(l4d2-web): remove legacy external overlay type mwiegand 2026-05-08 09:31:04 +0200
  • 92d6ebbe82
    feat(l4d2-web): managed global map overlays with daily refresh mwiegand 2026-05-08 08:05:14 +0200
  • 4f78574edd
    fix(l4d2-web): keep workshop refresh responsive mwiegand 2026-05-07 17:31:12 +0200
  • 0e83ee07d7
    fix(deploy): make test deployments safe to rerun mwiegand 2026-05-07 17:16:58 +0200
  • b2a8d3d5e0
    feat(deploy): workshop_cache provisioning mwiegand 2026-05-07 16:53:49 +0200
  • ac020d1e77
    feat(l4d2-web): initialize-time guard for uncached workshop items mwiegand 2026-05-07 16:53:04 +0200
  • df1ccb4cca
    feat(l4d2-web): workshop overlay UI (routes + templates) mwiegand 2026-05-07 16:50:54 +0200
  • 38a6fbbe1e
    feat(l4d2-web): worker support for build_overlay and refresh_workshop_items mwiegand 2026-05-07 16:44:10 +0200
  • 700940d578
    feat(l4d2-web): overlay builder registry with workshop builder mwiegand 2026-05-07 16:40:30 +0200
  • f0230e17d3
    feat(l4d2-web): overlay path helpers and creation mwiegand 2026-05-07 16:38:39 +0200
  • c6b41429ee
    feat(l4d2-web): steam workshop API client and downloader mwiegand 2026-05-07 16:37:39 +0200
  • 2543a05c12
    feat(l4d2-web): typed overlays + workshop schema migration mwiegand 2026-05-07 16:35:13 +0200
  • b46f52258d
    docs(workshop): spec and plan for steam workshop overlays mwiegand 2026-05-07 16:25:13 +0200
  • d18b397330
    fix(host): create ~/.steam/sdk32 and sdk64 symlinks during install mwiegand 2026-05-07 02:11:27 +0200
  • 1968684c03
    fix(deploy): MountFlags=shared on web service for fuse mount propagation mwiegand 2026-05-07 02:01:24 +0200
  • 593611e194
    fix(deploy): drop PrivateTmp on web service so fuse mounts propagate mwiegand 2026-05-07 01:57:43 +0200
  • 56b9523d88
    fix(deploy): drop NoNewPrivileges on web service so FUSE mounts work mwiegand 2026-05-07 01:51:39 +0200
  • d14ed9c117
    feat(web): blueprint-prefilled create-server flow + empty-state CTA mwiegand 2026-05-07 01:47:33 +0200
  • 923a1840f4
    feat(web): forms in modals, edit/delete on detail pages, port auto-assign mwiegand 2026-05-07 01:30:33 +0200
  • 7d9939c71d
    fix(deploy): exclude macOS AppleDouble files from deploy archive mwiegand 2026-05-07 00:58:29 +0200
  • 0210ecd301
    config: allow SESSION_COOKIE_SECURE override and disable on test deploy mwiegand 2026-05-07 00:56:48 +0200
  • f81e839ba2
    security: harden boundary inputs and production defaults harden-boundary-inputs mwiegand 2026-05-07 00:53:33 +0200
  • 3809f85795
    fix: load environment variables for alembic upgrade in deploy script to ensure database url is set properly mwiegand 2026-05-06 21:01:35 +0200
  • 441c1db79b
    fix: change directory before running alembic upgrade in deploy script to avoid pyproject.toml permission issues mwiegand 2026-05-06 21:00:59 +0200
  • fa566db820
    fix: apply alembic migrations automatically on deployment mwiegand 2026-05-06 21:00:25 +0200
  • c01359002a
    fix: enable batch operations in alembic for sqlite unique constraints mwiegand 2026-05-06 20:59:18 +0200
  • 7e5a8f89b5
    docs: add server port constraint implementation plan mwiegand 2026-05-06 20:53:50 +0200
  • 114b141e2a
    test: add test for duplicate port constraint mwiegand 2026-05-06 20:53:04 +0200
  • fa002ce0f2
    feat: enforce unique port constraint on servers mwiegand 2026-05-06 20:52:46 +0200
  • 833ae318cf
    fix(deploy): add venv to PATH in left4me-web systemd service mwiegand 2026-05-06 20:45:37 +0200
  • 1604859f41
    feat(host): add step logging to steam_install mwiegand 2026-05-06 20:36:24 +0200
  • 005d2d8458
    fix(host): enforce flush=True to prevent pipeline block buffering mwiegand 2026-05-06 20:30:00 +0200
  • 27a905c22b
    feat(web): add boundary log lines to job worker execution mwiegand 2026-05-06 20:12:26 +0200
  • 38d04e8551
    feat(host): emit steps during start, stop, and delete operations mwiegand 2026-05-06 20:07:00 +0200
  • d977098344
    feat(host): emit steps during initialize_instance mwiegand 2026-05-06 20:02:02 +0200
  • 700b5be6f8
    feat(host): add _emit_step helper for lifecycle logging mwiegand 2026-05-06 19:57:56 +0200
  • ee144fad96
    feat(l4d2-web): add server creation form mwiegand 2026-05-06 19:41:04 +0200
  • bbfc528354
    feat(deploy): add production-like test deployment mwiegand 2026-05-06 19:30:10 +0200
  • de86139323
    feat(l4d2): add l4d2ctl host command boundary mwiegand 2026-05-06 16:35:20 +0200
  • a347829608
    feat(l4d2-web): add job pages and cancellation mwiegand 2026-05-06 15:05:13 +0200
  • 91d042cf33
    feat(l4d2-web): execute queued lifecycle jobs mwiegand 2026-05-06 14:08:18 +0200
  • df680f6226
    fix(l4d2-web): reject encoded unsafe redirects mwiegand 2026-05-06 13:24:04 +0200
  • 58fb8b2b63
    fix(l4d2-web): harden auth redirect targets mwiegand 2026-05-06 13:01:48 +0200
  • deca2c9153
    docs(l4d2-web): update auth contract mwiegand 2026-05-06 12:55:38 +0200
  • 0aca36506f
    feat(l4d2-web): add login page and safe redirects mwiegand 2026-05-06 12:52:22 +0200
  • 942dada807
    docs(l4d2-web): plan auth pages mwiegand 2026-05-06 12:48:03 +0200
  • 84f325bb03
    chore(l4d2-web): remove obsolete admin overlay template mwiegand 2026-05-06 12:44:06 +0200
  • 08b32bb26f
    docs(l4d2-web): design auth pages mwiegand 2026-05-06 12:40:15 +0200
  • 07495f9319
    docs(l4d2-web): update ui color contract mwiegand 2026-05-06 12:10:15 +0200
  • 4b326736fe
    feat(l4d2-web): add admin landing and system pages mwiegand 2026-05-06 12:09:36 +0200
  • feab09db07
    feat(l4d2-web): add form-based blueprint editor mwiegand 2026-05-06 12:09:08 +0200
  • 71004a9deb
    feat(l4d2-web): add server pages and lifecycle forms mwiegand 2026-05-06 12:08:19 +0200
  • 6559cf314e
    feat(l4d2-web): consolidate overlay catalog page mwiegand 2026-05-06 12:07:28 +0200
  • 881b6635f9
    feat(l4d2-web): add neutral shell and theme tokens mwiegand 2026-05-06 12:06:23 +0200
  • 98872727a7
    chore(l4d2): add worktree constraint and update color contract mwiegand 2026-05-06 11:57:04 +0200
  • d090750a50
    docs(l4d2-web): plan functional web ui mwiegand 2026-05-06 11:34:23 +0200
  • a766fe631d
    chore: ignore code index files mwiegand 2026-05-05 23:48:39 +0200
  • 288eda7c37
    chore(l4d2): flatten component layout mwiegand 2026-05-05 23:47:06 +0200
  • 7bac34c886
    docs(l4d2): document host prerequisites mwiegand 2026-05-05 23:30:34 +0200
  • 16412f37f2
    fix(l4d2): stabilize host smoke lifecycle mwiegand 2026-05-05 23:23:26 +0200
  • 2621b56627
    chore: ignore local sqlite runtime artifacts mwiegand 2026-04-23 01:24:53 +0200
  • d76d72f37e
    docs(l4d2-web): finalize blueprint-driven ui and deployment contracts mwiegand 2026-04-23 01:23:17 +0200
  • ec74563705
    feat(l4d2-web): add csrf, rate limiting, and sqlite reliability settings mwiegand 2026-04-23 01:19:29 +0200
  • f9c98506bd
    feat(l4d2-web): add live server logs and desired-vs-actual status model mwiegand 2026-04-23 01:16:37 +0200