|
| 1 | +# Track A verification — 2026-11-05 |
| 2 | + |
| 3 | +Branch: `v2-ui`. Base: `92e278b`. |
| 4 | + |
| 5 | +## Implemented |
| 6 | + |
| 7 | +- B1: 48 px activity bar, scrollable sidebar views, editor-first splitters, bottom panel; Ctrl+B/Ctrl+J and QSettings size/visibility persistence. |
| 8 | +- B2: escaped literal ampersands in docks, debugger tabs, and dynamically named editor tabs. |
| 9 | +- Command centre, command palette, incremental Quick Open, workspace text search, Git view, and File/Edit/Selection/View/Go/Run/Terminal/Help menus. |
| 10 | +- Existing menu actions preserved as the same QAction objects; original action names captured in `tests/fixtures/v1_actions.json` and checked after relocation. |
| 11 | +- Medhā Dark/Light with shared QSS and central color tokens, readable activity icons, grey close buttons, editor gutter and clickable minimap. Windows PyInstaller spec includes the QSS resource. |
| 12 | +- Welcome page with new C file, open folder/file, current Recent list, Turbo examples, and DSA entry points. |
| 13 | +- Real local branch, document/language/encoding, compiler availability and build diagnostics; optional CPU/RAM sampling. |
| 14 | +- B4, B6, B7: prerequisite duplicate-loader, offline-test and lint cleanup in separate commits. |
| 15 | +- Newly documented B8/B9: orderly process shutdown and Save/Discard/Cancel protection for edited tabs/windows. |
| 16 | + |
| 17 | +## Checks by step |
| 18 | + |
| 19 | +All counts below are offline. The real registry test is explicitly skipped unless |
| 20 | +`MEDHA_NETWORK_TESTS=1`; local fake registry-server tests still run. |
| 21 | + |
| 22 | +| Step | Full pytest | UI smoke | |
| 23 | +|---|---|---| |
| 24 | +| Baseline | 85 passed, real-network test deselected | baseline screenshots | |
| 25 | +| B6 | 86 passed, 1 skipped | window opens | |
| 26 | +| B4/B7 | 87 passed, 1 skipped | 1 passed | |
| 27 | +| B2/B8 | 88 passed, 1 skipped | 2 passed | |
| 28 | +| Workbench/B1 | 91 passed, 1 skipped | 5 passed | |
| 29 | +| Navigation | 93 passed, 1 skipped | 7 passed | |
| 30 | +| Themes/minimap | 94 passed, 1 skipped | 8 passed | |
| 31 | +| Welcome/close guard | 96 passed, 1 skipped | 10 passed | |
| 32 | +| Status/actions | 98 passed, 1 skipped | 12 passed | |
| 33 | +| Final regression checks | **106 passed, 1 skipped** | **20 passed** | |
| 34 | + |
| 35 | +Pyflakes is clean after B7 and at every subsequent completed step. |
| 36 | + |
| 37 | +```sh |
| 38 | +QT_QPA_PLATFORM=offscreen python -m pytest -q |
| 39 | +python -m pyflakes medha |
| 40 | +QT_QPA_PLATFORM=offscreen python -m pytest tests/test_ui_smoke.py -q |
| 41 | +``` |
| 42 | + |
| 43 | +UI tests check tool routing, both screen sizes/themes, actual text viewport width, |
| 44 | +keyboard toggles, settings restoration into a second window, palette action |
| 45 | +preservation, Quick Open, Search, Recent, minimap navigation, real status updates, |
| 46 | +unsaved-close cancellation and cancelled Save As. Requests are blocked during UI |
| 47 | +startup, and Qt callback exceptions are collected as failures. |
| 48 | + |
| 49 | +The all-action smoke test triggers every menu action from the legitimate Welcome |
| 50 | +(no active document) state. Dialogs are cancelled and external CMake build calls |
| 51 | +are stubbed. It verifies UI wiring and survival, not every compiler/debugger backend. |
| 52 | +Focused tests exercise document operations separately. |
| 53 | + |
| 54 | +## Review limits |
| 55 | + |
| 56 | +- Screenshots and tests ran on Linux/PySide6 6.12. Windows install/launch/uninstall and the full cross-platform release checklist are still required before release. |
| 57 | +- B3 (PTY/ConPTY) and B5 (remaining broad exception handlers) remain Track B work. |
| 58 | +- Original UI supported only dark; before-light images cannot be captured authentically. Both new themes have full after evidence in `screenshots/v2/`. |
| 59 | +- No Store submission, release version change, or merge is included. |
0 commit comments