Skip to content

fix(composio): clarify Zoho Mail readiness (#2914)#3013

Merged
senamakel merged 1 commit into
tinyhumansai:mainfrom
YOMXXX:fix/2914-zoho-mail-readiness
May 30, 2026
Merged

fix(composio): clarify Zoho Mail readiness (#2914)#3013
senamakel merged 1 commit into
tinyhumansai:mainfrom
YOMXXX:fix/2914-zoho-mail-readiness

Conversation

@YOMXXX
Copy link
Copy Markdown
Contributor

@YOMXXX YOMXXX commented May 30, 2026

Summary

  • Fix Composio action toolkit parsing for known multi-segment toolkit prefixes including ZOHO_MAIL_*, ONE_DRIVE_*, and MICROSOFT_TEAMS_*.
  • Preserve connected multi-segment toolkit actions when the agent lists Composio tools.
  • Mark connected Composio toolkits as Preview when the agent-ready RPC says the agent cannot use them yet, with the same warning in the connection modal.
  • Add Rust and Vitest regression coverage for Zoho Mail readiness and action filtering.

Problem

  • Zoho Mail could show as connected while agent workflows still failed or looked ready.
  • The Rust connected-tool filter split Composio action slugs at the first underscore, so ZOHO_MAIL_SEND_EMAIL mapped to zoho instead of zoho_mail and was dropped even when zoho_mail was connected.
  • The Skills grid did not surface the existing agent-ready signal for connected-but-unsupported Composio toolkits.

Solution

  • Add explicit known-prefix parsing before the generic first-underscore fallback.
  • Cover connected multi-segment toolkits in retain_connected_tools tests.
  • Wire useAgentReadyComposioToolkits() into Skills.tsx so known connected unsupported integrations display as Preview instead of fully ready.
  • Pass the same readiness state into ComposioConnectModal and show the existing localized preview tooltip.

Submission Checklist

  • Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy
  • Diff coverage ≥ 80% — changed lines (Vitest + cargo-llvm-cov merged via diff-cover) meet the gate enforced by .github/workflows/pr-ci.yml. Run pnpm test:coverage and pnpm test:rust locally; PRs below 80% on changed lines will not merge. Not run locally; CI coverage gate is authoritative for this PR.
  • Coverage matrix updated — N/A: behavior-only bugfix for existing Composio surface; no feature row added/removed/renamed.
  • All affected feature IDs from the matrix are listed in the PR description under ## Related — N/A: no coverage-matrix feature ID changed.
  • No new external network dependencies introduced (mock backend used per Testing Strategy)
  • Manual smoke checklist updated if this touches release-cut surfaces (docs/RELEASE-MANUAL-SMOKE.md) — N/A: no release smoke checklist surface changed.
  • Linked issue closed via Closes #NNN in the ## Related section

Impact

  • Desktop/web UI: connected unsupported Composio toolkits now show Preview instead of a misleading fully-connected ready state.
  • Rust core: connected Composio action filtering now recognizes known multi-segment toolkit slugs.
  • No migration, security, or new dependency impact.

Related


AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: fix/2914-zoho-mail-readiness
  • Commit SHA: f42c334107d0ba05bc517a6c46826fbe30bef7da

Validation Run

  • pnpm format:check — passed
  • pnpm typecheck — passed after pnpm install --frozen-lockfile restored missing local node_modules packages
  • pnpm lint — passed with 0 errors / 85 existing warnings
  • Focused tests: pnpm debug unit src/pages/__tests__/Skills.composio-catalog.test.tsx — 6 passed
  • Focused tests: pnpm debug rust toolkit_from_slug_handles_known_multi_segment_toolkits — passed
  • Focused tests: pnpm debug rust retain_connected_tools_keeps_multi_segment_connected_toolkits — passed
  • Rust fmt/check (if changed): pnpm format:check plus pre-push pnpm rust:check — passed with existing warnings
  • Tauri fmt/check (if changed): pre-push pnpm rust:check — passed with existing warnings

Validation Blocked

  • command: N/A
  • error: N/A
  • impact: N/A

Behavior Changes

  • Intended behavior change: connected Zoho Mail is no longer represented as fully agent-ready when agent support is unavailable; known multi-segment Composio action slugs are filtered against their actual toolkit slug.
  • User-visible effect: Zoho Mail shows Preview plus explanatory copy instead of a misleading connected-ready state.

Parity Contract

  • Legacy behavior preserved: disconnected/pending/expired/error Composio states continue using the existing labels and colors; Preview is only shown when readiness is known and the connected toolkit is absent from the agent-ready set.
  • Guard/fallback/dispatch parity checks: when agent-ready lookup fails, Preview badges are suppressed and the grid falls back to prior behavior.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): none found for this branch
  • Canonical PR: this PR
  • Resolution (closed/superseded/updated): N/A

Summary by CodeRabbit

  • New Features

    • Connected Composio toolkits unsupported by your agent now display a "Preview" badge with "Agent integration coming soon" messaging, providing clear visibility into upcoming toolkit compatibility.
  • Tests

    • Added test coverage for preview badge display and messaging when Composio toolkits are connected but unsupported by the current agent.

Review Change Stack

@YOMXXX YOMXXX requested a review from a team May 30, 2026 08:38
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 30, 2026

📝 Walkthrough

Walkthrough

Multi-segment Composio toolkit slug parsing is fixed on the backend, followed by UI updates to the connection modal and connector tile to display "preview" badges when a toolkit is connected but unsupported by the current agent. Agent readiness hook data is wired through the Skills page to drive preview state, with integration tests verifying the behavior for Zoho Mail and other multi-segment toolkit identifiers.

Changes

Composio agent readiness preview state

Layer / File(s) Summary
Backend toolkit slug parsing for multi-segment identifiers
src/openhuman/memory_sync/composio/providers/tool_scope.rs, src/openhuman/composio/tools_tests.rs
toolkit_from_slug updated to match against known multi-segment toolkit prefixes (ZOHO_MAIL_, ONE_DRIVE_, MICROSOFT_TEAMS_) instead of splitting at first underscore. Tests verify correct extraction and retain_connected_tools handles multi-segment slugs.
ComposioConnectModal preview badge and UI
app/src/components/composio/ComposioConnectModal.tsx
Modal accepts optional agentUnsupported prop and renders amber preview badge with tooltip in connected phase when toolkit unsupported by agent.
ComposioConnectorTile preview state and styling
app/src/pages/Skills.tsx
Tile consumes agentUnsupported, computes preview mode for unsupported toolkits, suppresses connected styling, updates title/aria-label, applies preview-specific text coloring, and conditionally renders preview badge.
Agent readiness hook integration and component wiring
app/src/pages/Skills.tsx
Skills page imports useAgentReadyComposioToolkits, derives agentReadinessKnown state and supported toolkit slugs, computes agentUnsupported flags per toolkit, and passes into tile and modal components.
Preview badge integration test for connected-unsupported toolkit
app/src/pages/__tests__/Skills.composio-catalog.test.tsx
Test verifies Zoho Mail shows preview badge and "Preview" labels when connected but not in agent ready set, and "Agent integration coming soon" message on tile click.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • tinyhumansai/openhuman#2361: Introduces listAgentReadyToolkits / useAgentReadyComposioToolkits hook and initial preview badge design, mirrored in this PR's integration and multi-segment toolkit slug handling.
  • tinyhumansai/openhuman#2711: Modifies app/src/pages/Skills.tsx with earlier preview-driven filtering logic; this PR extends that pattern with agentUnsupported preview state passed into modal and tile components.

Suggested labels

bug, rust-core, agent

Suggested reviewers

  • senamakel
  • graycyrus

Poem

🐰 A toolkit once showed as alive,
Yet agent workflows could not thrive—
"Preview" now warns when support's not near,
Multi-segment slugs parsed crystal clear,
Zoho Mail waits for its moment to shine! 🌟

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'fix(composio): clarify Zoho Mail readiness' directly addresses the main change—handling Zoho Mail readiness state—and accurately reflects the core objective of the PR.
Linked Issues check ✅ Passed The PR addresses all key coding requirements from issue #2914: multi-segment toolkit parsing, connected toolkit filtering, readiness state UI display, and test coverage for Zoho Mail and toolkit parsing behavior.
Out of Scope Changes check ✅ Passed All changes are directly related to Zoho Mail readiness and multi-segment Composio toolkit handling; no unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot added rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. bug labels May 30, 2026
@senamakel senamakel merged commit c70ef5c into tinyhumansai:main May 30, 2026
22 of 30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. bug rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Zoho Mail fails after successful connection

2 participants