Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
8efb7c7
chore(vendor): bump tinyagents submodule
senamakel Oct 13, 2026
6e4aa6e
chore(deps): update lockfile dependencies
senamakel Oct 13, 2026
f6dda8b
feat(storage): add config storage module
senamakel Oct 13, 2026
9de647f
chore(storage): remove unused module declaration
senamakel Oct 13, 2026
e5e0e3b
fix(storage): persist local storage writes to disk
senamakel Oct 13, 2026
8ae9664
chore: files changed crates/openhuman-core/src/desktop/notifications/…
senamakel Oct 13, 2026
9d0cdcb
refactor(session_store): extract rebound logic into its own module
senamakel Oct 13, 2026
6766605
feat(session_store): persist agent sessions to workspace
senamakel Oct 13, 2026
d37e573
chore: files changed crates/openhuman-core/src/storage/import/mod.rs,…
senamakel Oct 13, 2026
dcd34df
feat(storage): rebind tinyflows imports to local ids
senamakel Oct 13, 2026
c7dabbe
Merge upstream/main into storage-7638-host-1
senamakel Oct 13, 2026
342461e
fix(agent): persist goal and todo state across session reloads
senamakel Oct 13, 2026
2a2fab7
fix(session_store): persist workspace state across session reloads
senamakel Oct 13, 2026
f5a1379
refactor(agent): simplify journal entry handling
senamakel Oct 13, 2026
f31517e
refactor(agent): extract journal helpers into a dedicated module
senamakel Oct 13, 2026
d94974a
refactor(agent): simplify journal entry handling
senamakel Oct 13, 2026
80d413d
test(tinyagents): add reaper tests for stale agent cleanup
senamakel Oct 13, 2026
8de43c9
test(session-host): drop journal projection from transcript compat go…
senamakel Oct 13, 2026
e331e81
feat(session_import): project live session events into runtime sessions
senamakel Oct 13, 2026
ed7f1c4
feat(session_import): add schema definitions for imported sessions
senamakel Oct 13, 2026
6462faa
feat(session_store): add workspace session storage
senamakel Oct 13, 2026
8cd3b0e
fix(profiles): restore recovery progress reporting
senamakel Oct 13, 2026
d58596d
chore: I don't see a diff in your message — the "Diff:" section is em…
senamakel Oct 13, 2026
f643d89
chore: files changed crates/openhuman-core/src/agent/orchestration/ru…
senamakel Oct 13, 2026
1549ad1
feat(agent): persist team runtime state in session store
senamakel Oct 13, 2026
8aba0db
chore: files changed crates/openhuman-core/src/agent/orchestration/ag…
senamakel Oct 13, 2026
2f20403
feat(agent-teams): add runtime and schemas for agent team orchestration
senamakel Oct 13, 2026
f55b9b8
refactor(workflow_runs): extract run lifecycle handling into its own …
senamakel Oct 13, 2026
07e43e9
chore(workflow_runs): remove unused lifecycle helper
senamakel Oct 13, 2026
b6cc36b
refactor(command_center): drop unused schemas module
senamakel Oct 13, 2026
89c9f32
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 13, 2026
2520760
feat(agent): add task ledger documents for running subagents
senamakel Oct 13, 2026
7428829
refactor(agent): move running subagents wire tests to their own module
senamakel Oct 13, 2026
6ebfd78
chore(agent): remove unused background completions module
senamakel Oct 13, 2026
f943f97
feat(agent): add background completions orchestration
senamakel Oct 13, 2026
1709dab
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 13, 2026
116122c
chore(core): remove unused store modules
senamakel Oct 13, 2026
8a97d7e
fix(cron): prevent duplicate job execution on scheduler restart
senamakel Oct 13, 2026
d3233c5
test(cron): add coverage for cron store persistence
senamakel Oct 13, 2026
96829fa
feat(security): persist device documents in the storage layer
senamakel Oct 13, 2026
2ddfcf8
feat(security): add device store import support
senamakel Oct 13, 2026
652fd73
feat(security): import device store from legacy format
senamakel Oct 13, 2026
38cfeb9
fix(security): reject approval store imports with duplicate ids
senamakel Oct 13, 2026
3cd50da
chore: I don't see an actual diff in your message — the "Diff:" secti…
senamakel Oct 13, 2026
84832dc
feat(security): add approval gate with agent, document, and flow-trus…
senamakel Oct 13, 2026
f0ac0b1
test(security): add approval store persistence tests
senamakel Oct 13, 2026
45d75a7
test(security): cover approval store persistence and lookup
senamakel Oct 13, 2026
e48a2a3
test(security): add approval store import tests
senamakel Oct 13, 2026
b631574
refactor(notifications): split notification store into focused modules
senamakel Oct 13, 2026
8dff9ff
chore(desktop): remove unused notification store documents module
senamakel Oct 13, 2026
daeac86
chore(desktop): remove unused notifications module
senamakel Oct 13, 2026
9594e90
test(desktop): add tests for notification store
senamakel Oct 13, 2026
3a2b73a
test(desktop): add store import notification tests
senamakel Oct 13, 2026
4537400
refactor(task_sources): split store into focused submodules
senamakel Oct 13, 2026
10ed057
feat(task_sources): add store import rows helper
senamakel Oct 13, 2026
6003576
chore(task_sources): add store and import tests
senamakel Oct 13, 2026
404a92b
refactor(notifications): move notification row import into its own mo…
senamakel Oct 13, 2026
8eddde3
chore: remove unused imports
senamakel Oct 13, 2026
eae4b2e
feat(session_store): persist agent sessions to workspace storage
senamakel Oct 13, 2026
6dd021f
refactor(session_store): split session store into submodules
senamakel Oct 13, 2026
02f5c49
feat(rpc): add host info endpoint
senamakel Oct 13, 2026
63d848f
chore(tests): add host and session store test coverage
senamakel Oct 13, 2026
edb2b0e
fix(security): rebind storage before other stores on credential change
senamakel Oct 13, 2026
fb4a329
test(embed): drop codec coverage for removed session types
senamakel Oct 13, 2026
52626a0
feat(tinyagents): add embedding-based ranker for agent discovery
senamakel Oct 13, 2026
f77a5aa
test(discovery): use imported Ordering in embedding ranker tests
senamakel Oct 13, 2026
07dad69
fix(embed): re-export embedding_tool_ranker_in from host internals
senamakel Oct 13, 2026
f101435
feat(openhuman-embed): re-export session store and storage helpers
senamakel Oct 13, 2026
22c6cac
chore: files changed crates/openhuman-core/src/storage/import/mod_tes…
senamakel Oct 13, 2026
2118dae
test(storage): add session import tests
senamakel Oct 13, 2026
aacc83f
fix(storage): make rebind testable and fail on directory errors
senamakel Oct 13, 2026
5d451bb
chore(storage): import StorageBackend in rebind
senamakel Oct 13, 2026
4fd1769
test(agent-teams): add runtime tests for agent team orchestration
senamakel Oct 13, 2026
8f7d36d
test(session_store): cover ledger sync and finalize paths
senamakel Oct 13, 2026
2080efa
test: add coverage for workflow lifecycle, task import, approval and …
senamakel Oct 13, 2026
afa27a7
test(flows): cover builder tools, store, and tinyflows state
senamakel Oct 13, 2026
cab3c9b
refactor(cron): use local storage open helper in test hook
senamakel Oct 13, 2026
9a6a3fb
test: update tests for ledger sync and approval store signatures
senamakel Oct 13, 2026
f48b7fb
test(json_rpc): update ledger_sync imports to openhuman_core
senamakel Oct 13, 2026
07489da
test(saas_mode): seed delivery recovery via the profile database
senamakel Oct 13, 2026
68c55c5
test(storage): add store import and rebind coverage
senamakel Oct 13, 2026
b5bc9ba
chore: files changed crates/openhuman-core/src/storage/fenced_backend.rs
senamakel Oct 13, 2026
7f8eeb7
chore: files changed crates/openhuman-core/src/storage/fenced_backend…
senamakel Oct 13, 2026
bdd21b8
chore: files changed crates/openhuman-core/src/cron/store_tests.rs
senamakel Oct 13, 2026
73caffe
feat(notifications): add document store for desktop notifications
senamakel Oct 13, 2026
4c568c5
test(desktop): add tests for notification store
senamakel Oct 13, 2026
a797eda
docs(storage): document the single workspace-scoped backend
senamakel Oct 13, 2026
164ed17
docs(storage): document the default sqlite backend and legacy imports
senamakel Oct 13, 2026
f3ed269
docs(session_store): rewrite README for the storage-backed store
senamakel Oct 13, 2026
dd9b15b
docs(session_import): describe the storage-backed import and drop the…
senamakel Oct 13, 2026
49280e0
refactor(storage): split storage tests into a dedicated module
senamakel Oct 13, 2026
cc710ee
feat(security): add approval gate for tool call interception
senamakel Oct 13, 2026
b2cea38
fix(storage): restore session import from legacy storage
senamakel Oct 13, 2026
d296a04
docs(config): mark session dual-write and shadow-read flags as retired
senamakel Oct 13, 2026
384554b
chore(ci): lower legacy line limit for runtime_session.rs
senamakel Oct 13, 2026
5b63c86
feat(session_store): add run telemetry upsert to ledger sync
senamakel Oct 13, 2026
52b07f1
refactor(web_chat): simplify progress bridge event handling
senamakel Oct 13, 2026
44ca482
test(security): add tenant approval gate tests
senamakel Oct 13, 2026
1c0a671
fix(security): persist agent approval decisions to the store
senamakel Oct 13, 2026
d38251b
fix(task_sources): break ingested task ordering ties with nanosecond …
senamakel Oct 13, 2026
70319fa
chore: apply rustfmt formatting across the workspace
senamakel Oct 13, 2026
6fceb22
chore(deps): update lockfile dependencies
senamakel Oct 13, 2026
b1e7000
Merge upstream/main into storage-7638-host-1
senamakel Oct 13, 2026
27412cb
ci: lower legacy line limit for progress_bridge.rs
senamakel Oct 13, 2026
d4d9079
chore(ci): retarget storage bypass allowlist at legacy importers
senamakel Oct 13, 2026
4fc7555
chore(vendor): bump tinyjuice submodule
senamakel Oct 13, 2026
33393e8
test(storage): rewrite legacy approval import e2e around the default …
senamakel Oct 13, 2026
f182c7a
test(storage): update e2e assertions for unified default database
senamakel Oct 13, 2026
4aa27d1
fix(embed): use explicit_url when checking session store config
senamakel Oct 13, 2026
8e64555
refactor(embed): rename configured_url to explicit_url
senamakel Oct 13, 2026
512a842
docs(agent): update storage and session docs to match current behaviour
senamakel Oct 13, 2026
d2ae11b
chore(ci): update storage-sqlite feature description
senamakel Oct 13, 2026
081fa7c
docs(config): clarify storage backend default
senamakel Oct 13, 2026
5e29ead
docs(storage): describe sqlite default and retired classic opt-out
senamakel Oct 13, 2026
dca9612
test(flows): update sweep warning assertions
senamakel Oct 13, 2026
c80abb2
refactor(session_store): extract workspace path helpers
senamakel Oct 13, 2026
1b0599b
Merge upstream/main into storage-7638-host-1
senamakel Oct 13, 2026
78d674e
chore(vendor): bump tinychannels, tinymemory and tinyskills
senamakel Oct 13, 2026
848d9ee
chore(vendor): bump tinychannels, tinymemory and tinyskills
senamakel Oct 13, 2026
ef91d10
test(session_store): cover per-workspace store isolation
senamakel Oct 13, 2026
454390d
test(session_store): add rebound tests for session store
senamakel Oct 13, 2026
9bf078d
chore(registry): bump tinyjuice module to 0.9.1
senamakel Oct 13, 2026
0c98840
chore(deps): bump tinyjuice-bus to 0.9.1
senamakel Oct 13, 2026
0180c26
Merge upstream/main into storage-7638-host-1
senamakel Oct 13, 2026
481061d
chore(deps): update lockfile for tinymemory 1.28 and tinyredact
senamakel Oct 13, 2026
3d92315
test(storage): reformat approval backend assertion
senamakel Oct 13, 2026
3532269
fix(session_import): avoid writing to installed backend on workspace …
senamakel Oct 13, 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
8 changes: 3 additions & 5 deletions Cargo.lock

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

31 changes: 22 additions & 9 deletions crates/openhuman-app/Cargo.lock

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

6 changes: 3 additions & 3 deletions crates/openhuman-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -543,9 +543,9 @@ proptest = "1"
langfuse = ["tinyagents-harness/langfuse"]
# Storage drivers for `[storage] url` / `OPENHUMAN_STORAGE_URL` (see the
# `storage` domain). Memory and plain files are always available.
# `storage-sqlite` is in the contributor set and the product: the small
# desktop stores (approvals, devices, notifications, task sources) keep their
# rows in it by default. `storage-mongodb` is in neither; a cloud build turns
# `storage-sqlite` is in the contributor set and the product: the default
# backend, `sqlite:<workspace>/storage`, needs it, so a host without it must
# name another backend. `storage-mongodb` is in neither; a cloud build turns
# it on. OS keychain support belongs to openhuman-rpc's `os-keyring` feature,
# not the core or its storage-driver feature set.
storage-sqlite = ["tinystoragedrivers/sqlite"]
Expand Down
5 changes: 2 additions & 3 deletions crates/openhuman-core/src/agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ In order:
9. The runtime commits the turn. `OpenHumanTranscriptCodec`
([`session_host/codec.rs`](./session_host/codec.rs)) converts between durable `TranscriptMessage`
rows and model `Message`s. After the durable commit, the host publishes
`ConversationTurnCommitted` for memory ingest, optionally dual-writes
the legacy session format (`session_import::live`), and accounts usage
`ConversationTurnCommitted` for memory ingest and accounts usage
against any active goal.
10. `run_single_with_origin` publishes `AgentTurnCompleted` (or
`AgentError`) and returns the final text.
Expand Down Expand Up @@ -319,7 +318,7 @@ Persistence, setup and RPC:
| --- | --- |
| `artifacts/` | Agent-generated artifact storage and the `ai` RPC namespace ([README](artifacts/README.md)) |
| `session_db/` | `run_ledger` RPC over `tinyagents_session::run_ledger` |
| `session_import/` | One-time import of legacy session files and the optional live dual-write ([README](session_import/README.md)) |
| `session_import/` | The `session_import.run` retry of the boot-time legacy-session import, and the agent's key-value store on each turn's `RunContext` ([README](session_import/README.md)) |
| [`schemas.rs`](./schemas.rs) | The `agent` namespace controllers |

## Key types and entry points
Expand Down
12 changes: 4 additions & 8 deletions crates/openhuman-core/src/agent/goals/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
//!
//! **Crate-backed.** The per-thread goal now lives in the vendored `tinyagents`
//! crate's `graph::goals` KV store
//! (`<workspace>/tinyagents_store/kv/graph.goals/<hex(thread_id)>.json`), not
//! (the `graph.goals` namespace of the agent's key-value store), not
//! the legacy `<workspace>/thread_goals/` file-JSON tree. This module is a thin
//! adapter for the harness turn loop, agent tools, and post-turn accounting. It forwards each operation to the crate
//! store, converting the crate
Expand All @@ -19,15 +19,11 @@ use std::sync::Arc;
use tinyagents_graph::goals::store as crate_store;
use tinyagents_graph::goals::ThreadGoal;
use tinyagents_harness::store::Store;
use tinyagents_session::transcript::import::ops::open_session_stores;

/// The store thread goals live in: the current agent's host session store
/// when one is installed, else the workspace's `tinyagents_store/kv`.
/// The store thread goals live in: the current agent's key-value store in the
/// storage backend ([`crate::agent::session_store::stores_for`]).
pub(crate) fn goals_store(workspace_dir: &Path) -> Arc<dyn Store> {
if let Some(stores) = crate::agent::session_store::current() {
return stores.kv;
}
Arc::new(open_session_stores(workspace_dir).kv)
crate::agent::session_store::stores_or_ephemeral(workspace_dir).kv
}

/// Set (create or replace) the thread's goal. A changed objective mints a fresh
Expand Down
Loading
Loading