Skip to content

fix: add missing extensions/speech-core/ source files for npm tarball#89441

Closed
bladin wants to merge 1 commit into
openclaw:mainfrom
bladin:fix/issue-89425-speech-core-npm-tarball
Closed

fix: add missing extensions/speech-core/ source files for npm tarball#89441
bladin wants to merge 1 commit into
openclaw:mainfrom
bladin:fix/issue-89425-speech-core-npm-tarball

Conversation

@bladin

@bladin bladin commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes missing dist/extensions/speech-core/ directory in npm tarball (v2026.5.28)

Root Cause

The extensions/speech-core/ directory was missing source files, preventing the build from generating dist/extensions/speech-core/. This caused the runtime to fail with:

Error: Unable to resolve bundled plugin public surface speech-core/runtime-api.js
Embedded agent failed before reply: Unable to resolve bundled plugin public surface speech-core/runtime-api.js

Changes

  • extensions/speech-core/package.json - Package configuration matching other core extensions
  • extensions/speech-core/runtime-api.ts - Public API exports from plugin-sdk/tts-runtime
  • extensions/speech-core/src/runtime.ts - Runtime implementation re-exporting from plugin-sdk
  • extensions/speech-core/tsconfig.json - TypeScript configuration for build

The structure mirrors image-generation-core and media-understanding-core extensions to ensure consistent packaging in the npm tarball.

Verification

  • File structure matches other core extensions (image-generation-core, media-understanding-core)
  • Export path matches facade-activation-check.runtime.ts:27-31 ALWAYS_ALLOWED_RUNTIME_DIR_NAMES
  • Minimal change - only adds missing source files, no other modifications

Steps to Test

# Build the project
pnpm install && pnpm build

# Verify dist output
ls -la dist/extensions/speech-core/
# Should contain runtime-api.js and other build artifacts

# Package and verify npm tarball
npm pack
tar -tzf openclaw-*.tgz | grep "dist/extensions/speech-core"
# Should list files under dist/extensions/speech-core/

Fixes #89425

Fixes openclaw#89425 - npm tarball missing dist/extensions/speech-core/ directory

This commit adds the missing source files for the speech-core extension:
- package.json: Package configuration matching other core extensions
- runtime-api.ts: Public API exports from plugin-sdk/tts-runtime
- src/runtime.ts: Runtime implementation re-exporting from plugin-sdk
- tsconfig.json: TypeScript configuration for build

The structure mirrors image-generation-core and media-understanding-core
extensions to ensure consistent packaging in the npm tarball.

The speech-core directory is listed in ALWAYS_ALLOWED_RUNTIME_DIR_NAMES
(facade-activation-check.runtime.ts:27-31) but was missing source files,
causing the runtime to fail with:
  Error: Unable to resolve bundled plugin public surface speech-core/runtime-api.js
@github-actions github-actions Bot added the dependencies-changed PR changes dependency-related files label Jun 2, 2026
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Dependency Guard

This PR changes dependency-related files. Maintainers should confirm these changes are intentional.

Changed files:

  • extensions/speech-core/package.json

Maintainer follow-up:

  • Review whether the dependency changes are intentional.
  • Inspect resolved package deltas when lockfile, shrinkwrap, or workspace dependency policy changes are present.
  • Treat package-lock.json and npm-shrinkwrap.json diffs as security-review surfaces.
  • Run pnpm deps:changes:report -- --base-ref origin/main --markdown /tmp/dependency-changes.md --json /tmp/dependency-changes.json locally for detailed release-style evidence.

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Dependency graph changes are blocked

OpenClaw does not accept dependency graph changes through PRs unless a repository admin or security explicitly authorizes the current head SHA. Dependency updates are generated internally by maintainers so external PRs cannot change the resolved graph.

Detected dependency graph changes:

  • extensions/speech-core/package.json changed devDependencies, name, version.

If this PR intentionally needs a dependency graph change, ask a repository admin or member of @openclaw/openclaw-secops to comment:

/allow-dependencies-change

The action will approve the current head SHA (8f62b8ea49b705f0a72b4dabda153c0887c838ba) when it reruns. A later push requires a fresh approval.

@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label Jun 2, 2026
@clawsweeper

clawsweeper Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Thanks for the context here. I did a careful shell check against current main, and this is already implemented.

Close: current main already fixes the central missing speech-core/runtime-api.js failure by routing the TTS runtime through packages/speech-core, while this PR would add a duplicate workspace package manifest and still lacks real package/runtime proof.

So I’m closing this as already implemented rather than keeping a duplicate issue open.

Review details

Best possible solution:

Keep the current-main packages/speech-core TTS runtime route and handle any needed release/backport from that path instead of merging a duplicate extensions/speech-core package.

Do we have a high-confidence way to reproduce the issue?

No high-confidence current-main failure path remains: source and regression-test evidence show current main no longer loads TTS through the missing speech-core bundled facade. The linked issue still provides credible shipped-release context for v2026.5.28.

Is this the best way to solve the issue?

No, this PR is not the best way to solve the issue now. The maintainable fix is the current-main packages/speech-core route; this branch adds a duplicate package manifest and lacks real package/runtime proof.

Security review:

Security review needs attention: The diff does not add third-party code, but it adds an external-contributor workspace package manifest that duplicates an existing package name and is already dependency-graph blocked.

  • [medium] Duplicate workspace package identity — extensions/speech-core/package.json:2
    Adding extensions/speech-core/package.json with @openclaw/speech-core creates a second workspace package with the same name as packages/speech-core, which is a package-resolution and dependency-graph integrity concern.
    Confidence: 0.95

AGENTS.md: found and applied where relevant.

What I checked:

Likely related people:

  • vincentkoc: git blame and git log tie the current packages/speech-core runtime facade and regression test that supersede this PR to commit af9bad9fe7f7664a9e9f8d370e0b8ba9ce0203ae by Vincent Koc. (role: likely follow-up owner; confidence: high; commits: af9bad9fe7f7; files: src/plugin-sdk/tts-runtime.ts, src/tts/tts.test.ts, packages/speech-core/package.json)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 5259fa4495ac; fix evidence: commit af9bad9fe7f7, main fix timestamp 2026-06-02T10:53:31+02:00.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jun 2, 2026
@clawsweeper

clawsweeper Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper applied the proposed close for this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies-changed PR changes dependency-related files merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P1 High-priority user-facing bug, regression, or broken workflow. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: S status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Missing extensions/speech-core/ in npm tarball (v2026.5.28) — "Unable to resolve bundled plugin public surface speech-core/runtime-api.js"

1 participant