1.5 KiB
1.5 KiB
Final Fix Report — Control Panel Operational UX V1
Base: c237820
Changes
- Legacy blockers without an exact installation binding remain fail-closed. Their detail page explains in Portuguese why resolution is unavailable and omits the resolution form. Direct HTML and JSON attempts return HTTP 409; missing blockers remain 404. Legacy details do not load context by guessing a company identity.
- Resolution rejects derived
company_keyvalues longer than the database limit of 64 characters before creating context, job, or audit rows. No truncation or identity aliasing is performed. - Validation-error re-renders preserve the submitted key, value, scope, scope key, and reason, and reload current persisted context for a bound blocker.
- Added regression coverage in
central/tests/test_blocker_resolution_panel.pyandcentral/tests/test_control_panel_pages.py.
Verification
- TDD RED: focused tests initially failed on the missing company-key validation, unavailable-blocker response/UI, and form/context recovery behavior.
- Focused:
python -m pytest central/tests/test_blocker_resolution_panel.py central/tests/test_control_panel_pages.py -q— 26 passed. - Full central suite:
python -m pytest central/tests -q— 284 passed, 1 warning (existingopenpyxlprint-area warning intest_bootstrap_v1_extra.py). git diff --check— passed.
Concerns
- Test output includes the existing
pytest-asyncioconfiguration deprecation notice and one unrelatedopenpyxlwarning; neither caused test failures.