Commit Graph

98 Commits

Author SHA1 Message Date
6c2b01e222 feat(cli): mosaic icon windmill cross — brand tiles with black gaps
blue  ··  purple
··  pink  ··
amber ··  teal
2026-03-15 14:39:18 -05:00
c8795eb791 feat(cli): full 3×3 mosaic icon with 9 colored tiles
Brand colors (blue, purple, teal, amber, pink) plus complementary
fills (indigo, sky, rose, green) arranged in a gradient flow:
  blue    indigo  purple
  sky     pink    rose
  amber   green   teal
2026-03-15 14:37:24 -05:00
84eef63494 fix(cli): tighten mosaic icon to compact 3×3 grid
- Use half-block chars (▐█ █▌) for outer tiles to reduce width
- Center pink tile fits snugly between the four corners
- Matches the mosaic windmill proportions from the web UI
2026-03-15 14:34:54 -05:00
4d5cc5990a feat(cli): branded top bar with mosaic windmill icon
- ASCII art mosaic windmill: 4 colored tiles (blue, purple, teal, amber)
  with pink center, matching the Mosaic Stack brand
- 3-line info block (Claude Code style):
  Line 1: 'Mosaic Stack v0.0.0'
  Line 2: model (context) · thinking · agent name
  Line 3: ● host connection status
- Remove bordered box in favor of open layout with icon
2026-03-15 14:28:28 -05:00
a061a64fff feat(gateway,cli,types): wire token usage, model info, and thinking levels
Gateway:
- Emit session:info on session creation with provider, model, thinking level
- Include SessionUsagePayload in agent:end with token stats, cost, context usage
- Handle set:thinking client event to cycle thinking levels
- Respond with updated session:info after thinking level change

Types (@mosaic/types):
- Add SessionUsagePayload (tokens, cost, context) to AgentEndPayload
- Add SessionInfoPayload (provider, model, thinking level, available levels)
- Add SetThinkingPayload and set:thinking to ClientToServerEvents
- Add session:info to ServerToClientEvents

CLI TUI:
- useSocket now tracks tokenUsage, modelName, providerName, thinkingLevel
- Updates from both session:info and agent:end usage payload
- Ctrl+T cycles thinking level via set:thinking socket event
- Footer shows thinking level next to model (e.g. 'claude-opus-4-6 • medium')
- Token stats populate with real ↑in ↓out Rcache Wcache $cost ctx%
2026-03-15 14:05:33 -05:00
867e6097b0 fix(cli): use ↑↓ arrows for token usage in footer 2026-03-15 14:01:25 -05:00
73e7d87516 feat(cli): simplify top bar — title + host only
- Show 'Mosaic Stack TUI' on left, gateway host on right
- Remove connection status from top bar (lives in footer)
- Remove model/conversation from top bar (lives in footer)
2026-03-15 13:59:48 -05:00
6bc4662b8f fix(cli): restore border around input bar 2026-03-15 13:57:20 -05:00
8fa8b7bf90 fix(cli): ensure footer line 2 always renders
- Show '^0  v0  $0.000' instead of '—' when no token data yet
- Always show model slot ('awaiting model' as placeholder)
- Add minHeight={1} to prevent line collapse
2026-03-15 13:56:03 -05:00
b8857da0e6 feat(cli): match TUI footer to reference design
- Remove borders from input bar — clean '❯ message mosaic…' prompt
- Two-line footer without borders:
  - Line 1: compact cwd (branch) | Gateway: Connected/Disconnected
  - Line 2: token stats (^in v_out R_cache W_cache $cost ctx%) | (provider) model
- Extend TokenUsage with cacheRead, cacheWrite, cost, contextPercent, contextWindow
- Add providerName to socket hook return
- Reorder layout: top bar → messages → input → footer
2026-03-15 13:53:54 -05:00
8bb56a4003 chore: update TUI task tracker — Wave 1 complete 2026-03-15 13:34:06 -05:00
79ff308aad feat(cli): TUI component architecture — status bars, message list, input bar
- Split monolithic app.tsx into composable components:
  - TopBar: connection indicator (●/○), gateway URL, model name, conversation ID
  - BottomBar: cwd, git branch, token usage
  - MessageList: timestamped messages, tool call indicators, thinking display
  - InputBar: context-aware prompt with streaming/disconnect states
- Extract socket logic into useSocket hook with typed events
- Extract git/cwd info into useGitInfo hook
- Quiet disconnect: single indicator instead of error flood
- Add @mosaic/types dependency for typed Socket.IO events
- Add PRD and task tracking docs

Tasks: TUI-001 through TUI-007 (Wave 1)
2026-03-15 13:33:37 -05:00
09e649fc7e feat(gateway): MCP client — connect to external MCP servers as agent tools (#127) (#141)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:28:31 +00:00
f208f72dc0 feat(web): project detail views — missions, tasks, PRD viewer (#122) (#140)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:28:14 +00:00
d42cd68ea4 feat(web): conversation management — search, rename, delete, archive (#121) (#139)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:20:15 +00:00
07647c8382 feat(agent): expand tool registry — file, git, shell, web fetch (#126) (#138)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:17:17 +00:00
8633823257 feat(gateway): add MCP server endpoint with streamable HTTP transport (#137)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:11:50 +00:00
d0999a8e37 feat(web): wire WebSocket chat with streaming and conversation switching (#120) (#136)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 18:09:14 +00:00
ea800e3f14 chore(orchestrator): Phase 7 planning — 10-wave execution plan (#135)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:47:55 +00:00
5d2e6fae63 chore(orchestrator): rescope Phase 7 as Feature Completion, add Phase 8 (#119)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:44:35 +00:00
fcd22c788a chore(orchestrator): rescope Phase 7 + add Phase 8 (#118)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:32:37 +00:00
ab61a15edc fix(agent): register Ollama with api: openai-completions (#117)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:10:32 +00:00
2c60459851 fix(agent): pass dummy apiKey for Ollama provider registration (#116)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:08:19 +00:00
ea524a6ba1 fix(cli): add Origin header to auth requests (#115)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:03:42 +00:00
997a6d134f feat(cli): add login command and authenticated TUI sessions (#114)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 17:00:08 +00:00
8aaf229483 chore: remove deprecated husky v9 shim lines (#113)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 16:48:51 +00:00
049bb719e8 fix(auth): add CORS headers to BetterAuth raw HTTP handler (#112)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 16:47:27 +00:00
014ebdacda fix(auth): add trustedOrigins to BetterAuth for cross-origin web dashboard (#111)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 16:44:20 +00:00
72a73c859c fix(gateway): CORS, memory userId from session, pgvector auto-init (#110)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 16:40:28 +00:00
6d2b81f6e4 fix(gateway): add missing @Inject() decorators causing silent startup hang (#109)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 01:52:01 +00:00
9d01a0d484 fix(gateway): load .env from monorepo root via dotenv (#108)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 01:25:09 +00:00
d5102f62fa fix(ci): use from_secret syntax for Woodpecker v2 (#107)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 01:16:36 +00:00
a881e707e2 ci: enable Turbo remote cache + parallelize pipeline steps (#106)
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 01:14:56 +00:00
7d04874f3c chore(orchestrator): complete Phase 6 milestone v0.0.7 (#105)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
v0.0.7
2026-03-15 01:07:14 +00:00
9f036242fa feat(cli): add prdy, quality-rails, and wizard subcommands (#104)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 01:05:31 +00:00
c4e52085e3 feat(mosaic): migrate install wizard from v0 to v1 (#103)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 00:59:42 +00:00
84e1868028 fix(gateway): resolve two startup bugs blocking E2E testing (#102)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 00:45:28 +00:00
f94f9f672b feat(prdy): migrate @mosaic/prdy from v0 to v1 (#101)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 00:44:02 +00:00
cd29fc8708 feat(quality-rails): migrate @mosaic/quality-rails from v0 to v1 (#100)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 00:23:56 +00:00
6e22c0fdeb chore(orchestrator): complete Phase 5 milestone — v0.0.6
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
- P5-005 done: Telegram plugin wired, .env.example updated
- PR #99 merged, issue #45 closed
- Phase 5 complete, advancing to Phase 6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.0.6
2026-03-14 19:06:23 -05:00
1f4d54e474 fix(gateway): wire Telegram plugin into gateway plugin host (#99)
Some checks failed
ci/woodpecker/push/ci Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com>
Co-committed-by: Jason Woltje <jason@diversecanvas.com>
2026-03-15 00:05:27 +00:00
b7a39b45d7 chore(tasks): mark P5-004 done
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 15:16:13 -05:00
1bfdc91f90 Merge pull request 'feat(auth): P5-004 Authentik OIDC adapter via Better Auth genericOAuth' (#97) from feat/p5-sso-authentik into main
Some checks failed
ci/woodpecker/push/ci Pipeline failed
2026-03-13 20:15:50 +00:00
58a90ac9d7 Merge pull request 'fix(gateway): ownership checks for TasksController findAll/create + MissionsController create' (#98) from fix/task-mission-ownership into main
Some checks failed
ci/woodpecker/push/ci Pipeline failed
2026-03-13 20:15:46 +00:00
684dbdc6a4 fix(gateway): enforce task and mission ownership
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
2026-03-13 14:43:33 -05:00
e92de12cf9 feat(auth): add Authentik OIDC adapter
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Refs #96
2026-03-13 14:42:05 -05:00
1f784a6a04 chore(tasks): mark P5-001, P5-003 done; P5-004 in-progress
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 14:33:16 -05:00
ab37c2e69f Merge pull request 'fix(ci): sequential steps + single install to prevent OOM on runner' (#95) from fix/ci-sequential into main
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 18:13:21 +00:00
c8f3e0db44 fix(ci): sequential steps + single install to prevent OOM on runner
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
Each step was re-running pnpm install independently, and all quality
steps (typecheck, lint, format, test) ran in parallel. On merge commits
with more accumulated code this pushed the CI runner over its memory
limit (exit code 254 = OOM kill).

Fix:
- install once, share node_modules via Woodpecker workspace volume
- sequential execution: install → typecheck → lint → format → test → build
- corepack enable in each step (fresh container) but no redundant install
2026-03-13 13:10:30 -05:00
02772a3910 Merge pull request 'fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting' (#85) from fix/gateway-security into main
Some checks failed
ci/woodpecker/push/ci Pipeline failed
2026-03-13 18:07:01 +00:00