Repository navigation
refactor: remove the retired Twilio, Apify and meeting-bot tools - #7344
Conversation
Add Twilio messaging tools to the integrations toolset, wiring them into the ops tool groups so they are exposed alongside the existing integrations. Tests cover the new tool behaviour. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a schema for the integrations tool so its settings can be validated and loaded through the standard config pipeline. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds test coverage for the integration toggle configuration schema. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…_family_tests.rs Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Move the execution and serde test cases out of ops_tests.rs into a dedicated ops_tests_execution_and_serde_tests.rs module so the remaining ops tests stay focused and easier to navigate. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a test support backend for the integrations layer so tests can exercise integration flows without depending on real external services. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add schema definitions for the Apify and LinkedIn tools, including a dedicated LinkedIn test module, and register them in the schema registry so the new tools are exposed alongside the existing ones. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add tests covering the tool schema definitions to verify that serialization and validation behave as expected. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…types Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…alls Egress checks were being skipped for channel startup turns and pricing lookups, allowing requests to bypass the configured policy. The enforcement path now covers both call sites so outbound traffic is consistently validated. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Remove the Twilio call tool and the Apify LinkedIn scrape tool from the integrations and tools READMEs, along with the corresponding schema catalog entry in the worker B end-to-end test. These tools no longer exist, so the documentation and test expectations were stale. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The apify LinkedIn scrape tool is no longer exposed, so the in-process end-to-end tests that asserted its presence have been updated to match the current tool set. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Tool call status messages are now generated from per-locale phrase tables instead of hardcoded English strings, so every supported language can describe running, completed, and failed tool calls in its own words. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Remove the recall_calendar domain from the test inventory allowlist and the meetingBots i18n keys from the intentional-English list, since both are now covered. Also delete the unused Apify run-polling stubs from the mock API. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Shortened the comment above clearNotificationActions to drop the redundant example and the duplicated RPC names, keeping the explanation of why clearing actions removes the handled prompt from the actionable list. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
Trimmed the axum and std imports in the test support module down to the ones actually used, dropping the extract, routing, and HashMap imports that no longer have any references. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
The pinned legacy size for crates/openhuman-core/src/tools/ops.rs was reduced from 978 to 970 lines to match the file's current length, keeping the layout check in sync after the file shrank. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
…eetingbots # Conflicts: # app/src/lib/i18n/ar.ts # app/src/lib/i18n/bn.ts # app/src/lib/i18n/de.ts # app/src/lib/i18n/en.ts # app/src/lib/i18n/es.ts # app/src/lib/i18n/fr.ts # app/src/lib/i18n/hi.ts # app/src/lib/i18n/id.ts # app/src/lib/i18n/it.ts # app/src/lib/i18n/ja.ts # app/src/lib/i18n/ko.ts # app/src/lib/i18n/pl.ts # app/src/lib/i18n/pt.ts # app/src/lib/i18n/ru.ts # app/src/lib/i18n/tr.ts # app/src/lib/i18n/zh-CN.ts
Adds the jsonschema crate to the app's dependency graph, pulling in its supporting crates, and bumps several transitive dependencies including windows-sys to 0.61.2. Auto-committed-on: macbook Co-authored-by: Medulla <medulla@tinyhumans.ai>
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. |
|
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 (37)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a7c47a50b0
ℹ️ 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".
| // The backend retired its Twilio route; the agent must not be offered a | ||
| // tool that can only fail. |
There was a problem hiding this comment.
Retire Twilio from resumed session snapshots
This assertion only covers a fresh all_tools registry. A pre-upgrade session that recorded twilio_call keeps that declaration when resumed (retain_recorded_tools(true)), while resume rehydration only rebuilds executors for Composio/search tools; after this patch the model is therefore still offered twilio_call but there is no executor, so requests in such existing conversations end in an unknown-tool failure. Add a recorded-tool migration or a non-networking retirement/tombstone executor, and cover the resume path rather than only the fresh registry.
AGENTS.md reference: AGENTS.md:L490-L496
Useful? React with 👍 / 👎.
Tiny Sweeper reviewTiny Sweeper completed its review; deterministic results follow. State: Changes requested Review snapshot
Completeness: Complete What changedThe change removes the retired integrations end to end. In the core, the Twilio managed tool and its config toggle, pricing entry, fake-backend route, and egress test fixture references are deleted, and the tools registry no longer registers 'twilio_call'. The Apify LinkedIn scrape controller and its underlying LinkedIn actor invocation/Markdown rendering modules are removed from the controller registry, and their routes are dropped from the fake integration backend and mock API. Frontend tool phrases and specs for 'twilio_call' are removed. Documentation tables and layout notes in the integrations and tools READMEs are updated to drop Twilio and Apify references. Configuration and pricing deserialization remain tolerant: retired 'twilio'/'apify' keys in older configs and older backend pricing payloads are ignored rather than breaking loads. In-process E2E suites that advertised or exercised the retired controller and tool were updated in the same change. One review lane flagged a possible compile issue: the removal of axum 'Path'/'Query'/'HashMap' imports from the fake-backend test support is only safe if no remaining route uses them, and the critique lane noted a documentation-sync finding in the integrations README. 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["all_tools"]:::impacted
n1["vec"]:::impacted
n2["integration_tools_for_config"]:::impacted
n3["expansion_tools_for"]:::impacted
n2 -->|calls| n0
n3 -->|calls| n0
n3 -->|calls| n1
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.
Requesting changes: 1 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0251 · 435,287 in / 17,113 out · 48,434 cached (11%) · gpt-5.6-luna, glm-5.3-flash
critique: $0.0158 · 229,489 in / 8,511 out · 27,291 cached (12%) · gpt-5.6-luna, glm-5.3-flash
security: $0.0080 · 107,239 in / 3,808 out · 14,295 cached (13%) · gpt-5.6-luna
tests: $0.0003 · 38,692 in / 843 out · 3,712 cached (10%) · glm-5.3-flash
description: $0.0001 · 18,528 in / 793 out · 1,408 cached (8%) · glm-5.3-flash
e2e: $0.0002 · 21,553 in / 306 out · 1,728 cached (8%) · glm-5.3-flash
| routing::{get, post}, | ||
| Json, Router, | ||
| }; | ||
| use axum::{routing::post, Json, Router}; |
There was a problem hiding this comment.
Restore imports required by the included backend
test_support_backend.rs is textually included into this module, so its uses of Path, Query, get, and HashMap rely on the imports in this file. Removing those imports causes unresolved-name compilation errors even though those names do not appear in this wrapper file. Restore the imports or move equivalent imports into the included implementation.
[RULE] missing-import ·
There was a problem hiding this comment.
Requesting changes: 2 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0276 · 472,521 in / 25,859 out · 113,694 cached (24%) · gpt-5.6-luna, glm-5.3-flash
critique: $0.0154 · 213,182 in / 12,839 out · 61,474 cached (29%) · gpt-5.6-luna, glm-5.3-flash
security: $0.0114 · 159,607 in / 8,369 out · 44,412 cached (28%) · gpt-5.6-luna
tests: $0.0003 · 39,075 in / 821 out · 4,416 cached (11%) · glm-5.3-flash
description: $0.0002 · 18,809 in / 788 out · 1,536 cached (8%) · glm-5.3-flash
e2e: $0.0002 · 21,830 in / 377 out · 1,728 cached (8%) · glm-5.3-flash
| backend-proxied integration uses for `/agent-integrations/*`, a small family | ||
| of managed agent tools built on it (Google Places, stock and market data, | ||
| Twilio calls), and three child sub-domains: Composio connectors, task sources, | ||
| of managed agent tools built on it (Google Places, stock and market data), |
There was a problem hiding this comment.
Restore imports required by the included backend
The README now removes Twilio from the documented managed tools, tool table, prefix mapping, and layout. However, the included backend still requires the Twilio integration imports; removing this entry does not fix that backend dependency and leaves the integration documentation inconsistent with the code that is built. Restore the Twilio documentation or update the backend imports and registration together so the documented and compiled integration surfaces match.
[RULE] documentation-sync ·
| routing::{get, post}, | ||
| Json, Router, | ||
| }; | ||
| use axum::{routing::post, Json, Router}; |
There was a problem hiding this comment.
Summary
twilio_callagent tool and the Apify LinkedIn-scrape RPC controller fromopenhuman-core: the backend retires its Twilio, Apify and Recall meeting-bot integrations (tinyhumansai/backend#1419).twilio/apifykeys keep deserializing (nodeny_unknown_fields), pinned by tests.Problem
/agent-integrations/twilio/*,/agent-integrations/apify/*and the meeting-bot routes. Without this change the agent would still be offered tools whose backend routes 404.Solution
Submission Checklist
twilio_call, Apify controller), retired config keys and pricing entries still parse; in-process method lists updated.Impact
Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
Validation Run
pnpm typecheckcargo fmtclean,cargo check -p openhuman --testsclean after merging latest mainValidation Blocked
command:cargo test -p openhuman-cli --test in_process_all (config_auth_app_state_connectivity_e2e)error:12 failures with "master key unavailable" (keychain)impact:environmental on the dev box; the edited assertions in that file pass. CI will confirm.Behavior Changes
Parity Contract
Duplicate / Superseded PR Handling
Summary by CodeRabbit