# CI Observer - Latest Context (2026-02-11) ## Final Production State - Production folder on runner: `/webapps/ci-observer-dashboard-prod` - Production container: `ci-observer-dashboard-prod` - Production port: `8089 -> 8088` - Production branch policy: deploy from `main` - Current app is running and data is visible. ## Repository - Repo: `Wolkabout/ci-observer-dashboard` - Local path used for development: `/home/nikola/codex-cli/ci-observer-dashboard` ## Important Commits on main - `689a78c` merge: GHA metadata cards + race clock improvements - `a719b7d` docs: runbook + architecture + stack overview - `d33f96e` merge: light mode bulb toggle + light contrast tuning ## Major Features Implemented 1. Metadata-rich run cards: - Added event, actor, author, commit short SHA, commit message, date, duration. 2. Repo name simplification: - Card header shows short repo name (`IoT-Platform-Core`, `argocd`) instead of `Org/repo`. 3. Race clock UI: - Large 24h digital time in top-right: `HH:MM:SS.cc` - Seconds and centiseconds visually de-emphasized. - Subtle pulse each second. - Date shown with clock (`YYYY-MM-DD`). 4. Light mode + bulb toggle: - Default: dark mode. - User toggle: hanging bulb button placed between title and clock. - Theme saved in browser localStorage. - Light mode pass/fail contrast tuned (medium level). 5. Documentation added to repo: - `docs/OPERATIONS_RUNBOOK.md` - `docs/ARCHITECTURE.md` - `docs/STACK_OVERVIEW.md` ## Runtime Config Notes - App currently requires both `GH_REPOS` and `GH_WORKFLOWS`. - If `GH_WORKFLOWS` is empty, polling does not start (UI loads but no runs). - Required `.env` keys: - `GITHUB_TOKEN` - `GH_REPOS` - `GH_WORKFLOWS` - `REFRESH_SECONDS` - `DASHBOARD_TITLE` ## Current Cleanup Status - Old test containers and folders were cleaned. - `/webapps` now keeps production folder only for CI Observer. ## Standard Production Update Command ```bash cd /webapps/ci-observer-dashboard-prod git checkout main git pull docker compose up -d --build ``` ## If Data Disappears But UI Loads - Check `.env` first (`GH_WORKFLOWS` is usually the cause). - Then rebuild: ```bash docker compose up -d --build ``` ## Next Session Starting Point - Start from production folder: `/webapps/ci-observer-dashboard-prod` - Verify status: ```bash docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep ci-observer-dashboard-prod curl -s http://127.0.0.1:8089/api/config ```