release-skill 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.0",
12
+ "version": "0.7.1",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "defaultPrompt": [
21
21
  "Assess this project for release readiness.",
22
- "Prepare a release plan for version 0.7.0.",
22
+ "Prepare a release plan for version 0.7.1.",
23
23
  "Help me understand the release workflow."
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.7.1 locale=en baseline=sha256:9f86def686489f30d89bb67884dfd8c44ee1d48b5d0cf5efabba44f87998d7d4 -->
4
+ ## [0.7.1] - 2026-08-22
5
+
6
+ v0.7.1 fixes a leakage-scan false positive that blocked generated JSON Schema validators containing POSIX-like JSON Pointer segments.
7
+
8
+ ### Fixed
9
+
10
+ - **Context-aware POSIX path detection**: the snapshot leakage scanner no longer treats JSON Pointer property segments or ordinary URL paths as machine-local absolute paths. Concrete Linux root, home, and user-home paths remain release-blocking findings.
11
+ <!-- release-skill:changelog:end version=0.7.1 locale=en -->
12
+
13
+
3
14
  <!-- release-skill:changelog:start version=0.7.0 locale=en baseline=sha256:a4d6989dd03d562c498344baf0dc1d0e1d0a225aecf0d48a7c4f9850c495b0ef -->
4
15
  ## [0.7.0] - 2026-08-22
5
16
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.0 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -114,7 +114,7 @@ tag pinned to the exact version (never the bare repository URL, which installs
114
114
  the latest release or default branch), confirm the trust prompt, then reload:
115
115
 
116
116
  ```
117
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.0
117
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.1
118
118
  /plugins reload
119
119
  ```
120
120
 
package/INSTALL.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.0 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -104,7 +104,7 @@ Kimi Code 有交互式插件市场,但**没有可脚本化的非交互安装
104
104
  (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
105
105
 
106
106
  ```
107
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.0
107
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.7.1
108
108
  /plugins reload
109
109
  ```
110
110
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](README.zh-CN.md) · Installation: [English](INSTALL.md) / [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.0 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
6
6
  Release preparation for Claude Code, CodeBuddy, WorkBuddy, Codex, and Kimi Code, with human-edited files kept intact.
7
7
 
8
8
  release-skill helps a maintainer answer three questions: what will be released,
@@ -14,31 +14,17 @@ Setup surfaces only the deterministic `compactSummary` review view; the full
14
14
  report stays in a temporary session directory.
15
15
 
16
16
  <!-- release-skill:managed:start id=latest-release -->
17
- **0.7.0** (2026-08-22)
17
+ **0.7.1** (2026-08-22)
18
18
 
19
- v0.7.0 closes the release architecture gaps identified after v0.6.3. Private postPublish inputs are now frozen into the approved plan, checkpoint approvals must be consumed from their authoritative immutable path, and downstream projection reuses the published Skill Family Foundation 0.8.0 contracts instead of workspace-local substitutes.
20
-
21
- **Added**
22
-
23
- - **Frozen postPublish execution bundles**: release units can declare private `executionFiles`; prepare freezes their exact bytes and resource closure into the immutable plan, and distribute or postVerify installs only that verified bundle into the detached execution worktree. Live workspace edits after approval cannot change the executed command.
24
- - **Authoritative checkpoint approval consumption**: postPublish approvals are accepted only from the canonical path derived from the plan digest and hook id. The consumer rechecks the plan digest, approval digest, strict file bytes, and symlink-free authority chain before any hook or external write.
25
- - **Foundation-managed downstream projection**: postPublish payload projection now uses the published `skill-family-engineering-kit` projection compiler and runner, with strict reads and resource-closure verification from `skill-family-harness-node`.
26
-
27
- **Changed**
28
-
29
- - **Separated workspace roles**: preset execution now distinguishes the maintainer's `releaseWorkspaceRoot` from the detached `executionWorktreeRoot`; ambiguous legacy root fallback is rejected, and presets cannot target the release workspace itself.
30
- - **Exact Foundation 0.8.0 baseline**: `skill-family-contracts`, `skill-family-harness-node`, and `skill-family-engineering-kit` are pinned to 0.8.0. The package runtime is pinned to Node.js `>=22.22.2 <23`.
31
- - **Explicit distribute authority**: `distribute` requires the plan-bound release approval record; postPublish hook approvals remain separate checkpoint records.
19
+ v0.7.1 fixes a leakage-scan false positive that blocked generated JSON Schema validators containing POSIX-like JSON Pointer segments.
32
20
 
33
21
  **Fixed**
34
22
 
35
- - **Credential-bearing Git URL rejection and redaction**: configured Git remotes reject URL userinfo at schema and runtime boundaries. Errors, evidence, and summaries pass through the shared redaction path so embedded credentials are not persisted.
36
- - **Fail-closed production gates**: `NODE_TEST_CONTEXT` can no longer exempt derived-artifact gates, adapter behavior is explicit for each plan version, and Node.js 22 test-reporter output is accepted without weakening assertions.
37
- - **Public packaging and license closure**: the workspace documentation and public package now agree on Apache-2.0, and the public bundle carries the required Apache-2.0 and MIT license texts.
23
+ - **Context-aware POSIX path detection**: the snapshot leakage scanner no longer treats JSON Pointer property segments or ordinary URL paths as machine-local absolute paths. Concrete Linux root, home, and user-home paths remain release-blocking findings.
38
24
  <!-- release-skill:managed:end id=latest-release -->
39
25
 
40
26
  <!-- release-skill:capability:external-write-boundary -->
41
- > **Current boundary:** v0.7.0 is the current source candidate; v0.6.3 remains
27
+ > **Current boundary:** v0.7.1 is the current source candidate; v0.6.3 remains
42
28
  > the latest published release. v0.4.1 was an earlier published milestone;
43
29
  > v0.2.2 previously held published status before the platform verification
44
30
  > convergence fix was added.
@@ -58,7 +44,7 @@ v0.7.0 closes the release architecture gaps identified after v0.6.3. Private pos
58
44
  > publish global preflight.
59
45
 
60
46
  <!-- release-skill:capability:safe-first-command -->
61
- > **Production path verified since the v0.1.1 milestone; v0.7.0 is the current
47
+ > **Production path verified since the v0.1.1 milestone; v0.7.1 is the current
62
48
  > source candidate and v0.6.3 is the latest published release.** The npm-installed CLI is the supported user entry. Source checkout
63
49
  > is the development/contributor fallback.
64
50
  >
package/README.zh-CN.md CHANGED
@@ -2,37 +2,23 @@
2
2
 
3
3
  [English](README.md) · 安装指南:[中文](INSTALL.zh-CN.md) / [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.7.0 -->
5
+ <!-- release-skill:release-version: 0.7.1 -->
6
6
  面向 Claude Code、CodeBuddy、WorkBuddy、Codex 和 Kimi Code 的发布准备工具,完整保留人工维护的文件内容。
7
7
 
8
8
  release-skill 帮助维护者回答三个问题:准备发布什么、还有哪些检查未通过、最终发布的内容是什么。它不重新生成、也不回写项目源文件。`prepare` 把每个配置的公开文件复制到隔离快照并验证字节——先冻结并供人工审阅,再从同一份冻结产物发布。`setup` 只显示确定性的 `compactSummary` 审阅视图,完整报告保留在临时会话目录中。
9
9
 
10
10
  <!-- release-skill:managed:start id=latest-release -->
11
- **0.7.0** (2026-08-22)
11
+ **0.7.1** (2026-08-22)
12
12
 
13
- v0.7.0 收口了 v0.6.3 之后识别出的发布架构缺口:postPublish 私有执行输入随批准计划冻结,检查点批准只能从不可变权威路径消费,下游投影直接复用已发布的 Skill Family Foundation 0.8.0 合同,不再依赖工作区本地替代实现。
14
-
15
- **新增**
16
-
17
- - **冻结 postPublish 执行包**:发布单元可以声明私有 `executionFiles`;prepare 把精确字节及资源闭包冻结进不可变计划,distribute 或 postVerify 只把复验通过的执行包安装到隔离执行工作树。批准后的实时工作区改动无法改变实际执行命令。
18
- - **从权威路径消费检查点批准**:postPublish 批准只接受由计划摘要和 hook id 推导出的规范路径。任何 hook 或外部写入开始前,消费端都会复核计划摘要、批准摘要、严格读取的文件字节,以及整条权威路径不存在符号链接。
19
- - **由 Foundation 托管下游投影**:postPublish 载荷投影改用已发布的 `skill-family-engineering-kit` 投影编译器和运行器,并通过 `skill-family-harness-node` 完成严格读取与资源闭包复验。
20
-
21
- **变更**
22
-
23
- - **区分两类工作区**:预设执行明确区分维护者的 `releaseWorkspaceRoot` 与隔离的 `executionWorktreeRoot`;拒绝含义模糊的旧 `root` 回退,也不允许预设把发布工作区自身作为目标。
24
- - **精确采用 Foundation 0.8.0**:`skill-family-contracts`、`skill-family-harness-node` 与 `skill-family-engineering-kit` 均钉扎 0.8.0;包运行时钉扎 Node.js `>=22.22.2 <23`。
25
- - **显式 distribute 权威**:`distribute` 必须取得与计划绑定的发布批准记录;postPublish hook 批准继续使用独立的检查点记录。
13
+ v0.7.1 修复了泄漏扫描误报:生成的 JSON Schema 校验器包含形似 POSIX 路径的 JSON Pointer 时,不再被错误阻断。
26
14
 
27
15
  **修复**
28
16
 
29
- - **拒绝并脱敏携带凭证的 Git URL**:配置中的 Git 远端在 schema 与运行时两层拒绝 URL userinfo。错误、证据和摘要统一经过共享脱敏路径,避免持久化嵌入式凭证。
30
- - **生产门禁失败关闭**:`NODE_TEST_CONTEXT` 不再能够豁免派生产物门禁;adapter 按计划版本明确处理语义;兼容 Node.js 22 的测试报告格式,同时不放宽断言。
31
- - **公开打包与许可证收口**:工作区说明与公开包统一采用 Apache-2.0,公开 bundle 同时携带所需的 Apache-2.0 与 MIT 许可证正文。
17
+ - **按上下文识别 POSIX 路径**:快照泄漏扫描不再把 JSON Pointer 属性片段或普通 URL 路径当成本机绝对路径;真实的 Linux root、home 和用户主目录路径仍会阻断发布。
32
18
  <!-- release-skill:managed:end id=latest-release -->
33
19
 
34
20
  <!-- release-skill:capability:external-write-boundary -->
35
- > **当前边界:** v0.7.0 是当前源码候选,v0.6.3 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
21
+ > **当前边界:** v0.7.1 是当前源码候选,v0.6.3 是最新已发布版本。v0.4.1 是更早的已发布里程碑(v0.2.2 曾处于已发布状态,后因平台验证收敛修复而更新)。
36
22
  > v0.1.1 已完成 GitHub 与 npm 的
37
23
  > 真实生产发布,是首次生产验证的历史里程碑,并从冻结 Git ref 完成精确 npm
38
24
  > 安装及 Claude/Codex 消费者安装验证;"当前发布版本"与"首次生产验证里程碑"
@@ -45,7 +31,7 @@ v0.7.0 收口了 v0.6.3 之后识别出的发布架构缺口:postPublish 私
45
31
  > 远端唯一性检查在 `publish` 全局预检执行。
46
32
 
47
33
  <!-- release-skill:capability:safe-first-command -->
48
- > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.0 是当前源码候选,v0.6.3 是最新已发布版本。**
34
+ > **生产路径自 v0.1.1 里程碑起已完成真实生产验证;v0.7.1 是当前源码候选,v0.6.3 是最新已发布版本。**
49
35
  > npm 安装的 CLI 是受支持的用户入口;源码 checkout 保留为开发/贡献者路径。
50
36
  >
51
37
  > **第一条命令:**
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "name": "release-skill",
11
11
  "source": "./",
12
- "version": "0.7.0",
12
+ "version": "0.7.1",
13
13
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
14
14
  "author": {
15
15
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.0"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.1"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "f8978e3fb25219e3f69c7d483818837bb3443e9db587b030cfe6d8030e4995eb";
14
+ const __bundleSourceDigest = "71df85a039086a78d5b4a7586cd88bcd7b2887dca8d07341be0bc6463f26d005";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -32285,7 +32285,7 @@ var init_report = __esm({
32285
32285
  init_closure();
32286
32286
  init_errors2();
32287
32287
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.0" });
32288
+ PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.1" });
32289
32289
  REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32290
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32291
  EXECUTION_STATUSES = Object.freeze([
@@ -46063,8 +46063,12 @@ var init_scan = __esm({
46063
46063
  ]);
46064
46064
  BINARY_PROBE_SIZE = 8192;
46065
46065
  ABSOLUTE_PATH_PATTERNS = [
46066
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46066
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
+ // A JSON Pointer may contain a property segment named "root".
46068
+ // Require a path boundary before that segment so it is not mistaken for a
46069
+ // Linux absolute path, while preserving real root-home paths after
46070
+ // whitespace or punctuation.
46071
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46068
46072
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
46069
46073
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/
46070
46074
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "defaultPrompt": [
21
21
  "Assess this project for release readiness.",
22
- "Prepare a release plan for version 0.7.0.",
22
+ "Prepare a release plan for version 0.7.1.",
23
23
  "Help me understand the release workflow."
24
24
  ]
25
25
  }
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.0"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.1"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "f8978e3fb25219e3f69c7d483818837bb3443e9db587b030cfe6d8030e4995eb";
14
+ const __bundleSourceDigest = "71df85a039086a78d5b4a7586cd88bcd7b2887dca8d07341be0bc6463f26d005";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -32285,7 +32285,7 @@ var init_report = __esm({
32285
32285
  init_closure();
32286
32286
  init_errors2();
32287
32287
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.0" });
32288
+ PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.1" });
32289
32289
  REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32290
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32291
  EXECUTION_STATUSES = Object.freeze([
@@ -46063,8 +46063,12 @@ var init_scan = __esm({
46063
46063
  ]);
46064
46064
  BINARY_PROBE_SIZE = 8192;
46065
46065
  ABSOLUTE_PATH_PATTERNS = [
46066
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46066
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
+ // A JSON Pointer may contain a property segment named "root".
46068
+ // Require a path boundary before that segment so it is not mistaken for a
46069
+ // Linux absolute path, while preserving real root-home paths after
46070
+ // whitespace or punctuation.
46071
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46068
46072
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
46069
46073
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/
46070
46074
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.0"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.1"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "f8978e3fb25219e3f69c7d483818837bb3443e9db587b030cfe6d8030e4995eb";
14
+ const __bundleSourceDigest = "71df85a039086a78d5b4a7586cd88bcd7b2887dca8d07341be0bc6463f26d005";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -32285,7 +32285,7 @@ var init_report = __esm({
32285
32285
  init_closure();
32286
32286
  init_errors2();
32287
32287
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.0" });
32288
+ PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.1" });
32289
32289
  REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32290
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32291
  EXECUTION_STATUSES = Object.freeze([
@@ -46063,8 +46063,12 @@ var init_scan = __esm({
46063
46063
  ]);
46064
46064
  BINARY_PROBE_SIZE = 8192;
46065
46065
  ABSOLUTE_PATH_PATTERNS = [
46066
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46066
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
+ // A JSON Pointer may contain a property segment named "root".
46068
+ // Require a path boundary before that segment so it is not mistaken for a
46069
+ // Linux absolute path, while preserving real root-home paths after
46070
+ // whitespace or punctuation.
46071
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46068
46072
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
46069
46073
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/
46070
46074
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.0"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.1"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "f8978e3fb25219e3f69c7d483818837bb3443e9db587b030cfe6d8030e4995eb";
14
+ const __bundleSourceDigest = "71df85a039086a78d5b4a7586cd88bcd7b2887dca8d07341be0bc6463f26d005";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -32285,7 +32285,7 @@ var init_report = __esm({
32285
32285
  init_closure();
32286
32286
  init_errors2();
32287
32287
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.0" });
32288
+ PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.1" });
32289
32289
  REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32290
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32291
  EXECUTION_STATUSES = Object.freeze([
@@ -46063,8 +46063,12 @@ var init_scan = __esm({
46063
46063
  ]);
46064
46064
  BINARY_PROBE_SIZE = 8192;
46065
46065
  ABSOLUTE_PATH_PATTERNS = [
46066
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46066
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
+ // A JSON Pointer may contain a property segment named "root".
46068
+ // Require a path boundary before that segment so it is not mistaken for a
46069
+ // Linux absolute path, while preserving real root-home paths after
46070
+ // whitespace or punctuation.
46071
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46068
46072
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
46069
46073
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/
46070
46074
  ];
@@ -9,9 +9,9 @@ const __bundlePkgRoot = __bundleResolve(__bundleDirname(__bundleFileURLToPath(im
9
9
  // Provide a real require() for CJS packages bundled into ESM (e.g. yaml, ajv).
10
10
  const __bundleRealRequire = __bundleCreateRequire(import.meta.url);
11
11
  // Package identity injected at build time — closure-independent --version probe.
12
- const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.0"});
12
+ const __bundlePkg = Object.freeze({"name":"release-skill","version":"0.7.1"});
13
13
  // Build-time source digest for the BUNDLE_STALE freshness gate (see above).
14
- const __bundleSourceDigest = "f8978e3fb25219e3f69c7d483818837bb3443e9db587b030cfe6d8030e4995eb";
14
+ const __bundleSourceDigest = "71df85a039086a78d5b4a7586cd88bcd7b2887dca8d07341be0bc6463f26d005";
15
15
 
16
16
  var __create = Object.create;
17
17
  var __defProp = Object.defineProperty;
@@ -32285,7 +32285,7 @@ var init_report = __esm({
32285
32285
  init_closure();
32286
32286
  init_errors2();
32287
32287
  init_validation();
32288
- PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.0" });
32288
+ PACKAGE_META = Object.freeze({ "name": "release-skill", "version": "0.7.1" });
32289
32289
  REPORT_RENDERER_VERSION = PACKAGE_META.version;
32290
32290
  SUPPORTED_REPORT_LOCALES = Object.freeze(["zh-CN", "en-US"]);
32291
32291
  EXECUTION_STATUSES = Object.freeze([
@@ -46063,8 +46063,12 @@ var init_scan = __esm({
46063
46063
  ]);
46064
46064
  BINARY_PROBE_SIZE = 8192;
46065
46065
  ABSOLUTE_PATH_PATTERNS = [
46066
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46066
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46067
+ // A JSON Pointer may contain a property segment named "root".
46068
+ // Require a path boundary before that segment so it is not mistaken for a
46069
+ // Linux absolute path, while preserving real root-home paths after
46070
+ // whitespace or punctuation.
46071
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
46068
46072
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
46069
46073
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/
46070
46074
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -2,11 +2,11 @@
2
2
  "schemaVersion": "1.0.0",
3
3
  "platformId": "release-skill",
4
4
  "platformName": "release-skill Plugin Platform",
5
- "version": "0.7.0",
5
+ "version": "0.7.1",
6
6
  "logicalRoot": "skills-src/",
7
7
  "logicalRootDigest": "3767fc36f42ca561f5e839cea7b7e5bc16d08c47867b5bd6086f25efd0cb0f06",
8
8
  "projectionDigest": "419f7f9601015459956e10aae74f42240ab2ac248238ff7494f3e761643d1749",
9
- "projectionId": "release-skill:platform:0.7.0",
9
+ "projectionId": "release-skill:platform:0.7.1",
10
10
  "manifestRequired": true,
11
11
  "projectionSources": {
12
12
  "skills-src-root": {
@@ -48,8 +48,12 @@ const BINARY_PROBE_SIZE = 8192;
48
48
  * such as `/Users/...` alone.
49
49
  */
50
50
  const ABSOLUTE_PATH_PATTERNS = [
51
- /\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
52
- /\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
51
+ /(?<![A-Za-z0-9_#])\/(?:Users|home)\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
52
+ // A JSON Pointer may contain a property segment named "root".
53
+ // Require a path boundary before that segment so it is not mistaken for a
54
+ // Linux absolute path, while preserving real root-home paths after
55
+ // whitespace or punctuation.
56
+ /(?<![A-Za-z0-9_#])\/root\/[A-Za-z0-9_-][A-Za-z0-9._-]*(?:\/[^\s"'`<>]*)?/,
53
57
  /\/tmp\/(?=[^\s"'`<>]*(?:secret|token|credential|password|private[-_]?key|id_rsa))[^\s"'`<>]+/i,
54
58
  /(?:^|[^A-Za-z0-9_])[A-Za-z]:\\[A-Za-z0-9_$-][A-Za-z0-9._$-]*(?:\\[^\s"'`<>]*)?/,
55
59
  ];