refactor(supervisor): remove legacy supervisor control RPCs after session migration
@pimlock is already working on this.
Since Jun 17, 2026.
- Dominant language
- Rust
- Stars
- 8.7k
- Forks
- 1.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 253
Description
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:
GetSandboxConfigGetSandboxProviderEnvironmentPushSandboxLogsReportPolicyStatusSubmitPolicyAnalysisInference.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
- Remove legacy RPCs inside #1731: rejected because it makes the first migration harder to review, harder to roll back, and riskier for mixed-version deployments.
- Keep legacy RPCs indefinitely: acceptable during rollout, but it leaves duplicate control paths and makes future behavior harder to reason about.
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
- Follow-up to #1731
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.