DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-github-copilot

Github Copilot

用于 GitHub Copilot 登录、账户感知的模型配置、工具兼容性和服务商托管搜索的 DSH 配套插件。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:cloga/dsh-github-copilot#af48f79890e9ec58fa2e790a095f63d48b628bc9
README兼容性版本

兼容性与来源证明

Github Copilot 以 dsh-github-copilot 发布,当前版本为 0.4.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/11/4

版本

0.4.1stable
2026/10/8
0.4.0stable
2026/10/7
查看其余 159 个版本收起版本
0.1.0-alpha.5.dsh.0.2.1.rc.3prerelease
2026/10/25
0.1.0-alpha.4.dsh.0.2.1.rc.3prerelease
2026/10/25
0.1.0-alpha.3.dsh.0.2.1.rc.3prerelease
2026/10/25
0.1.0-alpha.2.dsh.0.2.1.rc.3prerelease
2026/10/24
0.1.0-alpha.1.dsh.0.2.1.rc.3prerelease
2026/10/24
0.4.2-alpha.19.dsh.0.2.0.rc.2prerelease
2026/10/24
0.4.2-alpha.18.dsh.0.2.0.rc.2prerelease
2026/10/22
0.4.2-alpha.17prerelease
2026/10/18
0.1.0-alpha.2.dsh.0.2.1.alpha.5prerelease
2026/10/17
0.1.0-alpha.1.dsh.0.2.1.alpha.5prerelease
2026/10/17
0.4.2-alpha.16prerelease
2026/10/16
0.4.2-alpha.15prerelease
2026/10/12
0.4.2-alpha.14prerelease
2026/10/11
0.4.2-alpha.13prerelease
2026/10/11
0.4.2-alpha.12prerelease
2026/10/11
0.4.2-alpha.11prerelease

相关插件

正在加载相关插件…

最新版
0.4.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 2
周下载
410
最近提交
2026/10/25
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
2026/10/11
0.4.2-alpha.10prerelease
2026/10/11
0.4.2-alpha.9prerelease
2026/10/10
0.4.2-alpha.8prerelease
2026/10/10
0.4.2-alpha.7prerelease
2026/10/10
0.4.2-alpha.6prerelease
2026/10/10
0.4.2-alpha.5prerelease
2026/10/9
0.4.2-alpha.4prerelease
2026/10/9
0.4.2-alpha.3prerelease
2026/10/9
0.4.2-alpha.2prerelease
2026/10/8
0.4.2-alpha.1prerelease
2026/10/8
0.4.0-alpha.134prerelease
2026/10/7
0.4.0-alpha.133prerelease
2026/10/7
0.4.0-alpha.132prerelease
2026/10/7
0.4.0-alpha.130prerelease
2026/10/6
0.4.0-alpha.129prerelease
2026/10/6
0.4.0-alpha.128prerelease
2026/10/6
0.4.0-alpha.127prerelease
2026/10/6
0.4.0-alpha.126prerelease
2026/10/6
0.4.0-alpha.125prerelease
2026/10/6
0.4.0-alpha.124prerelease
2026/10/6
0.4.0-alpha.123prerelease
2026/10/6
0.4.0-alpha.122prerelease
2026/10/6
0.4.0-alpha.121prerelease
2026/10/6
0.4.0-alpha.120prerelease
2026/10/6
0.4.0-alpha.119prerelease
2026/10/6
0.4.0-alpha.118prerelease
2026/10/5
0.4.0-alpha.117prerelease
2026/10/5
0.4.0-alpha.116prerelease
2026/10/5
0.4.0-alpha.115prerelease
2026/10/5
0.4.0-alpha.114prerelease
2026/10/5
0.4.0-alpha.113prerelease
2026/10/5
0.4.0-alpha.112prerelease
2026/10/5
0.4.0-alpha.111prerelease
2026/10/5
0.4.0-alpha.110prerelease
2026/10/5
0.4.0-alpha.109prerelease
2026/10/5
0.4.0-alpha.108prerelease
2026/10/5
0.4.0-alpha.107prerelease
2026/10/5
0.4.0-alpha.106prerelease
2026/10/4
0.4.0-alpha.105prerelease
2026/10/4
0.4.0-alpha.104prerelease
2026/10/4
0.4.0-alpha.103prerelease
2026/10/4
0.4.0-alpha.102prerelease
2026/10/4
0.4.0-alpha.101prerelease
2026/10/4
0.4.0-alpha.100prerelease
2026/10/4
0.4.0-alpha.99prerelease
2026/10/4
0.4.0-alpha.98prerelease
2026/10/4
0.4.0-alpha.97prerelease
2026/10/4
0.4.0-alpha.96prerelease
2026/10/4
0.4.0-alpha.95prerelease
2026/10/4
0.4.0-alpha.94prerelease
2026/10/4
0.4.0-alpha.93prerelease
2026/10/4
0.4.0-alpha.92prerelease
2026/10/4
0.4.0-alpha.91prerelease
2026/10/4
0.4.0-alpha.88prerelease
2026/10/3
0.4.0-alpha.87prerelease
2026/10/3
0.4.0-alpha.86prerelease
2026/10/3
0.4.0-alpha.85prerelease
2026/10/3
0.4.0-alpha.84prerelease
2026/10/3
0.4.0-alpha.83prerelease
2026/10/3
0.4.0-alpha.82prerelease
2026/10/3
0.4.0-alpha.81prerelease
2026/10/3
0.4.0-alpha.80prerelease
2026/10/3
0.4.0-alpha.79prerelease
2026/10/3
0.4.0-alpha.78prerelease
2026/10/3
0.4.0-alpha.77prerelease
2026/10/3
0.4.0-alpha.76prerelease
2026/10/3
0.4.0-alpha.75prerelease
2026/10/3
0.4.0-alpha.74prerelease
2026/10/3
0.4.0-alpha.73prerelease
2026/10/2
0.4.0-alpha.72prerelease
2026/10/2
0.4.0-alpha.71prerelease
2026/10/2
0.4.0-alpha.70prerelease
2026/10/2
0.4.0-alpha.69prerelease
2026/10/2
0.4.0-alpha.68prerelease
2026/10/2
0.4.0-alpha.66prerelease
2026/10/2
0.4.0-alpha.65prerelease
2026/10/2
0.4.0-alpha.64prerelease
2026/10/2
0.4.0-alpha.63prerelease
2026/10/2
0.4.0-alpha.62prerelease
2026/10/2
0.4.0-alpha.61prerelease
2026/10/1
0.4.0-alpha.60prerelease
2026/10/1
0.4.0-alpha.59prerelease
2026/10/1
0.4.0-alpha.58prerelease
2026/10/1
0.4.0-alpha.57prerelease
2026/10/1
0.4.0-alpha.56prerelease
2026/10/1
0.4.0-alpha.55prerelease
2026/10/1
0.4.0-alpha.54prerelease
2026/10/1
0.4.0-alpha.53prerelease
2026/10/1
0.4.0-alpha.52prerelease
2026/10/1
0.4.0-alpha.51prerelease
2026/10/1
0.4.0-alpha.50prerelease
2026/10/1
0.4.0-alpha.49prerelease
2026/10/1
0.4.0-alpha.48prerelease
2026/10/1
0.4.0-alpha.46prerelease
2026/10/1
0.4.0-alpha.45prerelease
2026/9/30
0.4.0-alpha.43prerelease
2026/9/30
0.4.0-alpha.42prerelease
2026/9/30
0.4.0-alpha.40prerelease
2026/9/30
0.4.0-alpha.39prerelease
2026/9/30
0.4.0-alpha.38prerelease
2026/9/30
0.4.0-alpha.37prerelease
2026/9/22
0.4.0-alpha.36prerelease
2026/9/21
0.4.0-alpha.35prerelease
2026/9/21
0.4.0-alpha.34prerelease
2026/9/21
0.4.0-alpha.33prerelease
2026/9/21
0.4.0-alpha.32prerelease
2026/9/20
0.4.0-alpha.31prerelease
2026/9/20
0.4.0-alpha.30prerelease
2026/9/20
0.4.0-alpha.29prerelease
2026/9/19
0.4.0-alpha.28prerelease
2026/9/19
0.4.0-alpha.27prerelease
2026/9/18
0.4.0-alpha.26prerelease
2026/9/18
0.4.0-alpha.25prerelease
2026/9/17
0.4.0-alpha.24prerelease
2026/9/17
0.4.0-alpha.23prerelease
2026/9/16
0.4.0-alpha.22prerelease
2026/9/16
0.4.0-alpha.21prerelease
2026/9/16
0.4.0-alpha.20prerelease
2026/9/16
0.4.0-alpha.19prerelease
2026/9/15
0.4.0-alpha.18prerelease
2026/9/14
0.4.0-alpha.17prerelease
2026/9/14
0.4.0-alpha.16prerelease
2026/9/13
0.4.0-alpha.15prerelease
2026/9/13
0.4.0-alpha.14prerelease
2026/9/12
0.4.0-alpha.13prerelease
2026/9/12
0.4.0-alpha.12prerelease
2026/9/9
0.4.0-alpha.10prerelease
2026/9/9
0.4.0-alpha.9prerelease
2026/9/8
0.4.0-alpha.7prerelease
2026/9/8
0.4.0-alpha.5prerelease
2026/9/8
0.4.0-alpha.2prerelease
2026/9/8
0.4.0-alpha.1prerelease
2026/9/7
0.3.1-alpha.2prerelease
2026/9/5
0.3.0-cloga.15prerelease
2026/9/4
0.3.0-cloga.14prerelease
2026/9/3
0.3.0-cloga.12prerelease
2026/9/3
0.3.0-cloga.11prerelease
2026/9/3
0.3.0-cloga.9prerelease
2026/9/2
0.3.0-cloga.8prerelease
2026/9/2
0.3.0-cloga.6prerelease
2026/9/2
0.3.0-cloga.4prerelease
2026/9/2
0.3.0-cloga.2prerelease
2026/9/2
0.3.0-cloga.1prerelease
2026/9/1

相关插件

继续浏览 security-access 分类下经过校验的插件。

Experimental Auto Review@deepseek-ai/dsh-experimental-auto-review针对每个工具的 LLM 授权审查,适用于 DeepSeek Harness Auto 权限预设Cc Safety Netcc-safety-net编码代理 CLI 钩子——阻止破坏性命令和访问机密文件Doctor@linxin666/dsh-doctorDSH 配置档案的事务性救援模式,配备受监督的启动器、隔离的恢复容器、确定性修复、健康监控以及本地 Web 恢复控制台Pocketdsh-pocket把 DeepSeek Harness 装进你的口袋:一个包、一个设置页,手机扫码即同步访问电脑上的 DSH(局域网 + 公网,实时同屏)。

README

dsh-github-copilot

English | 简体中文

GitHub Copilot account discovery, contextual Auto routing and hosted search for DSH. The plugin reuses DSH's published native adapter, retaining a profile-wide account default with independent Session next-turn choices; it does not patch Core or maintain a second model catalog.

Stable release: 0.4.1. Supported host: official DSH / Windows Desktop 0.2.0-rc.2. The stable version is also published on npm's latest dist-tag; prereleases remain on their channel tags. Stability-channel promotion does not expand the qualified host baseline or prove live account, model, search or Desktop health. Earlier DSH pins are historical evidence, not supported installation targets. Published, installed in a profile and loaded by a running Host are separate states.

Upgrade from 0.4.0: that first stable release can interrupt concurrent managed requests with COPILOT_PREVIEW_CREDENTIAL_CHANGED during normal same-account native OAuth renewal. In 0.4.1, a proven plugin-owned refresh with unchanged account, endpoint and entitlements preserves already-dispatched HTTP streams; subsequent requests use freshly validated auth and metadata. Unknown/external credential notifications, revocation, cancellation and provider rejections remain explicit—not a promise of invisible recovery or automatic retry. See the refresh boundary.

What you can do

High-cost Auto: in Manage → Model preferences, mark costly models with High cost. Cost and task difficulty are independent: within the first fitting category, ordinary models have weight 1, marked models 0.2, and the previous model gets a finite 1.5× bonus. All candidates keep a nonzero chance; marking does not change fixed choices or admitted turns. This is a declared policy, not a price/quality ranking or proven savings.

The existing turn selection dialog exposes Auto allocation observations: local retained opportunities, expected shares and actual selections for this Session, with a read-only JSON export. No automatic upload or durable history is added; restart/eviction loses evidence. autoAllocationEvidence: false stops future candidate capture without changing routing; previously retained observations remain until disposal/eviction/restart. The auxiliary classifier prefers unmarked eligible Lightweight models separately. Advisor calls are not implemented. See requirements and the required iteration review.

The local diagnostics pilot records bounded account/Checking and compaction aggregates, default off. After installing and loading the published build, open the plugin detail settings page → Local diagnostics → Read status → Enable local collection. This enables local persistence, not uploads or scheduled analysis. The package also has an explicit offline analyzer for a caller-selected persisted unit or reviewed aggregate view; it writes only to a new local report file and never scans, uploads or changes collection. Pause preserves evidence; Clear requires separate confirmation. Client/Host populations, uncovered paths and reporting/storage gaps remain explicit. Descriptive counts are not reconstructed history, failure rates or proof of an improvement.

To analyze an explicitly qualified file from a built package or source checkout:

node scripts/analyze-diagnostics.mjs --input "ABSOLUTE_UNIT_FILE.json" --mode persisted-unit --profile-name "PROFILE_NAME" --output "NEW_LOCAL_REPORT.json"

Replace the placeholders with the reviewed file/profile and a new absolute output path. For a reviewed aggregate view export, use --mode reviewed-view without --profile-name. Read qualification and interpretation limits explain the accepted envelope, bounds and persisted-only evidence; no daily schedule is included.

TaskWhere to start
Sign in and manage account modelsSettings → Models → GitHub Copilot → Sign in
Add or switch GitHub accountsManage → Account management → Switch; managed-only profiles
Select this Session's next-turn accountCredits → Switch account; saved authorizations only
Return this Session to the global default accountCredits → Follow global default; account selection only, not the model
Exclude or restore individual modelsManage → Model preferences
Choose models automaticallyPick Auto · Balance, Auto · Efficiency or Auto · Intelligence
Follow a parent model in supported subagentsPlugins → dsh-github-copilot → Details → Follow parent model
Choose primary/fallback search providersPlugin details → Web search
Set the visible-history default for new SessionsSettings → Models → GitHub Copilot → Manage → New Session continuation default
Enable visible-history for an existing SessionSelect a managed Copilot model, open the composer Credits/usage pill → Visible-history continuation → Session policy → On
Read account Credits and context evidenceCopilot Session composer; native Turn Usage stays separate

Client account controls and model preferences

This 0.4.0 release-candidate capture uses the built Client with synthetic accounts and models. It shows the Models account controls, the expanded New Session continuation default, and exact-ID model preferences including High cost. The default applies only to eligible Sessions created after its policy epoch; it does not enroll existing or seeded histories. This is not live sign-in, model availability or loaded Desktop proof.

Switching between saved GitHub accounts in Models

Session account selection and account-wide quota in Credits

Existing Session visible-history policy in the composer Credits popover

These Credits captures use the 0.4.0 release-candidate Client and synthetic identities, quota and Session state. The account panel shows Follow global default for this Session's account choice; the continuation capture shows the persistent Session policy → On disclosure, same-account loss notice and next-turn boundary. No real account or billing data is shown; no message is sent or retried. Capture provenance accompanies the images.

Install and sign in

Use the exact verified release, the intended profile and an authorized package source. No copilot2api, external gateway, pasted GitHub token, placeholder key or separate dsh-web-search-provider is required.

Before installation, extract the checksum-verified archive and run its read-only composition preflight with absolute paths:

node package/scripts/check-search-composition.mjs --profile-dir /absolute/profile --home /absolute/DSH_HOME --install-anchor /absolute/dsh/package.json

Supply any launcher patches with repeated --patch /absolute/file. Require supported: true: the install command does not automatically run this preflight. Unsupported/custom Web composition and NONEMPTY_DISPOSABLE_PROFILE_ROOT are stop conditions. Preserve a nonempty root and review whether public composition reconstructs it before any separately approved normalization; never assume it can be cleared. Check effective shared-peer resolution so stale profile-local packages do not shadow Desktop's official peers.

For a standalone named profile:

dsh plugin --profile web add https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.1/dsh-github-copilot-0.4.1.tgz

For Desktop, its native package manager accepts the exact stable npm spec dsh-github-copilot@0.4.1; stable versions publish on npm's latest dist-tag. The official rc.2 Desktop-bundled CLI also supports reserved-profile plugin management; a global/generic dsh shim is not equivalent. Qualify the installed entry before use. See Desktop CLI qualification and the distinct standalone offline procedure. Neither path authorizes registry-policy bypass, peer patches or configuration deletion.

After an approved reload/restart:

  1. Open Settings → Models → GitHub Copilot and select Sign in with GitHub. No native provider or manual model definition is needed.
  2. Copy the displayed one-time code and complete GitHub's device flow in your own browser. Desktop uses its system-browser handoff; a selectable verification URL remains available if it does not open.
  3. Wait for Signed in and account discovery, then choose a model. Opening Models and normal use ensure missing/stale metadata; Manage → Refresh models is an intentional forced refresh, not routine setup.

Sign-out requires an explicit action and removes only the active account's authorization, not other saved grants or route settings. Upgrades preserve existing native Copilot profiles; two groups can remain until explicit single-route migration. Installation never migrates conversations or defaults.

In Manage → Account management, the Switch dropdown lists saved accounts and Add GitHub account at the bottom. Adding never replaces the global default. During device authorization, the card keeps the verification URL, one-time code, Copy authorization code and Cancel adding account together; identity/model verification follows separately. A confirmed switch changes future inherited turns, not running turns or explicit Session overrides. Manage saved authorizations contains Reauthorize and Remove; removal affects only a nondefault saved authorization, never a running turn's pinned account or GitHub-side access. Refresh account information updates identity, not authorization. Native-route or incomplete evidence blocks switching; missing/revoked accounts never fall back. A new account may lack your selected model, and encrypted replay may be account-bound: no automatic model substitution or history removal occurs. See account requirements.

Completed managed turns show Account beside native Usage. It records the request account, not billing or subagent totals. A verified name is frozen at admission; if missing, an existing bounded non-forcing lookup for that exact account runs without delaying model delivery and can fill identity only while the same turn remains active. No account evidence exists before native delivery. Missing identity remains unavailable; completed history is never backfilled from current settings. Evidence is bounded to the Host lifetime; restart, cold history or missing delivery displays unknown. Credits labels an unidentified original or saved authorization without displaying opaque account IDs.

Saved account names can load without activating the account. Names are cached for the Host lifetime, invalidated by credential changes or failed verification, and never prove authorization or model access. A global switch requires fresh identity/model validation and confirmed settings persistence. If switching is blocked, let authorization or pinned work settle and use Refresh account information; unknown route/activity evidence remains a blocker. The dropdown, not a button beside each saved account, is the selection control.

Desktop lifecycle: disable/remove/upgrade can require a full cold restart for Web service recomposition. If the plugin is Off and the native manager reports only pending (waiting for service: web), do not repeatedly toggle or reinstall. Obtain restart approval and follow rc.2 lifecycle guidance.

Auto and model preferences

Saving preferences: Exclude/Restore and High cost save immediately with confirmed settings readback. Other rows remain usable: up to 32 distinct-row edits can wait, marked Waiting…, while one is Saving…. An unconfirmed result or changed scope cancels unsent edits; Retry reads saved settings without replaying writes. The queue does not survive unmount.

Provider-directory load failures: native Models llm/listProviders failed: Failed to fetch is a Client-to-Host/gateway transport failure, not proof of forced Copilot discovery. Use the native page's Retry after the connection recovers; the plugin does not substitute a stale or empty catalog.

All three Auto preferences use the same account-verified, non-excluded eligible pool. Hard input/image capability checks run before soft task preferences.

Task demandEfficiencyBalanceIntelligence
Proven simpleLightweightLightweightLightweight
RoutineLightweightVersatilePowerful
ComplexPowerfulPowerfulPowerful
UnknownVersatileVersatilePowerful

Categories come from authenticated supplier metadata, not model names, context capacity or measured quality rankings. Within the first fitting category, positive cost weights and the finite continuity bonus described above choose the model; a suitable previous model is not unconditionally retained. Category fallback is explained explicitly. One real answer model stays fixed throughout each admitted turn's steps and retries; compaction preserves its independently resolved native summary route.

Semantic assessment is enabled by default only for locally unknown tasks. It makes at most one bounded auxiliary call with an 8-second end-to-end deadline and 128-token output budget. Set github-copilot.autoSemanticAssessment: false to opt out. Timeout/invalid output leaves demand unknown and uses the preference fallback; it never means simple or triggers another classifier. Caller cancellation and account invalidation remain terminal. Auxiliary calls add latency and supplier charges outside native answer Usage.

The deadline is checked against a monotonic clock at preparation, native request and result boundaries, even if the event loop delays the timer. Such delays can postpone settlement; they do not authorize late dispatch or late-result acceptance. Eligible Lightweight classifiers advertising reasoning off take precedence, with deterministic ID tie-breaking; the request uses off only if the public native model also supports it. This is not a measured speed ranking. Explanations distinguish the fitting category pool and previous-model continuity from semantic merit.

The reply's selection disclosure shows captured reasons and optional content-free auxiliary milestones. uncertain and insufficient-evidence do not mean the conversation is empty. Selection unknown means no retained record; Selection unavailable → Retry means the read failed. Retry rereads that turn, not inference. Evidence is bounded and Host-local, so restart/eviction can lose it.

When a failed/incomplete turn has no native Usage model row, the existing ⓘ opens Turn model and selection evidence: successful same-turn sources show Recorded models with incomplete failed-attempt attribution; reliable same-turn recorded request configuration shows Requested model, not dispatch, execution or billing proof. Missing evidence stays Unknown, never inferred from today's picker/default or adjacent turns. Selection reasons remain in a disclosure underneath. Complete native routes avoid repeated model UI; turns without a closing message have no existing assistant-actions entry. Native Usage and retries are unchanged. Evidence boundaries.

Model exclusions remove exact IDs from the managed picker and new Auto pools. Selected models are excludable: an admitted turn keeps its model, but a new turn/direct request cannot use an excluded ID. A fixed selection is never silently replaced. Unknown preference settings leave controls read-only, not falsely enabled. Saves use narrow native CAS without credentials, discovery or Session scans.

See task assessment and routing contracts, exclusions and history recovery.

Explicit Auto intent survives native pending-selection consumption and cold restore through a plugin-owned projection of existing selection events. Later explicit fixed choices still win for future turns; admitted turns keep their route. This does not backfill historical selection reasons or turn unknown evidence into guessed Auto.

Subagents and search

Parent-following and Web search controls

This 0.4.0 release-candidate capture shows the built Client's parent-following switch, Web search routing and default-off local diagnostics together. Settings/providers and paused, empty diagnostics are synthetic. No search, collection or live service was invoked for the capture; see provenance.

Follow parent model defaults Off and applies profile-wide to supported native children/Team mates of managed Copilot parents. Fixed parents apply on each child's next turn; Auto parents pass the exact preference while each child evaluates its own context. Child-owned explicit selections win. Running turns, roots, forks, other providers and dedicated legacy policies are not rewritten. Existing legacy bindings remain independent when the broad switch is Off. Parent-following contract.

Web search has two ordinary controls in the plugin-detail page: primary provider and final fallback. Routing can be saved without Copilot sign-in or account-model discovery; the choices must be registered search providers. Saving only records routing and does not prove Copilot search capability, which is checked when a search runs. Auto follows the initiating Chat provider when a corresponding search registration exists; fixed choices stay fixed when Chat changes. At most one distinct final fallback is tried, with possible charges disclosed. Cancellation/account-proof loss never authorizes a fallback.

Copilot search requires current account/protocol evidence and capability proof. Fixed/fallback Copilot preserves a nonempty legacy searchModel; otherwise it considers at most three account-owned Responses candidates. The final user query is sent once, never replayed across those candidates. A saved choice or successful Chat request does not prove hosted search. Search routing and composition. The legacy github-copilot.searchFallback setting applies only to its separate canonical inline path; it is not a third routed fallback. Fetch is unchanged.

Usage, request limits and recovery

Credits shows validated account billing-cycle data, not context tokens or Session cost. Stale, pooled and unavailable readings keep their real meanings. The quota request alone uses Node plus system CA roots with TLS verification enabled; it does not change trust for sign-in, models, search or Desktop globally.

Native context occupancy and Turn Usage remain Core-owned. The plugin forwards usage unchanged, including zero samples on failure/cancellation. Ordinary in-progress requests and missing new samples stay quiet; only a concrete failed-zero or invalid-sample incident opens the separate, dismissible context warning. Any retained count is labeled historical evidence, never current occupancy or a replacement percentage. Turn Usage incomplete explains missing samples/lifecycle and recorded local blocks; it invents neither zero usage nor partial totals. Cancellation can retain usage, but does not guarantee a final supplier receipt. Usage boundaries.

Owned timeout/replay errors preserve native usage before terminal failure restoration, including nonzero samples. A failed zero can still make the native ring show 0%; this is not proof of an empty request. Retry-entry times describe backoff, not the failed request's duration. These accounting fixes do not cure supplier HTTP 408 or change retry policy.

Compaction planning prices model-facing content and tools, not native IDs/provenance or opaque replay envelopes, avoiding metadata-driven exhaustion of the 16-call limit. The original messages/replay remain unchanged; final native admission still checks converted input. A typed capacity fallback keeps fixed prefixes and balanced tool units, never repeats an indivisible rejected input. This is conservative planning, not provider-exact token accounting.

Managed request admission preserves truthful input/output limits and native transactions. Automatic pressure uses the initiating Agent's actual bound compaction service; a preset without an engine cannot borrow global recovery. The separately selected recovery engine defaults to automatic segmented fallback for oversized summaries or an explicit summary context-limit failure. Fitting summaries stay native; timeout/408/auth/quota failures do not trigger segmentation. Up to 16 calls may add time and charges; cancellation or incomplete recovery never commits a partial summary. automaticRecovery: false disables this fallback; native auto: false still disables automatic compaction. Installation alone does not select the engine: follow the explicit same-scope configuration migration, preserving preset/custom-engine ownership and existing policies.

For continuing steps with a committed managed route and no pending model change, known input pressure is reduced before Core opens the next model attempt. Successful native reduction avoids an unsampled local-pressure attempt that would make whole-turn Usage unavailable. First steps, pending selections, new fixed-prefix growth and final hard-budget refusals retain existing admission; this does not repair historical totals or invent missing usage.

Visible-history continuation also covers this Session's native managed Responses compaction, including automatic summaries: no extra manual recovery command or failure-first retry is required when enabled. Old encrypted reasoning and embedded summaries are omitted from outgoing input; hidden context may be lost. Visible messages/tool pairs and source history remain intact, and only the native transaction commits a smaller checkpoint. A composer notice identifies degradation and distinguishes committed, failed and cancelled outcomes. When off, an exact replay-scope rejection offers the same loss-disclosed enable control; unknown failures do not authorize loss. /copilot-compact visible-history remains a one-time alternative through the selected recovery engine. Read recovery consent and limits; this does not enable an absent engine or repair capacity, quota or timeout failures.

Compaction feedback separates compaction completed and subsequent request succeeded during the existing eight-second result window. It does not turn ordinary request progress or absence of a fresh sample into a persistent composer warning. A later concrete sampling incident can appear independently and may include a labeled historical count, but never an occupancy percentage. The plugin sends no extra test request, adds no retry and leaves the native context ring, Usage accounting and expandable compaction history unchanged. See context evidence.

Running visible-history compaction notices stay visible. Confirmed success disappears eight seconds after first observation; settled failures, cancellation, unavailable status and enable prompts stay until Close (or the existing Cancel). Closing only hides this Session/operation/status notice, never changes consent, history or native proof, and never sends or retries. A bounded Client registration retains expiry/dismissal across incidental remounts and Session switches, not across teardown or eviction.

For exact verified 408 / user_request_timeout, diagnostics describe bounded request composition and observable timing, not a proven payload limit or root cause. Image counts include native Responses tool outputs; older stored diagnostics may have counted those images as residual history. Bytes are not tokens; timing is not upload duration. Small, image-free requests can also time out. Follow request-budget and timeout guidance; do not automatically trim history, disable proof, switch models or add retries.

The experimental github-copilot.responsesRequestCompression option is off by default. When explicitly enabled, it losslessly gzips only eligible managed HTTP Responses requests through the existing native Fetch seam. It starts at 256 KiB, skips compression work above 32 MiB and requires at least 5% and 4 KiB savings; every skip sends the original request. This changes prepared HTTP body bytes, not context/token admission. Custom Fetch, explicit auto/WebSocket and other protocols remain native, and a gzip rejection is never automatically resent uncompressed. On a verified 408, diagnostics distinguish original JSON composition from the prepared gzip body size; neither proves delivery or cures every timeout. Installation does not enable the option.

The same failure can include request-scoped native local body-write/header milestones, negotiated TLS ALPN and a Node writable-buffer count. These are local submission observations, not kernel ACK or supplier receipt; missing events do not prove an incomplete upload. Unsupported or ambiguous transports report unavailable evidence. No request contents are logged and no connection, proxy, dispatcher or retry is changed.

HTTP/SSE liveness separates five-minute byte idle from bounded ten-minute assistant-output silence by default. Consumer work is excluded; WebSocket/explicit auto stays native-only. This does not cure supplier HTTP 408s. Images are admitted against actual native-projected MIME evidence; the plugin does not own conversion or infer format support from filenames. Image compatibility.

Native rc.2 Auto authorization review requests temperature: 0. The plugin now automatically omits it only for the authenticated official Auto reviewer root on account-discovered managed OpenAI Responses; no switch is needed. Concurrent ordinary Chat, even on the same Session/model, retains its temperature. Public Loader callback identity and same-profile package ownership authenticate the caller; unknown identity, aliases, descendants, other protocols/providers and canonical Core-owned Copilot remain native, with bounded diagnostics for unqualified reviewer scope. No capability is inferred from supports.thinking. Frozen inputs, native account/cancellation guards, strict verdicts and fail-closed tool denial remain intact; no retries, permission changes or settings migration occur. The independent legacy github-copilot.responsesOmitTemperature override remains default false; explicit true still omits temperature from all managed Responses requests, not just review. See public scope and qualification limits.

Settings and troubleshooting

Configuration is under github-copilot. Credentials, endpoint definitions and a static model catalog are not plugin settings.

KeyDefaultPurpose
autoSemanticAssessmenttrueOne auxiliary assessment for locally unknown Auto tasks
followParentModelfalseSupported child following; explicit child selections win
excludedModelIds[]Exact exclusions through Model preferences
accountModelTtlMs8640000024h maximum metadata reuse, not token/proof validity
accountModelFailureCooldownMs3000005min non-forcing discovery failure cooldown
chatStreamLivenesstrueManaged HTTP/SSE byte observation
chatStreamIdleTimeoutMs300000Byte-idle deadline; separate from search
responsesRequestCompressionfalseExperimental lossless gzip for eligible managed HTTP Responses requests
responsesOmitTemperaturefalseExplicitly omit temperature from every managed Responses request
chatMaxRequestImageBytes20971520Native 20 MiB outgoing-image budget, not a total JSON limit
requestBudgetSafetyTokens4096Estimated input safety allowance
requestBudgetPressureRatio0.9Early pressure with supported enabled recovery
compactionReasoningprefer-lowSupported low effort only when none is resolved
enabled / probetrue / trueHosted search / capability proof
SymptomNext safe action
No sign-in controlsCheck active profile and loaded Host/Client; do not add a native provider merely to reveal login
Signed in, missing modelsInspect discovery diagnostics; use visible Retry or intentional Refresh, not repeated sign-in
Two Copilot groupsReview explicit migration; no automatic removal
Selection unknown/unavailableDistinguish lost evidence from read failure; Retry only rereads
Missing/cancelled Turn UsageRead usage limitations; do not infer zero billing
History fails on github-copilot/auto-model-decisionUse detached, check-first recovery; never replace live history without stopped writers and approval
AUTH, Responses replay-scope or TLS failureReview request diagnostics and usage TLS boundaries. After an exact scope rejection, Replay recovery shows the same persistent Session continuation policy: when off, disclose loss and offer Enable visible-history continuation or Cancel; when already on, show diagnostic guidance without repeated authorization. No duration or next-turn-only choice. Evidence expiry does not disable the policy. Use native Retry separately; no automatic send/retry or history rewrite, and not a 408 fix. Never reset credentials or disable TLS as an automatic repair.
Hosted search unavailableCheck account/protocol/probe diagnostics; a legacy override stays authoritative until explicitly reset

Confirmed account saves restore controls immediately, independently of quota loading. Changing only follow mode for the same account retains its attributed quota without another read. Switching accounts clears the old quota and loads the new snapshot without blocking further account edits; quota errors do not undo a confirmed selection.

The Credits account panel shows the current account and Switch account. Its dropdown lists only configured accounts, marks the effective account and scrolls long lists internally. Follow global default is a separate checkbox for the account only—not the global model choice: enabling it clears this Session's account override; disabling it fixes the current account. Choosing any account also fixes it, even if it is today's default. The choice affects subsequent turns in this Session, not a running turn or another Session. Both actions retain continuation confirmation and revision-checked saving. Account addition belongs only in Models, where one Manage disclosure contains account management and shared model preferences. Models retains Add in its dropdown footer without selecting the new account, plus guarded local removal and reauthorization. Neither surface has account search. Exact-ID exclusions are shared across accounts; availability is account-specific. See the approved experience and interactive mock.

Visible-history continuation has two controls: Manage → New Session continuation default sets what eligible new Sessions inherit; Credits → Visible-history continuation → Session policy controls the current Session. The initial default-on epoch is recorded at first successful activation. Only new, unseeded Sessions created after that epoch inherit it; existing, seeded/forked, or unknown histories are not enrolled retroactively. Changing the global default affects future Sessions only.

The name “New Session” describes default inheritance, not a one-message feature: an enabled Session policy is frozen at admission for each subsequent managed Copilot turn and also governs that Session's managed native compaction summaries. For an existing eligible Session, select the managed Copilot model, open the composer Credits/usage pill, expand Visible-history continuation, then choose On in Session policy. This control appears only for an open Session using the managed account-discovered route; it is not shown for the canonical/native route. The loss disclosure is shown before the choice. Enabling is explicit consent to omit prior encrypted reasoning and embedded summaries, even on the same account; hidden details may be lost, while visible messages, tool relations and source history remain. The policy persists across account switches and restarts until changed. It takes effect on the next turn; an already admitted turn keeps its captured policy. With continuation off, switching to a different account offers persistent enable, keep off or cancel—there is no next-turn-only choice. /copilot-compact visible-history is a separate one-time operation through the selected recovery engine, not the persistent Session setting. Neither path auto-sends/retries or cures quota/context limits; exact replay failures use the same persistent Session policy and require a separate native retry. The pinned Core lacks a public Models deep link, so Chat omits the nonfunctional management entry.

Context evidence and Replay recovery use compact, centered notices bounded by the native composer width. Model/item counts and status refresh live in collapsed technical details; loss consent remains explicit. Context sampling warns only for a concrete incident, can be dismissed for that Session/incident, and never asserts the native meter's current value; native statistics stay unchanged. Switching accounts does not make old encrypted reasoning portable. The concise scope error points to explicit recovery or a new conversation; bounded, sanitized dispatch counts stay in Host diagnostics, not the main error. Authorized means permission is ready, not that a message was sent or recovery succeeded.

Ownership and further reading

DSH Core owns Sessions, tools, sandboxing, attachments, native accounting and other providers. llm-pi-ai owns OAuth, token exchange/refresh and normal model transport. This plugin composes the published adapter with authenticated account metadata; new supported account model IDs need no name-based routing patch. Credentials stay Host-only: llm-pi-ai/github-copilot is the canonical compatibility record; additional accounts are independently authorized plugin-owned records in the same DSH credentials service, never copied grants.

Public APIs cannot replace Core Edit/Delete, restructure its flat picker or make native Add a single-route enforcement mechanism. Retired Model roles remain compatibility-only. Fixes must stay plugin-only.

GuideScope
Compatibility acceptanceMetadata, reasoning, replay and public-interface limits
Current official-first reviewExact rc.2 seams and retained gaps
MigrationFresh read-only readiness and explicit config-only maintenance
DistributionSame-byte GitHub/npm publication and qualified installation
Agent guide, contributingOwners, task plans, gates and delivery policy

Version history belongs in CHANGELOG.md and immutable Releases, not the setup instructions. deployment-baseline.json retains historical pins without admitting them as current support.

Build and verify

Use Node 24 LTS and the exact pnpm version in package.json; runtime Node must be >=22.19.0.

pnpm install --frozen-lockfile
pnpm verify
pnpm pack --pack-destination artifacts
pnpm verify:tarball -- artifacts/dsh-github-copilot-<package-version>.tgz

pnpm verify covers contracts, types, baseline, build, tests and built entry smoke. Required CI targets unchanged official rc.2 source and published artifacts on Windows/Linux. Passing synthetic tests does not prove live account/model/search behavior.

Agents start with node scripts/agent.mjs describe --json, doctor --json and plan <task> --json; plans are unexecuted arguments, not action approval. Follow AGENTS.md for the full change/release policy. Important updates require protected merge and verified dual-channel publication; documentation-only work does not release by default. Profile installation, sign-out and session-interrupting restart need separate authorization.

Commit attribution uses Assisted-by with the actual tool, never the model provider or an unverified collaborator identity.

Release and checksum verification

GitHub Releases and npm distribute the same original verified tarball. Pin a version; verify Release SHA-256 or npm dist.integrity. Never repack an immutable release or move/reuse its tag.

curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.1/dsh-github-copilot-0.4.1.tgz
curl -LO https://github.com/cloga/dsh-github-copilot/releases/download/v0.4.1/SHA256SUMS
sha256sum --check SHA256SUMS
$expected = (Get-Content .\SHA256SUMS).Split()[0]
$actual = (Get-FileHash .\dsh-github-copilot-0.4.1.tgz -Algorithm SHA256).Hash.ToLowerInvariant()
if ($actual -cne $expected) { throw 'Release checksum mismatch' }

Checksums detect corruption/drift; protected workflows and repository controls establish publisher provenance. Report vulnerabilities privately through SECURITY.md.

providers[]Optional explicit search route allowlist
includeSources / stripServerToolstrue / trueInline citations / hosted-tool schema handling
idleTimeoutMs / probeTimeoutMs300000 / 30000Search request / probe deadlines