Commit Graph
67 Commits
Author SHA1 Message Date
Codex cffa60772e feat: complete catalog-driven preprocessing
Publish documentation / publish (push) Successful in 2m12s
2026-09-06 17:49:35 +02:00
Codex 7b1d69a65b feat: complete catalog sensitivity enhancements 2026-09-04 15:11:18 +02:00
Codex 8e778b9edb feat: sample sensitive columns progressively 2026-09-03 10:25:05 +02:00
Codex f114d0065a feat: classify sensitive columns locally 2026-09-03 02:11:13 +02:00
Codex 7b7927bfe5 feat: unify installation model catalog 2026-09-02 18:45:33 +02:00
Codex 4531746038 feat: refine metadata catalog workflows 2026-09-02 11:38:47 +02:00
Codex 076c9742c5 feat: consolidate database management work
Add catalog-owned logical relationships and runtime snapshots, extend the database-management UI and validation coverage, and document the updated operational workflow.

Keep active sensitive-generation status in a tooltip and indicator, and update the layout E2E to follow the history action in its new database-scoped location.
2026-09-01 14:46:55 +02:00
Codex 9c697dc062 feat: complete catalog fleet management workflow 2026-08-31 15:58:43 +02:00
Codex cb40c09d9a fix: scope and batch sensitive suggestions 2026-08-30 17:12:20 +02:00
Codex 0736983bc5 feat: protect sensitive catalog samples 2026-08-30 12:14:23 +02:00
Codex 376dd5a09d feat: add AI catalog description generation 2026-08-29 16:42:56 +02:00
Codex 58ee9cffe4 feat: add metadata catalog cleanup commands 2026-08-28 00:37:43 +02:00
Codex 79c4c925b5 feat: implement metadata catalog database management 2026-08-27 22:43:54 +02:00
Codex 38f02cfd08 feat: complete evidence restructuring worktree 2026-08-26 11:39:02 +02:00
marcopan f48196a57f chore: commit remaining worktree changes 2026-08-26 08:10:37 +02:00
marcopan fa2298653b fix(ui): stream phase progress without gates 2026-08-24 12:10:56 +02:00
User 5c505d4c85 feat(frontend): support embedded API prefixes 2026-08-22 16:29:56 +02:00
marcopan ef244ab56d fix(auth): harden unified diagnostic execution 2026-08-17 17:25:26 +02:00
marcopan 30ee9433dc fix(auth): harden unified diagnostic execution 2026-08-17 16:39:54 +02:00
marcopan 3ed00ff086 feat(auth): include authentication in workspace and tht diagnostics 2026-08-17 15:51:16 +02:00
marcopan 4fe51cbeb1 feat(auth): add generic OIDC login with mandatory groups 2026-08-17 05:44:10 +02:00
marcopan 202822f3ba feat(auth): add remembered local login to the frontend 2026-08-17 04:52:39 +02:00
marcopan fd3b62ce6f refactor: stop persisting workspace state in the browser 2026-08-14 17:43:10 +02:00
marcopan 3978008aed feat: add read-only workspace and secret management UI 2026-08-14 17:38:24 +02:00
marcopan 25b2835e73 Fix workspace policy loading 2026-08-13 23:24:45 +02:00
marcopan 930335a804 fix: restore escaped control range in snapshot path regex 2026-08-11 15:39:12 +02:00
marcopan 1790d2449f refactor: make browser workspace writes bootstrap-only 2026-08-11 15:36:09 +02:00
marcopan 66f44b054f test: add schema v3 only absence gate 2026-08-11 08:09:01 +02:00
marcopan 90684c3280 refactor: remove legacy workspace UI state 2026-08-10 22:56:00 +02:00
marcopan d77c08884b test: use canonical workspace API fixtures 2026-08-09 20:44:35 +02:00
marcopan a681c431fb fix: sanitize workspace API envelopes 2026-08-09 20:38:54 +02:00
marcopan a580c4ca8a fix: preserve workspace evidence in browser drafts 2026-08-09 20:27:20 +02:00
marcopan 1b1213317b fix: fail safe on missing workspace revisions 2026-08-08 20:03:41 +02:00
marcopan c3a5621737 feat: edit qdrant workspace collections 2026-08-08 19:56:29 +02:00
marcopan 7df21b5f21 fix: harden Pi management readiness 2026-08-05 06:20:25 +02:00
marcopan 7a8bcacbfe feat: add Pi management interface 2026-08-05 05:53:28 +02:00
marcopan 8ffcaf3db9 deploy: route frontend and core through one origin 2026-08-04 15:48:15 +02:00
marcopan 8effdc6c89 fix: report nested workspace conflicts 2026-08-04 07:05:51 +02:00
marcopan 234b40e7cf fix: resolve workspace publish conflicts 2026-08-04 06:57:19 +02:00
marcopan b75b3af28e feat: publish and synchronize workspace drafts 2026-08-04 06:47:10 +02:00
marcopan b686ffe271 fix: gate direct session creation by workspace policy 2026-08-04 06:13:22 +02:00
marcopan b3ff39fc26 fix: make workspace policy waits selection-safe 2026-08-04 05:55:49 +02:00
marcopan cddd906719 fix: wait for workspace policy before creation 2026-08-04 05:48:13 +02:00
marcopan cee4cfa63d feat: store workspace preferences and drafts locally 2026-08-04 05:28:13 +02:00
marcopan 301db4bd85 feat: pin sessions to workspace revisions 2026-08-04 05:05:20 +02:00
marcopan 0db85e4e4e feat: redesign persisted session summaries 2026-07-23 15:35:31 +02:00
marcopan 2ff63d371f feat: harden workflow gates and expose token usage 2026-07-21 12:14:26 +02:00
marcopanandClaude Opus 4.6 3b52c8c08c feat: DWH connectivity probe at startup — modal alert within 5s if unreachable
Backend: GET /health/dwh (unauthenticated) calls tht db ping with a 5s
timeout. Frontend: checkDwhHealth() races a 5s timer against the fetch;
on failure a non-dismissable Dialog with Retry appears immediately.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-20 13:59:11 +02:00
marcopanandClaude Opus 4.8 3453f3ae23 feat: pre-check DWH reachability before creating a session (local dev only)
New session now refuses to spawn a Pi runtime that would only die in bootstrap
retrieval when the DWH/vector host is unreachable (e.g. a dropped VPN). Before
`session new`, POST /sessions probes the DWH via `tht db ping`; if it is down it
returns 503 {code:"dwh_unreachable"} with a clear message and creates nothing.

- Gated behind the THT_DWH_PRECHECK flag (default off), enabled only by the local
  dev launcher (run-stack.sh) — containers/CI never pay the probe, and existing
  tests that don't set it are unaffected.
- ThtRunner.dbPing() runs `tht db ping` with a 10s timeout (run() gains an optional
  timeout that SIGKILLs a hung child).
- Frontend: apiFetch throws a typed ApiError (status + parsed payload); the new-
  session composer shows the specific alert on `dwh_unreachable` instead of the
  generic retry hint, keeping the question for retry.

Verified live on an isolated backend (precheck on + broken DWH host → 503
dwh_unreachable, no session created) and via unit tests (backend 228, frontend 308).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 12:08:47 +02:00
marcopanandClaude Opus 4.8 f979ada5e7 feat(frontend): open a live session straight to its pending gate
Opening an in-progress session that has a live Pi runtime now reconnects to
its pending gate instead of the empty landing screen that read as "stopped".
Cold/completed sessions keep the read-only documents panel with its explicit
Resume, so a mere click never spawns a runtime. Backend GET /sessions now
reports a per-session `active` flag (live runtime bound) to drive this.

Also:
- "New session" now closes any open session detail panel (left box).
- The model-activity separator can be dragged to a full 50/50 split
  (was capped at 576px); central-min still guards narrow viewports.

Test fixes uncovered along the way:
- Node 25 ships an experimental global localStorage that shadows jsdom's and
  lacks clear(), failing every jsdom test at setup; install a spec-compliant
  in-memory Storage (feature-detected, inert on CI/LTS).
- Fix 4 pre-existing session-mgmt tests that used an ambiguous getByText for a
  session shown in both nav and header; target the nav item by test id.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 22:56:12 +02:00