feat: conditionally render voice button based on voice mode state (#8561)
* chore: update webrtcvad dependency and add optional audio support - Updated webrtcvad version requirement to >=1.9.4 in pyproject.toml and uv.lock. - Moved webrtcvad to optional dependencies under the new 'audio' category in both pyproject.toml files for better modularity. - Ensured compatibility with existing dependencies while enhancing documentation for optional audio features. * fix: handle optional import of voice_mode_router in API initialization - Updated the API router initialization to conditionally include the voice_mode_router if it is available, improving modularity and preventing import errors. - Adjusted the import statement for voice_mode_router to handle ImportError gracefully, ensuring the application remains robust in its absence. * feat: add voice mode flag to API configuration - Introduced a new function `get_voice_mode_enabled` to check for the availability of the `webrtcvad` library, enhancing the API's capability to support voice mode features. - Updated the `ConfigResponse` schema to include `voice_mode_enabled` flag, allowing clients to query the status of voice mode support. - Integrated the voice mode feature flag into the `get_config` endpoint response, improving the configurability of the API. * test: skip voice mode tests if webrtcvad is not installed - Added a conditional import for the webrtcvad library in the voice mode test suite. - Implemented a pytest marker to skip tests when webrtcvad is unavailable, enhancing test robustness and preventing unnecessary failures. * feat: add voice mode state management to flows manager store - Introduced `voiceModeEnabled` state and `setVoiceModeEnabled` action in the flows manager store to manage the voice mode feature. - Updated the `ConfigResponse` interface and `useGetConfig` hook to integrate the new voice mode state, allowing for dynamic configuration updates. - Enhanced the API's configurability by ensuring the voice mode state is properly set based on the API response. * feat: conditionally render voice button based on voice mode state - Integrated `voiceModeEnabled` from the flows manager store to control the visibility of the VoiceButton component. - The VoiceButton will now return null if voice mode is not enabled, enhancing the user interface by preventing unnecessary rendering. * fix: ensure boolean conversion for voice mode state in config hook - Updated the `setVoiceModeEnabled` function in the `useGetConfig` hook to explicitly convert the `voice_mode_enabled` value to a boolean, ensuring consistent handling of the voice mode state based on API responses. * refactor: conditionally import voice_mode_router in API initialization - Updated the API router to conditionally include the voice_mode_router based on its availability, enhancing modularity and preventing import errors. - Adjusted the __init__.py file to dynamically add voice_mode_router to the __all__ list if the import is successful, improving the API's robustness. * chore: revert mcp version update * refactor: reorder router initialization and add audio flag to backend install task * feat: add audio module to backend installation command in VS Code tasks * ci: add audio extras to uv sync in frontend tests
This commit is contained in:
parent
1950116916
commit
4d3eae63ac
15 changed files with 73 additions and 24 deletions
8
.github/workflows/typescript_test.yml
vendored
8
.github/workflows/typescript_test.yml
vendored
|
|
@ -220,12 +220,12 @@ jobs:
|
|||
|
||||
echo "Total tests to run: $TEST_COUNT"
|
||||
|
||||
# Calculate optimal shard count - 1 shard per 5 tests, min 1, max 25
|
||||
# Calculate optimal shard count - 1 shard per 5 tests, min 1, max 40
|
||||
SHARD_COUNT=$(( (TEST_COUNT + 4) / 5 ))
|
||||
if [ $SHARD_COUNT -lt 1 ]; then
|
||||
SHARD_COUNT=1
|
||||
elif [ $SHARD_COUNT -gt 25 ]; then
|
||||
SHARD_COUNT=25
|
||||
elif [ $SHARD_COUNT -gt 40 ]; then
|
||||
SHARD_COUNT=40
|
||||
fi
|
||||
|
||||
# Create the matrix combinations string
|
||||
|
|
@ -301,7 +301,7 @@ jobs:
|
|||
prune-cache: false
|
||||
|
||||
- name: Install Python Dependencies
|
||||
run: uv sync
|
||||
run: uv sync --extra audio
|
||||
|
||||
- name: Configure Environment Variables
|
||||
run: |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue