fa9a6a169a
feat(web): implement multi-session terminal tab management (CT-TERM-004)
...
ci/woodpecker/push/web Pipeline was successful
Transforms the single-session terminal into a full multi-tab system:
- Add useTerminalSessions hook: manages multiple PTY sessions over a
single Socket.IO connection to /terminal namespace. Per-session output
multiplexing via callback registry (registerOutputCallback). Sessions
tracked in a Map with status (active/exited) and auto-selection of
the first available session when active is closed.
- Refactor XTerminal: remove internal useTerminal usage; accept sessionId
and control functions (sendInput, resize, closeSession, registerOutputCallback)
as props from parent. Registers its own output callback on mount and
unregisters on unmount. Exit overlay shows restart button using onRestart
callback.
- Refactor TerminalPanel: fully internally managed tabs via
useTerminalSessions. Real tab bar rendered from sessions Map. Features:
"+" button for new tabs, per-tab close buttons, double-click inline tab
rename (Enter/Escape/blur), connection error banner, auto-create first
session on connect, and XTerminal instances kept mounted (display:none)
for scrollback preservation when switching tabs.
- Add comprehensive test suite: 41 tests for useTerminalSessions, 14 for
updated XTerminal, 43 for updated TerminalPanel (76 total). All pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 21:17:35 -06:00
13aa52aa53
feat(web): polish master chat with model selector, params config, and empty state ( #519 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-26 03:17:23 +00:00
417c6ab49c
feat(web): integrate xterm.js with WebSocket terminal backend ( #518 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-26 02:55:53 +00:00
7de0e734b0
feat(web): implement SSE chat streaming with real-time token rendering ( #516 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-26 02:39:43 +00:00
5f6c520a98
fix(auth): prevent login page freeze on OAuth sign-in failure ( #506 )
...
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-25 01:59:36 +00:00
7f89682946
test(web): add unit tests for MS18 components ( #503 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 02:23:05 +00:00
8b4c565f20
feat(web): add kanban board filtering with URL param persistence ( #502 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 02:09:37 +00:00
d5ecc0b107
feat(web): add markdown round-trip and replace textarea with Tiptap ( #501 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 01:40:34 +00:00
a81c4a5edd
feat(web): add Tiptap WYSIWYG KnowledgeEditor component ( #500 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 01:23:57 +00:00
ff5a09c3fb
feat(web): add widget config dialog and layout management controls ( #499 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 01:11:47 +00:00
f93fa60fff
feat(web): add widget picker drawer for dashboard customization ( #498 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 00:59:45 +00:00
cc56f2cbe1
feat(web): migrate dashboard to WidgetGrid with layout persistence ( #497 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-24 00:50:24 +00:00
90c3bbccdf
feat(web): add theme selection UI in Settings > Appearance ( #495 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 14:18:16 +00:00
79286e98c6
feat(web): upgrade ThemeProvider for multi-theme registry ( #494 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 14:09:10 +00:00
cfd1def4a9
feat(web): add theme definition system with 5 built-in themes ( #493 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 13:59:01 +00:00
3d78b09064
docs: close out MS16+MS17 mission ( #486 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 13:27:22 +00:00
37cf813b88
fix(web): update calendar and knowledge tests for real API integration ( #483 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 05:04:55 +00:00
3d5b50af11
feat(web): add profile page with user info and preferences ( #482 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:50:44 +00:00
f30c2f790c
feat(web): add file manager page with list/grid views ( #481 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:39:19 +00:00
05b1a93ccb
feat(web): add logs and telemetry page with filtering and auto-refresh ( #480 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:38:15 +00:00
a78a8b88e1
feat(web): add project workspace page with tasks and agent sessions ( #479 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:29:39 +00:00
172ed1d40f
feat(web): add kanban board page with drag-and-drop ( #478 )
...
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:26:25 +00:00
ee2ddfc8b8
feat(web): add projects page with CRUD operations ( #477 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:13:26 +00:00
5a6d00a064
feat(web): wire knowledge pages to real API data ( #476 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 04:12:14 +00:00
ffda74ec12
test(web): update tasks page tests for real API integration ( #475 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 03:59:56 +00:00
f97be2e6a3
feat(web): wire calendar page to real API data ( #474 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 03:51:15 +00:00
97606713b5
feat(web): wire tasks page to real API data ( #473 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 03:51:08 +00:00
d0c720e6da
feat(web): add custom 404 pages for global and authenticated routes ( #472 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 03:43:55 +00:00
64e817cfb8
feat(web): add settings root index page with category cards ( #471 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 03:42:01 +00:00
8957904ea9
Phase 4: Deploy + Smoke Test ( #463 ) ( #464 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 02:09:43 +00:00
458cac7cdd
Phase 3: Agent Cycle Visibility ( #461 ) ( #462 )
...
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 01:07:29 +00:00
7581d26567
Phase 2: Task Ingestion Pipeline ( #459 ) ( #460 )
...
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 00:54:55 +00:00
07f5225a76
Phase 1: Dashboard Polish + Theming ( #457 ) ( #458 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-23 00:16:45 +00:00
b43e860c40
feat(web): Phase 3 — Dashboard Page ( #450 ) ( #453 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 21:18:50 +00:00
716f230f72
feat(ui,web): Phase 2 — Shared Components & Terminal Panel ( #449 ) ( #452 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 21:12:13 +00:00
a5ed260fbd
feat(web): MS15 Phase 1 — Design System & App Shell ( #451 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 20:57:06 +00:00
17144b1c42
style(ui): refine login card shape and divider spacing ( #439 )
...
ci/woodpecker/push/orchestrator Pipeline is running
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 06:19:23 +00:00
06e54328d5
fix(web): force dynamic rendering for runtime env injection ( #437 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 03:54:12 +00:00
7480deff10
fix(web): add Tailwind CSS setup for design system rendering ( #436 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 23:36:16 +00:00
1b66417be5
fix(web): restore login page design and add runtime config injection ( #435 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 23:16:02 +00:00
25ae14aba1
fix(web): resolve flaky CI test failures ( #433 )
...
ci/woodpecker/push/web Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 21:12:00 +00:00
bc4c1f9c70
Merge develop into main
...
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/coordinator Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
Consolidate all feature and fix branches into main:
- feat: orchestrator observability + mosaic rails integration (#422 )
- fix: post-422 CI and compose env follow-up (#423 )
- fix: orchestrator startup provider-key requirements (#425 )
- fix: BetterAuth OAuth2 flow and compose wiring (#426 )
- fix: BetterAuth UUID ID generation (#427 )
- test: web vitest localStorage/file warnings (#428 )
- fix: auth frontend remediation + review hardening (#421 )
- Plus numerous Docker, deploy, and auth fixes from develop
Lockfile conflict resolved by regenerating from merged package.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 14:52:43 -06:00
c23ebca648
fix(ci): resolve pipeline #516 audit and test failures ( #429 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/push/api Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 20:11:58 +00:00
af299abdaf
debug(auth): log session cookie source
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
2026-02-18 21:36:01 -06:00
fa9f173f8e
chore(web): use prod-only deps in runtime image
ci/woodpecker/push/web Pipeline was successful
2026-02-18 21:13:12 -06:00
7935d86015
chore(web): avoid pnpm in runtime image to reduce CVE noise
ci/woodpecker/push/web Pipeline was successful
2026-02-18 20:24:22 -06:00
1a668627a3
test(web): silence localStorage-file warnings in vitest setup
ci/woodpecker/push/web Pipeline failed
2026-02-18 19:38:23 -06:00
dedc1af080
fix(auth): restore BetterAuth OIDC flow across api/web/compose
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
2026-02-17 23:37:49 -06:00
Jason Woltje
63c6a129bd
fix(runtime): stabilize LinkAutocomplete nav test and wire required compose env
ci/woodpecker/push/web Pipeline was successful
2026-02-17 16:42:34 -06:00
Jason Woltje
9d9a01f5f7
feat(web): add orchestrator readiness badge and resilient events parsing
ci/woodpecker/push/web Pipeline was successful
2026-02-17 16:20:03 -06:00