Skip to content

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

Closed as not planned

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

Activity

  1. self-assigned this
    on Jun 17, 2026
  2. added this to the OpenShell Beta milestone on Jun 23, 2026
  3. github-actions commented on Jul 8, 2026

    @github-actions

    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.

  4. jolong-debug commented on Sep 10, 2026

    @jolong-debug

    @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?

  5. github-actions commented on Oct 7, 2026

    @github-actions

    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.

  6. pimlock commented on Oct 13, 2026

    @pimlock
    CollaboratorAuthor

    Superseded by #4498, which makes push config delivery the default and removes supervisor polling in 0.2.0. It removes GetSandboxProviderEnvironment, ReportSandboxConfiguration, and ReportPolicyStatus, and drops the sandbox token's access to GetSandboxConfig and UpdateConfig, which users keep.

    The rest of the list here no longer applies. #1731 keeps logs and policy analysis off the session protocol, so PushSandboxLogs and SubmitPolicyAnalysis stay, and Inference.GetInferenceBundle was already removed in #3195.

  7. pimlock commented on Oct 20, 2026

    @pimlock
    CollaboratorAuthor

    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:

    [openshell.gateway]
    config_delivery_mode = "push"

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:gatewayGateway server and control-plane workarea:supervisorProxy and routing-path workstate:staleInactive item at risk of automatic closure.tech-debttopic:compatibilityCompatibility-related work

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions