Commit Graph
172 Commits
Author SHA1 Message Date
jason.woltjeandClaude Sonnet 4.6 b5227c1785 test(M2-007): add cross-user isolation integration test
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
Creates two real DB users with conversations, messages, agent configs,
preferences, and insights, then verifies that every repository query path
(ConversationsRepo, AgentsRepo, PreferencesRepo, InsightsRepo) returns only
data belonging to the requesting user.

28 tests cover: own-data access, cross-user read isolation, cross-user write
prevention, system-agent visibility for all users, and vector-search scoping.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-21 16:08:02 -05:00
jason.woltje 0d7f3c6d14 chore: Wave 2 complete — 14/65 tasks done (#302)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 21:02:04 +00:00
jason.woltje eddcca7533 feat(gateway): load conversation history on session resume (M1-004, M1-005) (#301)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 21:00:13 +00:00
jason.woltje ad06e00f99 feat(conversations): add search endpoint — M1-006 (#299)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:45:50 +00:00
jason.woltje 5b089392fd fix(security): M2-008 Valkey key audit — SCAN over KEYS, restrict /gc to admin (#298)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:45:43 +00:00
jason.woltje 02ff3b3256 feat(tui): add /history command — M1-007 (#297)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:41:27 +00:00
jason.woltje 1d14ddcfe7 chore: Wave 1 complete — fix merge conflicts, update task status (#296)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:37:27 +00:00
jason.woltje 05a805eeca fix(memory): scope InsightsRepo operations to userId — M2-001/002 (#290)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:34:42 +00:00
jason.woltje ebf99d9ff7 fix(M2-005,M2-006): enforce user ownership at repo level for conversations and agents (#293)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:34:11 +00:00
jason.woltje cf51fd6749 chore: mark M1-001/002/003 and M2-003/004 done (#295)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:22:05 +00:00
jason.woltje bb22857fde fix(security): scope memory tools to session userId — M2-003/004 (#294)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:19:19 +00:00
jason.woltje 5261048d67 feat(chat): persist messages to DB via ConversationsRepo (M1-001/002/003) (#292)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:18:05 +00:00
jason.woltje 36095ad80f chore: bootstrap Harness Foundation mission (Phase 9) (#289)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 20:10:48 +00:00
jason.woltje d06866f501 chore: mark P8-001/002/003 done in TASKS.md (#223)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 18:13:02 +00:00
jason.woltje 02e40f6c3c feat(web): conversation sidebar with search, rename, delete (#222)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 13:10:03 +00:00
jason.woltje de64695ac5 feat(web): design system — ms-* tokens, ThemeProvider, MosaicLogo, sidebar (#221)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 12:57:24 +00:00
jason.woltje dd108b9ab4 feat(auth): add WorkOS and Keycloak SSO providers (rebased) (#220)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-21 12:57:07 +00:00
jason.woltje f3e90df2a0 Merge pull request 'chore: mark P8-001/002/003 in-progress, P8-004 done' (#219) from chore/tasks-p8-status into main
ci/woodpecker/push/ci Pipeline was successful
Reviewed-on: mosaic/mosaic-stack#219
2026-03-21 12:30:03 +00:00
jason.woltje 721e6bbc52 Merge pull request 'feat(web): chat interface — model selector, keybindings, thinking display, v0 styled header' (#216) from feat/ui-chat into main
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: mosaic/mosaic-stack#216
2026-03-21 12:29:29 +00:00
jason.woltje 27848bf42e Merge pull request 'chore: fix prettier formatting on markdown files' (#215) from fix/prettier-format into main
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: mosaic/mosaic-stack#215
2026-03-21 12:29:09 +00:00
jason.woltje 061edcaa78 Merge pull request 'feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002)' (#212) from feat/p8-002-llm-providers into main
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: mosaic/mosaic-stack#212
2026-03-21 12:28:50 +00:00
jason.woltje cbb729f377 Merge pull request 'perf: gateway + DB + frontend optimizations (P8-003)' (#211) from feat/p8-003-performance into main
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: mosaic/mosaic-stack#211
2026-03-21 12:28:30 +00:00
jason.woltje cfb491e127 Merge pull request 'feat(auth): add WorkOS and Keycloak SSO providers (P8-001)' (#210) from feat/p8-001-sso-providers into main
ci/woodpecker/push/ci Pipeline failed
Reviewed-on: mosaic/mosaic-stack#210
2026-03-21 12:27:48 +00:00
jason.woltje 20808b9b84 chore: mark P8-001/002/003 in-progress, P8-004 done — PRs open
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-19 22:14:14 -05:00
jason.woltje fd61a36b01 chore: mark P8-001/002/003 in-progress, P8-004 done — PRs open
ci/woodpecker/push/ci Pipeline was successful
2026-03-19 22:13:43 -05:00
jason.woltje c0a7bae977 chore: mark P8-001 in-progress (stop cron re-spawn) 2026-03-19 22:11:30 -05:00
jason.woltje 68e056ac91 feat(web): port chat UI — model selector, keybindings, thinking display, styled header
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:42:48 -05:00
jason.woltje 77ba13b41b feat(auth): add WorkOS and Keycloak SSO providers
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:30:00 -05:00
jason.woltjeandClaude Sonnet 4.6 307bb427d6 chore: add P8-001 scratchpad
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-19 20:18:59 -05:00
jason.woltjeandClaude Sonnet 4.6 b89503fa8c chore: fix prettier formatting on scratchpad files
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-19 20:18:59 -05:00
jason.woltjeandClaude Sonnet 4.6 254da35300 feat(auth): add WorkOS + Keycloak SSO providers (P8-001)
- Refactor auth.ts to build OAuth providers array dynamically; extract
  buildOAuthProviders() for unit-testability
- Add WorkOS provider (WORKOS_CLIENT_ID/SECRET/REDIRECT_URI env vars)
- Add Keycloak provider with realm-scoped OIDC discovery
  (KEYCLOAK_URL/REALM/CLIENT_ID/CLIENT_SECRET env vars)
- Add genericOAuthClient plugin to web auth-client for signIn.oauth2()
- Add WorkOS + Keycloak SSO buttons to login page (NEXT_PUBLIC_*_ENABLED
  feature flags control visibility)
- Update .env.example with SSO provider stanzas
- Add 8 unit tests covering all provider inclusion/exclusion paths

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-19 20:18:59 -05:00
jason.woltje 99926cdba2 chore: fix prettier formatting on markdown files
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-19 20:17:39 -05:00
jason.woltje 25f880416a Merge pull request 'docs: add TASKS.md agent-column schema to AGENTS.md' (#214) from chore/tasks-schema-agents-md into main
ci/woodpecker/push/ci Pipeline failed
2026-03-20 01:10:56 +00:00
jason.woltje 1138148543 docs: add TASKS.md agent-column schema to AGENTS.md (canonical reference)
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
2026-03-19 20:10:45 -05:00
jason.woltje 4b70b603b3 Merge pull request 'chore: add agent model column to TASKS.md' (#213) from chore/tasks-agent-column into main
ci/woodpecker/push/ci Pipeline failed
2026-03-20 01:08:29 +00:00
jason.woltje 2e7711fe65 chore: add agent model column to TASKS.md schema
ci/woodpecker/pr/ci Pipeline failed
ci/woodpecker/push/ci Pipeline failed
Adds 'agent' column to specify which model should execute each task.
Values: codex | sonnet | haiku | glm-5 | opus | — (auto)
Pipeline crons use this to spawn the cheapest capable model per task.
Phase 8 tasks assigned: P8-001/002/003=codex, P8-004=haiku
2026-03-19 20:08:12 -05:00
jason.woltje 417a57fa00 chore: fix prettier formatting on pre-existing scratchpad (pre-push gate)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-18 21:35:04 -05:00
jason.woltje 714fee52b9 feat(gateway): add Anthropic, OpenAI, Z.ai LLM providers (P8-002) 2026-03-18 21:34:38 -05:00
jason.woltje 133668f5b2 chore: format BUG-CLI-scratchpad.md (prettier)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-18 21:27:14 -05:00
jason.woltje 3b81bc9f3d perf: gateway + DB + frontend optimizations (P8-003)
- DB client: configure connection pool (max=20, idle_timeout=30s, connect_timeout=5s)
- DB schema: add missing indexes for auth sessions, accounts, conversations, agent_logs
- DB schema: promote preferences(user_id,key) to UNIQUE index for ON CONFLICT upsert
- Drizzle migration: 0003_p8003_perf_indexes.sql
- preferences.service: replace 2-query SELECT+INSERT/UPDATE with single-round-trip upsert
- conversations repo: add ORDER BY + LIMIT to findAll (200) and findMessages (500)
- session-gc.service: make onModuleInit fire-and-forget (removes cold-start TTFB block)
- next.config.ts: enable compress, productionBrowserSourceMaps:false, image avif/webp
- docs/PERFORMANCE.md: full profiling report and change impact notes
2026-03-18 21:26:45 -05:00
jason.woltje cbfd6fb996 fix(web): conversation DELETE — resolve Failed to fetch TypeError (#204)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:43:56 +00:00
jason.woltje 3f8553ce07 fix(cli): TUI polish — Ctrl+T, React keys, clipboard, version (#205)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:40:18 +00:00
jason.woltje bf668e18f1 fix(web): admin page role check — stop false redirect to /chat (#203)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:38:25 +00:00
jason.woltje 1f2b8125c6 fix(cli): sidebar delete conversation — fix silent failure (#201)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:36:46 +00:00
jason.woltje 93645295d5 fix(gateway): filter projects by ownership — close data privacy leak (#202)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:35:45 +00:00
jason.woltje 7a52652be6 feat(gateway): Discord channel auto-creation on project bootstrap (#200)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:32:14 +00:00
jason.woltje 791c8f505e feat(gateway): /system override condensation — accumulate + Haiku merge (#198)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:26:31 +00:00
jason.woltje 12653477d6 feat(gateway): project bootstrap — docs structure + default agent (#190)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:12:24 +00:00
jason.woltje dedfa0d9ac fix(gateway): system override TTL 5min → 7 days (#189)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-17 02:06:58 +00:00
jason.woltje c1d3dfd77e fix(cli): disable Ink exitOnCtrlC so double-press handler runs (#188)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 13:55:19 +00:00