Open
Conversation
Updates the requirements on [ovos-workshop](https://github.com/OpenVoiceOS/OVOS-workshop) to permit the latest version. - [Release notes](https://github.com/OpenVoiceOS/OVOS-workshop/releases) - [Changelog](https://github.com/OpenVoiceOS/ovos-workshop/blob/dev/CHANGELOG.md) - [Commits](OpenVoiceOS/ovos-workshop@7.0.6...8.0.0) --- updated-dependencies: - dependency-name: ovos-workshop dependency-version: 8.0.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adina Vladu <adina.vladu@usc.es>
* Refine French stop intents * Refine French stop voice intents
* Prevent duplicate skill loads during rescans * chore: modernize GitHub workflows to use shared gh-automations reusables - coverage.yml: replace py-cov-action custom workflow with coverage.yml@dev reusable (system deps, extras, deploy_pages: true) - gh_pages_coverage.yml: deleted — superseded by deploy_pages: true - pipaudit.yml: replace custom multi-version inline job with pip-audit.yml@dev reusable (preserves ignore list) - release_workflow.yml: fix broken YAML (misplaced publish_pypi/ notify_matrix keys); move them into publish_alpha with: block - build_tests.yml: replace inline matrix job with build-tests.yml@dev reusable; add system_deps and install_extras All workflows now reference @dev consistently. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Defer connectivity-triggered skill loads until intents are ready * Guard deferred startup loads with a lock * Make runtime requirements gating optional behind config flag - Add skills.use_deferred_loading config flag (default: false) - When disabled (default): all skills load unconditionally at startup - When enabled: skills with network/internet requirements defer until those conditions are met - Wrap connectivity event handler registration with flag check - Branch run() method based on flag setting - Preserves PR #749's deferred load bug fixes when flag is enabled This builds on PR #749's improvements to deferred loading (thread safety, prevents duplicate loads) while making the feature opt-in so the simpler unconditional loading is the default behavior. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Add documentation for optional deferred loading config - FAQ.md: document default unconditional loading and optional deferred loading - SUGGESTIONS.md: mark S-001 as PARTIALLY ADDRESSED, explain opt-in config flag - MAINTENANCE_REPORT.md: document change and integration with PR #749 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Add test coverage for deferred loading config flag Add TestDeferredLoadingConfigFlag test class with tests for: - Config flag defaults to false (deferred loading disabled) - Config flag can be enabled via use_deferred_loading config - Connectivity handlers NOT registered when deferred loading disabled - Connectivity handlers ARE registered when deferred loading enabled - load_plugin_skills does NOT gate on network/internet when disabled - load_plugin_skills DOES gate on network/internet when enabled - run() calls _load_new_skills directly when deferred loading disabled - run() uses deferred loading flow when flag is enabled Ensures both code paths (flag enabled and disabled) are properly tested. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Add required project configuration and documentation files - pyproject.toml: Python project configuration (required for build) - AUDIT.md: Known issues and technical debt documentation - QUICK_FACTS.md: Machine-readable project reference - docs/: Architecture and feature documentation - .env: Environment configuration These files were merged but not committed. Required for CI builds to succeed. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * update * Address CodeRabbit PR review comments for PR #750 ## Changes 1. **Fix _load_new_skills to bypass gating when deferred_loading disabled** (Major) - When deferred_loading is disabled, pass network=True, internet=True to load_plugin_skills() - This ensures skills with runtime requirements still load unconditionally - Reconciles test expectation with implementation 2. **Replace sequential atomicity test with concurrent thread test** (Major) - test_mark_startup_complete_and_consume_deferred_is_atomic now uses 2 threads - Verifies exactly one thread sees True (winner of race) - Removed redundant test_mark_startup_complete_concurrent_calls_race_safe 3. **Remove unused skill_manager variable bindings** (Minor) - test_connectivity_handlers_not_registered_when_deferred_loading_disabled: Line 472 - test_connectivity_handlers_registered_when_deferred_loading_enabled: Line 497 - Both tests only need side effects of instantiation, not the object itself 4. **Add assert_not_called for opposite branches** (Minor) - test_run_calls_load_new_skills_when_deferred_loading_disabled: Assert deferred loading methods NOT called - test_run_uses_deferred_loading_when_enabled: Assert _load_new_skills NOT called in startup phase - Ensures config flag acts as mutually exclusive switch 5. **Test improvement for load_plugin_skills_no_gating** - Changed to call _load_new_skills() instead of load_plugin_skills() directly - Properly tests end-to-end behavior of unconditional loading when disabled ## Notes - test_instantiate was already fixed in prior work (no connectivity handlers by default) - CI build failure (Install step) is pre-existing issue with pyproject.toml requires-python constraint Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Fix CI build failure by updating requires-python to >=3.10 The ovoscope dependency requires Python >=3.10, but pyproject.toml specified >=3.9. This caused dependency resolution to fail in CI install step for Python 3.9. Updated to match the minimum version required by test dependencies. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Fix GitHub Actions build_tests.yml install_extras syntax The install_extras parameter was incorrectly specified with brackets: install_extras: '[mycroft,plugins,skills-essential,lgpl,test]' This caused pip install to receive double brackets: pip install "wheel[[extras]]" Changed to use correct syntax (gh-automations adds the brackets): install_extras: 'mycroft,plugins,skills-essential,lgpl,test' This fixes the install step failure in the build tests workflow. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Fix test config patching by using context managers The @patch.dict decorator applied to test methods may not correctly apply during setUp() execution. Changed to use with patch.dict() context managers inside each test method to ensure the patch is active when SkillManager is created. This fixes: - test_deferred_loading_enabled_via_config - test_connectivity_handlers_registered_when_deferred_loading_enabled - test_load_plugin_skills_gating_when_deferred_loading_enabled - test_run_uses_deferred_loading_when_enabled Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Continue test fixes for config patching issues - Convert test_deferred_loading_disabled_by_default to use context manager - Convert test_connectivity_handlers_not_registered_when_deferred_loading_disabled to use context manager - Convert test_load_plugin_skills_no_gating_when_deferred_loading_disabled to use context manager - Convert test_run_calls_load_new_skills_when_deferred_loading_disabled to use context manager - Fix test_load_plugin_skills_no_gating_when_deferred_loading_disabled to call load_plugin_skills directly with network=True, internet=True instead of calling _load_new_skills This ensures all tests have config patches properly applied during SkillManager instantiation. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Explicitly set use_deferred_loading to False in all disabled-path tests The patch.dict may not properly set None values. Explicitly set use_deferred_loading to False in mock_config() calls for all tests that expect the disabled-by-default behavior. This ensures the config patch is correctly applied and the flag is definitively set to False. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Fix missing initialization and logic in skill loading - Add missing `_plugin_skills_lock` and `_loading_plugin_skills` attributes to __init__ - Restore reserve/release logic in `_load_plugin_skill` to prevent duplicate loads - Fix `load_plugin_skills` to properly track loading state using `_is_plugin_skill_tracked` - Add thread-safe locking when storing loaded skills - Update test assertion to match the `reserved=True` parameter now passed This fixes CI test failures where `_loading_plugin_skills` was accessed but not initialized, and ensures concurrent skill loads are properly serialized. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * Fix test_instantiate flakiness due to config isolation Ensure test_instantiate explicitly sets use_deferred_loading=False with proper config isolation to prevent state leakage from other test classes when pytest randomizes test order. This fixes intermittent test failures where connectivity handlers were incorrectly registered due to config pollution from TestDeferredLoadingConfigFlag tests. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> --------- Co-authored-by: Gaëtan Trellu <gaetan.trellu@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human review requested!