docs: record activity log and CTE deployment
This commit is contained in:
+34
-2
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user