Skip to content

v0.8.2 — Visual smoke framework + compactMode breakpoint fix

Choose a tag to compare

@pizzimenti pizzimenti released this 28 Apr 23:16
· 47 commits to main since this release

Visual-smoke framework + compactMode breakpoint fix.

The first real-world launch of v0.8.0 surfaced a layout regression that the v0.8.1 QA infrastructure didn't cover: at small-but-not-tiny window widths (~600 px), SessionSetupPane.qml's FormLayout column squeezed hard, labels left-clipped to "RL:" / "el:", and the medium-mode mic frame visually overlapped the dropdown arrows.

Added — visual smoke runner

  • tests/visual/visual_smoke.py + voiceagent-visualtest.sh — headless QQuickWindow.grabWindow() capture pipeline.
  • Renders MainWindow against QT_QPA_PLATFORM=offscreen at multiple combinations of QT_SCALE_FACTOR (1.0 / 1.25 / 1.5 — Plasma's common HiDPI settings) and logical width (400 / 600 / 800 / 1000 / 1200 px), saving 15 PNGs under screenshots/ (gitignored).
  • Closes the gap between three other gates: "QML loads" (compiletest) / "QML behaves" (qatest) / "QML LOOKS right" (visualtest).

Changed — compactMode breakpoint

  • MainWindow.qml compactMode threshold raised 25 → 35 gridUnits.
  • Below 35 grid units, side-by-side form + mic frame doesn't fit without column squeeze. The visual smoke run confirmed at 600 px logical width (1.0x); the fix lands cleanly across 1.0x / 1.25x / 1.5x scales because gridUnit is itself scale-aware.

Fixed (companion to v0.8.0)

  • FormLayout label crowding. Dropped voiceAgent.modelStatus concatenation from FormData labels (status info already surfaces via the progress label area). Bumped the form/mic gap from mediumSpacing to largeSpacing.
  • Bare entry point's missing QML import path. app.py:_ensure_qml_import_path() auto-prepends /usr/lib/qt6/qml at startup if no wrapper has set it, so .venv/bin/voiceagent works alongside the wrapper scripts.
  • Stale runtime version string. __init__.py mirrored to 0.8.x (was missed in v0.8.0's PR #20 bump).

Tests

  • 219 pytest passing, 16 Quick Tests passing, 15 visual screenshots captured.
  • Spot-checked 6 representative scale × width combinations — all clean.

See CHANGELOG.md for the full v0.8.2 entry.