• docs/superpowers/specs/2026-07-19-libtermgfx-termio-extraction-design.

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, July 19, 2026 15:25:25
    https://gitlab.synchro.net/main/sbbs/-/commit/43cf5c5c07455b137b04030d
    Added Files:
    docs/superpowers/specs/2026-07-19-libtermgfx-termio-extraction-design.md
    Log Message:
    docs: design spec for the libtermgfx terminal-I/O extraction

    Sub-project 1 of the syncrpg (EasyRPG / RPG Maker door) effort: lift syncscumm's sst_io.c terminal-I/O engine -- the render pipeline (canvas
    probe, aspect scale, sixel/JXL tiers, pacing), the input decode
    (kitty/evdev keyboard + SGR mouse), and the DOOR32/socket I/O -- into a
    shared libtermgfx termgfx_termio module with a door-facing API, then
    refactor syncscumm onto it behavior-identically so a second door can
    reuse it.

    The audio stream, encoders, key-mode and node helpers are already shared
    and out of scope. Behavior identity is gated on syncscumm's existing
    boot/unit tests passing unedited, a before/after wire-byte diff, and a
    live confirm.

    Co-Authored-By: Claude Opus 4.8 (1M context) <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 Sunday, July 19, 2026 15:25:25
    https://gitlab.synchro.net/main/sbbs/-/commit/986e8c66c289bdab6eb9fcde
    Modified Files:
    docs/superpowers/specs/2026-07-19-libtermgfx-termio-extraction-design.md
    Log Message:
    docs: reframe the termio extraction spec around all-door convergence

    The per-door terminal-I/O orchestration is duplicated across all five
    graphical doors -- syncretro_io.c, syncscumm's sst_io.c, syncduke_io.c, syncdoom's i_video/r_draw/v_video, and syncconquer's door_io.c -- not just syncscumm. The low-level primitives (caps, geometry, sixel/jxl, pace,
    mouse, keymode, door32, audio, node) are already shared in libtermgfx, but
    the loop that drives them was never carved out.

    Reframe termgfx_termio as the canonical shared orchestration every
    graphical door converges on: seed it from syncscumm's (most recently
    hardened) sst_io.c, but design the API against the union of all the doors' *_io.c needs, not merely clone one. The bounded first step is unchanged -- migrate only syncscumm + syncrpg now; retro/duke/doom/conquer migrate as separate later efforts.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

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