Files
Eduard van Valkenburg 0438ee61c6 Python: Refocus hosting channels ADR on protocol helpers (#6837)
* Revise Python hosting channels ADR

Refocus the accepted-but-unreleased Python hosting channels ADR on protocol-specific Agent Framework conversion helpers and an optional execution-state host instead of a channel route-contribution framework.

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

* Align hosting ADR with split state helpers

Update the protocol-helper ADR to reflect AgentState and WorkflowState, plain SessionStore and CheckpointStore behavior, explicit post-run session storage, workflow checkpoint storage, and direct WorkflowBuilder/orchestration-builder support.

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

* Generalize protocol helper taxonomy

Add protocol-neutral helper families for run conversion, result rendering, streaming, session-id extraction, and command/action parsing. Classify protocol-specific helpers based on quick scans across Activity/Bot Framework, Discord, A2A, and MCP.

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

* Simplify stream helper naming

Use the single <protocol>_stream_from_run(...) helper naming convention in the hosting protocol-helper ADR.

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

* Use state-level storage helpers in hosting ADR

Update ADR examples so app code calls AgentState.set_session and WorkflowState.set_checkpoint_storage instead of reaching into underlying stores directly.

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

* Address hosting ADR review comments

Clarify fail-closed Foundry isolation helpers, fix workflow checkpoint resume examples, describe durable checkpoint cursor storage, add caller-owned session authorization comments, and switch the Django sketch to an async view.

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

* Simplify workflow checkpoint state in hosting ADR

Keep WorkflowState focused on resolving workflow targets, use existing CheckpointStorage directly, describe app-owned checkpoint cursor storage, and mark appendix code as minimum-shape sketches rather than runtime-ready samples.

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

* Rename stream helper convention

Use <protocol>_from_streaming_run(...) as the protocol-helper naming convention for rendering streaming run output.

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

* added notes on state and continuity

* updates based on review

* added consulted

* updates based on review

* remove pyright for illustrative code

* Add streaming to Responses ADR sketch

Extend the FastAPI appendix sketch with the streaming branch and note that the Django sketch omits streaming to avoid duplicating the same state/finalization pattern.

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

* added note on extending the server

* added note on responsible for

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-08 09:59:50 +00:00
..

Architectural Decision Records (ADRs)

An Architectural Decision (AD) is a justified software design choice that addresses a functional or non-functional requirement that is architecturally significant. An Architectural Decision Record (ADR) captures a single AD and its rationale.

For more information see

How are we using ADRs to track technical decisions?

  1. Copy docs/decisions/adr-template.md to docs/decisions/NNNN-title-with-dashes.md, where NNNN indicates the next number in sequence.
    1. Check for existing PR's to make sure you use the correct sequence number.
    2. There is also a short form template docs/decisions/adr-short-template.md
  2. Edit NNNN-title-with-dashes.md.
    1. Status must initially be proposed
    2. List of deciders must include the github ids of the people who will sign off on the decision.
    3. The relevant EM and architect must be listed as deciders or informed of all decisions.
    4. You should list the names or github ids of all partners who were consulted as part of the decision.
    5. Keep the list of deciders short. You can also list people who were consulted or informed about the decision.
  3. For each option list the good, neutral and bad aspects of each considered alternative.
    1. Detailed investigations can be included in the More Information section inline or as links to external documents.
  4. Share your PR with the deciders and other interested parties.
    1. Deciders must be listed as required reviewers.
    2. The status must be updated to accepted once a decision is agreed and the date must also be updated.
    3. Approval of the decision is captured using PR approval.
  5. Decisions can be changed later and superseded by a new ADR. In this case it is useful to record any negative outcomes in the original ADR.