Repository navigation
feat: adapt Dify plugin to Calls API v2 - #4
Merged
Merged
Conversation
11 of 14 tasks
Collaborator
Author
Acceptance screenshots (2026-10-16)These screenshots document installation and upgrade replays of 0.2.2 on Dify Cloud. We completed real-call acceptance on 0.2.1. Both cache-cleared workflow reruns reused the original requests and call resources, with no additional calls. This comment records existing acceptance evidence; we did not rerun tests for this update. CALL-E 0.2.2 installed: Calls replay: SUCCESS in 4.743 seconds. API/Billing IDs, metadata, and named workflow outputs match the original complete result. Goal Run replay: SUCCESS in 13.632 seconds. Goal Run/run/call IDs and the result match the original record. The workflow name retains the 0.2.1 label from the original real-call acceptance; the installed plugin is 0.2.2, as shown above. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Implements ONES 14092 and updates the plugin to 0.2.0.
Calls send one
phoneand a closed scalar result schema. Omitted region/locale remain omitted on replay. Goal endpoints stay on v1, withphone, flat variables, andafterpagination. The credential probe uses v2 without creating a call or following redirects. Dry-run and live-call confirmation controls remain required. Missing or invalid keys stop before any CALL-E request and explain how to bind Dify's Idempotency Key to a saved business event ID; the README includes an upgrade example.Keys may be UUIDs generated and saved upstream, then supplied through a Dify variable binding. Dify's tool context provides no durable logical-call ID across separate Workflow runs, so the plugin does not generate keys in KV storage or infer duplicates from matching phone/task inputs.
Evidence
After: 101 tests pass on Python 3.12 with Dify SDK 0.9.0 and 0.10.2, including unavailable/empty results, malformed responses, wait timeouts, network ambiguity, accepted-ID recovery, named workflow outputs, and invalid-key guidance without HTTP requests across all four creation tools.
result(Object) andcall_id(String) reach the output node. Cloud validation covers the valid-key flow; invalid-key guidance and Goal Run live testing use the native runtime.Merge Danger
Door: two-way
Reverting the plugin code/package does not undo accepted calls. Keep each Call ID, business key, and original inputs when recovering or rolling back.
Blast Radius: workflows
Existing Call creation nodes must supply a durable
idempotency_key, including when the caller reruns a workflow after an uncertain submission. Check old explicit US/en-US hints, replace legacy recipient/attempt output mappings, and rename Goal listingcursortoafter. Historical v1 Call IDs still require their original interface. Old self-hosted Dify versions were not tested.