You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Raspberry Pi 4+ (aarch64 Linux) build — releases now ship an Ethernet_Gateway-aarch64.AppImage alongside the existing
x86_64 Linux / Windows / macOS artifacts, built on a native arm64
runner. Two ARM-only desktop-GUI fixes make it run on the Pi's
VideoCore/V3D GPU: the wgpu device now requests exactly the limits
the adapter advertises (so startup no longer aborts with
"Limit 'max_color_attachments' value 8 is better than allowed 4" or
the equivalent for other limits), and the GUI prefers the OpenGL ES
backend instead of the Pi's incomplete Vulkan driver (which panicked
with "Requested feature is not available on this device"). WGPU_BACKEND still overrides. Other platforms are unaffected.
Punter (C1) file-transfer protocol — the protocol CCGMS /
Novaterm / StrikeTerm speak natively on Commodore BBSes, added
alongside XMODEM/YMODEM/ZMODEM/Kermit. Single-file C1 with the full
two-phase (file-type then data) handshake, both block checksums
(16-bit additive + cyclic), the "size of next block" framing, and
the three-S/B end-off real C1 endpoints expect. Selectable in the
telnet upload/download protocol pickers; the outbound PRG/SEQ file
type is auto-detected from the filename. New punter_* tunables
(block size, timeouts, retries) are editable from the telnet File
Transfer settings menu, the web configuration page, and the desktop
GUI, and persist to egateway.conf. The send/receive entry points
take an open stream so a future Multi-Punter (MPP) batch wrapper can
layer on without touching the wire code.
Serial modem AT+PETSCII=n command — toggles PETSCII⇄ASCII
translation on direct-TCP dials (AT+PETSCII=1 on, AT+PETSCII=0
off) so a Commodore 64/PET dialing ATDT host:port sees readable
text instead of raw ASCII. Set-only, in the ITU-T V.250 +
extension namespace (&P is the pulse-dial make/break ratio on real
Hayes modems, so it is intentionally left alone). AT+PETSCII=1
persists the setting immediately; AT&V reports it as +PETSCII:n.
PETSCII translation is now editable from every configuration
surface — the per-port modem screen in the telnet/serial-console
menu, the web configuration page, and the desktop GUI — in addition
to the AT command. It is a per-serial-port setting saved to egateway.conf.
Serial: inbound PETSCII punctuation normalizer, and the C64 PETSCII
DEL key (0x14, INST/DEL) is accepted as a command-line backspace
when PETSCII translation is active. +++ escape sequences are
traced when the gateway debug trace is on.
Persisted gateway_debug byte-trace flag, toggleable from the
GUI/web General frame and the telnet Other Settings / Serial
Configuration menus. Read fresh per gateway session (no restart
needed); EGATEWAY_GATEWAY_DEBUG still forces it on. The trace now
timestamps each input byte.
Web protocol reference pages served by the configuration web
server — per-protocol references (XMODEM, YMODEM, ZMODEM, Kermit, the
Hayes AT command set, and telnet), each documenting that protocol's
retry/recovery behavior, plus character-set and ANSI escape-sequence
references, reachable from a new References nav entry.
Kermit resume and locking-shift settings are now editable from
the telnet Kermit settings menu, the web configuration page, and the
desktop GUI (previously egateway.conf-only).
punter_hangup_on_failure — optional drop-carrier-on-give-up for
Punter, editable from the telnet / web / GUI Punter settings. Because
C1 has no in-band abort, a give-up otherwise leaves the C64 hung;
enabling this drops carrier so it sees loss-of-carrier instead.
Fixed
AI chat: a follow-up question that merely starts with a menu command
letter (e.g. "Quantum…") is no longer swallowed by the answer-screen
navigation. A lone command letter still navigates; any longer line
is sent to the model.
Transfer retry/recovery brought to strict spec. XMODEM/YMODEM now
NAK on a data-phase inter-block timeout (re-prompting the sender) and
cancel with CAN×3 on a non-duplicate block-sequence error instead of
NAK-looping; ZMODEM routes every data-phase error through one bounded
counter that re-sends ZRPOS and resets on progress (no infinite ZRPOS
loop on a permanently-corrupt stream); Kermit emits an Error packet
when it gives up so the peer is told rather than left waiting.
Punter no longer strands a peer on a failed transfer. A cancel /
restart from the C64 side is tolerated (longer pre-transfer input
drain), and corrupt-block recovery is bounded by its own larger round
cap rather than quitting early and leaving the peer hung.
Changed
Removed the duplicate Port A/B status banner from the main
configuration menu — per-port mode is already shown under Serial
Configuration.
Punter bad-block cap decoupled — punter_max_bad_rounds (default
30) bounds consecutive corrupt-block resend rounds separately from punter_max_retries, since a real C64 peer never caps resends and a
low shared cap made the gateway give up first and strand it.
Security
Updated russh 0.60.2 → 0.60.3 to clear two high-severity
(CVSS 7.5) allocation-DoS advisories in the SSH stack:
RUSTSEC-2026-0154 (russh unbounded 32-bit allocation) and
RUSTSEC-2026-0153 (russh-cryptovec unchecked CryptoVec
allocation/growth). A malicious SSH client could otherwise drive
unbounded memory allocation on the SSH listener.