e8d7ab8f15
fix(cli): rearrange footer — gateway top-right, cwd on line 2
...
ci/woodpecker/push/ci Pipeline was successful
1. (blank) ··· Gateway: Connected
2. ~/path (branch) ··· Session: a1b2c3d4
3. ↑5k ↓72 $0.12 ··· (provider) model • thinking
2026-03-15 14:50:50 -05:00
320e92c21d
feat(cli): show session/conversation ID in footer
...
ci/woodpecker/push/ci Pipeline was successful
Adds a third line to the footer, right-aligned beneath Gateway status:
'session: a1b2c3d4' (first 8 chars) or 'no session' when not connected.
2026-03-15 14:48:42 -05:00
7c05361b91
fix(cli): prevent header text artifacts on re-render
...
ci/woodpecker/push/ci Pipeline was successful
Add flexGrow={1} to the text column so it fills the full terminal
width. This ensures Ink clears the entire line when content changes
(e.g. 'awaiting model' → 'llama3.2 (8k)'), preventing leftover
characters from previous renders.
2026-03-15 14:45:44 -05:00
42e7b5c507
fix(cli): add bottom margin after header
2026-03-15 14:43:50 -05:00
b4da1f08b7
fix(cli): add top margin before header
2026-03-15 14:42:52 -05:00
b0515d34ff
fix(cli): preserve two-space gaps in mosaic icon tiles
...
Extract gap string to const to prevent prettier from collapsing
the double-space literals between icon tiles.
2026-03-15 14:42:00 -05:00
120c22dbe6
fix(cli): add extra margin between mosaic icon and text
2026-03-15 14:40:33 -05:00
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 )
...
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