# CoastWise — Backlog & Handoff Last updated: 2026-06-15. Picks up after the UI redesign + first deploy. ## Shipped (2026-06-15) - **UI/UX redesign** ("Ocean & Trust"): custom teal/navy Gradio theme (Lexend + Source Sans 3), branded header with offline-ready badge, status-badge answer cards, "How CoastWise reached this answer" disclosure, example chips, embedded Ask button inside the search field, top source bar ("Sources updated … · freshness") with a compact refresh icon button, light/dark pairing, responsive + WCAG-minded contrast/focus. - **Gradio 6 correctness**: theme/css applied via `launch()` (ignored on `gr.Blocks` in v6); answer text uses adaptive `--body-text-color` (Gradio mangles `.dark` custom selectors and `.prose *` outranks single-class colors); `sdk_version: 6.18.0` pinned so the Space can't fall back to v5. - **Offline-first Refresh**: bounded, concurrent fetch (≤3s) that never hangs the UI, with a "Checking…" state and graceful "using last-good cache" messaging. - **Freshness**: re-stamped the seed cache to 2026-06-15 (reads "current"); the freshness test is now deterministic relative to the seed time. - **Copy**: dropped the "CDPH cached evidence:" prefix from advisory answers. - **Deployed**: GitHub `Mr-Perfection/build-small-hack` (main) and the live HF Space **build-small-hackathon/coastwise** (themed UI verified live). ## Backlog (next session) Priority order for the 2026-06-15 23:59 UTC submission: 1. **Demo video** — record the ~90s demo path; link it in the README ("Demo And Public Evidence"). 2. **Social post** — create one; link it in the README. 3. **`openai-codex` badge integrity** — the Space history is currently Claude-co-authored, **not** Codex. Either drop the `openai-codex` tag from the README frontmatter, or land genuine Codex-attributed commits before claiming it. 4. **`openbmb` / `tiny-titan` substantiation** — on `main`, MiniCPM is "disabled/mocked." The real in-process MiniCPM integration lives on the unmerged `source-derived-qna` branch (see below). Decide how to substantiate these awards. 5. **Reconcile `source-derived-qna` with the new UI** — that branch has ~10 unmerged commits (in-process MiniCPM interpreter, seed expanded to ~47–78 source-verified species + dynamic refresh, location-asked-in-question UI that **drops the Beach/coastal-area field**, fuzzy place matching, the "dungeness crab rules" real-values fix). It has a **different `app.py`/UI**, so merging it will conflict with the redesign shipped today. Plan the merge deliberately (likely: take the branch's backend/data/model work, re-apply today's UI on top). ## Handoff notes - **Current Spec Kit plan**: `specs/002-source-backed-qna/plan.md` (+ `tasks.md`). - **Live Space**: https://huggingface.co/spaces/build-small-hackathon/coastwise (creating it in the org IS the submission). `stephenlee` is now an org member. - **HF push**: write token is in `.env` as `HF_WRITE_TOKEN` (gitignored — never commit it). Push via a git credential helper reading the env var; do not embed the token in the remote URL. The `space` remote is configured (plain URL). Docs-only changes go to GitHub only (avoid pointless Space rebuilds). - **Tests**: `PYTHONPYCACHEPREFIX=/private/tmp/coastwise-pycache .venv/bin/python -m pytest -q` → 100 passing. `.worktrees/` is skipped by pytest (dot-dir). `docs/` is gitignored. - **Stale worktree**: `.worktrees/coastwise-implement` (branch merged into main) is safe to `git worktree remove`. `.worktrees/source-derived-qna` is the unmerged feature branch above — keep it. - **Local preview**: `GRADIO_SERVER_PORT=7860 .venv/bin/python app.py`; verify rendering with headless Chrome via Playwright (`channel="chrome"`, drive `?__theme=light|dark`). Playwright + huggingface_hub are installed in `.venv` (dev only — not in `requirements.txt`).