Skip to content

Support dynamic workflows (/workflows view) in BYOK / air-gapped sessions #5055

Description

@shloimy-wiesel

In BYOK/air-gapped sessions /workflows returns "Unknown command" (UI gated on GitHub user/quota data), and with COPILOT_OFFLINE=true the workflow tools are removed entirely — even though dynamic workflows otherwise run fine against a BYOK model.

Proposed solution

Make dynamic workflows fully usable when a BYOK provider is configured, without requiring a GitHub user/quota response:

  1. Show /workflows (command, completion, and Workflows view) for BYOK sessions.
    Today visibility appears to be gated on the Copilot user response (EXTENSIONS && sessionQuotaProjection(sessionId).dynamicWorkflowsUiVisible), cached in ~/.cache/copilot/copilot-user-cache.json. With no cache (fresh/air-gapped machine) or a stale one (~25 min in my testing), the command disappears, while the underlying tools (run_dynamic_workflow, dynamic_workflows_manage) keep working. When a BYOK provider is active, the UI should follow the same availability as the tools.

  2. Support dynamic workflows with COPILOT_OFFLINE=true.
    In offline mode the workflow and extension tools are not offered to the model at all (17 vs 25 tools in my test), so workflows are unusable. Authoring/running workflows needs no network when the model is local, so offline mode should keep them.

  3. If gating is intentional, explain it. Replace Unknown command: /workflows with a message saying why it is unavailable and how to enable it.

Benefit: on-prem, regulated, and air-gapped users running local models via BYOK (documented as "GitHub authentication is not required") get the same workflow experience — run monitoring, pause/resume, progress — instead of a hidden feature.

Example prompts or workflows

Environment for all examples: air-gapped Linux host, local vLLM model via BYOK:

COPILOT_PROVIDER_BASE_URL=http://<local-host>:<port>/v1 \
COPILOT_MODEL=<local-model> \
copilot --experimental
  1. /workflows → open the Workflows view and watch phases/agents of a running review workflow (today: ✗ Unknown command: /workflows).
  2. "Create a workflow that reviews every changed file in parallel with a subagent per file, then summarizes findings" → author + run, then monitor it in /workflows.
  3. "Resume workflow run with a higher maxTotalSubagents" after a limit was hit, from the Workflows view.
  4. COPILOT_OFFLINE=true copilot --experimental → "What dynamic workflows are available?" (today: the workflow tools are not available in offline mode).

Additional context

  • Copilot CLI 1.0.91, Linux x86_64, bash, VS Code integrated terminal.
  • Reproduction (no real air gap needed): fresh COPILOT_HOME, HTTPS_PROXY=http://127.0.0.1:9 NO_PROXY=127.0.0.1,localhost, a local OpenAI-compatible endpoint, then type /workflows.
Config / network /workflows Workflow tools work?
Signed in, online shown yes
Signed in, air-gapped, right after an online run (fresh user cache) shown yes
Signed in, air-gapped, cache stale (~25 min) Unknown command yes
Fresh COPILOT_HOME, online or air-gapped Unknown command yes (with --experimental)
COPILOT_OFFLINE=true — no (tools not offered)

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:modelsModel selection, availability, switching, rate limits, and model-specific behavior

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions