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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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 )
...
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
...
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 )
...
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
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
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
ci/woodpecker/push/ci Pipeline failed
2026-03-13 20:15:46 +00:00
684dbdc6a4
fix(gateway): enforce task and mission ownership
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
...
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
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
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
...
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
ci/woodpecker/push/ci Pipeline failed
2026-03-13 18:07:01 +00:00
85a25fd995
fix: add plugin paths to tsconfig.typecheck.json for merged PluginModule
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-03-13 13:03:59 -05:00
20f302367c
chore(gateway): align typecheck paths after rebase
2026-03-13 13:03:09 -05:00
54c6bfded0
fix(gateway): security hardening — auth guards, ownership checks, validation, rate limiting
2026-03-13 13:03:09 -05:00