Repository navigation
Releases
Releases · ZIye1208/dsh-github-mcp-hint
v0.3.1
变更
- 恢复面板可视化仓库列表:输入 GitHub 用户名即可视化展示该用户公开仓库的 ⭐星 / 🍴fork / 语言,点击跳转仓库。(上一版 v0.3.0 为消除 403 把面板改成了纯引导,反而让面板不可用,本版恢复。)
- 本地缓存降频:仓库统计结果存
localStorage,30 分钟内不重复请求,几乎不消耗 GitHub 未认证(每 IP 每小时 60 次)的配额,从源头避免触发 403/限流。 - 失败回退缓存:遇到 403 / 429 / 网络失败时回退展示上次缓存数据并标注“展示缓存”,而不是空白或报错。
- 保留宿主侧带 token 工具:
gh_repo_stats/gh_current_user继续负责克隆量、含私有仓库等需鉴权数据;token 始终只在 Node 宿主侧,不在浏览器。 - 文档与描述同步:更新
package.jsondescription、README.md/README.en.md(功能说明、防 403 原理、更新日志)。版本0.3.0 -> 0.3.1。
说明
- 经源码核实,DSH 无「宿主带 token 拉取 → 推给前端面板」的干净通道:
sessions.provide是浏览器端方法、宿主进程调不到;session projection 只能折叠会话事件、无法承载外部 fetch 数据,且设置面板(settings.plugins.tab)也拿不到useProjection;host.call对 bundled 插件被禁用。 - 因此采用「前端直连公开 API + 本地缓存降频 + 失败回退缓存」这一现实可行的可视化方案:公开仓库的星/fork 无需 token 即可读取,配合 30 分钟缓存几乎不消耗配额,403 基本不再出现。
- 需鉴权的数据(克隆量、私有仓库)请用宿主侧带 token 的
gh_repo_stats/gh_current_user在对话里获取。
v0.3.0
变更
- 彻底根治面板 403:移除浏览器侧对
api.github.com/users/{user}/repos的未认证直连(未认证请求受 GitHub 每 IP 每小时 60 次限流,超限返回 403,与 DSH 宿主共享 IP 极易耗尽——即『昨天正常、今天 403』的根因)。 - 前端不再直连任何 GitHub API:
lib/client.js删除loadStats/fetch/用户名输入/localStorage逻辑,改为纯示例提示 + 引导;仓库统计全部改走宿主侧带 token 的工具,前端零未认证请求。 lib/index.mjs增强:fetchJson区分429(限流)/401(token 无效或过期)/403(缺 scope 或账号受限),错误提示更语义化。- 仓库统计改为对话工具:引导用户在对话里调用宿主侧带 token 的
gh_repo_stats/gh_current_user(限额 5000/小时、持久),浏览器不再承担拉取公开仓库数据。 - 文档与描述同步:更新
package.jsondescription、README.md/README.en.md(功能说明、移除浏览器直连的原因、更新日志)。版本0.2.0 -> 0.3.0。
说明
- 出于安全考虑,token 只保留在 Node 宿主侧,绝不下发到浏览器(浏览器持有 token 会暴露凭证)。
- 浏览器端(面板)只做示例提示与引导;所有需鉴权的仓库数据(星/fork/克隆量)一律通过宿主侧模型工具
gh_repo_stats/gh_current_user在对话里提供。 - 若
mcp__github__*工具未出现:先在对话里运行github_token_status确认 token,再重启 DSH。
v0.2.0
变更
gh_repo_stats增强:并发拉取克隆量(限 5 并发,降低限流风险);标注「共 N 个 / 仅列前 30」;区分 429 限流 / 无权限 / 无数据;错误信息更友好(提示 token 无效)。- 新增
gh_current_user工具:返回当前 token 对应的 GitHub 账号 login,便于在面板手动查询时填入。 - 示例池标注写操作:30 条逐条标注
w:true,写/破坏性操作在 UI 显示⚠️ 。 - 面板状态增强:
mcp__github__*未出现时给出排查指引(先github_token_status再重启)。 - 剪贴板兜底:增加
document.execCommand('copy'),非 https / iframe 环境也能复制。 - 用户名占位:输入框提示可用
gh_current_user查询当前账号。
说明
- 浏览器端无法安全读取宿主 token(避免凭证泄露),因此「当前账号」通过宿主侧模型工具提供。