docs: record control panel UX task 5 report

This commit is contained in:
gti
2026-09-22 20:50:04 -03:00
parent 4ba0fa8a53
commit f05e4a10a2
@@ -0,0 +1,64 @@
# Task 5 Report: Fixture Coverage, Documentation, And Regression Tests
## Result
Completed the fixture regression coverage and operational UX documentation.
The fixture retains its explicit non-production command gate and the default
100-Agent/500-event/100-job shape. Its deterministic blocker count is now 51:
50 distinct open tenant/product pairs, including two open blocker rows for the
same first product. Safe-blocked snapshot counts match the fixture's open
product pairs. Failed jobs have duration timestamps, and linked events point to
their job and, where present, the correct blocker/product and installation.
## TDD evidence
1. Added assertions for the additional same-product blocker, unique fingerprints,
exact UUID5 installation identities, ownership, failed-job durations, and
job/blocker/product event links. The first focused run was RED as expected:
fixture returned 50 blockers while the requirement expected 51.
2. After implementing the blocker/job/event fixtures, added an assertion that
each snapshot's `safe_blocked` value matched its open product pairs. The
focused run was RED as expected because the old sample formula reported
blocked products for installations without an open blocker.
3. Updated the deterministic snapshot values to match the generated open
product pairs. The focused test then passed.
## Verification commands
- RED: `python -m pytest central/tests/test_control_panel_fixture.py -q` —
failed on the expected blocker count gap (`50 != 51`).
- RED: `python -m pytest central/tests/test_control_panel_fixture.py -q` —
failed on the expected safe-blocked snapshot mismatch (`1 != 0`).
- GREEN: `python -m pytest central/tests/test_control_panel_fixture.py -q` —
passed (`1 passed`).
- Full central suite: `python -m pytest central/tests -q` — passed
(`275 passed`). Pytest emitted its existing `pytest-asyncio` fixture-loop
deprecation warning and one existing `openpyxl` print-area warning.
- `git diff --cached --check` — passed with no whitespace errors.
## Documentation review
Updated `docs/CONTROL_PANEL_V1.md` to link to the new operational UX contract
and distinguish the installation-wide confirmation step from the validated
blocker context workflow. Added `docs/CONTROL_PANEL_OPERATIONAL_UX_V1.md`
covering the health invariant, technical/fiscal distinction, blocker/product
counts, dashboard attention and empty states, identity-first views, timestamp
and timezone presentation, blocker filters and summaries, operational-only
priority tiers, safe resolution/auth/CSRF/audit fields, reprocess confirmation,
password policy, performance limits, responsiveness, fixture command, and
write/deployment boundaries.
## Commit
- Implementation and product documentation: `4ba0fa8`
(`test: complete control panel fixture UX coverage`)
## Concerns
- The new UX contract documents the design's full technical timestamp in the
title attribute. The inspected templates currently pass the human-formatted
timestamp as the title value; runtime code was outside this task's allowed
scope. Align the title value in a runtime task or revise the contract after
deciding the intended presentation.
- Full central tests retain the two pre-existing dependency warnings described
above; they did not fail the suite.