fix: run the TUI on Textual 8 and drop Python 3.9 - #115
Merged
Conversation
This was referenced Aug 13, 2026
DLANSAMA
force-pushed
the
refactor/aaa-pr5-session-reuse
branch
from
August 13, 2026 03:40
100c10a to
ad7a2fa
Compare
The <2.0 cap was hiding two 8.x API changes: Static.renderable is gone (tests read content) and Select.BLANK/False is no longer a legal empty value (use Select.NULL). The extra and the test extra pin textual>=8.0,<9.0.
Every install now resolves patched zeroconf. CI's oldest Linux leg is 3.10, ruff targets py310, and the 3.9-only SECURITY residual is gone.
Textual 8 / Rich tables emit bold SGR codes when the runner has a color-capable TERM. The prepare-preview test then saw '\\x1b[1m' as the first token instead of 'Model'.
DLANSAMA
force-pushed
the
refactor/aaa-pr6-textual-py310
branch
from
August 13, 2026 03:49
9a3ba4b to
0feec78
Compare
DLANSAMA
added a commit
that referenced
this pull request
Aug 14, 2026
Re-verified the 2026-07-31 post-audit residual table against current main rather than trusting the audit snapshot. Four residuals it lists as open are closed, and one the follow-up notes recorded as closed is not: - S5 closed: utils.py:63-67 is now a shim delegating to jsonio; both spellings redact the audit's own repro identically. No weaker second implementation. - A4 closed: mqtt_port is wired end to end (context -> printer -> mqtt_tls _mqtt_port -> client.connect). Doctor no longer reports a port it ignores. - T1 closed: textual is pinned >=8.0,<9.0 (#115), not <2.0. - A3/Q1/S1/B1/R1/R3 closed by #119, the camera opt-in work, and the TUI merge. - Q4 NOT closed: #116 removed 81 setdefault stubs across 33 files but tests/bambu_test_base.py:26-29 still assigns MagicMock to sys.modules for paho at import time and never restores it, which is also order-dependent. - P1, Q5, Q6, A1, A2, S3, R2, T2/WS4, W3.4 re-confirmed open with current file:line evidence; A1's target moved to bambu_cli.cliparse. Plan headers carried numbers from before #119/#120 and read as live state. Both gameplans now lead with measured current values (1499 non-live, 90.99% Linux / 90.68% Windows over 8368 statements, floor 86, Python 3.10/3.12/3.14) and keep the old figures marked as historical, including the a-plus W1 sizing that was derived from the 89.4% baseline. mutation-baseline.md claimed its per-module table reconciles to the 50.7% headline. It does not: the seven rows are the whole only_mutate scope yet sum to 2010 mutants against a headline 2091, leaving 81 unattributed (37 survived, 41 killed, 3 timeout). Also corrected the "residual survivors should be cosmetic" prediction, which the same file already disproves at 21.8% with 269 survivors, and the stale "re-run mutmut on slicer/output.py" note, which was already done on 2026-08-04. tui-plan.md kept imperative branch instructions after its own "implemented" banner; folded into the historical framing. Also drops AI-vendor attribution from these two plan docs: the audience and source lines, the "pasteable brief for a new <vendor> session" heading, and the trailer rule, which now reads "AI/session attribution trailers" instead of naming a product. References to the local-only agent notes filename are left intact where removing the name would void the rule. Docs only, no code changes. Gates: 1499 passed / 1 deselected, 91.0% total; test_docs_consistency + test_docs_links 25 passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AAA stack 6/9. Stacked on #114.
Two commits:
textual>=8.0,<9.0) —Static.contentinstead ofrenderable,Select.NULLinstead ofBLANK/False,screen.queryinstead ofapp.query. Tests go throughtests/tui_text.py.py310, singlezeroconf>=0.149.16. Drops the 3.9 residual in SECURITY.md.Supersedes #109 (Dependabot only widened the pin and left TUI tests broken).
Stack: #110 → #111 → #112 → #113 → #114 → this → test stubs → sole error path → honesty