You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
replace the weather page scraper with QWeather GeoAPI v2 and Weather API v7 JSON calls
support both X-QW-Api-Key and Ed25519 JWT authentication
add encrypted manager-api credential storage backed by one project master key
add manager-web secret upload/configuration and remove the bundled default API key
Verification
manager-api focused tests: 8 passed
xiaozhi-server weather tests: 6 passed
manager-web i18n check and 8 unit tests passed; production build succeeded
full manager-api suite: 127 passed; 5 existing integration tests require a local MySQL instance
Compatibility
Existing plaintext per-agent API keys remain readable. New secrets are encrypted when xiaozhi.secret.master-key / XIAOZHI_SECRET_MASTER_KEY is configured. Standalone YAML configuration supports the existing API-key flow and the new JWT flow.
Hi tairan, thanks for the comprehensive weather plugin upgrade. I verified the Java and Python tests and the manager-web production build locally; they all passed. The QWeather API and JWT implementation also appears consistent with the official documentation.
Before merging, could you please address two compatibility issues?
The migration clears the old shared API key from sys_params, but existing agents may already have copied that key into ai_agent_plugin_mapping.param_info. Please remove api_key only from weather-plugin mappings where it exactly matches the old bundled key, while preserving user-provided keys.
manager-mobile does not yet support the new select, password, file, and visible_when field metadata. These fields currently fall back to plain-text inputs, so JWT private keys cannot be uploaded properly and secrets may be displayed in plain text. Please add the corresponding mobile controls, or disable JWT configuration on mobile for now and direct users to manager-web.
One additional security-hardening suggestion: after manager-web saves the configuration, the API key/private key remains in the page state. It would be safer to reload the redacted configuration or clear the sensitive fields while retaining only their configured/fingerprint status.
These issues should not require changing the overall design, and the fixes appear manageable. Once addressed, the PR should be in good shape to merge.
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
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.
Summary
X-QW-Api-Keyand Ed25519 JWT authenticationVerification
Compatibility
Existing plaintext per-agent API keys remain readable. New secrets are encrypted when
xiaozhi.secret.master-key/XIAOZHI_SECRET_MASTER_KEYis configured. Standalone YAML configuration supports the existing API-key flow and the new JWT flow.