Skip to content

feat(workflows): declare retry on workflow tools - #207

Open
Tsuyoshi Ushio (TsuyoshiUshio) wants to merge 1 commit into
mainfrom
tsuyoshiushio-durable-activity-retry
Open

feat(workflows): declare retry on workflow tools#207
Tsuyoshi Ushio (TsuyoshiUshio) wants to merge 1 commit into
mainfrom
tsuyoshiushio-durable-activity-retry

Conversation

@TsuyoshiUshio

Copy link
Copy Markdown
Contributor

Summary

Complete the residual @workflow_tool(retry=...) integration left after #193 extracted and merged the plan-authored Durable retry execution foundation.

  • Adds a typed retry declaration to @workflow_tool and public retry policy exports.
  • Carries retry metadata through discovery and immutable handler/policy catalogs.
  • Makes a tool declaration authoritative over plan-authored execution.retry at submission.
  • Persists only the effective policy, preserving Extract plan-authored Durable retry execution #193's replay-safe execution contract.
  • Updates the retry sample to keep retryability with the tool author rather than the model-authored plan.

This intentionally replaces rather than rebases #185. That branch predates #193 and rebasing its full tree would reintroduce already-merged foundation work and materially enlarge the review diff.

Scope

No engine, Activity envelope, native retry driver, dependency, frontmatter schema, or UI changes. Those execution pieces are already in #193.

Validation

  • python -m ruff check src tests
  • python -m mypy src
  • python -m pytest --cache-clear --cov=./src/azure_functions_agents --cov-report=xml --cov-branch tests — 1183 passed, 55 deselected
  • python -m pytest -q -m e2e tests/endtoend/test_workflow_native_retry_e2e.py — 2 passed against a real Functions host and Docker Azurite

The real-host run used samples/workflow-retry-policy with local.settings.json copied from the #193 worktree and TASKHUB_NAME removed, so Durable used the default TaskHub.

Carry tool-owned retry metadata through discovery and immutable workflow policy catalogs, with decorator declarations overriding plan-authored retry at submission.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1d5e6bb1-d7be-4d68-bad7-cb3f80079d27
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.

1 participant