jason.woltje and Claude 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.woltje and Claude 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.woltje and Claude 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.woltje and Claude 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