Repository navigation
refactor(core): move the python worker to tinyruntime, module resolution to tinybus and mic capture to tinyvoice - #6794
Merged
senamakel merged 31 commits intoSep 30, 2026
Conversation
Updated the pinned commit for the vendor/tinybus submodule to incorporate upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit for the tinybus vendored dependency to include recent changes, as indicated by the new subproject commit hash. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit of the vendor/tinybus subproject to incorporate upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
When the ops module attempted to access a resolution that did not exist, it would panic instead of returning a proper error. This change adds a check for the missing resolution and returns an appropriate error result, ensuring the system handles this case gracefully rather than crashing. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The ops module and its associated test file were no longer being used by any other part of the codebase, so they have been removed to eliminate dead code and reduce maintenance burden. The module was also removed from the modules index to prevent compilation errors. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…tests The `is_safe_path_component` and `artifact_dir` functions were moved from the local `ops` module into the `tinybus` library, along with the `prune_stale_versions` logic. The tests that exercised these functions directly are removed because the same coverage now lives in the `tinybus` test suite. The remaining test for registry entries was updated to call the new location. The memory tests were also updated to use the renamed `resolution::global` and `table.mark_in_flight` APIs. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commit for the vendored tinyruntime subproject to incorporate upstream fixes and improvements. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit for the tinyruntime vendored dependency to incorporate upstream fixes or improvements. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commit of the tinyruntime vendored dependency to incorporate upstream fixes and improvements. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit of the tinyruntime vendored dependency to include recent upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the vendored tinyruntime library to the latest version to incorporate upstream bug fixes and performance improvements. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce a new Python server runtime module that allows the core runtime to spawn and communicate with a Python subprocess for executing user-provided Python code. This change adds the server process management, protocol definitions for message passing, type definitions, and corresponding unit tests, enabling safe and isolated code execution within the runtime environment. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The core crate now depends on tinyruntime-pyserver, the library that provides the persistent Python worker used by runtime::python_server for spaCy and Kompress processing. This is a pure library dependency with no bus or module registration, carrying only serde, tokio, and tracing. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commit for the tinyvoice vendored dependency to incorporate upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit for the tinyvoice vendored dependency to include the latest upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit for the tinyvoice vendored subproject to include recent changes. The new commit hash reflects the latest upstream state. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The tinyvoice submodule pointer has been advanced to include the latest upstream changes, keeping the vendored dependency in sync with the project's requirements. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the pinned commit of the tinyvoice vendored dependency to incorporate upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the pinned commit for the tinyvoice vendored subproject to incorporate upstream changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
When the audio capture buffer reaches capacity, the system now discards the oldest samples instead of failing silently. This prevents audio processing from stalling during prolonged recording sessions while maintaining real-time performance. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
When the audio capture device returns an empty buffer, the system now returns an empty result instead of panicking. This prevents crashes on devices that occasionally deliver zero-length audio frames during initialization or silence periods. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
When the audio capture device is not available, the system now returns an error instead of panicking. This allows the caller to handle the failure gracefully and retry or fall back to an alternative input method. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the dependency specifications in the Cargo.toml file to align with the latest compatible versions, ensuring the project builds against current releases and avoids potential deprecation issues. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The cpal audio library dependency was removed from the crate that previously depended on it and added to the tinyvoice crate, which is the actual consumer of this audio playback functionality. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Updated the module-pin-exemptions.json to reflect new submodule pins for tinyruntime and tinyvoice. The tinyruntime pin now includes the new tinyruntime-pyserver crate, and the tinyvoice pin adds the `capture` cargo feature alongside the existing `hotkey` feature. Both changes are backward-compatible with the published registry artifacts, as they only add new library crates or off-by-default features without modifying existing module, contract, or bus source code. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds README documentation for the core modules, voice subsystem, and python server runtime to improve project onboarding and clarify the purpose of each component. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add documentation for the voice module and its always-on submodule to clarify their purpose and usage within the openhuman-core crate. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The lockfile is updated to reflect the removal of the `cpal` dependency from the main application crate and its addition to the `tinyvoice` crate, alongside the introduction of a new `tinyruntime-pyserver` dependency. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test now calls `tinybus::module::artifact_dir` directly instead of the deprecated `ops::artifact_dir` wrapper, ensuring the test exercises the current public API and will continue to work after the wrapper is removed. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Contributor
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (27)
Comment |
Tiny Sweeper review
|
Co-authored-by: Medulla <medulla@tinyhumans.ai>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Wave 2 moves three pieces of code out of the OpenHuman core: the Python worker process machinery goes to tinyruntime, module-resolution and cache-path helpers go to tinybus, and microphone capture goes to tinyvoice. Net change is −1.8k lines (161 added, 1,992 deleted).
Python worker → new crate
tinyruntime-pyserver(tinyruntime#19)server.py, and thePythonServerlifecycle (spawn, handshake, one restart-and-retry, status, idle). It also covers the shared-worker cacheServerSlot(rebuild on backend change or idle, with a 5-minute back-off).ServerLaunchvalue (interpreter, script, backend ids, env, timeouts) plus a lazy launch future.Configmapping,PythonBootstrap, venv provisioning, and the spaCy/Kompress callers stay in OpenHuman.oh-pyserver-on-v0.2.7. The three tinyruntime exemptions now expectv0.2.7-6-g1be38d24.Module resolution and cache helpers →
vendor/tinybus(tinybus#30)modules/resolution.rsbecomestinybus::module::resolution(featuremodules).is_safe_path_component,artifact_dirandprune_stale_versionsmove intomodule/cache.rs.(root, id, version, host_key)strings instead ofModuleRecord.ModuleRecordpins and digests, the compiled registry, and the admission/ABI checks.Microphone capture →
tinyvoice::capture(featurecapture, tinyvoice#17)voice/audio_capture.rsand the device side ofalways_on/capture.rs. Nounsafewas needed.voicefeature now enablestinyvoice/{hotkey,capture}. The core's own optionalcpaldependency is dropped, and feature forwarding still passes.PermissionCheck = fn() -> Result<(), String>, which runs on the capture thread before the device opens. Both of OpenHuman's permission policies stay host-side.RecordingResultand thefinalizestep throughmodules::voice.oh-capture-on-v0.1.8, which is stacked on refactor(core): move tool/harness leaves, cwd jail, flow helpers and hotkey into vendor crates #6786's hotkey pin. The tinyvoice exemption now expectsv0.1.8-14-geb8b8730.cpaldevice can't run in CI, so they are excluded from tinyvoice's coverage gate.Verification
cargo check --tests -p openhuman -p openhuman-cli --features "$(bash scripts/ci/product-features.sh)"passes. The app manifest andopenhuman-embed/openhuman-tinyhumans --testsalso compile.connected_integrations_cache_is_keyed_per_credential; see refactor(core): move time/goals tools, conversation store and composio execute into vendor crates #6785.clippy -D warningsare clean on all three.rust:layout,check-agent-runtime-boundary,check-feature-forwarding,check-gated-test-allowlistandcheck-submodule-monotonic upstream/main HEAD(11 pins forward) pass.check-module-pinspasses for tinyruntime and tinyvoice through their exemptions. The only failures are tinywallet and tinychannels, which come from test: drop 45 quarantined raw-coverage files, dedupe vendor-covered tests, repoint vendor pins #6781.Merge order
Merge tinyruntime#19, tinybus#30 and tinyvoice#17 (which follows tinyvoice#16), then cut releases for tinyruntime and tinyvoice so their exemptions can be removed. This PR merges after #6789.