1jehuang / 1jehuang/jcode

Provider-disable policy: fail-closed way to disable a provider globally or per project

Open
#588 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement priority: medium triage: needs-decision
Dominant language
Rust
Stars
19.9k
Forks
2.3k
Avg merge
2d 7h
Merged PRs (30d)
30

Description

Split out of #203 (part 2), which is otherwise fixed and now closed. This part was never implemented.

Request

A fail-closed config switch to make a provider unavailable, e.g.:

[policy]
disabled_providers = ["copilot"]

The original reporter hit this with Copilot: it can surface via provider auto-detection when GitHub-related credentials/env happen to exist locally, which is surprising if the user does not want Copilot used or even shown.

Expected

A disabled provider should be excluded from all of:

  • provider auto-detection
  • provider lists / model routing
  • jcode login --provider <name>
  • credential/env probing
  • failover paths

Current state (verified on v0.56.34-dev)

Not implemented. grep -rn "disabled_providers" crates/ docs/ returns nothing, and there is no equivalent provider_disabled / hide_provider concept anywhere in the tree.

Decision needed

Scope of the switch (global only vs per-project override), and whether "disabled" means hidden-but-loadable or hard-refused at every entry point including explicit --provider. Fail-closed at every entry point is what the reporter asked for.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by searching crates/ and docs/ for configuration handling, provider auto-detection, routing, login, credential probing, and failover entry points. Resolve whether the policy is global or per-project and whether explicit --provider is refused or only hidden. Done means disabled providers are blocked consistently across every listed entry point.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
ai, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.