Skip to content

Conversation

@weareai
Copy link
Collaborator

@weareai weareai commented Oct 13, 2025

…prompt

  • Updated rise-gui.py to rename fields:
    • 'adapter' -> 'assistant_identifier'
    • 'system_prompt' -> 'custom_system_prompt'
  • Modified rise.py to package these fields into a client_config JSON object
  • Updated HTML template and React component labels to reflect new field names
  • Ensures client configuration is properly sent to RISE engine for custom assistant support

…prompt

- Updated rise-gui.py to rename fields:
  * 'adapter' -> 'assistant_identifier'
  * 'system_prompt' -> 'custom_system_prompt'
- Modified rise.py to package these fields into a client_config JSON object
- Updated HTML template and React component labels to reflect new field names
- Ensures client configuration is properly sent to RISE engine for custom assistant support
- Add JSON syntax highlighting for tool call responses with VS Code-style colors
- Implement proper SSE (Server-Sent Events) line splitting using regex /\n/
- Add CUSTOM_BEHAVIOR/CUSTOM_BEHAVIOR_RESULT content type handlers in rise.py
- Add collapsible settings panel with animated gear icon toggle
- Detect JSON responses and auto-format as code blocks
- Remove test tool button from interface
- Fix tool call display from engine using completed_response from result dict
- Improve message alignment (left for assistant, right for user)
- Add detailed debug logging for SSE data flow
- Added thinking_enabled parameter to send_rise_command() function

- Added thinking mode toggle button to UI

- Implemented proper rendering of <think> blocks with styling

- Fixed HTML extraction fallback to show error message

- Support both complete and incomplete think blocks during streaming
weareai and others added 20 commits October 15, 2025 15:30
- Added rise-gui.py with native desktop window support using pywebview
- Implemented thinking blocks UI with <think> tag parsing and styling
- Added overlay settings panel with backdrop
- Replaced Flask dev server with Waitress production server
- Phone-like window dimensions (473x932) with frameless design
- Thinking mode enabled by default
- Added build_desktop_exe.py for creating standalone executables
- Added rise-gui-desktop-launcher.py as desktop app entry point
- Suppressed console window in desktop mode
- Fixed SyntaxWarnings by properly escaping JavaScript regex
- Updated .gitignore for build artifacts
- Added close button (X) in top right corner of header
- Styled with red hover effect for clear indication
- Integrated pywebview API to close window gracefully
- Works seamlessly in frameless window mode
…nput disable, and UI enhancements

- Added splash screen with dark theme showing 'G-Assist Launching...' during startup
- Implemented single-instance detection with GUI error message box using lock file
- Added input/button disable during response to prevent duplicate requests
- Fixed JavaScript regex errors that prevented buttons from working
- Implemented proper window.destroy() for clean application shutdown
- Added close button (X) with Ctrl+Q shortcut that properly closes the app
- Set thinking toggle button to enabled (green) by default
- Created custom debug console accessible via F12 or clicking Debug button
- Added tkinter message box for --noconsole mode to notify users of duplicate instances
- Updated build script to include psutil, tempfile, and atexit dependencies
- All features work in both development mode and compiled .exe
…t export

- Added hamburger menu (☰) on the left side of header
- Moved settings and export options into dropdown menu
- Added minimize button (-) next to close button with yellow hover effect
- Implemented chat export functionality with native file save dialog
  - Exports in OpenAI format with role/content structure
  - Preserves <think> tags for assistant reasoning
  - Uses recursive DOM traversal to avoid duplicating thinking content
- Added version info (0.0.2) in dropdown menu with divider
- Fixed role mapping: 'You' -> user, 'G-Assist' -> assistant
- Improved settings gear icon with detailed path
- Export supports both desktop (file dialog) and browser (download) modes
- All features work in compiled .exe with proper error handling
Voice Input Features:
- Integrated Faster-Whisper (tiny.en model) for speech-to-text
- Added microphone button with recording state (red pulsing when active)
- Automatic microphone detection and enumeration
- Microphone selection dropdown in settings panel
- Smart UI states: grayed out if no mics or access denied
- Selected mic persists in localStorage
- Uses selected microphone device for recording
- Backend transcription endpoint with lazy model loading
- Auto-populates input field with transcribed text

UI Improvements:
- Replaced Think text with brain icon (compact, icon-only)
- Removed visible Debug button (F12 still works)
- Equal left/right button spacing (4px margins)
- Mic button matches Think button size (18px icons)
- Settings panel shows mic status and device count
- Color-coded status: green for success, red for errors

Build Updates:
- Added faster-whisper and dependencies to build script
- Added hidden imports: faster_whisper, ctranslate2, tokenizers, av, onnxruntime
- Included collect-all for faster_whisper and ctranslate2
Major Features:
- Direct Python binding integration (no Flask server)
- Real-time streaming responses with TTFT metrics
- Splash screen on launch
- Thinking mode with animated bubbles
- Voice input support via WAV files
- Multi-instance support
- Modern dark UI with NVIDIA branding

Technical Changes:
- New: rise-gui-desktop-direct.py - Direct API desktop application
- New: build_desktop_direct.py - Build script for standalone exe
- Updated: README.md - Documentation for direct API architecture
- Updated: setup.py - Version bump to 0.0.4
- Removed: rise-gui.py, build_desktop_exe.py (old Flask-based approach)
- Removed: rise-gui-desktop-launcher.py (no longer needed)
- Updated: .gitignore - Added build_direct/ and dist_direct/

UI Improvements:
- Fixed button hover effects (no deformation)
- Fixed menu item text readability
- Fixed minimize/close button alignment
- Fixed typing indicator persistence
- Fixed message container layout
- Fixed textarea auto-resize
- Fixed mic icon visibility

Performance:
- Zero network overhead
- True streaming responses
- Low latency direct function calls
- Single process architecture
- Reset global state variables (response_done, response, chart) before starting new thread
- Prevents JavaScript polling from reading stale values from previous ASR requests
- Ensures LLM streaming responses display correctly in GUI
Signed-off-by: Sydney Altobell <asydney@nvidia.com>
- Replace MediaRecorder batch recording with AudioContext real-time streaming
- Use ScriptProcessorNode to capture audio at 16kHz sample rate naturally
- Send 700-sample chunks immediately as they arrive (no artificial delays)
- Enables live transcription while speaking (not just after stopping)
- WAV file processing unchanged - still uses simulated real-time delays
- Fire-and-forget chunk sending for optimal responsiveness
- Add miniaudio.h single-header audio library for mic capture
- Update main.cpp with DemoASRMicrophone() for real-time speech-to-text
- Add NOMINMAX define to fix Windows min/max macro conflicts
- Update API_REFERENCE.md with live microphone capture documentation
- Merge API_REFERENCE.md, INTEGRATION.md, DOCS_OVERVIEW.md into README.md
- Single comprehensive documentation file with all sections
- Includes: Quick Start, Architecture, API Reference, Code Examples
- Added live microphone capture documentation
- Removed redundant separate documentation files
- Add 500ms timeout for microphone initialization
- Reject slow microphones that don't respond in time
- Fix race condition in ASR_FINAL detection during STOP phase
- Set waitingForAsrFinal flag before draining semaphore
- Clean error message when mic doesn't respond in time
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants