• exec/load/game_lobby.js exec/load/tests/test_game_lobby_events.js xtrn

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Jul 2 00:55:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/8368d6ee80bfa2103b2652e2
    Modified Files:
    exec/load/game_lobby.js exec/load/tests/test_game_lobby_events.js xtrn/syncdoom/lobby.js syncdoom.example.ini syncdoom_lib.js xtrn/syncduke/lobby.js syncduke.example.ini syncduke_lib.js
    Log Message:
    syncduke/syncdoom/game_lobby: live who's-online + activity panel, configurable

    Give the SyncDuke lobby the same bottom-anchored "who's online + recent activity"
    panel SyncDOOM has, promoting the panel composer into the shared game_lobby.js so
    both doors share it rather than duplicating it:

    * game_lobby.js gains recent_events()/activity_cell()/panel_cells() (UI-free cell
    composition -- live nodes first, then recent activity); event_feed() now emits
    the "[age] <body>" line (the fmt callback returns the plain body); plus
    parse_duration() and the [lobby] config accessors activity_max()/
    activity_max_age()/panel_rows().
    * SyncDuke's lobby.js adds the bottom-anchored draw + ~1/s poll loop (mirroring
    SyncDOOM's), gated on [lobby] live; its sd_event_text is now body-only, matching
    SyncDOOM's convention so the shared display path adds the age prefix once.
    * SyncDOOM adopts the shared recent_events/panel_cells/event_feed (its own
    sd_activity_cell/sd_event_feed removed).

    Four [lobby] settings tune the panel/feed for both doors: live (enable the panel),
    activity_max (full-screen feed count, default 18), activity_max_age (hide activity
    older than this -- days, fractions or an h/d/w suffix; 0 = no limit), and panel_rows
    (panel height, default 6). Since JS File.iniGetValue has no native duration parsing,
    parse_duration() reads the age (bare number = days). The example inis document all
    four keys and ship live = true.

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

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