8e18684b7e
docs: bootstrap phase-4 deploy + smoke test
...
Update TASKS.md with MS-P4-001 through MS-P4-003, update mission
manifest to phase-4 (3/4 milestones), append phase-3 completion
summary to scratchpad.
Issue: #463
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 19:11:13 -06: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
ea1620fa7a
docs: initialize go-live MVP mission with coordinator protocol ( #455 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 23:37:13 +00:00
d218902cb0
docs: design system reference and task completion (MS15-DOC-001) ( #454 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 21:20:28 +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
74c8c376b7
docs(coolify): update deployment docs with operations guide ( #445 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 08:05:47 +00:00
9901fba61e
docs: add Coolify deployment guide and compose file ( #444 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-22 07:40:24 +00:00
23d610ba5b
chore: switch from develop/dev to main/latest image tags ( #434 )
...
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
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-02-21 22:05:07 +00:00
b5ac2630c1
docs(auth): record digest-based deploy fix verification
2026-02-18 23:39:06 -06:00
8424a28faa
fix(auth): use set_config for transaction-scoped RLS context
ci/woodpecker/push/api Pipeline was successful
2026-02-18 23:23:15 -06:00
d2cec04cba
fix(auth): preserve raw BetterAuth cookie token for session lookup
ci/woodpecker/push/api Pipeline was successful
2026-02-18 23:06:37 -06:00
0c2a6b14cf
fix(auth): verify BetterAuth sessions via cookie headers
2026-02-18 22:39:54 -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
6fd8e85266
fix(orchestrator): make provider-aware Claude key startup requirements
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/orchestrator Pipeline was successful
2026-02-17 17:15:42 -06:00
Jason Woltje
d3474cdd74
chore(orchestrator): bootstrap issue 424
2026-02-17 17:05:09 -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
ab902250f8
feat(web-hud): seed default layout with orchestration widgets
ci/woodpecker/push/web Pipeline was successful
2026-02-17 16:07:09 -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
4d089cd020
feat(orchestrator): add recent events API and monitor script
2026-02-17 15:44:43 -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
8961f5b18c
chore: upgrade Node.js runtime to v24 across codebase
...
ci/woodpecker/push/orchestrator Pipeline was successful
ci/woodpecker/push/api Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
- Update .woodpecker/codex-review.yml: node:22-slim → node:24-slim
- Update packages/cli-tools engines: >=18 → >=24.0.0
- Update README.md, CONTRIBUTING.md, prerequisites docs to reference Node 24+
- Rename eslint.config.js → eslint.config.mjs to eliminate Node 24
MODULE_TYPELESS_PACKAGE_JSON warnings (ESM detection overhead)
- Add .nvmrc targeting Node 24
- Fix pre-existing no-unsafe-return lint error in matrix-room.service.ts
- Add Campsite Rule to CLAUDE.md
- Regenerate Prisma client for Node 24 compatibility
All Dockerfiles and main CI pipelines already used node:24. This commit
aligns the remaining stragglers (codex-review CI, cli-tools engines,
documentation) and resolves Node 24 ESM module detection warnings.
Quality gates: lint ✅ typecheck ✅ tests ✅ (6 pre-existing API failures)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 17:33:26 -06:00
Jason Woltje
b96e2d7dc6
chore( #411 ): Phase 13 complete — QA round 2 remediation done, 272 tests passing
...
ci/woodpecker/push/api Pipeline failed
ci/woodpecker/push/web Pipeline failed
6 findings remediated:
- QA2-001: Narrowed verifySession allowlist (expired/unauthorized false-positives)
- QA2-002: Runtime null checks in auth controller (defense-in-depth)
- QA2-003: Bearer token log sanitization + non-Error warning
- QA2-004: classifyAuthError returns null for normal 401 (no false banner)
- QA2-005: Login page routes errors through parseAuthError (PDA-safe)
- QA2-006: AuthGuard user validation branch tests (5 new tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 15:51:38 -06:00
Jason Woltje
ac492aab80
chore( #411 ): Phase 7 complete — review remediation done, 297 tests passing
...
ci/woodpecker/push/api Pipeline failed
ci/woodpecker/push/web Pipeline failed
- AUTH-028: Frontend fixes (fetchWithRetry wired, error dedup, OAuth catch, signout feedback)
- AUTH-029: Backend fixes (COOKIE_DOMAIN, TRUSTED_ORIGINS validation, verifySession infra errors)
- AUTH-030: Missing test coverage (15 new tests for getAccessToken, isAdmin, null cases, getClientIp)
- AUTH-V07: 191 web + 106 API auth tests passing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 12:38:18 -06:00
Jason Woltje
3fbba135b9
chore( #411 ): Phase 6 complete — 4/4 tasks done, 93 tests passing
...
ci/woodpecker/push/web Pipeline failed
All 6 phases of auth-frontend-remediation are now complete.
Phase 6 adds: auth-errors.ts (43 tests), fetchWithRetry (15 tests),
session expiry detection (18 tests), PDA-friendly auth-client (17 tests).
Total web test suite: 89 files, 1078 tests passing (23 skipped).
Refs #411
2026-02-16 12:21:29 -06:00
Jason Woltje
24ee7c7f87
chore( #411 ): Phase 5 complete — 4/4 tasks done, 83 tests passing
...
- AUTH-020: Login page redesign with dynamic provider rendering
- AUTH-021: URL error params with PDA-friendly messages
- AUTH-022: Deleted old LoginButton (replaced by OAuthButton)
- AUTH-023: Responsive layout + WCAG 2.1 AA accessibility
Refs #416
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:58:02 -06:00
Jason Woltje
3ab87362a9
chore( #411 ): Phase 4 complete — 6/6 tasks done, 54 frontend tests passing
...
- AUTH-014: Theme storage key fix (jarvis-theme -> mosaic-theme)
- AUTH-015: AuthErrorBanner (PDA-friendly, blue info theme)
- AUTH-016: AuthDivider component
- AUTH-017: OAuthButton with loading state
- AUTH-018: LoginForm with email/password validation
- AUTH-019: SessionExpiryWarning floating banner
Refs #415
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:39:45 -06:00
Jason Woltje
9623a3be97
chore( #411 ): Phase 3 complete — 4/4 tasks done, 73 auth tests passing
...
- AUTH-010: getTrustedOrigins() with env var support
- AUTH-011: CORS aligned with getTrustedOrigins()
- AUTH-012: Session config (7d absolute, 2h idle, secure cookies)
- AUTH-013: .env.example updated with TRUSTED_ORIGINS, COOKIE_DOMAIN
Refs #414
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:28:46 -06:00
Jason Woltje
447141f05d
chore( #411 ): Phase 2 complete — 4/4 tasks done, 55 auth tests passing
...
- AUTH-006: AuthProviderConfig + AuthConfigResponse types in @mosaic/shared
- AUTH-007: GET /auth/config endpoint + getAuthConfig() in AuthService
- AUTH-008: Secret-leakage prevention test
- AUTH-009: isOidcProviderReachable() health check (2s timeout, 30s cache)
Refs #413
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:21:14 -06:00
Jason Woltje
f6eadff5bf
chore( #411 ): Phase 1 complete — 5/5 tasks done, 36 tests passing
...
- AUTH-001: OIDC_REDIRECT_URI validation (URL + path checks)
- AUTH-002: BetterAuth handler try/catch with error logging
- AUTH-003: Docker compose OIDC_REDIRECT_URI safe default
- AUTH-004: PKCE enabled in genericOAuth config
- AUTH-005: @SkipCsrf() documentation with rationale
Refs #412
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 11:09:51 -06:00
Jason Woltje
bd7470f5d7
chore( #411 ): bootstrap auth-frontend-remediation tasks from plan
...
Parsed 6 phases into 33 tasks. Estimated total: 281K tokens.
Epic #411 , Issues #412-#417.
Refs #411
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 10:58:32 -06:00
491675b613
docs: add auth & frontend remediation plan
...
Comprehensive plan for fixing the production 500 on POST /auth/sign-in/oauth2
and redesigning the frontend login page to be OIDC-aware with multi-method
authentication support.
Key areas covered:
- Backend: OIDC startup validation, auth config discovery endpoint, BetterAuth
error handling, PKCE, session hardening, trustedOrigins extraction
- Frontend: Multi-method login page, PDA-friendly error display, adaptive UI
based on backend-advertised providers, loading states, accessibility
- Security: CSRF rationale, secret leakage prevention, redirect URI validation,
session idle timeout, OIDC health checks
- 6 implementation phases with file change map and testing strategy
Created with input from frontend design, backend, security, and auth architecture
specialist reviews.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 04:43:38 -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
eca2c46e9d
merge: resolve conflicts with develop (telemetry + lockfile)
...
ci/woodpecker/push/infra Pipeline was successful
ci/woodpecker/push/api Pipeline failed
ci/woodpecker/push/web Pipeline failed
ci/woodpecker/push/orchestrator Pipeline failed
ci/woodpecker/push/coordinator Pipeline was successful
Keep both Mosaic Telemetry section (from develop) and Matrix Dev
Environment section (from feature branch) in .env.example.
Regenerate pnpm-lock.yaml with both dependency trees merged.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 12:12:43 -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
dcbc8d1053
chore(orchestrator): finalize M13-SpeechServices tasks.md — all 18/18 done
...
All tasks completed successfully across 7 phases:
- Phase 1: Config + Module foundation (2/2)
- Phase 2: STT + TTS providers (5/5)
- Phase 3: Middleware + REST endpoints (3/3)
- Phase 4: WebSocket streaming (1/1)
- Phase 5: Docker/DevOps (2/2)
- Phase 6: Frontend components (3/3)
- Phase 7: E2E tests + Documentation (2/2)
Total: ~500+ tests across API and web packages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:27:21 -06:00
24065aa199
docs( #406 ): add speech services documentation
...
ci/woodpecker/push/api Pipeline was successful
Comprehensive documentation for the speech services module:
- docs/SPEECH.md: Architecture, API reference, WebSocket protocol,
environment variables, provider configuration, Docker setup,
GPU VRAM budget, and frontend integration examples
- apps/api/src/speech/AGENTS.md: Module structure, provider pattern,
how to add new providers, gotchas, and test patterns
- README.md: Speech capabilities section with quick start
Fixes #406
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:23:22 -06:00
03d0c032e4
chore(orchestrator): Add review remediation phase to tasks.md
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 03:02:27 -06:00
a1f0d1dd71
chore(orchestrator): All M12-MatrixBridge tasks complete
...
ci/woodpecker/push/api Pipeline failed
All 10 tasks done:
- MB-001: MatrixService skeleton (5b5d381 )
- MB-002: Dev docker-compose (4a5cb64 )
- MB-003: BridgeModule conditional loading (771ed48 )
- MB-004: Workspace-Room mapping (7d22c24 )
- MB-005: Matrix command handling (ad24720 )
- MB-006: Herald multi-provider adapter (ad24720 )
- MB-007: Streaming AI responses (93cd314 )
- MB-008: Integration tests - 26 tests (9cc70db )
- MB-009: Documentation (68808c0 )
- MB-010: Sample compose (6e20fc5 , pre-existing)
95 matrix tests pass. Ready for PR.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:40:47 -06:00
68808c0933
docs( #386 ): Matrix bridge setup and architecture documentation
...
- Quick start guide for dev environment
- Architecture overview with service responsibilities
- Command reference with examples
- Configuration reference
- Streaming response architecture
- Deployment considerations
Refs #386
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:39:20 -06:00
0819dfa470
chore(orchestrator): Update tasks — Phase 4 complete, Phase 5+6 starting
...
MB-007 (Streaming AI responses) done in commit 93cd314 .
20 new tests, 132 total bridge tests pass.
Launching MB-008 (E2E tests) and MB-009 (Docs) in parallel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:35:53 -06:00
aa106a948a
chore(orchestrator): Update tasks — Phase 3 complete, Phase 4 starting
...
MB-005 (Matrix command handling) and MB-006 (Herald adapter) done.
Both committed in ad24720 (bundled by pre-commit hooks).
49 Matrix tests pass, 112 total bridge tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:28:25 -06:00
4a9ecab4dd
chore(orchestrator): Update tasks — Phase 2 complete, Phase 3 starting
...
MB-003 (BridgeModule conditional loading): done — commit 771ed48
MB-004 (Workspace-Room mapping): done — commit 7d22c24
MB-005, MB-006: in-progress
Refs #377
2026-02-15 02:20:11 -06:00
746ab20c38
chore: update tasks.md — all M10-Telemetry tasks complete
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 02:10:22 -06:00