CNA-GAP-054: The terminal window title is stored but never emitted, so SetTitle has no visible effect

CNA snapshot 009d40f5  ·  Known Issues › Functional gaps  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

TerminalWindow::SetTitle records the title and defers the OSC emission to the session, but the session prologue emits no title sequence and nothing else writes one, so a terminal window title is never shown.

Identifier
CNA-GAP-054
Category
Functional gap
Subsystem
Platforms
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
CNA::Platform::IPlatformWindow::SetTitle(const std::string&) on the terminal platform

Expected behaviour

IPlatformWindow::SetTitle sets the window's title, and a terminal emulator can display one through an OSC sequence (ESC ]0;title BEL). TerminalWindow::SetTitle's comment says it stores the title and “The session (PLAT-131) emits it once it has the terminal.”

Actual behaviour at TARGET

TerminalWindow::SetTitle assigns title_ and writes nothing. BuildSessionPrologue emits only the alternate-screen, hidden-cursor, mouse-reporting and Kitty-keyboard sequences -- no OSC title -- and no other terminal source writes one (a search for the OSC title introducer finds none). The title round-trips through GetTitle() but is never sent to the emulator, so it is never displayed.

Source locations

Evidence

Checked by reading TerminalWindow::SetTitle, the session prologue and epilogue builders and the terminal test at 009d40f5, and searching modules/platform/src/Terminal for an OSC title sequence (none). Not executed. The Development terminal page records the same: “the session prologue at this snapshot carries no title sequence either, so the title is never shown.”

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

TerminalPlatformTests.cpp's SettingATitleDoesNotWriteToStandardOutput asserts that SetTitle writes nothing to stdout and that GetTitle() returns the value -- it pins the storage, not any emission. No test checks that a title reaches the terminal.

Regression test

When the feature is added: assert that opening a session (or a later frame) writes the OSC title sequence (ESC ]0;<title> BEL or ]2;) for the current window title, and restores the previous title on teardown.

Blast radius

Terminal-platform games that set a window title expecting the emulator's tab or title bar to update; every other window property on the terminal is honoured or refused as documented.

Workaround

Write the OSC title sequence to stdout from game code (only while a session owns the terminal), or set the title through the terminal emulator or shell.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Maintainer workflow
Modify a platform backend