fix(media): avoid eager provider startup for audio listing#85368
fix(media): avoid eager provider startup for audio listing#85368FelixIsaac wants to merge 3 commits into
Conversation
|
Codex review: needs changes before merge. Reviewed June 24, 2026, 6:18 AM ET / 10:18 UTC. Summary PR surface: Source +98, Tests +221. Total +319 across 8 files. Reproducibility: yes. from source inspection. Current main still lists audio providers through Review metrics: 2 noteworthy metrics.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Land a refreshed manifest-first audio provider listing that reuses the bundled discovery compat policy, preserves current media metadata fields, and keeps global disable, denylist, and explicit-disable behavior covered by tests. Do we have a high-confidence way to reproduce the issue? Yes, from source inspection. Current main still lists audio providers through Is this the best way to solve the issue? No, not as submitted. Manifest-first listing is the right layer, but the patch must reuse the existing bundled compat policy and refresh current metadata fields before it is the safest fix. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against e9720c27fa69. Label changesLabel justifications:
Evidence reviewedPR surface: Source +98, Tests +221. Total +319 across 8 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
ClawSweeper PR egg ✨ Hatched: 🥚 common Mossy Signal Puff Hatch commandComment Hatchability rules:
Rarity: 🥚 common. What is this egg doing here?
|
|
Follow-up performance-audit PR outside the media/provider discovery cluster: #85396 targets default root-help startup overhead by skipping the full config/validation import when no config/dotenv/plugin-help env can affect precomputed help. Measured Usage: openclaw [options] [command] Options: Commands: Examples: Docs: https://docs.openclaw.ai/cli built-startup avg 1116.7ms/264.1MB -> 44.4ms/54.1MB. |
|
@clawsweeper re-review Pushed the SenseAudio metadata/global plugin-disable fixes, added focused coverage, built the CLI, and updated the Real behavior proof section with copied live CLI output. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review Patched manifest metadata audio listing to respect bundled plugin allow/deny/per-entry disabled policy, and added runtime fallback only when an available media provider declaration lacks manifest metadata. Focused checks passed: |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
This pull request has been automatically marked as stale due to inactivity. |
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix(media): avoid eager provider startup for audio listing This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
|
Closing due to inactivity. |
Summary
capability audio providerscan report it without loading runtime codeplugins.enabled: falseWhy
openclaw capability audio providersonly needs provider metadata for status/listing output. Building the runtime registry can eagerly load provider implementations and plugin code, which is slower and can trigger work unrelated to listing configured audio providers.Real behavior proof (required for external PRs)
openclaw capability audio providers --jsonshould list manifest-declared audio providers without eager runtime startup, include bundled SenseAudio metadata, and omit bundled plugin providers when plugins are globally disabled.{ "id": "senseaudio", "capabilities": ["audio"], "defaultModels": { "audio": "senseaudio-asr-pro-1.5-260319" }, "available": true, "configured": false, "selected": false }Disabled-plugin config copied live output:
senseaudiowith the expected audio default model, and the same command returns an empty provider list when run withOPENCLAW_CONFIG_PATHpointing to a config containing{"plugins":{"enabled":false}}. The focused test shard also passed: media-understanding 10 tests and cli capability 76 tests.capability audio providersoutput and bundled providers still appearing when plugins were globally disabled.Root Cause
The CLI listing path moved to manifest metadata, but SenseAudio did not declare media-understanding provider metadata in its bundled manifest. The metadata builder also delegated availability filtering without first honoring the global plugin disable switch, so disabled plugin providers could still be listed.
Tests
node scripts/test-projects.mjs src/media-understanding/defaults.test.ts src/media-understanding/manifest-metadata.test.ts src/cli/capability-cli.test.tsCI=true OPENCLAW_BUILD_VERBOSE=1 NODE_OPTIONS=--max-old-space-size=8192 OPENCLAW_TSDOWN_TIMEOUT_MS=300000 node scripts/build-all.mjs cliStartupOPENCLAW_STATE_DIR=$(mktemp -d) HOME=$(mktemp -d) node openclaw.mjs capability audio providers --jsoncorepack pnpm exec oxfmt --write --threads=1 extensions/senseaudio/openclaw.plugin.json src/media-understanding/manifest-metadata.ts src/media-understanding/manifest-metadata.test.ts src/media-understanding/defaults.test.tsgit diff --checkHygiene