feat(cli): add login command and authenticated TUI sessions #114

Merged
jason.woltje merged 1 commits from feat/cli-auth into main 2026-03-15 17:00:09 +00:00
Owner

Summary

  • — signs in via email/password, stores session at ~/.mosaic/session.json
  • — loads saved session, validates, prompts for creds if needed, passes cookie in WebSocket handshake
  • Session persists across invocations (7-day expiry, gateway-scoped)

Test plan

  • stores session
  • connects without re-prompting
  • with expired/invalid session prompts for credentials
  • Gateway logs Client
## Summary - — signs in via email/password, stores session at ~/.mosaic/session.json - — loads saved session, validates, prompts for creds if needed, passes cookie in WebSocket handshake - Session persists across invocations (7-day expiry, gateway-scoped) ## Test plan - [ ] stores session - [ ] connects without re-prompting - [ ] with expired/invalid session prompts for credentials - [ ] Gateway logs Client
jason.woltje added 1 commit 2026-03-15 17:00:01 +00:00
feat(cli): add login command and authenticated TUI sessions
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
08ac5aa5a3
- New `mosaic login` command: signs in via email/password, stores
  session cookie at ~/.mosaic/session.json (7-day expiry)
- `mosaic tui` now authenticates before connecting WebSocket:
  loads saved session, validates it, prompts for credentials if needed
- TUI passes session cookie via socket.io extraHeaders so the
  ChatGateway accepts the WebSocket connection
- Session is reused across invocations until it expires

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jason.woltje merged commit 997a6d134f into main 2026-03-15 17:00:09 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#114