Why: With parallel tool execution the host-side tool wrapper can no longer infer which invocation it is serving from a single in-flight slot; tools need the call identity (ID/name/arguments) to pair process state and per-call bookkeeping. Context injection keeps the tools registry signature unchanged. Evidence: go test ./... green; TestLoopToolSeesOwnCallInContext runs two parallel calls and asserts each reads its own ID from ctx. Impact: Additive WithToolCall/ToolCallFromContext helpers; runOne now wraps the ctx before Execute. Callers that never inject keep ok=false and are unaffected. Refs: Dev task feature/agent-e1-parallel-fixes (F5 parallel wiring).