From 3ff06573729dbe04ecd6ee666dd282f84d3822ee Mon Sep 17 00:00:00 2001 From: Codex Date: Fri, 19 Jun 2026 02:35:31 +0200 Subject: [PATCH] Polish live workspace export layout --- ...st_sprint66_live_workspace_smoke_polish.py | 21 ++++++++++++++++ docs/CODEX_EXECUTION_LOG.md | 25 +++++++++++++++++++ frontend/src/styles/app.css | 6 ++++- 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 backend/tests/test_sprint66_live_workspace_smoke_polish.py diff --git a/backend/tests/test_sprint66_live_workspace_smoke_polish.py b/backend/tests/test_sprint66_live_workspace_smoke_polish.py new file mode 100644 index 00000000..97a5bdb3 --- /dev/null +++ b/backend/tests/test_sprint66_live_workspace_smoke_polish.py @@ -0,0 +1,21 @@ +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[2] + + +def test_export_handoff_cards_use_width_aware_grid() -> None: + css = (ROOT / "frontend" / "src" / "styles" / "app.css").read_text(encoding="utf-8") + + assert ".handoff-action-grid" in css + assert "repeat(auto-fit, minmax(11rem, 1fr))" in css + assert ".export-center .handoff-readiness-grid" in css + assert "repeat(auto-fit, minmax(7.5rem, 1fr))" in css + + +def test_live_workspace_smoke_artifacts_are_documented() -> None: + execution_log = (ROOT / "docs" / "CODEX_EXECUTION_LOG.md").read_text(encoding="utf-8") + + assert "Sprint 66 Live workspace smoke polish" in execution_log + assert "desktop and mobile screenshots" in execution_log + assert "no console warnings/errors" in execution_log diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index 88fcff6a..99964dcc 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -2518,3 +2518,28 @@ Limitations: Next recommended pass: - Continue with a full-workspace browser smoke and then refine any remaining dense panels found during populated-state review. + +## Sprint 66 Live workspace smoke polish (2026-06-19) + +Changed: +- Ran a live browser smoke against `http://192.168.10.150:1202` across Overview, Data, Map, QA/QC, AI Labs, Exports and System. +- Captured desktop and mobile screenshots under `artifacts/sprint66-live-workspace-smoke/`. +- Confirmed all primary workspaces load with no console warnings/errors and no page-level horizontal overflow. +- Tightened Export Center handoff card CSS so action cards and readiness cells wrap by available width instead of forcing cramped three/four-column layouts in the populated Exports workspace. +- Added `backend/tests/test_sprint66_live_workspace_smoke_polish.py`. + +Tested: +- Red step: `python -m pytest backend/tests/test_sprint66_live_workspace_smoke_polish.py -q` failed on missing width-aware export grid CSS and Sprint 66 log entry. +- Live desktop browser smoke: all seven primary workspaces opened, screenshots captured, no console warnings/errors, no horizontal page overflow. +- Live mobile browser smoke: all seven primary workspaces opened, screenshots captured, no console warnings/errors, no page-level horizontal overflow. The mobile primary nav intentionally remains a horizontal rail. +- Local post-fix browser check against `http://127.0.0.1:5175` with live API proxy: Exports handoff action cards wrap to 2 desktop columns and 1 mobile column, no console warnings/errors and no horizontal page overflow. +- `bash scripts/run_readiness_check.sh` (`237 passed`) + +Open: +- Deploy Tower and run live browser runtime verification after this CSS polish. + +Limitations: +- This is a visual ergonomics hardening pass only. It does not add endpoints, migrations, provider fetching, AI/model behavior or new product capabilities. + +Next recommended pass: +- Continue with populated Map/Data interaction polish, especially making it easier to activate the demo vector layer from the map empty state. diff --git a/frontend/src/styles/app.css b/frontend/src/styles/app.css index 2237c9c2..4d97ad78 100644 --- a/frontend/src/styles/app.css +++ b/frontend/src/styles/app.css @@ -1222,6 +1222,10 @@ button.entity-card { gap: 0.55rem; } +.export-center .handoff-readiness-grid { + grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); +} + .handoff-readiness-grid > div { min-width: 0; border: 1px solid var(--line); @@ -1253,7 +1257,7 @@ button.entity-card { .handoff-action-grid { display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 0.6rem; grid-column: 1 / -1; width: 100%;