Roadmap - issinoho/veetee GitHub Wiki

Roadmap

Milestone Scope Status
M0 Foundations Workspace, licences, CI, parser, fuzzing, headless driver βœ…
M1 VT100/VT102/VT52 Core screen, GTK window, OpenGL renderer, PTY, first font; vttest menus 1–8 βœ…
M2 VT220/VT320 Character sets and NRCS, soft fonts, UDKs, 8-bit controls, selective erase, status line, reports βœ…
M3 VT420 Left/right margins, rectangular operations, checksums, page memory, macros, state reports; vttest 11.3; esctest2 βœ… (0.3.0)
M4 VT510/VT520/VT525 VT525 colour, dual sessions, cursor styles, VT500 modes and reports, keyboard controls, VT500 character sets; vttest 11.4; esctest2 at level 5 βœ… (0.4.0)
M5 Transports PTY, serial, Telnet, SSH βœ… (Linux and Windows); RFC 2217 βœ… (0.8.7), proved against ser2net (0.8.11); LAT βœ… (0.8.9, Linux): discovery, sessions, a service browser and an unprivileged helper βœ… (0.8.9–0.8.11)
M6 Keyboard and DEC applications TOML keymap and LK401 keymap editor βœ…; DECFNK modified keys βœ…; VT520 key programming (DECPFK, DECPAK, DECCKD and reports) βœ…; session recordings and replay βœ…; OpenVMS acceptance recordings of FMS, DECforms, EDT, EVE/TPU, MAIL, SMG$, MONITOR and SET TERMINAL/INQUIRE βœ… (nine of them, replayed in CI); PCTerm and key position reports, which OpenVMS does not use βœ…
M7 Fonts and look Fonts on DEC character cells for every model and width, with Greek, Hebrew and Cyrillic βœ…; VT420 Set-Up screens with saved settings βœ…; bells, keyclick and DECPS tones βœ…; smooth scroll at DEC speed βœ…; glow, afterglow, curved screen, CRT saver and visible bell βœ… (0.7.0); VT500 menu Set-Up, Display Controls, hand-drawn 132-column Greek/Cyrillic/Hebrew and 48-line faces βœ… (0.7.1) βœ…
M8 Polish and 1.0 Saved connections and the Connections window βœ…; session logs with timestamps βœ…; history review and search βœ…; copy and paste with DEC↔Unicode translation βœ… (0.8.0); screen reader support βœ…; throughput tuning βœ…; Flatpak bundle βœ… (0.8.1); signed Windows builds with Certum SimplySign βœ… (0.8.1–); winget manifests βœ… (submitted, in review); Flathub decided against βœ… (1.0.0)

Every milestone is done. M5 was the last: LAT landed in 0.8.9 β€” veetee opens a session on an OpenVMS node over DEC's own protocol, and SET TERMINAL/INQUIRE identifies it as a VT400_Series terminal β€” and RFC 2217 was proved against ser2net in 0.8.11, which answered every line setting with what it was asked for.

veetee 1.0.0 was released on 17 September 2026, with the tree green β€” cargo fmt, Clippy, the workspace tests, vttest all PASS and esctest matching its expected-failures list exactly β€” and no open issues. From 1.0 the version follows Semantic Versioning: a breaking change to the crates' public API or to saved settings takes the major, new terminal behaviour the minor, fixes the patch.

Since then: 1.1.0 to 1.1.2 (18 September) were all LAT β€” a session that survives a wire that loses frames, and three faults found from traces of a real session, 1.1.2 being the one to have β€” plus Close Session for a window with two sessions. 1.2.0 (24 September) added a default connection: a star beside a saved connection makes it what veetee opens when started without one. 1.3.0 (24 September) added Kermit file transfer, in the window and from the command line (File Transfer), and fixed LAT sessions that ended on a paste over 255 characters. 1.4.0 (25 September) made LAT survive lost frames β€” veetee sends again what the host has not acknowledged, and takes the host's messages in order β€” and gave Kermit long packets. 1.5.0 (25 September) added printing (Printing) and honours XOFF from the host. 1.6.0 (26 September) made Communications Set-Up set the serial line, from Set-Up or the host, and gave Printer Set-Up its print mode, extent and terminator. 1.7.0 (26 September) added manual pages and --version. 1.8.0 (27 September) brought four sessions to the VT520 and VT525, with session icons, and parity errors shown on a serial line. 1.9.0 (27 September) made the Set-Up settings that were stored only act: zero style, transmit rate limit, modem control, overscan, host wake-up and the energy saver. 1.9.1 (10 October) fixed SSH and the numeric keypad on Windows.

The distribution questions that were open before 1.0 are both settled:

  • Windows is winget alone. A release ships a zip with GTK in it, which winget takes as a portable package: it verifies the checksum, unpacks it, and puts veetee and vt-headless on the path. winget uninstall removes it and it registers an Add/Remove Programs entry, so the only thing given up is a Start menu shortcut β€” not worth a second artifact to build and code-sign every release. There is no Inno Setup or WiX installer, and none is planned.
  • Flathub was decided against. Flathub's linter wants the domain in the app ID to serve a site, and wants exceptions for the two permissions veetee depends on β€” host shells and SSH through flatpak-spawn, and writing logs where the user asks. Narrowing those to suit one store was not worth it. The Flatpak bundle is unaffected and still ships with every release.

And these are what 1.0 ships with rather than fixes: serial line settings in Set-Up that were stored but not applied (they are from 1.6.0), two sessions in a window where a VT520 has four (four from 1.8.0), printing left to after 1.0 (it came in 1.5.0), and an indicator status line not checked against real hardware. Two more wait on things nobody here has β€” whether a DECserver, Lantronix or Moxa answers RFC 2217 as ser2net does, and whether any OpenVMS application drives protected fields, which may be nothing at all.

The detailed working roadmap is docs/ROADMAP.md, and docs/rfc2217-testing.md is for anyone with a terminal server to try.

Platforms

Linux (GTK 4 on Wayland or X11) is the primary platform. Windows 10 and 11 are supported from 0.6.0 with a zip that bundles GTK; see Windows.

After 1.0

VT340 Sixel and ReGIS graphics, Tektronix 4010/4014, X/Y/ZMODEM file transfer, scripting and macros. Printing came in 1.5.0; still to come for it is passing a host's printer data through untouched, for someone with the DEC printer it was meant for.

Kermit is released and being accepted against OpenVMS: everything passes against C-Kermit 9.0.300 over Telnet and LAT, and SSH, serial, older C-Kermits and KERMIT-32 are still to try. Long packets came in 1.4.0, and XOFF from the host is honoured from 1.5.0.