Skip to content

fix: plugin_check 发布规范——源码入口 / lib 布局 / prepack / files(issue #15) - #16

Merged
taekchef merged 1 commit into
mainfrom
fix/release-hygiene-plugin-check-issue15
Aug 15, 2026
Merged

fix: plugin_check 发布规范——源码入口 / lib 布局 / prepack / files(issue #15)#16
taekchef merged 1 commit into
mainfrom
fix/release-hygiene-plugin-check-issue15

Conversation

@taekchef

Copy link
Copy Markdown
Collaborator

Closes #15plugin_check 对 v0.8.4 的发布规范体检报 fail。

修了什么

  • src/index.ts 源码入口:作为 tool-bundle 的 canonical source entry 重导出 src/plugin/index。文件里那行 import type {} from '@deepseek-ai/dsh-client-runtime/client' 是刻意的:先引入 dsh client runtime 对 cordis Context 的全局增广再重导出,避免 TS 5.9 从根入口进入时增广顺序不稳定、导致 client 半区 ctx.sessions 误解析(这个坑实测可复现,加了 import 后消失)。
  • lib 布局对齐tsconfig.outDirlib/types 改为 lib,新增 declarationDir: "lib/types"——最终声明输出布局不变,但 outDir 与 main: lib/index.js 前缀一致,lib-layout-mismatch 消除。
  • tsdown 命名入口entry: { index: 'src/index.ts', invariant: 'src/plugin/invariant.ts' } + entryFileNames: '[name].js',发布布局保持 lib/index.js + lib/invariant.js 不变(已实测 lib 产物字节级不变)。
  • 显式 Node typestypes: ["node"] + devDependencies 补 @types/node,消除隐式全局类型依赖。
  • scripts.prepack:跨平台 node wrapper(scripts/prepack.mjs)在打包前强制重建 lib,并把构建输出导到 stderr——npm pack --json 的 stdout 必须保持纯 JSON,直接写 prepack: pnpm run build 会污染 pack gate。
  • files 增补 libsrctsconfig.jsontsdown.config.tsverify-pack.mjs 同步更新(require src/index.ts + tsconfig,src 从 forbidden 移到 required)。

已知未改(说明在 CHANGELOG)

  • plugin_check 的 org-name 政策不认 @omdsh-dev/*(只放行 @deepseek-ai/* / @dsh-external/* / dsh-*)。这是社区组织公开发布名,v0.8.0 就定下的,不能为过检查而破坏安装。建议向 plugin_check 上游申请放行 @omdsh-dev/*
  • missing-peer: cordis 是 checker 认旧 cordis 键名;本包实际依赖并声明 @deepseek-ai/cordis@^4.0.1,不加幻影 peer。

验证

  • pnpm run check 全绿:373 项(271 passed / 102 skipped)。
  • node scripts/verify-pack.mjs OK:tarball 1.24MB / unpacked 4.58MB / 91 files。
  • 本机 plugin_check3 errors / 4 warnings → 1 error / 1 warning,只剩上面两个非本仓库可修项。
  • 版本 0.8.5 + CHANGELOG。

…, files (issue #15)

Align the bundle with the tool-bundle contract: add src/index.ts, tsconfig outDir=lib + declarationDir=lib/types + types:["node"], @types/node, scripts.prepack, files lib/src/tsconfig, and update the pack gate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

发布规范:缺 src/tsconfig、prepack 脚本(plugin_check)

1 participant