- In-tai.py TUI framework (panels, compositor, z-layers, mouse, focus, VT screen, pty sub-terminals, widgets, animation) plus /demo, --demo, --demo-shot, tui.md docs, and research/tui-framework-design archive - Focus safety: Tab/Shift+Tab always cycle, auto-focus prefers non-terminals, dialogs restore previous focus on close - Native Consts/Install/Sandbox/Opencode/SysInfo classes in tai.py; module functions delegate so live patches apply; fixes 19 failures - Retargeted 4 test patches to the real tai.* seams (assertions unchanged) - Deleted tai_pkg/; tai.py is standalone stdlib-only (bare copy imports) - AGENTS.md/README.md updated to the standalone architecture - test_tai.py 320/320 OK, test_seal.py 16/16 OK
2.8 KiB
2.8 KiB
tmux: Remove popups and all the associated overlay machinery (commit)
Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute — Research & Retrieval Division |
| Subject | tui-framework-design |
| Document type | Source Dossier |
| Tier | 1 |
| Source title | Remove popups and all the associated overlay machinery (they were the last user of it) |
| Source URL | https://github.com/tmux/tmux/commit/34cd5da4e333a5be3cb62280432b3dc70f5e41dd.patch |
| Source publisher / author | Nicholas Marriott (nicm), tmux project |
| Source type | repository (commit) |
| Source date (published) | 2026-09-21 |
| Date researched | 2026-10-10 |
| Researched by | tai (agent), model: Muse Spark, on behalf of retoor |
| Research method | direct page fetch |
| Confidence | High |
| Status | Active |
Summary
tmux deleted its entire popup/overlay subsystem (popup.c, 662 lines, plus overlay hooks across screen-redraw, tty, and menu code: -1661/+304 over 15 files). display-popup survives only as an undocumented compatibility command that opens a floating pane instead. Overlays as a special rendering path are gone; floating panes are now the one mechanism for anything that floats.
Key findings
- Deleted:
popup.coutright, plus overlay branches inscreen-redraw.c,screen-write.c,server-client.c,tty.c,window.c,window-copy.c,cmd-display-menu.c,input.c,options-table.c,status.c,tmux.h,tmux.1,Makefile. display-popupkept as an undocumented compat alias for opening a floating pane (flags kept: border, title, size, position).- Menus (
cmd-display-menu.c, -486/+~100 region) were rewritten off the popup path onto panes in the same commit. - A companion open issue in the same result set reports popup repaint flicker when a background pane redraws an overlapping region — the exact failure mode a separate overlay path invites.
Pros / strengths
- Primary evidence (the commit itself) from the most conservative codebase in this space; the direction is unambiguous and the diff size shows the overlay path was genuinely load-bearing complexity, not a flag.
Cons / limitations / caveats
- Only the commit header, file stats, and the first diff hunks were read in this pass (full patch is ~82KB); floating-pane internals were not reviewed.
- tmux's constraints (C, client/server, many terminals) differ from tai's; the lesson transfers, the code does not.
Relevance to tai
- Decisive validation for the tai TUI shape: dialogs and floating terminals must be ordinary layers/panels with z-order in one compositor — never a second "overlay renderer" beside the main one.
- tai's Dialog/QuestionDialog/Terminal-panel design follows directly: one panel class tree, one paint path, z decides visibility.
Changelog
| Date | Change |
|---|---|
| 2026-10-10 | Initial dossier created. |