vite.config.ts:
- Set server.port = 1420 with strictPort = true to match tauri.conf.json devUrl
- Add clearScreen = false to keep Vite output readable alongside Rust logs
manage.sh:
- start: auto-detects debug build + absent dev server, launches Vite via nvm
- stop: also kills Vite dev server if running
- This makes ./manage.sh start a single command that handles everything
lib.rs:
- Switch to Builder::build() + App::run(event_handler) form
- Intercept RunEvent::ExitRequested to prevent process exit when
chat window closes — keeps Robin alive in tray indefinitely
manage.sh:
- run: foreground execution with auto DISPLAY + RUST_LOG
- start/stop/restart/status: background daemon lifecycle
- logs: tail Robin log file
- build-debug: Rust-only build (no Node/npm needed)
- desktop-install/remove: system application menu entry
- autostart-enable/disable: XDG autostart entry
- install: build-debug + desktop-install + autostart-enable in one step
- uninstall: reverses install cleanly
patterns.rs:
- Add exe-relative candidates: binary-dir/patterns/ and binary-dir/../../patterns/
This means the binary works from any working directory without requiring
the user to cd into ~/robin/ first