Linux TUI publish run manifest
- Run ID:
linux-tui-2026-07-27-019fa510 - Mode:
publish - Milestone: deliver the first Linux-first, mouse-capable Desktop Material TUI preview with real editable text controls, keyboard parity for primary actions, packages, CI, honest feature-parity mapping, documentation, and off-screen Linux evidence.
- Product boundary: the new Python/Textual terminal edition targets Linux. The Electron graphical edition and its installer/E2E lanes remain Windows-only.
- Starting branch:
codex/linux-tui-clone - Starting commit:
821ab93d57948a7e17d3e41fc5ae804202d9ab82 - Expected integration branch:
main - Remote:
https://github.com/Ding-Ding-Projects/desktop-material.git - Verification target: package and interaction evidence was captured
from TUI implementation commit
eee005c7f4bc0afeaefdd4606153deb14cfc5f8c; merge commitba45dcfbaf8e76786ca975752c125e0b0e4299e1adds the then-currentorigin/mainwithout changing any file belowtui/. Remote CI, Pages, and release receipts remain separate post-push evidence. - Expected UI state: a real mouse-reporting terminal opens a deterministic Git fixture in the full-screen TUI. Repositories and workspace tabs are clickable; Inputs and TextAreas accept/edit text; keyboard focus is visible; tables, lists, dialogs, and scroll views remain reachable; wide, compact, and narrow layouts do not clip primary controls; language, search, notifications, and confirmation states remain factual.
- Automation boundary: use Lowlevel MCP's Linux virtual display/Xvfb route. Do not show, focus, or disturb the user's visible Windows desktop. Resolve display, process, terminal window, and control coordinates at run time; never reuse a hard-coded handle or display.
- Disposable root: a fresh
mktemp -dbeneath/tmpwhose resolved basename beginsdesktop-material-tui-proof-019fa510-. It may own only the fixture, bare origin, XDG config/data/state/cache/runtime roots, wheel-smoke environment, raw captures, and run logs listed in the cleanup ledger. - Source checkout: the current repository mounted into the Linux environment; it is read-only to the interaction harness except for tracked screenshot promotion performed later from the host checkout.
- Fixture: one local repository with a configured local bare
origin, an initial pushedmain, one tracked Markdown file, one controlled unstaged edit, one branch, one tag, and one named stash. No provider credential or external remote is created. - GitHub state: exercise binding, fields, tabs, empty/auth/error/read-only rendering only. The headless proof must not create, comment, close, review, merge, dispatch, rerun, cancel, upload, or otherwise mutate GitHub.
- Expected terminal:
xtermor another Xvfb-compatible UTF-8 terminal at a wide starting geometry (approximately 140×42 cells), with mouse reporting enabled by the TUI. - Screenshot targets after original-resolution inspection:
docs/assets/screenshots/linux-tui-overview.png,docs/assets/screenshots/linux-tui-text-input.png,docs/assets/screenshots/linux-tui-regex-builder.png, anddocs/assets/screenshots/linux-tui-bilingual-narrow.png, anddocs/assets/screenshots/linux-tui-cheap-lfs.png. Promote only real captures from the built artifact; do not substitute mockups or edited images. - Documentation allowlist:
README.md,ROADMAP.md,HANDOFF.md,docs/README.md,docs/installation.md,docs/readme-tabs/**,docs/features/README.md,docs/features/linux-tui/**,docs/verification/README.md,docs/verification/linux-tui-2026-07-27/**,docs/assets/screenshots/linux-tui-*.png,tui/README.md,tui/contracts/**, and the relevant CI/package metadata.
Recorded environment
- Disposable runtime: Debian GNU/Linux 13 (trixie),
x86_64, Python3.13.5, Git2.47.3, rxvt-unicode9.31, Xvfb21.1.16, Openbox3.6.1, and Lowlevel computer-use MCP0.1.0. GitHub CLI was intentionally absent from this isolated interaction distro; GitHub mutation was outside the proof. - Host quality/build tools: uv
0.11.26, Python3.12.10, Git2.54.0.windows.1, and GitHub CLI2.95.0. - Docker proof host: remote Linux
x86_64, Docker29.5.3, 14 logical CPUs, and 33 GB memory. Existing workloads were enumerated and left untouched. - Package artifacts: wheel
desktop_material_tui-0.1.0-py3-none-any.whl(164,719 bytes, SHA-256e2d398a9962e8a173e6a4ebbcb24ee961e0832df4907b6e8657245250a31eade) and source distribution (281,881 bytes, SHA-256fd0e29ffd9f8ae37f892a3fe0450d2742131d8edb6338f70d6c1f5073afe54b2). The wheel contains 53 files, includingstyles.tcss,py.typed, and thegithub,dmt, anddesktop-material-tuientry points. The accepted 96-filetui/**source manifest remained unchanged across the build at SHA-256be94c5ce07f08c6f7d4f139c8fa9596c68c4775c27011f3e99c5a20ab8e109fa.
Preflight and build
Interaction script
Golden order for every state-changing interaction: capture the current terminal, resolve the target, act in the background, then capture and inspect the result.
The broader keyboard/tab, literal/fuzzy/regex synchronization, command-palette, destructive-confirmation, notification-history, theme, reduced-motion, and scrolling matrix was exercised through 193 cross-platform Textual/core tests and the dedicated real-Linux PTY test. Unchecked manual scenarios from the planning draft are not silently claimed as captured interactions.
Automated and static gates
Evidence table
Every capture is an original 1600×1000 Xvfb window image from the
installed wheel at
eee005c7f4bc0afeaefdd4606153deb14cfc5f8c. The interaction
coordinates and window handle were resolved at run time.
| Surface | Interaction evidence | Capture | Status |
|---|---|---|---|
| Overview/Changes | Installed wheel opened a three-change fixture | linux-tui-overview.png |
Accepted |
| Input + multiline TextArea | Mouse click, TUI mouse proof, two-line body |
linux-tui-text-input.png |
Accepted |
| RE2 builder | Editable pattern/sample, clicked i, two
matches/captures |
linux-tui-regex-builder.png |
Accepted |
| Bilingual narrow layout | Bilingual mode at 100 columns; clicked toast dismiss | linux-tui-bilingual-narrow.png |
Accepted |
| Cheap LFS | Pointer/candidate rows, editable fields, clicked no-mutation Preview | linux-tui-cheap-lfs.png |
Accepted |
Cleanup gate
Cleanup is part of acceptance, not a later courtesy.
Current local interaction status: Complete. The
packaged Linux run, real mouse/text-field acceptance, five captures, and
guarded cleanup are proven locally. The merged source and Pages/wiki
publication are live; the first merged-source matrix exposed Python 3.10
timestamp and Linux-mypy portability defects that now pass the full
local correction gates. Correction commit f555d374a6 is
contained in origin/main, and its Linux TUI matrix plus
Windows TUI core job passed in run 30317262582. That
workflow still failed overall in the unrelated Windows x64 unit job.
Installer run 30318769692 failed and published no Release;
neither failed top-level gate is claimed as accepted.