Repository navigation
refactor(supervisor): remove legacy supervisor control RPCs after session migration #1955
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 feat(config): introduce push config delivery over the supervisor session #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
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
github-actions commentedon Jul 8, 2026
This issue has had no activity for 14 days and is now marked stale. It may be closed in 7 days if there is no further activity. Comment or remove the state:stale label to keep it open.
jolong-debug commentedon Sep 10, 2026
@pimlock This issue has had no activity since July 8. With 0.1.0 quickly approaching, please let me know if this is still planned for 0.1.0. If so, is the work blocked, or is this no longer needed?
github-actions commentedon Oct 7, 2026
This issue has had no activity for 14 days and is now marked stale. It may be closed in 7 days if there is no further activity. Comment or remove the state:stale label to keep it open.
pimlock commentedon Oct 13, 2026
Superseded by #4498, which makes push config delivery the default and removes supervisor polling in 0.2.0. It removes
GetSandboxProviderEnvironment,ReportSandboxConfiguration, andReportPolicyStatus, and drops the sandbox token's access toGetSandboxConfigandUpdateConfig, which users keep.The rest of the list here no longer applies. #1731 keeps logs and policy analysis off the session protocol, so
PushSandboxLogsandSubmitPolicyAnalysisstay, andInference.GetInferenceBundlewas already removed in #3195.pimlock commentedon Oct 20, 2026
Starting with OpenShell 0.1.5, gateway push delivery is available as an opt-in feature, implemented in merged PR #4320.
Enable it in the gateway TOML and restart the gateway:
With a 0.1.5 supervisor, live configuration arrives over its supervisor session without waiting for the periodic configuration poll. Polling remains the default in 0.1.x, and older supervisors keep polling. Recreate sandboxes with older supervisors to use push.
This issue remains superseded by #4498, which tracks polling removal for 0.2.0. The 0.1.5 opt-in keeps startup polling and the compatibility RPCs. It does not remove the existing log or policy-analysis RPCs.