Commit Graph
130 Commits
Author SHA1 Message Date
jason.woltje df4b7399ad fix(web): admin page role check — stop false redirect to /chat
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
The admin page role check was failing because better-auth v1.5.5 doesn't
automatically include additionalFields (like 'role') in the session response.
This caused the admin guard to treat all users as non-admin and redirect them.

The fix implements a defensive fallback in the AdminGuard that fetches the
role from the database if it's missing from the session, ensuring that admin
users can access the admin panel while protecting against regression.

Fixes #196
2026-03-16 21:37:53 -05: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
jason.woltje f0476cae92 fix(cli): wire command:result + system:reload socket events in TUI (#187)
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:21:11 +00:00
jason.woltje b6effdcd6b docs: mark mission complete — 9/9 milestones, all ACs verified (v0.1.0) (#186)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 03:51:21 +00:00
jason.woltje 39ef2ff123 feat: verify Phase 8 platform architecture + integration tests (P8-019) (#185)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 03:43:42 +00:00
jason.woltje a989b5e549 feat(cli): TUI autocomplete sidebar + fuzzy match + arg hints + input history (P8-017) (#184)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 03:30:15 +00:00
jason.woltje ff27e944a1 Merge pull request 'feat(gateway): WorkspaceService + ProjectBootstrapService + TeamsService (P8-015)' (#183) from feat/p8-015-workspaces into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 03:14:10 +00:00
jason.woltjeandClaude Sonnet 4.6 0821393c1d feat(gateway): WorkspaceService + ProjectBootstrapService + TeamsService (P8-015)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- WorkspaceService: path resolution, git init/clone, directory lifecycle (create/delete/exists), user and team root provisioning
- ProjectBootstrapService: orchestrates DB record creation (via Brain) + workspace directory init in a single call
- TeamsService: isMember, canAccessProject, findAll, findById, listMembers via Drizzle DB queries
- WorkspaceController: POST /api/workspaces — auth-guarded project bootstrap endpoint
- TeamsController: GET /api/teams, /:teamId, /:teamId/members, /:teamId/members/:userId
- WorkspaceModule wired into AppModule
- workspace.service.spec.ts: 5 unit tests for resolvePath (user, team, fallback, env var, default)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-15 22:06:01 -05:00
jason.woltje 24f5c0699a feat(gateway): MosaicPlugin lifecycle + ReloadService + hot reload (P8-013) (#182)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 03:00:56 +00:00
jason.woltje 96409c40bf feat(gateway): /agent, /provider, /mission, /prdy, /tools commands (P8-012) (#181)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 02:50:18 +00:00
jason.woltje 8628f4f93a Merge pull request 'feat(gateway): SessionGCService three-tier GC + /gc command + cron (P8-014)' (#179) from feat/p8-014-session-gc into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 02:42:34 +00:00
jason.woltjeandClaude Opus 4.6 b649b5c987 feat(gateway): SessionGCService three-tier GC + /gc command + cron (P8-014)
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
Implements three-tier garbage collection for agent sessions:
- SessionGCService.collect() for immediate per-session cleanup on destroySession()
- SessionGCService.sweepOrphans() for daily cron sweep of orphaned Valkey keys
- SessionGCService.fullCollect() for cold-start aggressive cleanup via OnModuleInit
- /gc slash command wired into CommandExecutorService + registered in CommandRegistryService
- SESSION_GC_CRON (daily 4am) added to CronService
- GCModule provides Valkey (ioredis via @mosaic/queue) and is imported by AgentModule, LogModule, CommandsModule, AppModule
- 8 Vitest unit tests covering all three GC tiers

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-03-15 21:38:48 -05:00
jason.woltje b4d03a8b49 Merge pull request 'feat(gateway): PreferencesService + /preferences REST + /system Valkey override (P8-011)' (#180) from feat/p8-011-preferences into main
ci/woodpecker/push/ci Pipeline was successful
2026-03-16 02:35:38 +00:00
jason.woltjeandClaude Sonnet 4.6 85aeebbde2 feat(gateway): PreferencesService + /preferences REST + /system Valkey override (P8-011)
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
- PreferencesService: platform defaults, user overrides, IMMUTABLE_KEYS enforcement
- PreferencesController: GET /api/preferences, POST /api/preferences, DELETE /api/preferences/:key
- PreferencesModule: global module exporting PreferencesService and SystemOverrideService
- SystemOverrideService: Valkey-backed session-scoped system prompt override with 5-min TTL + renew
- CommandRegistryService: register /system command (socket execution)
- CommandExecutorService: handle /system command via SystemOverrideService
- AgentService: inject system override before each prompt turn, renew TTL; store userId in session
- ChatGateway: pass userId when creating agent sessions
- PreferencesService unit tests: 11 tests covering defaults, overrides, enforcement wins, immutable key errors

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-03-15 21:32:03 -05:00
jason.woltje a4bb563779 feat(gateway): CommandRegistryService + CommandExecutorService (P8-010) (#178)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 02:10:31 +00:00
jason.woltje 7f6464bbda feat(gateway): tool path hardening + sandbox escape prevention (P8-016) (#177)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 02:02:48 +00:00
jason.woltje f0741e045f feat(cli): TUI slash command parsing + local commands (P8-009) (#176)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 01:58:56 +00:00
jason.woltje 5a1991924c feat(db): teams schema + preferences.mutable migration (#175)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 01:46:43 +00:00
jason.woltje bd5d14d07f feat(types): CommandDef, CommandManifest, slash command socket events (#174)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 01:41:39 +00:00
jason.woltje d5a1791dc5 docs: agent platform architecture plan — augmentation + task breakdown (#173)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-16 01:28:29 +00:00
jason.woltje bd81c12071 docs: update TASKS.md and scratchpad for CLI command architecture (#159)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 23:11:37 +00:00
jason.woltje 4da255bf04 feat(cli): command architecture — agents, missions, gateway-aware prdy (#158)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 23:10:23 +00:00
jason.woltje 82c10a7b33 feat(cli): TUI complete overhaul — components, sidebar, search, branding (#157)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 22:17:19 +00:00
jason.woltje d31070177c fix(ci): remove from_secret to unblock PR pipelines (#156)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 21:48:51 +00:00
jason.woltje 3792576566 fix(web): add jsdom dependency and exclude e2e from vitest (#155)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 20:00:53 +00:00
jason.woltje cd57c75e41 chore(orchestrator): Phase 7 complete — v0.0.8 verified (#154)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
v0.0.8
2026-03-15 19:50:15 +00:00
jason.woltje 237a863dfd docs(deploy): add deployment guide and expand .env.example (#153)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:46:38 +00:00
jason.woltje cb92ba16c1 feat(web): Playwright E2E test suite for critical paths (#152)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:46:13 +00:00
jason.woltje 70e9f2c6bc docs: user guide, admin guide, dev guide (closes #57) (#151)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:40:44 +00:00
jason.woltje a760401407 feat(admin): web admin panel — user CRUD, role assignment, system health (#150)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:18:47 +00:00
jason.woltje 22a5e9791c feat(coord): DB migration — project-scoped missions, multi-tenant RBAC (#149)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:18:18 +00:00
jason.woltje d1bef49b4e feat(agent): session cwd sandbox, system prompt config, tool restrictions (#148)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:15:05 +00:00
jason.woltje 76abf11eba fix(cli): remove side-effect from agent:end state updater (#133) (#147)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:09:13 +00:00
jason.woltje c4850fe6c1 feat(cli): add sessions list/resume/destroy subcommands (#146)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 19:04:10 +00:00
jason.woltje 0809f4e787 feat(web): settings persistence — profile, preferences save to DB (#124) (#145)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:43:52 +00:00
jason.woltje 6a4c020179 feat(cli): add --model/--provider flags and /model /provider TUI commands (#144)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:41:36 +00:00
jason.woltje 3bb401641e feat(agent): skill invocation — load and execute skills from catalog (#128) (#143)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:36:58 +00:00
jason.woltje 54b821d8bd feat(web): provider management UI — list, test, model capabilities (#123) (#142)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:33:55 +00:00
jason.woltje 09e649fc7e feat(gateway): MCP client — connect to external MCP servers as agent tools (#127) (#141)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:28:31 +00:00
jason.woltje f208f72dc0 feat(web): project detail views — missions, tasks, PRD viewer (#122) (#140)
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:28:14 +00:00
jason.woltje d42cd68ea4 feat(web): conversation management — search, rename, delete, archive (#121) (#139)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:20:15 +00:00
jason.woltje 07647c8382 feat(agent): expand tool registry — file, git, shell, web fetch (#126) (#138)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:17:17 +00:00
jason.woltje 8633823257 feat(gateway): add MCP server endpoint with streamable HTTP transport (#137)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:11:50 +00:00
jason.woltje d0999a8e37 feat(web): wire WebSocket chat with streaming and conversation switching (#120) (#136)
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <[email protected]>
Co-committed-by: Jason Woltje <[email protected]>
2026-03-15 18:09:14 +00:00