9ef578c20d
feat(cli): conversation sidebar with list/create/switch/delete (TUI-008)
2026-03-15 15:02:46 -05:00
4d4ad38405
feat(cli): add scrollable message history with PgUp/PgDn (TUI-010)
...
- Create use-viewport hook tracking scroll offset, viewport size, auto-follow
- Update MessageList to slice visible messages and show scroll indicator
- Wire PgUp/PgDn keybindings in app.tsx
2026-03-15 14:59:40 -05:00
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
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
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
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
cbac5902db
fix: Phase 0 verification — CI gates green (P0-009) ( #70 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-13 02:28:38 +00:00
4f84a01072
feat: communication spine — gateway, TUI, Discord ( #61 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-13 01:33:32 +00:00
6d0d288e31
feat(P0-001): scaffold monorepo structure ( #60 )
...
Co-authored-by: Jason Woltje <jason@diversecanvas.com >
Co-committed-by: Jason Woltje <jason@diversecanvas.com >
2026-03-13 01:11:46 +00:00