mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
5.1 KiB
5.1 KiB
00 — Baseline: crate, features, native links
Current status (2026-07-03): baseline dependency alignment is complete in both
Cargo worlds. tinyagents 1.5.0 is resolved with the sqlite feature,
OpenHuman pins rusqlite = "=0.40.0", both worlds patch through
vendor/rusqlite-0.40.0 and vendor/libsqlite3-sys-0.38.0, and the SDK-gaps
inventory has been refreshed against the published 1.3.0 crate source.
Steps
- Bump
tinyagentsto"1.5.0"(done in both Cargo worlds — root andapp/src-tauri/). Known 1.1→1.2 break already handled (MessageDelta::textctor). Note: theopenaicrate feature was removed after 1.2.0 (1.2.1+ features are onlysqlite/repl) — we never enabled it, so no impact. See "1.3.0 delta" below for new API this plan uses. - Align rusqlite to 0.40 in both worlds (
Cargo.tomlroot andapp/src-tauri/Cargo.toml). OpenHuman pinsrusqlite = "=0.40.0"and enablestinyagents = { version = "1.5.0", features = ["sqlite"] }. Compatibility notes:rusqlite 0.40andlibsqlite3-sys 0.38are consumed directly from crates.io. Their build scripts use thecfg_select!macro (stable from Rust 1.96 —rust-toolchain.tomlpins1.96.1), so the earlier vendored copies undervendor/that backportedcfg_select!to#[cfg]for the old 1.93 toolchain have been deleted.- The
channel-matrixfeature (and itsmatrix-sdkdependency) was dropped, which removesmatrix-sdk-sqlitefrom the tree entirely. That crate pinnedrusqlite 0.37and previously had to be vendored/patched onto the0.40line to avoid a second native sqlite chain; with Matrix gone the patch is deleted. whatsapp-rust/sqlite-storageis disabled because its Diesel storage links sqlite independently;whatsapp-webtemporarily useswacore::store::InMemoryBackendand logs the non-durable session mode.
- Unlocks: crate
SqliteCheckpointer→ later deletion ofsrc/openhuman/tinyagents/checkpoint.rs(SqlRunLedgerCheckpointer, 250 lines) once graphs are re-pointed andgraph_checkpointsrows are migrated or expired (see04-sessions/). - Do NOT enable
openaifeature — OpenHuman providers stay the product source of truth for credentials/billing (spec non-goal). - Update the "TinyAgents crate: features & compatibility" section in
gitbooks/developing/architecture/agent-harness.mdand the Cargo.toml comment (lines 46–55) after the flip. - Mark
docs/tinyagents-sdk-gaps.mditems 1, 2, 3, 4, 7, 10, 11, 12 as shipped in 1.2.0–1.3.0 (verified against crate source); keep only the residuals, re-verified against 1.3.0: no free-formToolSchemametadata map, no reasoning field on the middleware-facingharness::model::ModelDelta, noroot_run_idonRunConfig, no USD field onUsage.
1.3.0 delta (verified from the published crate source)
Same rusqlite ^0.40 bundled pin and feature set as 1.2.1. OpenHuman currently
pins the compatible patch release locally. New API this plan's workstreams
should use directly:
AgentEvent::ToolsFiltered { by, excluded, remaining }— exposure decisions are now event-native (01.3).AgentEvent::{BudgetReserved, BudgetReconciled}+BudgetLimits. max_cached_input_tokens+ reservation tracking — pre-spend reserve/reconcile (06).AgentEvent::ControlApplied+MiddlewareControl::kind()/precedence()— typed middleware control outcomes with defined precedence (sdk-gaps §13 closed).ContextualToolSelectionMiddleware::inheriting(...)— parent→child narrowing composition built in (01.3, 07).ToolPolicyMiddleware::{require_sandbox, require_approval, enforce_result_bytes}builders (01.1).ParallelOptions::{with_item_timeout, with_total_timeout, with_cancellation}(08.1/08.2).graph::testkitTaskStore conformance contracts (taskstore_concurrent_contract,taskstore_replay_contract) (07.2, 11).WorkspaceDescriptor::enforce(path, events)— violation check that also emits events (08.5).ModelSelection.allow_retired; OpenAI-compat runtime model listing (ModelListing/ModelListWire) for catalog discovery (02.1/02.4).- Registry:
ComponentKind::{Middleware, Checkpointer, TaskStore, Listener}, alias diagnostics (AliasBinding, cross-kind name-reuse) (10). EventRecord::with_stream_id— stream ids on event records (05.1).
Acceptance
- Both Cargo worlds
cargo checkclean withsqlitefeature on:cargo check --manifest-path Cargo.toml,cargo check --manifest-path Cargo.toml --all-features, andcargo check --manifest-path app/src-tauri/Cargo.toml. - One duplicate-free
cargo tree -i libsqlite3-sysper world, rooted atvendor/libsqlite3-sys-0.38.0. - Docs updated; sdk-gaps marked.
Verified commands:
cargo check --manifest-path Cargo.toml --message-format=shortcargo check --manifest-path Cargo.toml --all-features --message-format=shortcargo check --manifest-path app/src-tauri/Cargo.toml --message-format=shortcargo tree --manifest-path Cargo.toml --all-features -i libsqlite3-syscargo tree --manifest-path app/src-tauri/Cargo.toml --all-features -i libsqlite3-sys