SEP: Remove the chain concept, keep the execution mechanics - #44
Open
olaservo wants to merge 2 commits into
Open
SEP: Remove the chain concept, keep the execution mechanics#44olaservo wants to merge 2 commits into
olaservo wants to merge 2 commits into
Conversation
Scoped-down version of #33 per the 2026-07-23 WG decision (proposed by Ukjae, agreed by Kurt and Peder) and Kurt's 2026-08-12 request to limit the change to chain removal. - Replace the Chain Execution section with Executing Multiple Interceptors: multi-interceptor execution is invoker-local, no chain resource, identifier, or aggregate method exists, and each interceptor is invoked with interceptor/invoke on the server that advertised it. - Remove the InterceptorChain, ChainEntry, ChainExecutionParams, and ChainExecutionResult pseudo-interfaces. Keep InterceptorOverrides under its own heading as invoker-local configuration. - Keep the execution model, ordering, atomicity, failure routing, Capability vs Policy, orchestration steps, examples, and error handling unchanged apart from replacing "chain" wording. - Add a design decision recording that the chain was first a protocol method, then an SDK utility, and is now removed. Not changed: signature field, track, llm/completion, direction rules. Co-authored-by: Will Dembinski <willdembinski@gmail.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NrQ4aQW4mRjgj5GJZbahEB
There was a problem hiding this comment.
Pull request overview
Removes the chain abstraction from the SEP while retaining invoker-local multi-interceptor orchestration.
Changes:
- Removes chain pseudo-interfaces.
- Reframes orchestration and overrides as invoker-local.
- Updates terminology and design rationale.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…nt per invocation Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NrQ4aQW4mRjgj5GJZbahEB
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.
Scoped-down version of #33, limited to what Kurt asked for on 8/12: remove the "chain" concept and keep the mechanics. Text-only,
docs/sep.md+32/-186. No wire changes.Credit: Ukjae proposed the removal on 7/23; Kurt and Peder agreed. The containment statement (execution is invoker-local, no chain resource/identifier/method, invoke each interceptor on the server that advertised it) is taken from Will's draft in #33; Will is co-author on the commit.
What changes:
Chain ExecutionbecomesExecuting Multiple Interceptorswith the containment statement above. The "convenience utility" note becomes "SDKs MAY provide orchestration helpers; they are not wire protocol."InterceptorChain,ChainEntry,ChainExecutionParams, andChainExecutionResultpseudo-interfaces.InterceptorOverrides(from Introduce InterceptorOverrides in the chain execution model #24) under its own heading as invoker-local configuration.resolvePrioritynow takes(interceptor, overrides, phase)instead of aChainEntry.Not in this PR (still in #33 for the WG to decide separately): removing
signature, Standards → Extensions track, direction MUST NOT be inferred fromphase, Unicode tie-break wording, discovery-failure routing, error-response scope,llm/completionfallback.Overlap: #43 adds fields to
ChainExecutionParams.context, which this PR deletes. Whichever merges second gets a trivial rebase.Closes the chain-removal part of #33; #33 can be narrowed to its remaining proposals or closed in favour of separate PRs.
🤖 Generated with Claude Code
https://claude.ai/code/session_01NrQ4aQW4mRjgj5GJZbahEB