Repository navigation
feat(build): delete local whisper STT, prediction-markets, and tokenjuice-treesitter - #5454
Conversation
AST-aware context compression is dropped by decision; tinyjuice's non-AST (brace-depth heuristic) compression path becomes the only mode. Sheds the tree-sitter native C build plus the rust/python/typescript grammar crates from the default graph, and repoints the canonical slim-build incantation from '--features tokenjuice-treesitter' to plain '--no-default-features' across scripts, CI, and docs. tinyjuice keeps its own feature; openhuman just stops enabling it. Co-authored-by: Medulla <medulla@tinyhumans.ai>
…its surface Removes the prediction-markets Cargo feature, the polymarket/clob_auth tool modules, the tools.polymarket_execute RPC controller, the markets_agent built-in agent, the about_app catalog entries, and the shell forwarding entry. The web3 gate stays and now alone owns the EVM/mnemonic dependency shed (ethers-core/ethers-signers/coins-bip39), verified intact with the feature off. Co-authored-by: Medulla <medulla@tinyhumans.ai>
…able hosted engines Deletes whisper-rs / whisper-rs-sys (a CMake build of vendored whisper.cpp) from BOTH Cargo worlds, including the [patch.crates-io] fork entries — the single largest wall-clock item in the build, and it compiled twice. STT now routes through the hosted provider path with a selectable engine; configs with the removed local engine migrate to the backend default rather than silently remapping. cpal stays (audio capture feeds hosted STT; the accessibility mic probe uses it), so the inference feature narrows to cpal only. Co-authored-by: Medulla <medulla@tinyhumans.ai>
Removes Polymarket/whisper fixtures and assertions from the raw-coverage and e2e suites (keeping inverted assertions so a revert cannot silently re-register the deleted surface), corrects the stt_available e2e expectation for the hosted-engine semantics, fixes the disabled-build gate test to use the real microphone-permission API, and cleans up the VoicePanel frontend and voice factory tests. Co-authored-by: Medulla <medulla@tinyhumans.ai>
Collapse multi-line JSX and import statements to single lines, and remove a stray blank line, with no behavioural changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
Important Review skippedToo many files! This PR contains 190 files, which is 40 over the limit of 150. To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to Pro+ to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (190)
You can disable this status message by setting the Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5c7b83076
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65a22b3bb2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
CI is failing before project commands run because |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c31eb97cc0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c4697623f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Fallback: seed from voice_status, which already reports the | ||
| // resolved routing string for the selected STT engine. | ||
| if (voiceResponse.stt_engine) { | ||
| setSttProvider(prev => prev || voiceResponse.stt_engine); |
There was a problem hiding this comment.
Bind the STT selector to the effective engine
When stt_provider contains the normal cloud sentinel while voice_server.stt_engine is elevenlabs or openai, loadVoiceSettings() succeeds and the earlier success branch seeds the selector as Cloud; this new resolved-engine logic runs only if that RPC fails. The core nevertheless dispatches to the third-party engine, and saving cloud still merely defers to that engine, so Settings both misreports the provider being billed and offers no way to switch it back to Backend. Seed sentinel values from voiceResponse.stt_engine, or bind and persist this selector through settings.stt_engine.
AGENTS.md reference: AGENTS.md:L420-L420
Useful? React with 👍 / 👎.
| let stt_error = create_stt_provider(&stt_engine, "", config) | ||
| .err() | ||
| .map(|e| e.to_string()); | ||
| let stt_available = stt_error.is_none(); |
There was a problem hiding this comment.
Treat missing provider credentials as unavailable
When a third-party provider entry exists but its credential is missing or has been cleared, create_stt_provider_by_slug converts the lookup to an empty key and still constructs the provider, so this check reports stt_available: true and no stt_error. Conversations and useVoiceSkillStatus consequently show Voice as ready even though every transcription sends an empty authorization value and fails; validate required credentials here or during provider construction before declaring the engine available.
Useful? React with 👍 / 👎.
| stt: LocalAiAssetStatus { | ||
| state: stt_state.to_string(), | ||
| id: stt_model, | ||
| provider: "whisper.cpp".to_string(), | ||
| provider: "ggml".to_string(), | ||
| path: stt_path, |
There was a problem hiding this comment.
Remove the dead local STT asset download path
After deleting every local STT engine, retaining this GGML asset entry leaves the Local AI panel advertising an STT model and a Download button. That button still reaches download_asset("stt") and ensure_stt_asset_available, which downloads the default ggml-base-q5_1.bin from stt_download_url; download_all_models can do the same, yet transcription now always calls a hosted provider and never reads this file. Remove STT from the asset/download surface so users are not prompted to download hundreds of megabytes of unusable data.
AGENTS.md reference: AGENTS.md:L420-L420
Useful? React with 👍 / 👎.
| fn defers_to_engine(provider: &str) -> bool { | ||
| matches!( | ||
| provider.trim().to_ascii_lowercase().as_str(), | ||
| "" | "cloud" | "openhuman" | "backend" | "whisper" | "local" | ||
| ) |
There was a problem hiding this comment.
Let removed STT slugs fail after migration
When an unmigrated or manually edited config contains stt_provider = "whisper" or "local", this helper silently converts that removed selection into the configured hosted engine instead of allowing provider construction to reject it. That can unexpectedly route audio to—and bill—a host the user did not select, while also hiding that migration did not run; only the 9→10 migration should rewrite persisted legacy values, and these slugs should otherwise fail by name.
AGENTS.md reference: AGENTS.md:L420-L420
Useful? React with 👍 / 👎.
…\n\nfeat(build): delete local whisper STT, prediction-markets, and tokenjuice-treesitter\n
Phase 2 of the build-time reduction program: three decided deletions. Stacked on #5453 — the first 3 commits are that PR; review the last 4 commits here (the diff shrinks to just them once #5453 merges).
Deletions
feat(voice)commit) — removeswhisper-rs/whisper-rs-sys(a CMake build of vendored whisper.cpp, the single largest wall-clock item in the build, compiled once per Cargo world) from both manifests including the[patch.crates-io]fork entries. STT now routes through the hosted provider path with a selectable engine; configs using the removed local engine migrate to the backend default instead of silently remapping (a leftover"whisper"/"local"slug errors by name rather than falling back).cpalstays — audio capture feeds hosted STT and the accessibility mic probe uses it — so theinferencefeature narrows to cpal only. Frontend: whisper install UI removed, i18n keys updated across all locales.polymarket/clob_authtool modules,tools.polymarket_executecontroller,markets_agentbuilt-in agent, about_app entries, and shell forwarding all deleted. Theweb3gate stays and still sheds the ethers stack when off (verified:ethers-coreabsent from the web3-OFF graph).tree-sitternative C build + 3 grammar crates. The canonical slim-build incantation moves from--features tokenjuice-treesitterto plain--no-default-featuresacross scripts, CI, and docs.The final commit repairs the test surface:
--all-targetsfixtures, runtime-only controller-name lookups, and an invertedstt_availablee2e expectation (STT semantics changed from "local binary present" to "configured engine resolves"), keeping inverted assertions so a revert cannot silently re-register the deleted surface.Measured (on the pre-rebase base)
Default profile: 577 pkgs / 10 native builds → 567 / 7 native —
whisper-rs-sys,tree-sitter, and (from #5453)aws-lc-sysare gone. Remaining natives: bzip2/zstd (documents gate), libgit2/libz (memory-git, planned), lzma (runtimes gate, planned), sqlite + ring (kernel).Notes for reviewers
stt_download_urlstill points at a GGML URL,assets.rsstt slot, ModelDownload UI), the reserved"whisper"slug inconfig.voice_providers, and ~20 translated READMEs still mentioning in-process whisper.