CNA-GAP-054: The terminal window title is stored but never emitted, so SetTitle has no visible effect
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
modules/platform/src/Terminal/TerminalPlatform.cpp— TerminalWindow::SetTitle stores title_, deferring OSC emission to the sessionmodules/platform/src/Terminal/TerminalSession.cpp— BuildSessionPrologue emits no OSC title sequencemodules/platform/tests/CNA/Platform/TerminalPlatformTests.cpp— SettingATitleDoesNotWriteToStandardOutput asserts SetTitle writes nothing
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.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Platform Support: capability matrix
- Maintainer workflow
- Modify a platform backend
- Known issues
- Functional gap index