.agents/skills/verify-signaltty/features/structure.md
Workspace structure
Sub-features
Pane parentage, exact layout membership, split/close, atomic failed spawn, sidebar reading hierarchy and pane focus/attention chrome.
How to get to it (user POV)
Create a workspace/tab, split with Ctrl+Shift+E or Ctrl+Shift+O and close a pane with Ctrl+Shift+W. Workspace close presents a destructive confirmation.
Driving it with real IPC/GTK
Run python3 scripts/qa-server-edge-cases.py. Foreign tabs, omitted/duplicate
leaves and failed executables must be rejected without corrupting ownership;
finite divider ratios clamp to 0.05–0.95. Run the graphical helper to split/close
a recovered session. close_workspace_confirms verifies the actual confirmation.
Run scripts/qa-ui-scenes.py --output /tmp/signaltty-ui.png in light and dark,
then with --width 360 --long-choice, --font 'Sans 18' and
ADW_DEBUG_HIGH_CONTRAST=1. Inspect that sidebar messages/metadata span the row,
urgency remains beside Close, inactive pane titles stay readable, and the focused
header stays distinct inside an attention ring. Workspace context is branch-first;
the title tooltip retains the full directory. The header separator and focus
paint must not change terminal allocation during navigation.
Gotchas
Layout replacement rearranges every owned pane exactly once; removal is explicit pane.close. Server integration tests also inject legacy hidden panes and prove closure cleans them. Never close the user's workspace during a verification run.