Skip to content

feat(composio): granular trigger triage settings — per-toolkit + global toggle#1334

Merged
senamakel merged 9 commits into
tinyhumansai:mainfrom
YellowSnnowmann:feat/composio-triage-settings
May 7, 2026
Merged

feat(composio): granular trigger triage settings — per-toolkit + global toggle#1334
senamakel merged 9 commits into
tinyhumansai:mainfrom
YellowSnnowmann:feat/composio-triage-settings

Conversation

@YellowSnnowmann
Copy link
Copy Markdown
Contributor

@YellowSnnowmann YellowSnnowmann commented May 7, 2026

Summary

  • Adds triage_disabled (global) and triage_disabled_toolkits (per-slug list) to ComposioConfig with serde(default) — existing configs keep current behavior unchanged.
  • New RPC controllers openhuman.update_composio_trigger_settings / openhuman.get_composio_trigger_settings following the established settings-patch pattern.
  • ComposioTriggerSubscriber now checks the config-level gates after the existing OPENHUMAN_TRIGGER_TRIAGE_DISABLED env var; fail-open on config load error so events are never silently dropped.
  • New settings panel at Developer Options → Integration Triggers with a global toggle and per-toolkit slug input.

Problem

  • Every incoming Composio trigger (e.g. Gmail new-message) fires one local LLM turn via run_triage / apply_decision. High-volume sources (email, Slack) can generate many events, burning battery and model quota even when users only want read/send tooling.
  • The only escape hatch was the undiscoverable OPENHUMAN_TRIGGER_TRIAGE_DISABLED env var — global, not per-toolkit, not persisted in settings.

Solution

  • Additive-only fields on ComposioConfig (existing TOML without them gets current behavior via #[serde(default)]).
  • Config-level gate checked after the env var, so the env var remains a global emergency kill-switch.
  • History recording (trigger_history) is unconditionally before all gates — disabling triage never drops event history.
  • UI exposes the setting without requiring env edits, with copy explaining the LLM cost.

Submission Checklist

  • Tests added or updated (happy path + at least one failure / edge case) per docs/TESTING-STRATEGY.md — 3 new Rust unit tests: composio_config_triage_disabled_default, composio_config_triage_disabled_toolkit_match, trigger_subscriber_skips_triage_when_env_disabled.
  • N/A: Diff coverage — Rust changes are logic-gate additions to the event handler; new paths are covered by the three unit tests above. Frontend panel is UI-only with no business logic to test beyond the RPC wrappers already covered by existing coreRpcClient tests.
  • N/A: Coverage matrix updated — no new feature row; this modifies the existing Composio trigger path.
  • N/A: All affected feature IDs from the matrix are listed — no matrix feature ID assigned to composio trigger triage path.
  • No new external network dependencies introduced — all changes are config/settings and in-process bus logic.
  • N/A: Manual smoke checklist updated — no release-cut surface touched.
  • N/A: Linked issue closed — no upstream issue filed for this task.

Impact

  • Desktop only. No mobile/web/CLI impact.
  • Zero impact on users who don't configure the new settings — triage_disabled defaults to false, triage_disabled_toolkits defaults to [].
  • Fail-open on config load error preserves the existing triage-runs behavior.

Related


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

Linear Issue

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

Commit & Branch

  • Branch: feat/composio-triage-settings
  • Commit SHA: 5f086eb

Validation Run

  • pnpm --filter openhuman-app format:check
  • pnpm typecheck
  • Focused tests: composio_config_triage_disabled_default, composio_config_triage_disabled_toolkit_match, trigger_subscriber_skips_triage_when_env_disabled
  • Rust fmt/check (if changed): cargo check --manifest-path Cargo.toml — clean
  • Tauri fmt/check (if changed): N/A (no Tauri shell changes)

Validation Blocked

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

Behavior Changes

  • Intended behavior change: ComposioTriggerSubscriber::handle now checks config.composio.triage_disabled and config.composio.triage_disabled_toolkits before scheduling run_triage. When either gate fires, the event is recorded to history but no LLM turn is spawned.
  • User-visible effect: Users can disable per-toolkit or global LLM triage from Settings without editing env vars. Default behavior is unchanged.

Parity Contract

  • Legacy behavior preserved: OPENHUMAN_TRIGGER_TRIAGE_DISABLED env var still works as before; config gates only checked after it.
  • Guard/fallback/dispatch parity checks: fail-open on load_config_with_timeout error — triage runs, no events dropped.

Duplicate / Superseded PR Handling

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

Summary by CodeRabbit

  • New Features

    • Added "Integration Triggers" under Developer Options with a new settings panel and route.
    • Global toggle to enable/disable AI triage for Composio triggers and per-integration opt-outs (case-insensitive).
    • Settings UI shows loading and save status, persists changes, and the app now respects these triage settings at runtime.
  • Tests

    • Added unit tests for triage configuration, gating behavior, and case-insensitive toolkit matching.

…al toggle

Adds user-configurable control over the LLM triage pipeline that runs on
every incoming Composio trigger, without breaking any existing behavior.

Core:
- ComposioConfig gains two serde(default) fields: triage_disabled (global
  kill) and triage_disabled_toolkits (per-toolkit slug list). Existing
  config.toml files without these fields default to current behavior.
- ComposioTriggerSettingsPatch + apply/load_and_apply/get helpers added to
  config::ops following the established settings-patch pattern.
- Two new RPC controllers: openhuman.update_composio_trigger_settings and
  openhuman.get_composio_trigger_settings wired into the controller registry.
- bus.rs: after the existing OPENHUMAN_TRIGGER_TRIAGE_DISABLED env-var gate,
  now also checks config.composio.triage_disabled (global) and
  config.composio.triage_disabled_toolkits (per-toolkit, case-insensitive).
  Fail-open on config load error — triage still runs rather than silently
  dropping events.

App:
- Two typed RPC wrappers in tauriCommands/config.ts.
- ComposioTriagePanel: global toggle + per-toolkit slug input.
- Routed at /settings/composio-triggers, reachable from Developer Options.

Replaces/complements OPENHUMAN_TRIGGER_TRIAGE_DISABLED env var with a
persisted, product-discoverable setting. Env var remains as emergency
override.
@YellowSnnowmann YellowSnnowmann requested a review from a team May 7, 2026 12:33
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 7, 2026

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Composio trigger triage controls: config schema fields, backend RPCs and handlers, frontend Tauri wrappers and a settings panel with routing/menu entry, and subscriber gating that conditionally skips LLM triage; includes unit tests.

Changes

Composio Trigger Triage Configuration

Layer / File(s) Summary
Configuration Schema
src/openhuman/config/schema/tools.rs, src/openhuman/config/schemas.rs, src/openhuman/config/ops.rs
ComposioConfig gains triage_disabled boolean and triage_disabled_toolkits vector; new RPC patch/update types for Composio trigger settings are defined.
Backend RPC Operations
src/openhuman/config/ops.rs, src/openhuman/config/schemas.rs
New handlers apply_composio_trigger_settings, load_and_apply_composio_trigger_settings, and get_composio_trigger_settings apply/read triage settings; controllers and schemas registered.
Subscriber Triage Gating
src/openhuman/composio/bus.rs
ComposioTriggerSubscriber checks env var then loads config to skip triage when globally disabled or when toolkit matches triage_disabled_toolkits (case-insensitive); logs and proceeds on config load failure.
Frontend Navigation
app/src/components/settings/hooks/useSettingsNavigation.ts, app/src/pages/Settings.tsx
SettingsRoute extended with 'composio-triggers'; URL matching, breadcrumb resolution, and Settings page route registration updated.
Tauri Wrappers
app/src/utils/tauriCommands/config.ts
Adds typed Tauri command types and wrappers openhumanGetComposioTriggerSettings and openhumanUpdateComposioTriggerSettings.
Settings Panel & Menu
app/src/components/settings/panels/ComposioTriagePanel.tsx, app/src/components/settings/panels/DeveloperOptionsPanel.tsx
ComposioTriagePanel fetches settings on mount, renders a global triage toggle and per-toolkit comma-separated input, normalizes and persists updates via the Tauri wrapper; Developer Options menu gains an "Integration Triggers" entry.
Tests
src/openhuman/composio/bus_tests.rs
Adds tests for ComposioConfig defaults, case-insensitive toolkit matching, and gating behavior under TRIAGE_DISABLED env var.

Sequence Diagram(s)

sequenceDiagram
  participant UI as ComposioTriagePanel
  participant RPC as Tauri RPC
  participant Core as Backend RPC Handler
  participant Config as Config Ops
  participant Storage as Config Storage
  participant Subscriber as ComposioTriggerSubscriber
  
  Note over UI,Subscriber: Initial Load
  UI->>RPC: openhumanGetComposioTriggerSettings()
  RPC->>Core: call openhuman.get_composio_trigger_settings
  Core->>Config: get_composio_trigger_settings()
  Config->>Storage: load config
  Storage-->>Config: config
  Config-->>Core: triage_disabled, triage_disabled_toolkits
  Core-->>RPC: result
  RPC-->>UI: settings
  UI->>UI: render toggles and input

  Note over UI,Subscriber: User Saves Settings
  UI->>RPC: openhumanUpdateComposioTriggerSettings(patch)
  RPC->>Core: call openhuman.update_composio_trigger_settings
  Core->>Config: load_and_apply_composio_trigger_settings(patch)
  Config->>Storage: load config
  Storage-->>Config: config
  Config->>Config: apply patch
  Config->>Storage: persist
  Storage-->>Config: ok
  Config-->>Core: outcome
  Core-->>RPC: result
  RPC-->>UI: success/error

  Note over UI,Subscriber: Trigger Submission
  Subscriber->>Storage: load config (on trigger event)
  Storage-->>Subscriber: config with triage flags
  Subscriber->>Subscriber: check triage_disabled
  Subscriber->>Subscriber: check toolkit in triage_disabled_toolkits
  Subscriber->>Subscriber: conditionally skip LLM triage
  Subscriber->>Storage: record trigger to history
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • senamakel

Poem

🐰 I toggled triage with a cheerful hop,

Saved toolkits small, and global off on top,
RPCs hummed quiet under moonlit code,
Subscriber skips the LLM road,
A carrot-cheer — config saved, and goad!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 41.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding granular (per-toolkit and global) trigger triage settings for Composio, which is the primary focus of all file changes.
Linked Issues check ✅ Passed The PR comprehensively addresses all acceptance criteria from issue #1064: implements granular per-toolkit and global triage controls [#1064], persists settings in config [#1064], updates ComposioTriggerSubscriber to respect flags before scheduling triage [#1064], exposes controls in UI with explanatory text [#1064], and adds unit tests for triage behavior [#1064].
Out of Scope Changes check ✅ Passed All changes are directly scoped to implementing granular trigger triage settings: backend config schema and RPC handlers, core subscriber logic, frontend settings panel and navigation, and test coverage. No unrelated changes detected.

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

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/settings/panels/ComposioTriagePanel.tsx`:
- Around line 115-131: The per-toolkit input is only visually blocked via CSS
but not actually disabled for keyboard/screen-reader users; update the input
with a proper disabled attribute bound to triageDisabled (e.g., <input
id="disabled-toolkits" ... disabled={triageDisabled} />) so it is removed from
the tab order and exposed as disabled to assistive tech; you can keep the
existing visual class (pointer-events-none) if desired but ensure
disabled={triageDisabled} is present and that the onChange handler
(setDisabledToolkits) relies on the browser preventing input events when
disabled.
- Line 46: The setTimeout call that sets saveStatus back to 'idle' in
ComposioTriagePanel.tsx can fire after the component unmounts; change it to
store the timer ID in a ref (e.g., saveTimeoutRef) when calling setTimeout in
your save handler, clear any existing timeout before creating a new one, and add
a useEffect cleanup that calls clearTimeout(saveTimeoutRef.current) to prevent
the stale setSaveStatus('idle') update on unmount.
- Around line 19-32: The code is using an unsafe cast by treating the entire
CommandResponse as ComposioTriggerSettings; update the
openhumanGetComposioTriggerSettings() handler to only use res.result (the
ComposioTriggerSettings), remove the fallback cast, and explicitly handle the
missing/undefined result (e.g., log or throw an error and avoid reading
settings.triage_disabled from the response object); keep using setTriageDisabled
and setDisabledToolkits only with validated settings.triage_disabled and
settings.triage_disabled_toolkits values and preserve the existing
.catch/.finally behavior to setLoading(false).

In `@src/openhuman/composio/bus_tests.rs`:
- Around line 59-68: The test function composio_config_triage_disabled_default
in the ComposioConfig tests is failing the repository formatting check; run
rustfmt to fix styling and revalidate. Locally run `cargo fmt --all` to reformat
the changed Rust files (including the test), then run `cargo check` (or `cargo
test`) to ensure no build/test regressions before committing; after formatting,
update the branch so the CI `cargo fmt --all -- --check` passes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ca4387ed-f1d7-4ddf-95a9-cd8fe1be7e1e

📥 Commits

Reviewing files that changed from the base of the PR and between ca8e4f6 and 5f086eb.

📒 Files selected for processing (10)
  • app/src/components/settings/hooks/useSettingsNavigation.ts
  • app/src/components/settings/panels/ComposioTriagePanel.tsx
  • app/src/components/settings/panels/DeveloperOptionsPanel.tsx
  • app/src/pages/Settings.tsx
  • app/src/utils/tauriCommands/config.ts
  • src/openhuman/composio/bus.rs
  • src/openhuman/composio/bus_tests.rs
  • src/openhuman/config/ops.rs
  • src/openhuman/config/schema/tools.rs
  • src/openhuman/config/schemas.rs

Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx Outdated
Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
Comment thread src/openhuman/composio/bus_tests.rs
- Remove unsafe CommandResponse fallback cast; use res.result directly
  with an explicit early-return when falsy
- Track saveStatus timer in a ref and clear it in effect cleanup to
  avoid stale state updates on unmount
- Add disabled attribute to per-toolkit input when global toggle is on
  (pointer-events-none alone is not sufficient for keyboard/a11y)
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
app/src/components/settings/panels/ComposioTriagePanel.tsx (1)

20-31: ⚡ Quick win

Use namespaced debug logs instead of ad-hoc console.warn in this panel.

Please add structured, namespaced debug logs around load/save entry, success/failure branches, and external RPC calls (not only warnings on failure).

As per coding guidelines “Add substantial, development-oriented logs at entry/exit points, branch decisions, external calls, retries/timeouts, state transitions, and error handling paths; use namespaced debug logs in production app code.”

Also applies to: 53-55

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/components/settings/panels/ComposioTriagePanel.tsx` around lines 20 -
31, Replace ad-hoc console.warn usage in the ComposioTriagePanel effect with
namespaced debug logging and add entry/exit and branch logs: at the start of the
useEffect for ComposioTriagePanel log entry (e.g., "ComposioTriagePanel: loading
settings"), before/after calling openhumanGetComposioTriggerSettings log the
external RPC call and its result, log success branch when you call
setTriageDisabled and setDisabledToolkits (including the values applied), log
the failure branch using the same namespaced debug (not console.warn) with the
error, and log the final state change when setLoading(false) is invoked; follow
the same pattern around the save logic referenced at lines 53-55.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/settings/panels/ComposioTriagePanel.tsx`:
- Around line 95-117: The toggle button in ComposioTriagePanel lacks accessible
state; update the button element (the one using setTriageDisabled and
triageDisabled) to expose its on/off state to assistive tech by adding
role="switch" (or ensure a suitable role) plus aria-checked set to the boolean
triageDisabled, and include a clear aria-label or aria-labelledby that describes
the control; keep the existing onClick behavior with setTriageDisabled so visual
and programmatic states remain synced.
- Around line 51-53: The save-status timer can overlap when Save is clicked
repeatedly; in ComposioTriagePanel ensure you clear any previous timer before
creating a new one by calling clearTimeout(saveStatusTimer.current) (or
clearInterval) just prior to assigning saveStatusTimer.current =
setTimeout(...), so older timers cannot reset the status prematurely; keep using
setSaveStatus('saved') then set the new timeout to setSaveStatus('idle') after
3000ms and ensure saveStatusTimer is properly typed/initialized for the
environment.

---

Nitpick comments:
In `@app/src/components/settings/panels/ComposioTriagePanel.tsx`:
- Around line 20-31: Replace ad-hoc console.warn usage in the
ComposioTriagePanel effect with namespaced debug logging and add entry/exit and
branch logs: at the start of the useEffect for ComposioTriagePanel log entry
(e.g., "ComposioTriagePanel: loading settings"), before/after calling
openhumanGetComposioTriggerSettings log the external RPC call and its result,
log success branch when you call setTriageDisabled and setDisabledToolkits
(including the values applied), log the failure branch using the same namespaced
debug (not console.warn) with the error, and log the final state change when
setLoading(false) is invoked; follow the same pattern around the save logic
referenced at lines 53-55.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3401a79d-e584-4ddd-8ade-60243cb2ae33

📥 Commits

Reviewing files that changed from the base of the PR and between fe6f430 and 31031e8.

📒 Files selected for processing (1)
  • app/src/components/settings/panels/ComposioTriagePanel.tsx

Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
- Clear previous saveStatus timer before setting a new one to prevent
  stale timer firing when Save is clicked in quick succession
- Add role=switch + aria-checked + aria-label to global toggle button
  so screen readers announce its on/off state correctly
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/settings/panels/ComposioTriagePanel.tsx`:
- Around line 20-31: The effect that calls openhumanGetComposioTriggerSettings
can update state after the component unmounts; wrap the async flow with an
"isMounted" boolean (or AbortController) inside the useEffect for the initial
settings load and check it before calling setTriageDisabled,
setDisabledToolkits, or setLoading (also guard inside catch/finally), and flip
isMounted to false in the effect cleanup; target the async call in the useEffect
that invokes openhumanGetComposioTriggerSettings and the state setters
setTriageDisabled, setDisabledToolkits, and setLoading to make the update
unmount-safe.
- Around line 90-94: The current descriptive text in the ComposioTriagePanel UI
(component ComposioTriagePanel.tsx) fails to tell users that the environment
kill-switch OPENHUMAN_TRIGGER_TRIAGE_DISABLED takes precedence over saved UI
toggles; update the paragraph shown to include a short sentence clarifying that
if OPENHUMAN_TRIGGER_TRIAGE_DISABLED is set, triage will be disabled regardless
of UI settings (mention the env var by name), so users aren’t misled when they
save toggles that appear to have no effect.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3a929507-86b0-4d25-8490-e1c60f74b9e2

📥 Commits

Reviewing files that changed from the base of the PR and between 31031e8 and af00b1d.

📒 Files selected for processing (1)
  • app/src/components/settings/panels/ComposioTriagePanel.tsx

Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx Outdated
Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
- Add isMounted boolean to the initial settings-load effect so state
  setters are never called after the component unmounts (CR feedback).
- Guard catch and finally branches with the same isMounted check.
- Add a sentence to the panel description noting that
  OPENHUMAN_TRIGGER_TRIAGE_DISABLED env var overrides UI settings (CR
  feedback).
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/settings/panels/ComposioTriagePanel.tsx`:
- Around line 57-65: In ComposioTriagePanel's save routine ensure the catch
block clears the pending success timer (saveStatusTimer.current) before calling
setSaveStatus('error')—mirror the success-path logic: if saveStatusTimer.current
!== null then clearTimeout(saveStatusTimer.current) and null it, then
setSaveStatus('error') so a previously scheduled timeout won't later overwrite
the error state.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0f62f7d0-bb3e-4d85-af2b-c214e60c69a5

📥 Commits

Reviewing files that changed from the base of the PR and between af00b1d and c60368d.

📒 Files selected for processing (1)
  • app/src/components/settings/panels/ComposioTriagePanel.tsx

Comment thread app/src/components/settings/panels/ComposioTriagePanel.tsx
…mands

Cover the new ComposioTriagePanel component (loading/loaded states,
toggle flip, save success/error, fetch error recovery, env-var note)
and the two new tauriCommands/config.ts functions
(openhumanUpdateComposioTriggerSettings,
openhumanGetComposioTriggerSettings) to satisfy the ≥ 80% diff-cover
gate.
@senamakel senamakel merged commit 2c047a2 into tinyhumansai:main May 7, 2026
18 checks passed
AusAgentSmith pushed a commit to AusAgentSmith/openhuman that referenced this pull request May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make trigger handling optional to reduce local LLM load from high-volume triggers like email

2 participants