From 2e09c88f7860ae474fda46667762bf7ebe35396b Mon Sep 17 00:00:00 2001 From: mptyl Date: Tue, 30 Jun 2026 16:46:50 +0200 Subject: [PATCH] docs(state): record UI-redesign progress (D+E done; B/C/F/A pending) Co-Authored-By: Claude Opus 4.8 --- PROJECT_STATE.md | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index 1cb7652b..942a33bb 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -53,7 +53,7 @@ Opens frontend at http://localhost:5173 → backend :8787. - frontend: `cd frontend && npm run dev` (Vite; `VITE_BACKEND_URL` → backend) - harness install: `cd harness && python -m venv .venv && pip install -e ".[dev]"` → `tht` on PATH -## How to test (all green as of 2026-06-29: harness 248 / backend 67 / frontend 73) +## How to test (all green as of 2026-06-30: harness 269 / backend 67 / frontend 87) - harness: `cd harness && .venv/bin/pytest -q` (5 L2/real-DB tests are deselected by default) - backend: `cd backend && npx vitest run` · typecheck `npx tsc --noEmit -p .` - frontend: `cd frontend && npx vitest run` · typecheck `npx tsc -b` · e2e `npm run e2e` (Playwright) @@ -78,6 +78,32 @@ Opens frontend at http://localhost:5173 → backend :8787. - Global user rules (`~/.claude/CLAUDE.md`): think before coding, simplicity first, surgical changes, goal-driven verification. +## UI/UX redesign + Resume — IN PROGRESS (2026-06-30, evening) + +Approved multi-workstream plan: **`~/.claude/plans/foamy-forging-dahl.md`** (read it to resume). +Memory: `thothii-ui-redesign-inprogress.md`. **D + E are merged to `main` @ `0eeb3f7` and pushed.** + +- **D — DONE** (`c12bdcd`): session display `name` = 3-5 Italian keywords via **YAKE** (no LLM), + derived in `tht session new` (CLI layer); `create_session` core unchanged (`name=None` default). + `yake` added to `harness/pyproject.toml`. TDD `tests/test_session_name.py`; harness 269 passed. +- **E — DONE** (`0eeb3f7`): rotating activity icon replaces the red dot in `CentralStatus` + (inline, clickable → opens the panel); `ModelActivityPanel` is a **5-line expandable + model-stream tail**; `WorkingSpinner` extracted to its own module; the separate spinner button + + orphaned `Transcript.tsx` removed. Frontend 87/87, tsc clean. **Live visual check PENDING** + (needs a *working* session — do it in the B/C pass). +- **B (pending):** `WorkflowBar` → colored **dots** F1..F8, no text (amber-translucent=running, + green=done, red=error, gray=pending); error is lightweight (store `phaseError` set on an `info` + `level=error` during the phase, cleared on the next `ui_request`). +- **C (pending):** right sidebar — tighter rows, 3-level type hierarchy via **`/impeccable`**, + remove the "No group" label (ungrouped after the last group accordion); add **Resume** to `SessionMenu`. +- **F (pending):** single-select answers **auto-confirm** — `reviewer_select` persists the + decision directly on a concrete choice (no redundant `reviewer_decide` gate); contract change + (update its tool desc + `SKILL.md` + the `CLAUDE.md` note). back/exit/Other stay non-persisting. +- **A (pending, riskiest):** Resume command + **FIX the resume cold-start stall** (open item #1). +- **G (later):** cross-model behavior matrix (Qwen3.6 / GLM 5.2 / Deepseek V4 / others). + +**Next chunk:** the **B/C visual pass** (`/impeccable` + a live verification, incl. E's deferred check). + ## Live verification + reviewer_select fix (2026-06-30, afternoon) Drove the real stack (Playwright → backend → real Pi → GLM 5.2 → DWH) end-to-end. @@ -153,6 +179,7 @@ Full session management modeled on Claude's UI, all three layers: ended turn). The new-question path works, so it's resume-specific. Fix direction: harden the resume kickoff/SKILL so the model chains into the tool call. Memory: `thothii-resume-cold-start-stall.md`. **Do not advertise "Resume" as working until fixed.** + *(Scheduled as workstream A of the redesign plan above.)* 2. **Full Playwright live-stack verification (MANUAL, not yet run).** 3. **Minor backlog (non-blocking):** explicit id-traversal guard in `delete_session` (today gated by `load_session`); `close_session` could reuse `_save_touched` (DRY); @@ -172,6 +199,8 @@ Full session management modeled on Claude's UI, all three layers: resume cold-start stall, GLM 5.2 F1 slow≠stuck). ## Git -`main` tracks `origin` (github.com/mptyl/ThothII). The F1 hang-fix (7 files + this -`PROJECT_STATE.md`) is **committed on `main` on top of `4f60b38`, not yet pushed**. Other -local branches (`feat/settings-menu`, `feat/thothII-debugging`) are pre-existing, untouched. +`main` @ `0eeb3f7`, **pushed to `origin`** (github.com/mptyl/ThothII). Today's commits on top of +`4f60b38`: `418187a` (F1 hang fix) · `d27afd0` (reviewer_select `choices` fix) · `c12bdcd` +(D — YAKE naming) · `0eeb3f7` (E — activity icon/panel). The `feat/ui-redesign-resume` branch == +`main` (redundant, safe to delete). Other local branches (`feat/settings-menu`, +`feat/thothII-debugging`) are pre-existing, untouched.