jason.woltje
66d401461c
feat(web): fleet settings UI (MS22-P1h) ( #617 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-01 16:22:22 +00:00
jason.woltje
01ae164b61
feat(web): onboarding wizard (MS22-P1f) ( #616 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-01 16:07:22 +00:00
jason.woltje
6521f655a8
feat(web): add teams page and RBAC navigation/route gating (MS21-UI-005, RBAC-001, RBAC-002) ( #595 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-03-01 04:54:25 +00:00
jason.woltje
c939a541a7
feat(web): gate settings nav by workspace role (MS21-RBAC-001) ( #579 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-28 23:06:23 +00:00
jason.woltje
ffc10c9a45
feat(api): add MS21 user fields for admin, local auth, and invitations ( #553 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-28 17:47:03 +00:00
jason.woltje
128431ba58
fix(api,web): separate workspace context from auth session ( #551 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-28 15:14:29 +00:00
jason.woltje
c0e679ab7c
fix(web,api): fix WebSocket authentication for chat real-time connection ( #547 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-27 11:30:44 +00:00
jason.woltje
c38bfae16c
fix(web): fix personalities page dark mode theming and wire to API ( #540 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-27 10:59:04 +00:00
jason.woltje
b3922e1d5b
feat(web): add dedicated /terminal page route ( #538 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-27 10:43:14 +00:00
jason.woltje
21bf7e050f
fix(web): resolve dashboard widget errors and deployment config ( #530 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-27 03:49:57 +00:00
jason.woltje
9b2520ce1f
feat(web): add agent output terminal tabs for orchestrator sessions ( #522 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 04:04:26 +00:00
jason.woltje
b110c469c4
feat(web): add orchestrator command system in chat interface ( #521 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 03:39:00 +00:00
jason.woltje
859dcfc4b7
feat(web): implement multi-session terminal tab management ( #520 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 03:18:35 +00:00
jason.woltje
13aa52aa53
feat(web): polish master chat with model selector, params config, and empty state ( #519 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 03:17:23 +00:00
jason.woltje
417c6ab49c
feat(web): integrate xterm.js with WebSocket terminal backend ( #518 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 02:55:53 +00:00
jason.woltje
7de0e734b0
feat(web): implement SSE chat streaming with real-time token rendering ( #516 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-26 02:39:43 +00:00
jason.woltje
7f89682946
test(web): add unit tests for MS18 components ( #503 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 02:23:05 +00:00
jason.woltje
d5ecc0b107
feat(web): add markdown round-trip and replace textarea with Tiptap ( #501 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 01:40:34 +00:00
jason.woltje
a81c4a5edd
feat(web): add Tiptap WYSIWYG KnowledgeEditor component ( #500 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 01:23:57 +00:00
jason.woltje
ff5a09c3fb
feat(web): add widget config dialog and layout management controls ( #499 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 01:11:47 +00:00
jason.woltje
f93fa60fff
feat(web): add widget picker drawer for dashboard customization ( #498 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 00:59:45 +00:00
jason.woltje
cc56f2cbe1
feat(web): migrate dashboard to WidgetGrid with layout persistence ( #497 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-24 00:50:24 +00:00
jason.woltje
37cf813b88
fix(web): update calendar and knowledge tests for real API integration ( #483 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-23 05:04:55 +00:00
jason.woltje
5a6d00a064
feat(web): wire knowledge pages to real API data ( #476 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-23 04:12:14 +00:00
jason.woltje
458cac7cdd
Phase 3: Agent Cycle Visibility ( #461 ) ( #462 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-23 01:07:29 +00:00
jason.woltje
7581d26567
Phase 2: Task Ingestion Pipeline ( #459 ) ( #460 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-23 00:54:55 +00:00
jason.woltje
07f5225a76
Phase 1: Dashboard Polish + Theming ( #457 ) ( #458 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-23 00:16:45 +00:00
jason.woltje
b43e860c40
feat(web): Phase 3 — Dashboard Page ( #450 ) ( #453 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-22 21:18:50 +00:00
jason.woltje
716f230f72
feat(ui,web): Phase 2 — Shared Components & Terminal Panel ( #449 ) ( #452 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-22 21:12:13 +00:00
jason.woltje
a5ed260fbd
feat(web): MS15 Phase 1 — Design System & App Shell ( #451 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-22 20:57:06 +00:00
jason.woltje
1b66417be5
fix(web): restore login page design and add runtime config injection ( #435 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-21 23:16:02 +00:00
jason.woltje
25ae14aba1
fix(web): resolve flaky CI test failures ( #433 )
...
Co-authored-by: Jason Woltje <[email protected] >
Co-committed-by: Jason Woltje <[email protected] >
2026-02-21 21:12:00 +00:00
jason.woltje and Claude Opus 4.6
bc4c1f9c70
Merge develop into main
...
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 <[email protected] >
2026-02-21 14:52:43 -06:00
Jason Woltje
63c6a129bd
fix(runtime): stabilize LinkAutocomplete nav test and wire required compose env
2026-02-17 16:42:34 -06:00
Jason Woltje
9d9a01f5f7
feat(web): add orchestrator readiness badge and resilient events parsing
2026-02-17 16:20:03 -06:00
Jason Woltje
5bce7dbb05
feat(web): show latest orchestrator event in task progress widget
2026-02-17 16:12:40 -06:00
Jason Woltje
d34f097a5c
feat(web): add orchestrator events widget with matrix signal visibility
2026-02-17 15:56:12 -06:00
Jason Woltje
f4ad7eba37
fix(web-hud): support hyphenated widget IDs with regression tests
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 and Claude Opus 4.6
1d7d5a9d01
refactor( #416 ): delete old LoginButton, replaced by OAuthButton
...
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 <[email protected] >
2026-02-16 11:48:15 -06:00
Jason Woltje and Claude Opus 4.6
81b5204258
feat( #415 ): theme fix, AuthDivider, SessionExpiryWarning components
...
- 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 <[email protected] >
2026-02-16 11:37:31 -06:00
jason.woltje and Claude Opus 4.6
444fa1116a
fix( #410 ): align BetterAuth basePath and auth client with NestJS routing
...
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 <[email protected] >
2026-02-15 19:41:08 -06:00
jason.woltje and Claude Opus 4.6
cf28efa880
merge: resolve conflicts with develop (M10-Telemetry + M12-MatrixBridge)
...
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 <[email protected] >
2026-02-15 12:31:08 -06:00
jason.woltje and Claude Opus 4.6
af9c5799af
fix( #388 ): address PR review findings — fix WebSocket/REST bugs, improve error handling, fix types and comments
...
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 <[email protected] >
2026-02-15 03:44:33 -06:00
jason.woltje and Claude Opus 4.6
bc86947d01
feat( #404 ): add speech settings page with provider config
...
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 <[email protected] >
2026-02-15 03:16:27 -06:00
jason.woltje and Claude Opus 4.6
74d6c1092e
feat( #403 ): add audio playback component for TTS output
...
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 <[email protected] >
2026-02-15 03:05:39 -06:00
jason.woltje and Claude Opus 4.6
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 <[email protected] >
2026-02-15 02:10:22 -06:00
Jason Woltje and Claude Opus 4.6
e8a9a3087a
fix(ci): fix pipeline #366 — web @mosaic/ui build, Dockerfile find bug, event handler types
...
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 <[email protected] >
2026-02-12 17:50:41 -06:00
jason.woltje and Claude Opus 4.6
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 <[email protected] >
2026-02-10 09:42:41 -06:00