Skip to content

feat: add multi-owner Dynamic Workflow ownership and isolation - #151

Merged
Tsuyoshi Ushio (TsuyoshiUshio) merged 20 commits into
mainfrom
tsuyoshiushio-per-agent-dynamic-workflows
Aug 14, 2026
Merged

feat: add multi-owner Dynamic Workflow ownership and isolation#151
Tsuyoshi Ushio (TsuyoshiUshio) merged 20 commits into
mainfrom
tsuyoshiushio-per-agent-dynamic-workflows

Conversation

@TsuyoshiUshio

@TsuyoshiUshio Tsuyoshi Ushio (TsuyoshiUshio) commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • enable Dynamic Workflows for any agent with a supported trigger, chat API, or MCP starter, while preserving main.agent.md support
  • register one app-wide Durable engine with complete handler and Agent catalogs plus immutable per-owner workflow policies
  • scope workflow identity and management to (owner_slug, session_id) with a 128-bit ownership digest and Activity-time policy reauthorization
  • add the runnable Engineering Operations Hub sample with two non-main owners, deterministic local tools, isolated policies, Storage/DTS verification, and a simple sender for a manually started host
  • synchronize architecture, workflow, trigger, frontmatter, migration, and sample documentation

Design

FRD 0009 is finalized after human ratification of Decisions #8#10 and #13. It uses ID 0009 because open PR #111 and draft PR #121 reserved 0008 when this work began.

Compatibility

This includes one intentional breaking change within the experimental Dynamic Workflows surface: legacy session-only workflow IDs continue running in Durable but are not manageable through the new owner-scoped agent APIs. The documentation includes drain guidance and continued Durable/DTS operator access.

Validation

  • python -m ruff check src tests
  • python -m mypy src with CI's mypy 2.3.0
  • python -m pytest --cache-clear --cov=.\src\azure_functions_agents --cov-report=xml --cov-branch tests — 976 passed, 52 deselected
  • exact Outlook sample startup E2E that previously failed in CI — passed
  • Engineering Operations Hub verifier with Azure Storage — both owners completed; capability, status, and list isolation passed
  • Engineering Operations Hub verifier with DTS — both owners completed; capability, status, and list isolation passed
  • manual sender/sample targeted tests — passed

References:

Tsuyoshi Ushio added 6 commits August 10, 2026 16:23
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
@TsuyoshiUshio Tsuyoshi Ushio (TsuyoshiUshio) changed the title docs: propose per-agent Dynamic Workflows architecture feat: enable per-agent Dynamic Workflows Aug 11, 2026
Tsuyoshi Ushio added 3 commits August 11, 2026 09:44
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Tsuyoshi Ushio added 2 commits August 11, 2026 11:19
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Preserve Activity failures, isolate compatibility registration tokens, align workflow starter validation, and make the chat UI the primary sample walkthrough.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
@TsuyoshiUshio
Tsuyoshi Ushio (TsuyoshiUshio) marked this pull request as ready for review August 11, 2026 21:49
Comment thread docs/frds/0004-dynamic-workflows.md Outdated
Comment thread docs/frds/0009-per-agent-dynamic-workflows.md Outdated
Comment thread docs/front-matter-spec.md Outdated
Comment thread samples/per-agent-workflows/scripts/send.py Outdated
Comment thread samples/per-agent-workflows/src/function_app.py Outdated
Comment thread src/azure_functions_agents/config/loader.py Outdated
Comment thread src/azure_functions_agents/workflows/engine.py Outdated
Comment thread src/azure_functions_agents/workflows/tools.py Outdated
Keep FRD 0004 as the initial Dynamic Workflows record while linking its evolution to the separate ownership, authorization, and identity design in FRD 0009.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
@TsuyoshiUshio Tsuyoshi Ushio (TsuyoshiUshio) changed the title feat: enable per-agent Dynamic Workflows feat: add multi-owner Dynamic Workflow ownership and isolation Aug 12, 2026
Simplify workflow ownership eligibility, keep customer samples minimal, and type Durable workflow boundaries. Move the E2E verifier to engineering tooling and preserve actionable trigger diagnostics.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Comment thread samples/outlook-reply-agent/src/OnNewEmail.agent.md Outdated
Comment thread samples/per-agent-workflows/src/requirements.txt Outdated
Comment thread samples/per-agent-workflows/README.md Outdated
Comment thread src/azure_functions_agents/app.py
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Comment thread docs/frds/0004-dynamic-workflows.md Outdated
Comment thread docs/workflows.md Outdated
Comment thread docs/workflows.md Outdated
Tsuyoshi Ushio added 3 commits August 12, 2026 19:56
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Rename the internal workflow owner identity and Durable payload contract to workflow_agent_slug across composition, execution, tests, and documentation. Make the E2E verifier isolate Storage runs from local DTS host configuration.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
Remove the unreleased drain-mode environment variable and its runtime, policy, test, and documentation surface. Record the superseding FRD decision and defer final-agent lifecycle ownership to the tracked issue.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
hallvictoria
hallvictoria previously approved these changes Aug 14, 2026

@larohra Laveesh Rohra (larohra) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 small comment else LGTM

Comment thread eng/scripts/verify_per_agent_workflows.py Outdated
Move the sample-only verifier from eng/scripts to tests/scripts and update its tests and design record to match the repository's script ownership conventions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ade5207c-a0f4-4865-82d6-1d0d61f18570
@TsuyoshiUshio
Tsuyoshi Ushio (TsuyoshiUshio) merged commit 96b3be4 into main Aug 14, 2026
16 checks passed
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.

3 participants