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
veeteeandvt-headlesson the path.winget uninstallremoves 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.