Repository navigation
chore: roll up security migration - #188
Conversation
This change updates the primitives module within the storage crate to align with recent internal refactoring efforts. It ensures consistency across the storage layer's fundamental building blocks. Auto-committed-on: dragonfly
This introduces the fundamental building blocks for storage operations, including counters, key-value storage, leases, and repository management. These primitives establish the necessary low-level abstractions for the storage layer. Auto-committed-on: dragonfly
…lows-storage/Cargo.toml Auto-committed-on: dragonfly
…lows-storage/src/primitives/cou Auto-committed-on: dragonfly
The epoch-based fence functionality has been removed from the Lease struct. This simplifies the lease management by removing the dependency on the Fence mechanism for epoch checking. Auto-committed-on: dragonfly
This change updates the import paths for types used within the storage primitives. This refactoring standardizes how types from `tinystoragedrivers_api` are brought into scope across the repository and counter modules. Auto-committed-on: dragonfly
This update adds several new driver packages to the workspace and updates dependencies across the project. It also exposes the `Key` type from the primitives module in `lib.rs`. Auto-committed-on: dragonfly
…crates/tinyflows-adaptive/src/d Auto-committed-on: dragonfly
The tinyflows-storage dependency has been removed from Cargo.toml as it is no longer required by the drivers crate. Auto-committed-on: dragonfly
This updates several dependencies to newer versions, notably upgrading `windows-sys` across multiple packages. It also introduces several new packages related to storage drivers and bus communication. Auto-committed-on: dragonfly
This introduces a new blocking implementation for storage operations, allowing synchronous access to the storage layer. This is necessary to support environments where asynchronous operations are not available. Auto-committed-on: dragonfly
This change exposes the schema and blocking modules from the storage crate. This allows users to interact with schema migration and blocking mechanisms directly from the library. Auto-committed-on: dragonfly
This refactoring updates how storage schemas and migrations are invoked across the module. It removes reliance on `document_only_scope` in favor of directly using the storage schema's migration methods, simplifying the migration logic. Auto-committed-on: dragonfly
…,crates/tinyflows-drivers/src/s Auto-committed-on: dragonfly
…ts.rs,crates/tinyflows-adaptive Auto-committed-on: dragonfly
…ts.rs,crates/tinyflows-adaptive Auto-committed-on: dragonfly
Replaces direct usage of `tinyflows_storage::MemoryStorage` with `tinystoragedrivers_testkit::MemoryBackend` across various test files. This aligns tests with the current storage driver implementation. Auto-committed-on: dragonfly
Auto-committed-on: dragonfly
This change updates the migration process to include sorting when querying documents and refines the logic for updating and deleting records. It now filters documents based on schema version during input collection and uses version preconditions for more robust updates and deletions. Auto-committed-on: dragonfly
…rates/tinyflows-adaptive/Cargo. Auto-committed-on: dragonfly
Adds assertions to verify the state of documents before and after the owner migration runs. This ensures that the migration correctly preserves document metadata and handles the expected number of rows during the step execution. Auto-committed-on: dragonfly
…-adaptive/src/drivers/ledger_te Auto-committed-on: dragonfly
refactor(storage): move TinyFlows persistence onto TSD v2
Updates the tinystoragedrivers api, types, and testkit dependencies to 2.0.1. Adds the busproxy testkit crate and the tinybus SDK as new dev-dependencies to support bus-backed storage tests. Auto-committed-on: dragonfly
Update the tinystoragedrivers api, types and testkit dependencies to v2.0.1 across the adaptive, drivers and module crates. Add a storage schema test that runs a migration through the real TSD busproxy to confirm the module-compatible path avoids sending host-only metadata. Auto-committed-on: dragonfly
…atch Add tests asserting that a cross-collection migration retry succeeds when the target write is byte-identical, including matching schema and expiry, and that a differing expiry is rejected as a conflict while the source record is preserved. The tinybus dev-dependency is repointed at the tinyhumansai fork and the "modules" feature is dropped. Auto-committed-on: dragonfly
Pinned uuid back to 1.26.1 and switched tempfile's getrandom dependency to 0.3.4 so the lockfile resolves a single compatible getrandom version. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the tinystoragedrivers git dependencies from the v2.0.1 tag to revision 2d23a6a (2.1.2) and tinybus from 0.1.5 to 0.1.6, refreshing Cargo.lock accordingly. The new revision pulls in nix and drops the unused arbitrary and crossbeam-utils crates. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
refactor(storage): sync TinyFlows onto TSD v2
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Tiny Sweeper reviewReviewed head: Findings
Advisory notes
Resolved this pass
Verdict: Changes requested · Priority: high Diagnostics and supporting detailsFull summaryPull request purpose (title): chore: roll up security migration. Tiny Sweeper completed its review; deterministic results follow. Review snapshot
Completeness: Complete Features
TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. Before merge
How this fits togetherflowchart LR
n0["ActorRecoveryGuard<br/>changed"]:::changed
n1["...admitted_actor_reconciles_its_running_row<br/>changed"]:::changed
n2["...actor_future_reconciles_only_its_live_run<br/>changed"]:::changed
n3["install_after_admission_gate<br/>changed"]:::changed
n4["...rves_parked_terminal_and_replacement_runs"]:::impacted
n5["running_fixture"]:::impacted
n6["ActiveRun"]:::impacted
n7["drive"]:::impacted
n8["assert_reconciled"]:::impacted
n9["RunningFixture"]:::impacted
n0 -->|uses| n6
n1 -->|calls| n3
n1 -->|tests| n3
n1 -->|calls| n5
n1 -->|tests| n5
n1 -->|calls| n7
n1 -->|tests| n7
n1 -->|calls| n8
n1 -->|tests| n8
n2 -->|calls| n5
n2 -->|tests| n5
n2 -->|calls| n7
n2 -->|tests| n7
n2 -->|calls| n8
n2 -->|tests| n8
n4 -->|calls| n5
n4 -->|tests| n5
n4 -->|calls| n7
n4 -->|tests| n7
n5 -->|uses| n9
n7 -->|uses| n6
n9 -->|uses| n6
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
Register a new identity_tests module under cfg(test) so the schedule types can be covered by dedicated identity tests. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Channel job origins can now carry a host-derived session identity describing the tenant, agent, provider, and conversation coordinates, with optional fields omitted from the wire format so legacy origins serialize unchanged. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Extracted ChannelSessionIdentity and ChannelConversationIdentity from the schedule types module into a dedicated identity module, re-exporting them from the same place so existing imports keep working. This keeps the shared schedule types focused and gives the channel identity definitions room to grow. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Move the local ChannelSessionIdentity import above the external crates so the import grouping follows the project's convention. No behaviour change. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The roundtrip test now constructs a JobOrigin::Channel value and serializes it instead of parsing a hand-written JSON literal, then asserts the nested session and conversation fields survive the roundtrip. This exercises the typed identity structures rather than only the deserializer. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Wrap the thread_id assertion in the identity roundtrip test across multiple lines so it stays within the formatter's line width. No behaviour change. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Drops an unused `serde_json::json` import from the schedule identity tests, keeping the test module free of warnings. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a comment explaining that the exact git revisions bridge the storage security migration while upstream roll-ups are pending, noting the unreleased Storage Bus/QueueStore API and post-release security fixes they include. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
The acquire_with, inspect and release_epoch methods were relocated into a new leases/advanced.rs submodule, wired in via a path attribute, with no change to their behaviour. This keeps the core lease primitives file focused and gives the host-level takeover semantics their own home. Auto-committed-on: cuttlefish Co-authored-by: Medulla <medulla@tinyhumans.ai>
Take main's single 0.3.6 series (tinybus 6ce06bc, tinystoragedrivers v2.1.2 6226b94, tinytools 41cc80a) and drop the senamakel/tinybus and 0.1.6 patch tables. The fork-only tinystoragedrivers changes (fence, secrets) are not used by tinyflows. Conflicts: identity, schedule types and their tests take main's superset (wire alias, contract 8); schema migrations and lease operations take main's layout, which holds the same code; JSON extraction lives in agent_prompt/json_extract.rs as on main. Cargo.lock is main's and is refreshed in the next commit.
dispatch_claims dropped the ManualRunOutcome, so a run whose delivery failed returned Ok and reap() never reported it. The run record already persists the result; this adds the missing log line.
This upstream roll-up carries the security migration changes from
senamakel:epic/8369-security-migration. OpenHuman needs this change upstream before it can advance the corresponding gitlink in tinyhumansai/openhuman#8487.The roll-up adds
tinyflows-storageas the shared persistence adapter, replaces the oldertinyflows-importpath, and raises the workspace MSRV to 1.88.The git dependencies are temporary pins to unpublished commits required to build this migration:
tinybusandtinybus-moduleusesenamakel/tinybusat34d3bd6dda099e54cee11a2f96f28a21da9e0759for the v0.3.12 module/storage bus API used by the roll-up. The[patch]pin at0de2d283f35cbbff08efad6fbe05537ffb74611bmakes TSD's bus proxy use the same bus contract source.tinytoolsusessenamakel/tinytoolsat643df90ba25f93187249fa99f6789f9aa7f8bbc8, matching the TinyAgents pin sotinytools::Toolremains one Rust type across the workspace.senamakel/tinystoragedriversat2d23a6a6009fa52d1e7aa18de589bdd109a54b6afor the Storage Bus and QueueStore APIs from upstream PRs chore(deps): bump jaq-std from 3.0.1 to 3.0.2 #71 and chore(deps): bump sha2 from 0.10.9 to 0.11.0 #72, plus the post-2.1.2 workspace and lockfile fixes from feat(engine): resolve a working directory for agent and sub_workflow steps #73. The API/type crates used here have no source delta from 2.1.2.Hosts building this migration must resolve those exact git sources; they can move to canonical release sources once the upstream module changes are published. The TinyStorageDrivers pin rationale is also recorded beside its manifest entries.
Source commit:
39d441ac5bcc1725b8476407b56a0b26f7b76cdbValidation:
cargo fmt --all -- --check,cargo test -p tinyflows-storage(18 unit tests and 3 doctests), andcargo clippy -p tinyflows-storage --all-targets -- -D warningspass locally. The hosted Rust/module tests passed for the prior source commit; CI is rerunning for the current commit.Summary by CodeRabbit
Bug Fixes
Tests