-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Overview
Replace the Slint-based pikachat-desktop with a Tauri + React + Tailwind frontend while preserving the existing Rust backend crates.
Architecture Principle
Thin Tauri command/event bridge:
- Frontend sends commands:
send_message,join_room,load_rooms, etc. - Backend emits events:
timeline_updated,sync_state_changed,login_required, etc. - Frontend never sees Matrix internals
- Backend never cares about React component structure
This separation enables agents to work independently on frontend and backend.
Tasks
Phase 1: Scaffold Tauri project
- Create
apps/pikachat-desktop-tauriwith Tauri + Vite + React + TypeScript - Configure Tailwind CSS
- Set up workspace to include existing crates
- Wire
backend-core,backend-matrix,backend-platformas dependencies
Phase 2: Command bridge
- Define Tauri command handlers wrapping existing backend
-
init,login_password,restore_session,logout -
start_sync,stop_sync -
list_rooms,open_room,paginate_back -
send_message,send_dm_text - Media upload/download commands
Phase 3: Event bridge
- Set up Tauri event emission from backend
-
timeline_updated,room_list_updated -
sync_state_changed,lifecycle_changed -
login_required,error_occurred
Phase 4: React frontend
- Login screen with homeserver/user/password form
- Room list sidebar
- Timeline view with message bubbles
- Message composer
- Sync status indicator
- Logout flow
Phase 5: Cleanup
- Remove old Slint
pikachat-desktop - Update README and AGENTS.md
- Verify Tailscale serve works for remote testing
Benefits
- Agent can test UI via browser tools (localhost or Tailscale)
- Hot reload for frontend development
- Preserves all existing backend work
- Cleaner separation of concerns
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels