Files
homarr/qa/release-v2/reports/widgets-01/report.md
T

36 KiB
Raw Blame History

widgets-01: Time and environment

Metadata Value
Status blocked
Wave widgets
PR refs #6502, #6555
Personas Brooke Minimalist
Boards qa-widgets-01
Profiles main-writable, degraded
Chromium viewports mobile-320, mobile-375, boundary-767, boundary-768, tablet-1024, boundary-1279, desktop-1280, desktop-1440, desktop-1920
Zoom 100%, 125%
Input mouse, touch, keyboard
Widget kinds clock, weather, airQuality, countdown, timer
Artifact directory /home/habs/.codex/worktrees/8ba8/homarr/.screenshots/release-v2/widgets-01
Candidate SHA f57a660088
URL / actual port http://127.0.0.1:37137 / 37137
Runtime profile / flags main-writable; DEMO_MODE=true, DEMO_READ_ONLY=false, UNSAFE_ENABLE_MOCK_INTEGRATION=true
Executed persona Brooke Minimalist
Browser session ID qa-v2-widgets-01
Timestamp 2026-08-31T15:54:37.376Z
Executed viewport / input / zoom mobile-320 / mouse / 100%

Dogfood evidence

Case ID Status Evidence Observed Expected
WG-001-RENDER-SIZE blocked browser artifacts The application entry repeated redirects until Chromium stopped navigation; the assigned flow was not reachable. Render every assigned widget kind at every assigned viewport and exercise default, minimum, maximum, and compact sizes where supported.
WG-001-STATES-RECOVERY blocked browser artifacts The application entry repeated redirects until Chromium stopped navigation; the assigned flow was not reachable. Verify loading, populated, empty, error, stale, retry, and recovered states for every assigned widget kind.
WG-001-OPTIONS-PERSISTENCE blocked browser artifacts The application entry repeated redirects until Chromium stopped navigation; the assigned flow was not reachable. Mutate meaningful options, save, reload, reset, and confirm each assigned widget kind persists correctly.
WG-001-ACCESS-READONLY blocked browser artifacts The application entry repeated redirects until Chromium stopped navigation; the assigned flow was not reachable. Verify Owner, Editor, Viewer, missing-integration, permission-denied, and global read-only behavior for every assigned widget kind.
WG-001-EVIDENCE blocked browser artifacts The application entry repeated redirects until Chromium stopped navigation; the assigned flow was not reachable. Capture screenshot, console, network, overflow, clipping, focus, and cleanup evidence for every kind and viewport row.

Widget kind × viewport checklist

Widget kind Viewport Size States Permission/read-only Options/persistence Recovery Evidence Status
clock mobile-320 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock mobile-375 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock boundary-767 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock boundary-768 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock tablet-1024 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock boundary-1279 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock desktop-1280 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock desktop-1440 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
clock desktop-1920 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather mobile-320 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather mobile-375 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather boundary-767 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather boundary-768 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather tablet-1024 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather boundary-1279 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather desktop-1280 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather desktop-1440 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
weather desktop-1920 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality mobile-320 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality mobile-375 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality boundary-767 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality boundary-768 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality tablet-1024 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality boundary-1279 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality desktop-1280 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality desktop-1440 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
airQuality desktop-1920 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown mobile-320 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown mobile-375 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown boundary-767 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown boundary-768 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown tablet-1024 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown boundary-1279 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown desktop-1280 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown desktop-1440 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
countdown desktop-1920 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer mobile-320 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer mobile-375 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer boundary-767 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer boundary-768 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer tablet-1024 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer boundary-1279 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer desktop-1280 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer desktop-1440 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked
timer desktop-1920 minimum / canonical / wide / tall / maximum / overflow / behavior-changing thresholds blocked before render blocked before authentication not reached redirect retry reproduced artifacts blocked

Performance measurements and limitations

No valid feature timing could be recorded because no application document rendered. Cold/warm, polling, rendering, memory, and recovery measurements remain blocked.

Independent reproductions

The common routing failure was independently reproduced by qa-v2-preflight-01; the corresponding tracked packet contains its own browser evidence.

Findings

RV2-P1-001 — P1: locale rewrite causes an infinite browser redirect

Preconditions: candidate f57a660088, main-writable, mobile-320, 100% zoom, mouse, fresh named Chromium session qa-v2-widgets-01.

  1. Launch a fresh Chromium context with the Chromium argument --no-sandbox.
  2. Set the assigned viewport and open http://127.0.0.1:37137 or its authentication entry.
  3. Observe repeated document requests to the same route.
  4. Wait until Chromium displays ERR_TOO_MANY_REDIRECTS or chrome-error://chromewebdata/.
  5. Close the context, retry in a fresh context, and observe the same result.

Expected: the application renders the assigned entry, permitting authentication and the packet flow. Actual: the redirect loop prevents the application from rendering. Reproducibility: reproduced on retry and independently by another Luna Max preflight agent. Console output was empty; network and visual evidence are linked below.

Artifacts

Mutations and persistence

No credentials were submitted and no product mutation occurred. Reload and fresh-session retries reproduced the routing failure, so application persistence was not reachable.

Blockers and gaps

Every non-evidence case listed as blocked remains untested beyond the routing entry. No blocked cell is treated as passed.

Cleanup

The named browser session was closed by the browser agent. Artifacts remain under the untracked packet directory; no secret values were captured.