Desktop app terminal doesn't respond to Primary Device Attributes (DA1) — fish 4.x hangs 10s at startup and warns
Environment
- Claude Code desktop app (macOS), CLI version 2.1.235
- macOS 26.5.2 (Darwin 25.5.0)
- Shell: fish 4.7.1
Bug
The desktop app's embedded terminal does not respond to the Primary Device Attributes query (DA1, \e[0c). fish 4.1+ sends this query at startup to detect terminal capabilities, waits up to 10 seconds for a reply, then prints:
warning: fish could not read response to Primary Device Attribute query after waiting for 10 seconds. This is often due to a missing feature in your terminal. See 'help terminal-compatibility' or 'man fish-terminal-compatibility'. This fish process will no longer wait for outstanding queries, which disables some optional features.
So every terminal opened in the app hangs for 10 s before the prompt appears, and fish disables its optional terminal features.
man fish-terminal-compatibility lists DA1 under required commands: the terminal must reply with a CSI sequence starting with \e[? and ending in c. Most emulators, including xterm.js-based ones, answer it.
Expected
The embedded terminal answers \e[0c with a DA1 response (e.g. \e[?1;2c), like other terminal emulators, so fish starts instantly and keeps its capability detection.
Workaround
set -U fish_features no-query-term — but this is global, disabling fish's terminal capability detection in all terminals, not just the app.