Repository navigation
fix: stabilize onboarding and thread selection e2e - #7268
Conversation
|
Important Review skippedWe couldn't safely recover the incremental review. No full review was started, and the last reviewed checkpoint was preserved. Retry later, or explicitly request a full review by commenting You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to Worker-thread selections remain protected during pending loads. No actionable merge-blocking issue remains after normal checks. Security Architecture Review
Pre-merge checks |
|
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 review
Last completed reportTiny Sweeper reviewThis pull request stabilizes onboarding and thread-selection e2e behavior plus supporting Rust refactors. It replaces a component-local selection-intent ref with a Redux `selectionIntentVersion` so stale async thread loads/creations are dropped, adds stable testids to the harness-init dialog with a state-aware Playwright helper, and restructures Rust modules. Reviewers report most earlier findings resolved; two open concerns remain: legacy line-count pins in the layout checker were raised again and two new vendored-pin exemptions were added, and the aui-context-usage 'Output' assertion was removed without a corresponding adapter change in this diff. State: Changes requested Review snapshot
Completeness: Complete What changedNo supported behavioral explanation was produced. Features
Tests
Findings
Resolved this pass
Pending checks: Rust E2E (mock backend), Build Playwright E2E Artifact, E2E (Playwright / web lane), Desktop E2E (full suite, 3 OS) Before merge
How this fits togetherflowchart LR
n0["ThreadState<br/>changed<br/>1 finding"]:::flagged
n1["appendMessageToCache<br/>changed<br/>1 finding"]:::flagged
n2["expect"]:::impacted
n3["toBe"]:::impacted
n4["bootAuthenticatedPage"]:::impacted
n5["dismissWalkthroughIfPresent"]:::impacted
n1 -->|uses| n0
n4 -->|uses| n2
n5 -->|uses| n2
n5 -->|calls| n3
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
e2e
Evidence and run details
|
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0466 · 646,519 in / 33,425 out · 86,556 cached (13%) · gpt-5.6-luna, glm-5.3-flash
critique: $0.0274 · 337,338 in / 18,318 out · 45,973 cached (14%) · gpt-5.6-luna, glm-5.3-flash
security: $0.0186 · 245,703 in / 9,395 out · 35,783 cached (15%) · gpt-5.6-luna
tests: $0.0001 · 14,995 in / 550 out · 1,536 cached (10%) · glm-5.3-flash
description: $0.0001 · 14,296 in / 650 out · 1,408 cached (10%) · glm-5.3-flash
e2e: $0.0002 · 19,121 in / 1,994 out · 1,728 cached (9%) · glm-5.3-flash
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08cd9d4b45
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…s/openhuman-core/src/profiles/m Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…sts.rs Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…sts.rs Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…nstall.rs Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce an approval gate that intercepts tool calls and requires explicit user approval before they proceed. Gate state is tracked separately so pending approvals can be queried and resolved. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Moved the host profile logic out of the profiles module into its own host.rs file so the host-specific behaviour can be maintained and tested in isolation. No functional changes were made. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce a host module in the MCP layer to manage server lifecycle and connections. This provides the foundation for coordinating MCP servers within the core. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…s/openhuman-core/src/profiles/m Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Cleaned up unused imports and dead code across the session store, cron origin delivery, and agent storage modules to keep the codebase free of compiler warnings. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce lifecycle operations for profiles so they can be created, activated, and torn down through a dedicated module. The ops layer now delegates to these routines, keeping profile state transitions consistent across callers. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds tests exercising the profile lifecycle paths, including activation and deactivation transitions, to lock in the expected behaviour and guard against regressions. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Document that current_agent_id is genuinely per-agent and never a tenant key, since a SaaS profile's default agent has none. Tables and stores that must keep tenants apart should key on current_tenant instead, as the remaining callers only log the agent id. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds property-based tests and host-level tests covering gateway profile resolution, exercising edge cases that the existing unit tests did not reach. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add coverage for the approval gate's tenant scoping so that approvals issued for one tenant cannot be reused by another. The new tests exercise the gate's tenant checks directly to guard against regressions in cross-tenant approval handling. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds test coverage for the MCP host agent and the skills write root behaviour, exercising the paths that were previously untested. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds coverage for the write_root skill path, exercising how skill files are written to the root directory so regressions in that flow are caught. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reformat long log and function signatures, collapse a short method chain, and wrap an assert so the touched files match rustfmt output. No behaviour changes. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Moved profile lifecycle logic into its own module to keep the profiles namespace organized and make the lifecycle behaviour easier to locate. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
… roots Add tests asserting that desktop session keys and transcript roots stay unchanged without a profile, that an explicit session agent overrides the default key and root, and that two profiles' default agents resolve to distinct keys and transcript stores. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the ambient-context baseline to reflect shifted line numbers and drop two entries that no longer match any occurrence. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Document the profile system's purpose and structure so contributors can understand how profiles are defined and used within the core crate. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the app lockfile to pick up newer versions of async-imap, imap-proto, base64, curve25519-dalek, reqwest, and the tinychannels, tinymemory, and tinywallet crates, along with a consolidated windows-sys 0.60.2 and the removal of the now-unused nom 7 and minimal-lexical entries. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
feat(ui): centralize toast messages and history
Combine the separate default and named imports from threadSlice into a single statement to tidy up the test file's import block. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Move the threadGoal and threadTodos reducer imports into alphabetical order alongside the other store imports in the conversation test files, and expand the combineReducers call in the approval test onto multiple lines. No test behaviour changes. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…smatch Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
chore(i18n): remove unused translation keys
# Conflicts: # crates/openhuman-core/src/web3/x402/seams.rs
Revamp conversation UI with assistant-ui and stabilize rendering
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…fault feat(storage): sqlite by default, with a one-shot import of the small stores
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…uman into fix-custom-ai-certs-7214
…ts-6905 fix(inference): trust custom provider CA certificates
feat(embed): add dynamic runtime APIs and verified documentation
fix(tauri): allow WebSocket connections to remote cores
fix(security): block literal credential paths in command tools
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
There was a problem hiding this comment.
💡 Codex Review
openhuman/scripts/ci/module-pin-exemptions.json
Lines 17 to 18 in 1da9b39
In the self-hosted static plan (scripts/ci/self-hosted/lanes-plan.mjs:236-239), module-pins is always run, but this exemption still describes the pre-merge wallet commit accb920a/v0.7.4 even though the final gitlink is 6ae706c and the registry is v0.8.0; the tinychannels entry likewise describes 5e3b2044/v0.1.12 while its final gitlink/registry are 642687bb/v0.1.13. git describe -h documents --abbrev=<n> as “use digits to display object names,” and classifyPin rejects both stale and changed exemptions, so the always-on lane cannot pass with initialized submodules. Remove reconciled entries or update both exact descriptions and reasons for the final pins.
AGENTS.md reference: AGENTS.md:L612-L614
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Validation
Summary by CodeRabbit