Repository navigation
Answer a server's MXP <SUPPORT> question, so the screen it holds back is the banner - #203
Conversation
… is the banner CoffeeMud asks <SUPPORT IMAGE IMAGE.URL> and <SUPPORT> on connect and holds its connect screen up to three seconds for the reply. Unanswered, the probe settled on the questions and stored them as the game's connect screen (24.138.50.103:5555), and the real screen arrived in the WHO phase. Watched.Mxp now answers through TelnetNegotiationCore's capability exchange (4.3.0+): every entry asked about is refused, since the probe renders nothing, and a bare <SUPPORT> gets a reply that claims nothing. TelnetNegotiationCore goes from 4.0.0 to 4.5.3 to get it. CoffeeMud itself never sends IAC SB MXP IAC SE, so answering it also needs HarryCordewener/TelnetNegotiationCore#174 released; the version bump for that follows once it is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rqqt7TucGdYhFwbzK7RHR5
Findings
|
| Layer / File(s) | Summary |
|---|---|
MXP support response flow Directory.Packages.props, src/MUI.Crawl/Telnet/WatchedProtocols.cs, tests/MUI.Crawl.Tests/Telnet/MxpSupportTests.cs |
The package version changes to 4.6.0. Watched.Mxp registers a handler that responds to support requests with no supported entries. Tests verify the response, banner capture, and MXP observation with a start marker, and banner capture without one. |
Estimated code review effort: 3 (Moderate) | ~20 minutes
Sequence Diagram(s)
sequenceDiagram
participant HoldingGame
participant Probe
participant WatchedMxp
HoldingGame->>Probe: Sends MXP negotiation and SUPPORT question
Probe->>WatchedMxp: Dispatches SUPPORT request
WatchedMxp->>Probe: Sends empty supported-entry response
HoldingGame->>Probe: Sends banner and prompt
Merge Risk: 
Low · up to f497a
-
The change is mergeable with a bounded test gap: the new tests do not confirm that a bare SUPPORT question receives the promised reply.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 5 functions across 2 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches
-
Generate docstrings
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
… marker Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rqqt7TucGdYhFwbzK7RHR5
…e sequence CoffeeMud never sends IAC SB MXP IAC SE; 4.6.0 (#174) takes its first ESC[6z as the start of MXP mode, so its <SUPPORT> reaches OnMxpSupportRequested. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rqqt7TucGdYhFwbzK7RHR5
Requested by Grave · project thread
Problem
/g/24-138-50-103-5555(CoffeeMud 5.9.4) shows this as its connect screen:When a client agrees to MXP, CoffeeMud asks those questions and then holds its real screen (
text/intro.txt) for up to 3 s waiting for a<SUPPORTS>reply (DefaultSession.HandshakeCallback,HANDSHAKE_MXPPAUSE). The probe never replied, so the banner phase settled on the questions themselves and the intro arrived during the WHO phase. CoffeeMud also buffers whatever is typed during its handshake and replays it at the login prompt.Change
Watched.Mxpanswers through TNC's capability exchange (OnMxpSupportRequested→SendSupportsAsync). Every entry asked about is refused, because the probe renders nothing, and a bare<SUPPORT>gets a reply that claims nothing. The reply goes out on a secure line, which the server reads as protocol rather than as typing. This follows the precedent of the MCP offer, which is already answered.IAC SB MXP IAC SE, so its firstESC[6zline now starts MXP mode. This also brings in the 4.1–4.5 changes (CHARSETDOretry, NEW-ENVIRON direction, MSP).MxpSupportTestscovers two servers: one that sends the start marker, and one shaped like CoffeeMud that never sends it. Both agree MXP, ask, and hold their screen. The tests assert that the reply refusesIMAGE.URL, that the banner is the held screen, and that no<SUPPORTtext remains.Not verified against the live host, which isn't reachable from the cloud container.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Rqqt7TucGdYhFwbzK7RHR5
Summary by CodeRabbit