Add MSP media protocol support

This commit is contained in:
2026-09-17 17:53:08 +02:00
parent 3fd28c2e0b
commit 573f1b7acb
14 changed files with 357 additions and 51 deletions
+7 -6
View File
@@ -9,11 +9,12 @@ The project is currently an early but usable Telnet client. Its interface is bui
- Connection profiles with name, host, port, TLS, encoding, and automatic-reading preferences
- Plain Telnet and certificate-verified TLS connections
- UTF-8, Windows-1252, and ISO-8859-1 character encodings
- Streaming Telnet negotiation with ECHO, Suppress Go Ahead, and Terminal Type support
- Streaming Telnet negotiation with ECHO, Suppress Go Ahead, Terminal Type, and MSP support
- MCCP2 compressed-stream negotiation and bounded streaming decompression
- GMCP negotiation with bounded UTF-8/JSON parsing and a raw diagnostic inspector
- Accessible live views for character, room, items, skills, group, and communication data
- Opt-in Client.Media audio with captions, per-profile volumes, HTTPS-only bounded downloads, and cache limits
- Opt-in Client.Media and MSP audio with captions, per-profile volumes, bounded downloads, and cache limits
- Safe start-of-line MSP fallback for legacy servers, including explicitly disclosed HTTP media support
- Streaming ANSI control-sequence filtering
- Accessible scrollback and command entry
- Automatic reading of incoming lines and prompts
@@ -45,6 +46,7 @@ The output and command fields provide additional actions through their context m
- `lib/meow/telnet.rb` implements the streaming Telnet state machine.
- `lib/meow/gmcp.rb` parses GMCP and maintains package state.
- `lib/meow/media.rb` provides protocol-neutral media requests, safe caching, and Elten audio playback.
- `lib/meow/msp.rb` parses line and Telnet-option MSP commands into shared media requests.
- `lib/meow/session_gmcp.rb` integrates GMCP packages with accessible session views.
- `lib/meow/text_pipeline.rb` handles ANSI filtering, decoding, lines, and prompts.
- `lib/meow/session.rb` owns connected-session state, scrollback, input, and speech.
@@ -58,10 +60,9 @@ Automated regression coverage now exercises the streaming Telnet parser and text
Planned work, roughly in order:
1. Add MSP parsing as a second adapter to the shared media request and playback layer.
2. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
3. Add multiple simultaneous sessions with independent output, media, and speech queues.
4. Add localization catalogs and package/signing automation for releases.
1. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
2. Add multiple simultaneous sessions with independent output, media, and speech queues.
3. Add localization catalogs and package/signing automation for releases.
## Running the tests