Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4e4c8ff
refactor(modules): load TinyJuice outside dependency graph
senamakel Aug 13, 2026
af92714
chore(vendor): remove TinyJuice submodule
senamakel Aug 13, 2026
3521b22
Merge remote-tracking branch 'origin/main' into tinyjuice-module
senamakel Aug 13, 2026
971d250
test(tokenjuice): preserve module-free pass-through guards
senamakel Aug 13, 2026
32930f3
fix(flows): adapt to advanced graph contract
senamakel Aug 13, 2026
66d61f0
chore(tauri): lock TinyFlows HTTP client
senamakel Aug 13, 2026
024aa3c
fix(modules): preload native test fixtures
senamakel Aug 13, 2026
39b0506
fix(ci): fetch module fixture without gh
senamakel Aug 13, 2026
768c96d
test(tokenjuice): exercise released module in CI
senamakel Aug 13, 2026
b9ee475
chore(deps): recalibrate removal simulator
senamakel Aug 13, 2026
1a7db29
fix(tokenjuice): enable explicit test module override
senamakel Aug 13, 2026
37c6c66
docs(tokenjuice): explain test module opt-in
senamakel Aug 13, 2026
2d36fed
Merge remote-tracking branch 'origin/main' into tinyjuice-module
senamakel Aug 13, 2026
7fff9f2
test(tokenjuice): isolate released module config
senamakel Aug 13, 2026
163f217
test(tokenjuice): admit release fixture before middleware
senamakel Aug 14, 2026
9a75004
ci(modules): normalize native fixture ownership
senamakel Aug 14, 2026
cdd938e
ci(modules): stage fixtures outside runner-owned checkout
senamakel Aug 14, 2026
6c99690
ci(modules): export absolute fixture paths
senamakel Aug 14, 2026
f78405f
test(tokenjuice): remove vendored fixture integration
senamakel Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion .github/workflows/ci-lite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@ jobs:
#
# This asserts the calibration still holds. If it fails, every
# projection built on the simulator is suspect until it is fixed.
run: python3 scripts/dep-sim.py --cut-nothing --expect-names 284
run: python3 scripts/dep-sim.py --cut-nothing --expect-names 281

- name: Guard — new feature-gated test modules must be acknowledged
# Self-maintaining coverage: the set of source files that #[cfg]-gate a test on
Expand Down Expand Up @@ -681,6 +681,40 @@ jobs:
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov

- name: Install checksum-pinned native test modules
run: |
module_root="target/test-modules"
memory_dir="$module_root/tinymemory"
juice_dir="$module_root/tinyjuice"
memory_archive="$memory_dir/tinymemory-module-1.0.1-ubuntu-22.04-x86_64.tar.gz"
juice_archive="$juice_dir/tinyjuice-module-0.2.2-ubuntu-22.04-x86_64.tar.gz"
rm -rf "$memory_dir" "$juice_dir"
mkdir -p "$memory_dir" "$juice_dir"
curl --fail --location --silent --show-error \
"https://github.com/tinyhumansai/tinymemory/releases/download/v1.0.1/$(basename "$memory_archive")" \
--output "$memory_archive"
curl --fail --location --silent --show-error \
"https://github.com/tinyhumansai/tinyjuice/releases/download/v0.2.2/$(basename "$juice_archive")" \
--output "$juice_archive"
echo "35d13463041f455bebd833a71ba370d891a4e59d1b8e576e81635e2777a0c3dd $memory_archive" \
| sha256sum --check
echo "fd8caf7fccb53328870fd26922aa9768d253cd4b3bf758967847d6512df03863 $juice_archive" \
| sha256sum --check
tar -xzf "$memory_archive" -C "$memory_dir"
tar -xzf "$juice_archive" -C "$juice_dir"
echo "TINYMEMORY_TEST_MODULE=$GITHUB_WORKSPACE/$memory_dir/libtinymemory_module.so" \
>> "$GITHUB_ENV"
echo "TINYJUICE_TEST_MODULE=$GITHUB_WORKSPACE/$juice_dir/libtinyjuice_module.so" \
>> "$GITHUB_ENV"

- name: Run TinyJuice host-module regression
run: |
cargo test --lib --features modules \
openhuman::agent::tinyagents::middleware::tests::tool_output_tabulates_a_large_graph_for_a_non_exempt_tool \
-- --ignored --exact
env:
CARGO_BUILD_JOBS: "1"

- name: Run cargo llvm-cov for openhuman core (changed modules only)
run: bash scripts/ci/rust-coverage-changed.sh
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ jobs:
# fork the core image doesn't need. The Dockerfile COPYs vendor/ because
# [patch.crates-io] resolves Rust SDK crates from vendor/.
- name: Init vendored Rust submodules
run: git submodule update --init --recursive vendor/tinyagents vendor/tinyflows vendor/tinycortex vendor/tinyjuice vendor/tinychannels vendor/tinyplace vendor/tinyhumans-sdk vendor/tinybus vendor/tinymemory
run: git submodule update --init --recursive vendor/tinyagents vendor/tinyflows vendor/tinycortex vendor/tinychannels vendor/tinyplace vendor/tinyhumans-sdk vendor/tinybus vendor/tinymemory
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Log in to GHCR
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ jobs:
# fork the core image doesn't need. The Dockerfile COPYs vendor/ because
# [patch.crates-io] resolves Rust SDK crates from vendor/.
- name: Init vendored Rust submodules
run: git submodule update --init --recursive vendor/tinyagents vendor/tinyflows vendor/tinycortex vendor/tinyjuice vendor/tinychannels vendor/tinyplace vendor/tinyhumans-sdk vendor/tinybus vendor/tinymemory
run: git submodule update --init --recursive vendor/tinyagents vendor/tinyflows vendor/tinycortex vendor/tinychannels vendor/tinyplace vendor/tinyhumans-sdk vendor/tinybus vendor/tinymemory
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build image (no push)
Expand Down
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
[submodule "vendor/tinycortex"]
path = vendor/tinycortex
url = https://github.com/tinyhumansai/tinycortex
[submodule "vendor/tinyjuice"]
path = vendor/tinyjuice
url = https://github.com/tinyhumansai/tinyjuice
[submodule "vendor/tinychannels"]
path = vendor/tinychannels
url = https://github.com/tinyhumansai/tinychannels
Expand Down
84 changes: 43 additions & 41 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 1 addition & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,6 @@ tinyplace = "2.0"
# Optional: exclusive to the default-ON `flows` feature (#4797). A slim build
# without `flows` drops this crate and its `jaq-*` JSON-query stack entirely.
tinyflows = { version = "0.6", features = ["mock"], optional = true }
# TinyJuice — host-agnostic TokenJuice compression engine. OpenHuman keeps
# config/RPC/tool/runtime adapters in `src/openhuman/tokenjuice/` and patches
# this dependency to the vendored submodule below.
tinyjuice = { version = "0.2.1", default-features = false }
# TinyAgents — Rust LLM orchestration framework (LangGraph/LangChain-style):
# durable state graphs, agent-loop harness, model/tool registries, REPL +
# `.rag` workflow language. openhuman's agent engine + orchestration run on this
Expand Down Expand Up @@ -1049,7 +1045,7 @@ motosan-ai-oauth = { path = "vendor/motosan-ai-oauth" }
# version in lockstep with the `tinyagents` requirement above. After cloning:
# `git submodule update --init vendor/tinyagents` (worktrees included).
tinyagents = { path = "vendor/tinyagents" }
# TinyFlows, TinyCortex, TinyJuice, TinyChannels, and TinyPlace are vendored beside
# TinyFlows, TinyCortex, TinyChannels, and TinyPlace are vendored beside
# TinyAgents so integration work can test crate changes against OpenHuman before
# publishing.
tinyflows = { path = "vendor/tinyflows" }
Expand All @@ -1058,7 +1054,6 @@ tinycortex = { path = "vendor/tinycortex" }
# depends on it by path, above). Patch it onto the same checkout so both see one
# copy of the contract types and the trait identities unify.
tinycortex-api = { path = "vendor/tinycortex/api" }
tinyjuice = { path = "vendor/tinyjuice" }
tinychannels = { path = "vendor/tinychannels" }
tinyplace = { path = "vendor/tinyplace/sdk/rust" }

Expand Down
29 changes: 1 addition & 28 deletions app/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions app/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,6 @@ openhuman_core = { path = "../..", package = "openhuman", default-features = fal
# driver stops advertising Capability::Diff — the product keeps all three.
"memory-git",
] }
tinyjuice = { version = "0.2.1", default-features = false }

[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", default-features = false, features = ["hostname", "signal", "user"] }
Expand Down Expand Up @@ -257,7 +256,7 @@ motosan-ai-oauth = { path = "../../vendor/motosan-ai-oauth" }
# released tag) — same patch as the root Cargo world so both resolve the
# in-tree SDK source. `git submodule update --init vendor/tinyagents` first.
tinyagents = { path = "../../vendor/tinyagents" }
# TinyFlows, TinyCortex, TinyJuice, TinyChannels, and TinyPlace are vendored beside
# TinyFlows, TinyCortex, TinyChannels, and TinyPlace are vendored beside
# TinyAgents so integration work can test crate changes against OpenHuman before
# publishing.
tinyflows = { path = "../../vendor/tinyflows" }
Expand All @@ -267,7 +266,6 @@ tinycortex = { path = "../../vendor/tinycortex" }
# patch it onto the same checkout here too, or this independent Cargo world
# tries to resolve it from crates.io and fails (it was never published).
tinycortex-api = { path = "../../vendor/tinycortex/api" }
tinyjuice = { path = "../../vendor/tinyjuice" }
tinychannels = { path = "../../vendor/tinychannels" }
tinyplace = { path = "../../vendor/tinyplace/sdk/rust" }

Expand Down
Loading
Loading