fix(plugin-sdk): align speech runtime packaging#89899
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 1, 2026, 1:48 AM ET / 05:48 UTC. Summary PR surface: Source -2, Tests +198, Other +177. Total +373 across 7 files. Reproducibility: yes. at source level. Current main and v2026.6.11 still allow Review metrics: 2 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. 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:
Next step before merge
Security Review detailsBest possible solution: Land after maintainers confirm speech-core is package-backed through Do we have a high-confidence way to reproduce the issue? Yes, at source level. Current main and v2026.6.11 still allow Is this the best way to solve the issue? Yes, if maintainers accept the package-backed speech-core contract. The allowlist removal plus installed-package verification is narrower than a broad resolver fallback, while a shipped sidecar contract would require the sidecar-compatible alternative. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 2c7e989686ba. Label changesLabel justifications:
Evidence reviewedPR surface: Source -2, Tests +198, Other +177. Total +373 across 7 files. View PR surface stats
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
|
|
I like the direction here: removing the unsupported always-allowed path and then adding a postpublish verifier is much better than silently keeping the bad contract around. The new verifier also feels reusable for future runtime-facade regressions. Minor thought: since the parser currently expects |
2a2cd20 to
cca1671
Compare
060d2c4 to
b4e4f9b
Compare
e47f2da to
06518f6
Compare
|
This assigned pull request has been automatically marked as stale after being open for 27 days. |
Co-authored-by: 张贵萍0668001030 <[email protected]>
707305f to
e09e47a
Compare
|
Land-ready maintainer rewrite complete at signed head
Known proof gap: the full registry dependency install could not complete in the current Testbox because npm exited during registry metadata resolution without an error record. The built tarball contract, focused verifier tests, shipped-package reproduction, and prior installed-Gateway/RPC proof cover the regression itself. |
|
Merged via squash.
|
Co-authored-by: Peter Steinberger <[email protected]>
Co-authored-by: Peter Steinberger <[email protected]>
Co-authored-by: Peter Steinberger <[email protected]>
What Problem This Solves
Installed gateways could authorize
speech-core/runtime-api.jsas a bundled extension facade even though the npm package has nodist/extensions/speech-coresidecar. That makes replies fail before provider invocation. Closes #89425.Why This Change Was Made
Speech is package-backed through
plugin-sdk/tts-runtimeandpackages/speech-core/runtime-api.js; it is not a bundled extension. This rewrite removes it from QA extension staging and introduces one source-level contract for the two real facade sidecars: image generation and media understanding.The installed-package verifier imports that contract and checks the exact activation runtime plus each declared sidecar. It no longer scans or parses generated JavaScript, so verification is independent of chunk names, minification, declaration formatting, and arbitrary file-count limits.
User Impact
Packaged installs no longer attempt to resolve a nonexistent speech extension before replies. The supported speech/TTS runtime remains unchanged. No config, migration, provider, auth, or public SDK surface changes.
Evidence
v2026.6.11reproduces the contract mismatch:speech-coreis allowlisted whileextensions/speech-coreis absent.mainindependently reproduces the unrelated config-baseline preflight drift.git diff --checkpassed.Contributor credit is preserved in the maintainer rewrite commit and changelog.