Commit Graph

2 Commits

  • [2/4] Add private Python goal operations (#27111)
    ## Why
    
    The Python SDK must treat the runtime's initial goal turn and its
    continuations as one logical operation. That requires a private
    lifecycle engine before the public API can return the existing turn
    handle and result types.
    
    ## What
    
    - start goals by composing the existing clear/set goal RPCs
    - enforce persisted, idle threads and a bounded startup handshake
    - coalesce continuation notifications under a stable logical turn ID
    - aggregate items, usage, timing, and terminal status
    - support rollover-aware steering, interruption, cancellation, and
    cleanup
    - provide equivalent sync and async internals
    
    This is the second PR in the stack and intentionally adds no public API.
    
    ## Test plan
    
    - online CI, including the Python SDK suite
    - behavioral coverage is added in the following two stack PRs
  • [1/4] Add Python goal routing foundation (#27110)
    ## Why
    
    Goal continuation turns are emitted by the existing runtime as separate
    physical turns. The Python SDK needs private thread-scoped routing
    before it can present those notifications as one logical operation,
    without changing ordinary turn routing or the app-server protocol.
    
    ## What
    
    - add private goal operation state and thread-scoped notification
    routing
    - add internal wrappers for the existing `thread/goal/clear` and
    `thread/goal/set` RPCs
    - include existing goal notifications in the SDK notification union
    - preserve ordinary turn-ID routing unchanged
    - add focused routing coverage
    
    This PR does not expose a public goal API. It is the first PR in the
    Python goal operations stack.
    
    ## Test plan
    
    - online CI, including the Python SDK suite
    - focused typed-notification routing coverage