docs: record activity log and CTE deployment

This commit is contained in:
User
2026-07-15 01:47:21 +02:00
parent 6747f6f8a0
commit 4d36f4acf1
2 changed files with 42 additions and 2 deletions
+34 -2
View File
@@ -1,6 +1,6 @@
# ThothII — Project State
> Starting-point snapshot for new sessions. Last updated: 2026-07-14 (Qwen connectivity and Resume recovery live).
> Starting-point snapshot for new sessions. Last updated: 2026-07-15 (complete activity timeline and CTE spacing live).
> Point a fresh session here ("read PROJECT_STATE.md") before substantial work.
## Deployment — Docker locale (Profile A, co-located) — LIVE 2026-07-12
@@ -116,6 +116,38 @@ ThothII gira in Docker sul server co-locato, **embedded nel portale omics_portal
exited 0 with `controller.abort()` in cleanup, preserving the gate, session cleanup, and exact
settings-restoration evidence.
### Complete activity timeline + CTE spacing — LIVE 2026-07-15
- **Model activity is complete from F1.** The left panel now records the submitted prompt before
session creation completes, then projects thinking, assistant output, sanitized tool lifecycle,
reviewer gates, status, and turn lifecycle in chronological order. It remains in-memory only;
closing and reopening the panel does not discard it, while Resume intentionally starts a fresh
live timeline.
- **Tool activity is a narrow public contract.** Only call id, tool name, and
`running`/`completed`/`failed` status cross Pi → backend → SSE. Updates, arguments, results,
commands, output, credentials, and raw errors stay server-side. Resume and SSE replay were also
hardened for process restarts, concurrent lifecycle requests, stale callbacks, cursor reset, and
multi-client reconnects.
- **CTE plan layout uses real Tailwind 3 spacing.** Shared cards use concrete 16 px default / 12 px
compact padding utilities; F6 CTE headers and content use responsive 16/20 px edge padding.
Semantic ordered steps, single-boundary divided filter/table lists, long-value wrapping, and a
plain top-divider rationale preserve the artifact content while improving scanability.
- **Verification/deploy (`2026-07-15T01:45:05+02:00`):** backend **202/202** and frontend
**280/280** passed; both TypeScript gates and production builds exited 0; the Impeccable layout
detector returned `[]`; `git diff --check` was clean. Compose rebuilt and force-recreated `core`
and `frontend`; core is healthy and frontend is running. Built and running image ids match: core
`sha256:1b98643d36f50488a6eebdc1203517406fce4fcc20f4b0bacfb7c8bf01bf1b91`, frontend
`sha256:5d35f59c6c45746fa4fa1deba9f63f31d28244fa6635a37a18cac911cc5d7585`.
The frontend entry changed from `index-CX4AkqeB.js` to `index-DcZviApa.js`, so only
`omics_portal-web-1` was restarted to refresh its indefinite manifest cache.
- **Live local-Qwen activity smoke:** session
`2026-07-14-234408-activity-smoke-2026-07-14t23-44-07-508z` reached sanitized tool activity and
the first reviewer gate with no forbidden activity fields. A second no-thinking probe
(`2026-07-14-234546-no-thinking-activity-smoke-2026-07-14t23`) observed **0**
`activity_delta` events while still receiving **3** sanitized tool events and the gate. Both
probes closed with 200, deleted only their own session with 204, restored the exact saved
settings object, and left no Pi runtime or smoke session.
## What ThothII is
A **human-in-the-loop datamart builder**: it turns a natural-language question into
@@ -170,7 +202,7 @@ All three layers' deps installed (`npm install` in each, `python -m venv + pip i
- 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 (green 2026-07-14: harness pytest 798 / gate JS 126 / backend 168 / frontend 256)
## How to test (latest TS gates green 2026-07-15: backend 202 / frontend 280; harness 798 / gate JS 126 last recorded 2026-07-14)
- 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)
+8
View File
@@ -23,3 +23,11 @@
closes the old EventSource and opens the same session URL again. Failed Resume must not reconnect.
- SSE endpoints are intentionally keep-alive. Browser cleanup and one-off probes must explicitly
close the EventSource or cancel/abort the response reader after their terminal event.
- The Model activity panel is an in-memory chronological projection of the prompt, thinking,
assistant output, sanitized tool lifecycle, reviewer gates, status messages, and turn lifecycle.
It starts with the local F1 prompt and is deliberately not persisted as chat history.
- Pi tool events may cross the backend/client boundary only as call id, tool name, and
`running`/`completed`/`failed` status. Tool updates, arguments, partial/final results, commands,
raw output, and raw errors remain server-side.
- The frontend uses Tailwind CSS 3.4. Shared primitives must use concrete Tailwind 3-compatible
spacing utilities; Tailwind 4 custom-spacing syntax can compile to no effective padding here.