首页/新闻资讯/正文详情

如何写出稳如磐石的插件:DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线

发布时间:2026/9/26 10:20:37 来源:云帆数科 栏目:资讯中心
如何写出稳如磐石的插件:DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线
如何写出稳如磐石的插件DSH-better-sidebar的CI挂载冒烟、消费方类型守卫与npm发版流水线【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebarDSH-better-sidebar是面向 DSH 的开放侧边栏底座内置文件渲染编辑、终端、侧边对话、Git、子代理页面并支持三方扩展通过ctx.betterSidebar注册新的侧边栏页面。插件的稳不只靠本地测试——本文拆解它如何用CI 挂载冒烟、消费方类型守卫与npm 发版流水线三道工程门禁保证打包产物挂载不崩溃、对外类型契约不腐化、发版可信可追溯。先搞清楚插件的稳到底稳在哪插件不是独立应用而是挂载在宿主DSH上运行的扩展。风险点集中在三处门禁守护什么关键文件️ CI 挂载冒烟npm 打包产物在真实 DSH 上挂载后不崩溃scripts/e2e-mount.sh️ 消费方类型守卫浏览器消费方能正确使用全部公开类型scripts/check-consumer-types.sh npm 发版流水线版本号、门禁顺序、来源溯源全部可信.github/workflows/release.yml本地pnpm test跑的是源码但用户装进 profile 的是 tarball——打包产物与源码之间隔着构建、依赖解析、宿主挂载三层鸿沟。DSH-better-sidebar 的底座能力如 Git 面板的仓库/分支选择就经受过这种真机验证门禁一CI 挂载冒烟——验证包而不是源码冒烟流水线 scripts/e2e-mount.sh 分三步全程模拟真实用户路径打包pnpm build pnpm pack产出与 npm 发布一致的 tarball真实挂载用官方 CLI 把 tarball 装进全新的一次性 scratch profile与用户dsh plugin add同一通道并校验挂载确实注册成功无头渲染启动真实dsh webPlaywright Chromium 打开页面——断言侧边栏外壳挂载、无错误条、无 pageerror再逐个打开内置 tab 类型含终端的懒加载 chunk经文件树打开 seed 文件强制加载编辑器 chunktests/e2e/mount.e2e.ts。几个值得抄的设计细节隔离scratch home 每次全新创建、trap 兜底清理绝不触碰真实~/.dsh️命名双保险e2e 用例统一命名*.e2e.tsvitest 侧再exclude一次防止单测误收整条浏览器链路确定性playwright.config.ts 设retries: 0、单 worker、单浏览器——冒烟就是崩溃探针重试会掩盖回归真机教训写进仓库规则钉版必须是已完整发布的版本、必要时加NODE_OPTIONS--max-old-space-size4096防 OOM、不要加--legacy-peer-deps它会跳过全局安装必须提供的 peerCLI 直接报模块缺失。这些踩坑-修复记录沉淀在 AGENTS.md 第 2 节后来者不用重复踩。门禁二消费方类型守卫——类型正确也是可测试的承诺插件对外暴露registerTab/registerFileViewer等注册 API28 生态插件都是类型消费方。我仓库里 tsc 通过不等于消费方也能用——常见问题是声明文件悄悄引入了types/node或只在本仓库依赖树里能解析。scripts/check-consumer-types.sh 的解法很直接构造一个最小浏览器消费方——无types/node、skipLibCheck: false——对构建出的lib/types做类型检查两遍跑法第一遍skipLibCheck: true模拟真实消费方体验必须完全干净第二遍skipLibCheck: false严格模式——仅当错误指向本包自己的声明面时才判失败上游依赖的存量噪音被过滤不放大误报。这样类型契约从口头约定变成了 CI 里的一条绿线任何让浏览器消费方编译失败的改动都会在 CI 校验作业 中被拦下校验顺序与发版流水线完全一致typecheck → lint → test → build → check:consumer-types。门禁三npm 发版流水线——零 token 的可信发布.github/workflows/release.yml 由 GitHub ReleasetagvX.Y.Z触发流程四步前置校验tag 必须与package.json版本精确匹配不匹配直接失败全套门禁install → typecheck → lint → test → build → 消费方类型守卫可信发布pnpm publish --provenance --access public——认证走npm Trusted PublishingOIDC仓库里没有任何NPM_TOKEN机密产物自带来源溯源dist-tag 分流版本号含-预发布发到alpha标签稳定版才发latest——稳定用户永远不会被预发布版污染。需要演练又不想真发workflow_dispatchdry_runtrue会走完全部打包与校验但跳过 publish排错成本几乎为零。稳定性清单你可以直接抄走✅ 冒烟测打包产物而非源码pack → 官方安装通道 → 真实宿主 → 无头渲染断言✅ 对外类型面单独设一道浏览器消费方类型检查门禁✅ 发版流水线强制 tag 与版本一致、门禁顺序与 CI 对齐、OIDC 免 token 发布、预发布走独立 dist-tag✅ 用make check一条命令聚合本地门禁Makefiletypecheck → lint → build → test → check:consumer-typesmake mount一键跑真机冒烟✅ 踩坑结论写进仓库规则文档而不是留在 CI 的红色日志里。想给这个底座写插件完整接入参考Tab / FileViewer 全字段、声明式设置、皮肤契约见官方文档 docs/external-plugin-guide.md仓库开发规则与 CI 说明见 AGENTS.md。【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Vue DevTools 源码跳转失效?用 TaoToken 统一 Key 打通 Trae 编辑器配置
Vue DevTools 源码跳转失效?用 TaoToken 统一 Key 打通 Trae 编辑器配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:20:30

7 天 Token 有效,怎么让用户不再次输密码:Bangumi 的 OAuth 登录实现
7 天 Token 有效,怎么让用户不再次输密码:Bangumi 的 OAuth 登录实现

7 天 Token 有效,怎么让用户不再次输密码:Bangumi 的 OAuth 登录实现 【免费下载链接】Bangumi :electron: An unofficial https://bgm.tv ui first app client for Android and iOS, built with React Native. 一个无广告、以爱好为驱动、不以盈利为目的… · 2026/9/26 10:20:24

Apache JMeter HTML 报告中的 Flot 图表库:FAQ 核心问题与源码级实战解读
Apache JMeter HTML 报告中的 Flot 图表库:FAQ 核心问题与源码级实战解读

测试质量保障 【免费下载链接】jmeter Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services 项目地址: https://gitcode.com/gh_mirrors/jmeter1/jmeter 点击查看 免费下载 Apache JMeter 的 HTML… · 2026/9/26 10:20:24

从多模态融合到具身智能:VLA与World Model的技术路线图
从多模态融合到具身智能:VLA与World Model的技术路线图

多模态和具身智能这两个词,过去两年在各种技术峰会和投资路演里被反复咀嚼,但真正动手做过完整链路的人都知道,从"模型能看懂图"到"模型能在物理世界里干活",中间隔着的不是一代模型,而是好几层工… · 2026/9/26 10:51:01

OpenClaw 必装10个Skills实战:用TaoToken统一Key打通ClawHub智能体工作流
OpenClaw 必装10个Skills实战:用TaoToken统一Key打通ClawHub智能体工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:54

周红伟:Qwen3.5、GLM-5、MiniMax M2.5和Kimi K2.5四大开源模型编程能力实测,TaoToken统一Key接入对比
周红伟:Qwen3.5、GLM-5、MiniMax M2.5和Kimi K2.5四大开源模型编程能力实测,TaoToken统一Key接入对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:54

OpenClaw 与 Cursor 同日登陆手机:AI Agent 移动端配置 TaoToken 实战
OpenClaw 与 Cursor 同日登陆手机:AI Agent 移动端配置 TaoToken 实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:54

视频处理工具链实战:基于FFmpeg的探测、截帧与批量转码方案
视频处理工具链实战:基于FFmpeg的探测、截帧与批量转码方案

这两年做视频相关项目,无论是做内容分析、自动剪辑还是视频资源管理,我几乎每一轮都会碰同一个问题:视频拿在手里,到底怎么用?不是播放那种用,而是要编程化地解析它、抽取它、转换它、批量处理它。围绕这个… · 2026/9/26 10:50:54

GitHub Copilot X 编程助手配 TaoToken:settings.json 骨架与报错排查
GitHub Copilot X 编程助手配 TaoToken:settings.json 骨架与报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 10:50:48

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码