66d401461c
feat(web): fleet settings UI (MS22-P1h) ( #617 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-01 16:22:22 +00:00
01ae164b61
feat(web): onboarding wizard (MS22-P1f) ( #616 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-01 16:07:22 +00:00
6521f655a8
feat(web): add teams page and RBAC navigation/route gating (MS21-UI-005, RBAC-001, RBAC-002) ( #595 )
...
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-01 04:54:25 +00:00
c939a541a7
feat(web): gate settings nav by workspace role (MS21-RBAC-001) ( #579 )
...
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-28 23:06:23 +00:00
ffc10c9a45
feat(api): add MS21 user fields for admin, local auth, and invitations ( #553 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web 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-28 17:47:03 +00:00
128431ba58
fix(api,web): separate workspace context from auth session ( #551 )
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web 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-28 15:14:29 +00:00
c0e679ab7c
fix(web,api): fix WebSocket authentication for chat real-time connection ( #547 )
...
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-27 11:30:44 +00:00
c38bfae16c
fix(web): fix personalities page dark mode theming and wire to API ( #540 )
...
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-27 10:59:04 +00:00
b3922e1d5b
feat(web): add dedicated /terminal page route ( #538 )
...
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-27 10:43:14 +00:00
21bf7e050f
fix(web): resolve dashboard widget errors and deployment config ( #530 )
...
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-27 03:49:57 +00:00
9b2520ce1f
feat(web): add agent output terminal tabs for orchestrator sessions ( #522 )
...
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 04:04:26 +00:00
b110c469c4
feat(web): add orchestrator command system in chat interface ( #521 )
...
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:39:00 +00:00
859dcfc4b7
feat(web): implement multi-session terminal tab management ( #520 )
...
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:18:35 +00: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
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
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
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
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
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
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
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
Jason Woltje
5bce7dbb05
feat(web): show latest orchestrator event in task progress widget
ci/woodpecker/push/web Pipeline failed
2026-02-17 16:12:40 -06:00
Jason Woltje
d34f097a5c
feat(web): add orchestrator events widget with matrix signal visibility
ci/woodpecker/push/web Pipeline was successful
2026-02-17 15:56:12 -06:00
Jason Woltje
f4ad7eba37
fix(web-hud): support hyphenated widget IDs with regression tests
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web Pipeline failed
2026-02-17 15:49:09 -06:00
Jason Woltje
3258cd4f4d
feat(orchestrator): add SSE events, queue controls, and mosaic rails sync
2026-02-17 15:39:15 -06:00
Jason Woltje
cab8d690ab
fix( #411 ): complete 2026-02-17 remediation sweep
...
Apply RLS context at task service boundaries, harden orchestrator/web integration and session startup behavior, re-enable targeted frontend tests, and lock vulnerable transitive dependencies so QA and security gates pass cleanly.
2026-02-17 14:19:15 -06:00
Jason Woltje
1d7d5a9d01
refactor( #416 ): delete old LoginButton, replaced by OAuthButton
...
ci/woodpecker/push/web Pipeline was successful
LoginButton.tsx and LoginButton.test.tsx removed. The login page now
uses OAuthButton, LoginForm, and AuthDivider from the auth redesign.
Refs #416
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:48:15 -06:00
Jason Woltje
81b5204258
feat( #415 ): theme fix, AuthDivider, SessionExpiryWarning components
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
- AUTH-014: Fix theme storage key (jarvis-theme -> mosaic-theme)
- AUTH-016: Create AuthDivider component with customizable text
- AUTH-019: Create SessionExpiryWarning floating banner (PDA-friendly, blue)
- Fix lint errors in LoginForm, OAuthButton from parallel agents
- Sync pnpm-lock.yaml for recharts dependency
Refs #415
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:37:31 -06:00
444fa1116a
fix( #410 ): align BetterAuth basePath and auth client with NestJS routing
...
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
BetterAuth defaulted basePath to /api/auth but NestJS controller routes
to /auth/* (no global prefix). The auth client also pointed at the web
frontend origin instead of the API server, and LoginButton used a
nonexistent GET /auth/signin/authentik endpoint.
- Set basePath: "/auth" in BetterAuth server config
- Point auth client baseURL to API_BASE_URL with matching basePath
- Add genericOAuthClient plugin to auth client
- Use signIn.oauth2({ providerId: "authentik" }) in LoginButton
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 19:41:08 -06:00
cf28efa880
merge: resolve conflicts with develop (M10-Telemetry + M12-MatrixBridge)
...
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/coordinator Pipeline was successful
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Merge origin/develop into feature/m13-speech-services to incorporate
M10-Telemetry and M12-MatrixBridge changes. Resolved 4 conflicts:
- .env.example: Added speech config alongside telemetry + matrix config
- Makefile: Added speech targets alongside matrix targets
- app.module.ts: Import both MosaicTelemetryModule and SpeechModule
- docs/tasks.md: Combined all milestone task tracking sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 12:31:08 -06:00
af9c5799af
fix( #388 ): address PR review findings — fix WebSocket/REST bugs, improve error handling, fix types and comments
...
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
Critical fixes:
- Fix FormData field name mismatch (audio -> file) to match backend FileInterceptor
- Add /speech namespace to WebSocket connection URL
- Pass auth token in WebSocket handshake options
- Wrap audio.play() in try-catch for NotAllowedError and DOMException handling
- Replace bare catch block with named error parameter and descriptive message
- Add connect_error and disconnect event handlers to WebSocket
- Update JSDoc to accurately describe batch transcription (not real-time partial)
Important fixes:
- Emit transcription-error before disconnect in gateway auth failures
- Capture MediaRecorder error details and clean up media tracks on error
- Change TtsDefaultConfig.format type from string to AudioFormat
- Define canonical SPEECH_TIERS and AUDIO_FORMATS arrays as single source of truth
- Fix voice count from 54 to 53 in provider, AGENTS.md, and docs
- Fix inaccurate comments (Piper formats, tier prop, SpeachesProvider, TextValidationPipe)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:44:33 -06:00
bc86947d01
feat( #404 ): add speech settings page with provider config
...
ci/woodpecker/push/web Pipeline was successful
Implements the SpeechSettings component with four sections:
- STT settings (enable/disable, language preference)
- TTS settings (enable/disable, voice selector, tier preference, auto-play, speed control)
- Voice preview with test button
- Provider status with health indicators
Also adds Slider UI component and getHealthStatus API client function.
30 unit tests covering all sections, toggles, voice loading, and PDA-friendly design.
Fixes #404
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:16:27 -06:00
74d6c1092e
feat( #403 ): add audio playback component for TTS output
...
ci/woodpecker/push/web Pipeline was successful
Implements AudioPlayer inline component with play/pause, progress bar,
speed control (0.5x-2x), download, and duration display. Adds
TextToSpeechButton "Read aloud" component that synthesizes text via
the speech API and integrates AudioPlayer for playback. Includes
useTextToSpeech hook with API integration, audio caching, and
playback state management. All 32 tests passing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:05:39 -06:00
a5ee974765
feat( #375 ): frontend token usage and cost dashboard
...
- Install recharts for data visualization
- Add Usage nav item to sidebar navigation
- Create telemetry API service with data fetching functions
- Build dashboard page with summary cards, charts, and time range selector
- Token usage line chart, cost breakdown bar chart, task outcome pie chart
- Loading and empty states handled
- Responsive layout with PDA-friendly design
- Add unit tests (14 tests passing)
Refs #375
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:10:22 -06:00
Jason Woltje
e8a9a3087a
fix(ci): fix pipeline #366 — web @mosaic/ui build, Dockerfile find bug, event handler types
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
Three root causes resolved:
1. .woodpecker/web.yml: build-shared step was missing @mosaic/ui build,
causing 10 test suite failures + 20 typecheck errors (TS2307)
2. apps/orchestrator/Dockerfile: find -o without parentheses only deleted
last pattern's matches, leaving spec files with test fixture secrets
that triggered 5 Trivy false positives (3 CRITICAL, 2 HIGH)
3. 9 web files had untyped event handler parameters (e) causing 49 lint
errors and 19 typecheck errors — added React.ChangeEvent<T> types
Verification: lint 0 errors, typecheck 0 errors, tests 73/73 suites pass
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 17:50:41 -06:00
6a5a4e4de8
feat(web): add credential management UI pages and components
...
Add credentials settings page, audit log page, CRUD dialog components
(create, view, edit, rotate), credential card, dialog UI component,
and API client for the M7-CredentialSecurity feature.
Refs #346
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 09:42:41 -06:00