Repository navigation
test(saas): forget stays within the root; delivery recovery after restart (WIP) - #7294
Conversation
The memory isolation test no longer carves out an exception for forgetting by id, since `memory::ops::forget` now routes ids through the engine's scoped `forget_within` rather than sweeping from the tree's root. The assertion is tightened to require every named scope to sit inside the profile's root, and failure messages note when a request happened during the forget. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ol call The mock LLM now recognises a HANG_AFTER_TOOL marker in the user message and, once the turn's tool call has run, holds the follow-up request open like HANG instead of answering with the tool result. This lets tests keep a turn in flight after its tool call executed. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add tests exercising delivery recovery under saas mode so the retry and recovery paths are verified against the saas configuration. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Wire the new delivery_recovery and mock_llm modules into the saas mode end-to-end test harness so their cases are compiled and run. The mock_llm module is marked allow(dead_code) since it is only used by some tests. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add the tinyagents-tasks crate as a dev-dependency so the SaaS delivery-recovery e2e can read the completion log a detached sub-agent leaves behind. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The mock LLM no longer holds a follow-up request open after a tool result, so the HANG_AFTER_TOOL marker and its handling are gone. The user-message lookup now happens after the tool-result branch, which keeps the remaining hang and probe behaviour unchanged. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add tests covering delivery recovery in saas mode, verifying that in-flight deliveries are retried and completed correctly after a recovery event. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Record the new tinyagents-tasks dependency in Cargo.lock so the lockfile stays in sync with the workspace manifest. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The messages helper now extracts the messages field from the RPC response and panics with the full body when it is missing, instead of stringifying the whole response. This makes failures point at the actual problem rather than producing a confusing assertion downstream. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
# Conflicts: # tests/saas_mode_e2e.rs
Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
Comment |
Tiny Sweeper reviewTiny Sweeper reviewed this change across 5 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Incomplete Review snapshot
Completeness: Incomplete FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. FindingsNo active actionable findings. Could not review: crates/openhuman-cli/Cargo.toml, tests/saas_mode/delivery_recovery.rs, tests/saas_mode/memory.rs, tests/saas_mode_e2e.rs, tinysweeper/description Before merge
Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
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. |
There was a problem hiding this comment.
tinysweeper found nothing blocking, but could not review everything, so this is not an approval: crates/openhuman-cli/Cargo.toml, tests/saas_mode/delivery_recovery.rs, tests/saas_mode/memory.rs, tests/saas_mode_e2e.rs, tinysweeper/description.
$0.0177 · 64,741 in / 2,026 out · 2,509 cached (4%) · deep, openai/gpt-5.6-luna
critique: $0.0138 · 52,896 in / 1,265 out · 2,509 cached (5%) · openai/gpt-5.6-luna
What
These are test-only follow-ups to the SaaS profiles work.
tests/saas_mode/memory.rs, from test(saas): memory round-trip isolation across profiles #7271). tinymemory v1.27.1 andforget_withinare now on main (feat(memory): confine forget-by-id to the caller's reach (tinymemory v1.27.x) #7284), so this removes the exception that tolerated out-of-root listings and reads during a forget call. The test now fails if the whole-tree sweep comes back. A local mutation check confirmed this: switchingmemory/ops.rsback to the unscopedforgetmade the test fail. That mutation was reverted and never committed.tests/saas_mode/delivery_recovery.rs, new). A profile's detached sub-agent finishes while its result cannot be delivered. On the next open of the profile (ProfileHost::open→recover_on_open, from fix(saas): key sub-agent delivery slots by profile #7273), the result must reach that profile's thread, and never another profile's thread with the same id. To support this:mock_llmgainsHANG_AFTER_TOOL, which holds a turn open after its tool call.openhuman-cligains atinyagents-tasksdev-dependency, with its lockfile line.To finish
cargo test -p openhuman-cli --test saas_mode_e2e memoryand... delivery_recovery.recover_on_openis removed.tests/saas_mode/hashed_ids.rs(from fix(profiles): serialize profile lifecycle; e2e for hashed ids #7281) to scan file contents under the temp root, not just paths, responses and logs. Neither raw user id may appear.tinyagents-tasksdev-dependency is needed. Drop it if the seeding approach doesn't use it.