• xtrn/syncdoom/lobby.js syncdoom_lib.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Jun 20 14:04:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4a4076b7d664e96402b5ba17
    Modified Files:
    xtrn/syncdoom/lobby.js syncdoom_lib.js
    Log Message:
    syncdoom lobby: per-host advertise, WAD-set default/note, per-WAD .msg

    Multi-host: overlay a hostname-keyed [net:<hostname>] section onto [net]
    (keyed by system.local_host_name) and pass [net] advertise to the dedicated server as -advertise, so one shared install can give each host its own
    joinable address. Blank advertise still means loopback / same-host only.

    WAD picker: pre-select the [wads] default set, show a [wadset:*] note
    (with a pause) before launch, and display any "<wadname>.msg" readme sitting beside a WAD in the selected set (paged, before launch).

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 1 23:24:33 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e4be037a9e1065a3553a5276
    Modified Files:
    xtrn/syncdoom/lobby.js syncdoom_lib.js
    Log Message:
    syncdoom: converge lobby onto shared game_lobby.js

    Rewrite syncdoom_lib.js as a thin DOOM-specific layer over the shared exec/load/game_lobby.js (as SyncDuke already is), deleting its own copies of logic the shared lib provides -- string/time helpers, [net] config overlay + defaults, UDP port allocation, address resolution, the game-registry read, node paging, the live who's-online panel primitives, and events.jsonl read/prune -- and repointing lobby.js's call sites at gl.*. Only genuinely DOOM-specific code stays (the wad-set catalog, map-warp args, the frag/level/death event taxonomy, and the panel/activity composition), its internals rewired to gl.*.

    Two intended behavior changes come with adopting the shared registry/prune: a game entry with no heartbeat now ages by file mtime (gl.entry_age) instead of being reaped immediately, and the events-log prune round-trips lines through JSON
    (normalizing malformed lines) instead of copying raw text. game_lobby.js itself is unchanged, so SyncDuke is unaffected.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net