Skip to content

refactor(supervisor): remove legacy supervisor control RPCs after session migration #1955

@pimlock

Description

@pimlock

Problem Statement

#1731 should keep the existing supervisor control RPCs during the session-control migration so rollout is reversible and mixed-version gateways/supervisors remain safe. Once the session path is implemented, feature-flagged, and exercised, the redundant legacy RPCs should be deprecated or removed in a separate cleanup.

Proposed Design

After the session-control path is stable:

  • Migrate supervisor call sites away from legacy polling/report RPCs.
  • Remove or deprecate redundant RPCs where the session-control equivalent is adopted:
    • GetSandboxConfig
    • GetSandboxProviderEnvironment
    • PushSandboxLogs
    • ReportPolicyStatus
    • SubmitPolicyAnalysis
    • Inference.GetInferenceBundle
  • Remove compatibility fallback code only after the supported rollout window is clear.
  • Update generated clients, server handlers, tests, and docs together.
  • Keep user-facing read APIs, such as log retrieval or policy status reads, if they are still independently useful.

Alternatives Considered

Agent Investigation

Current code still uses separate RPCs for the control/reporting paths while ConnectSupervisor only carries session lifecycle, heartbeat, and relay lifecycle messages. The initial #1731 implementation should make legacy RPC handlers thin wrappers around shared helpers, then route session messages through the same helpers. This follow-up removes the wrappers and fallback paths after the new path is proven.

Definition of Done

  • Confirm the session-control path is enabled and covered by tests/e2e for supported deployments.
  • Remove or deprecate redundant proto RPCs and regenerate bindings.
  • Remove server handlers that no longer have supported callers.
  • Remove supervisor polling/reporting call sites that no longer need fallback.
  • Update docs that mention legacy polling/reporting behavior.
  • Add release/compatibility notes if this is a breaking protocol cleanup.

Related

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions