# 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
```
