Commit Graph
175 Commits
Author SHA1 Message Date
marcopan 225d13cd75 fix(frontend): preserve Pi auth asset guidance 2026-08-14 19:14:53 +02:00
marcopan 99012f04c2 fix(frontend): make Pi operator tabs keyboard accessible 2026-08-14 19:01:20 +02:00
marcopan 1df881d98d feat(frontend): simplify Pi operator workflow 2026-08-14 18:52:11 +02:00
marcopan ab33e0ed0a docs: describe read-only workspace runtime configuration 2026-08-14 18:01:02 +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 f8117e8428 fix: remove reviewer response success toast 2026-08-14 12:40:50 +02:00
marcopan db1a81cfa6 fix: surface reviewer response failures 2026-08-14 12:06:25 +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 4e810af516 test: align qdrant ollama verification fixtures 2026-08-08 22:15:02 +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 5d037e97c4 refactor: remove portal deployment coupling 2026-08-05 06:58:19 +02:00
marcopan fd1fd2f802 fix: refresh Pi credential readiness 2026-08-05 06:30:25 +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 87b0fda3f6 fix(dev): proxy local API and restrict frontend upstream 2026-08-04 15:58:13 +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 6b40fa0cc5 fix: harden workspace manager drafts 2026-08-04 06:36:16 +02:00
marcopan 48fd316b90 feat: add workspace management editor 2026-08-04 06:27:59 +02:00
marcopan b686ffe271 fix: gate direct session creation by workspace policy 2026-08-04 06:13:22 +02:00
marcopan 7a780d8904 fix: block creation when workspace summaries fail 2026-08-04 06:05:22 +02:00
marcopan 41c558e06c fix: gate creation until workspace summaries load 2026-08-04 06:01:25 +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 959c6871ee fix: validate workspace drafts and reconcile models 2026-08-04 05:38:43 +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 18233d59af fix: refine session report and live activity layout 2026-07-24 00:21:36 +02:00
marcopan 6ca4275ff2 fix: improve memory markdown layout 2026-07-23 23:01:29 +02:00
marcopan 724c446087 fix: expand session summary prose with panel 2026-07-23 16:06:22 +02:00
marcopan 9b5fca59e8 fix: expand final SQL to session panel width 2026-07-23 15:44:16 +02:00
marcopan 0db85e4e4e feat: redesign persisted session summaries 2026-07-23 15:35:31 +02:00
marcopan 694b7dd21f fix: harden reviewer workflow and memory handling 2026-07-23 12:34:23 +02:00
marcopan 4c9424f1e3 feat: add button press feedback 2026-07-21 15:10:08 +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 Fable 5 3e072fe652 fix: realign workflow advance semantics and phase labels with workflow.yaml
Audit findings 2.1 + 2.2 (high).

2.1 WorkflowBar's static phase list was fiction from F2 on (F2 "Schema
linking" vs memoria, F4 "SQL plan" vs schema_linking, …): every live
session showed the wrong phase name. Both maps now mirror
harness/workflow.yaml (F1 chiarimento … F8 datamart).

2.2 forceAdvance (6ee5bda) let reviewer_decide advance:true bypass the
phase gate on ANY phase, contradicting SKILL.md's "auto-advance only
empty F2 / skipped F6". reviewer_decide is back on advanceIfReady (exit-6
no-op) and tells the model to close via reviewer_confirm; forceAdvance
stays only where selection IS the approval by design: reviewer_schema_linking
(F4) and the F8 promotion close path. SKILL.md now names the three
self-closing gates (F3 rewrite_question, F4 schema-linking advance:true,
F8 memory_promote) so gate and skill state one contract.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 01:28:18 +02:00
marcopanandClaude Fable 5 803b98de36 fix(frontend): center gate dialogs on the app area, not the browser viewport
Embedded in the Omics Portal the SPA sits to the right of the portal sidebar,
but dialogs used `fixed left-1/2` — centered on the whole browser window, so
gates rendered visibly off-center (overlapping the sidebar).

- AppShell publishes the app area's horizontal geometry (--app-area-left/width)
  as CSS vars on <html> via ResizeObserver + window resize.
- DialogContent centers on those vars (falls back to the viewport when the app
  is standalone, where the two coincide).
- ArtifactGateWidget: narrower — cap at 52rem instead of 70vw.
- tools/replay: resume now returns {id, alreadyActive} JSON — the post-f979ada
  frontend reads result.alreadyActive and a bare 204 broke replay resume.

Verified on the replay harness: with a simulated 300px portal sidebar the gate
centers on the app area (center 790 = 300 + 980/2); standalone unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:08:20 +02:00
marcopanandClaude Opus 4.6 6ee5bda7f0 feat: gate decision-type validation, force-advance, and frontend fixes
Gate (tht-gate.js):
- Pre-validate decision types against workflow.yaml before showing reviewer widget
- Reject decisions emitted by later phases (min-phase check)
- Copy top-level `kind` into artifact when model forgets it (prevents loop)
- Force-advance on reviewer_decide/schema_linking when advance:true — skip
  redundant reviewer_confirm gate

Backend:
- Emit agent_end on clean Pi exit (code 0 + bridge idle) instead of marking failed

Frontend:
- Strip <think> tags from transcript and activity panel
- Fix mermaid render with offscreen container + cleanup
- Graceful mermaid error: show source code instead of red error, fall back to table

Workflow:
- F2 now emits table_promoted and table_excluded (early schema linking decisions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-19 14:14:44 +02:00