@planu/cli 5.3.21 → 5.3.22

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [5.3.22] - 2026-08-13
2
+
3
+ ### Bug Fixes
4
+ - fix(spec-1523): bind isolated rebuild sidecar provenance to the build-source commit
5
+ - fix(spec-1521): pin native provenance across the lockfile-integrity amend
6
+ - fix(spec-1519): bound acknowledgement latency at a tail ceiling, not a bare SLO constant
7
+ - fix(spec-1518): scope PLANU_RELEASE_MODE out of the source-quality phase
8
+ - fix(spec-1518): scope release-build env out of the source-quality phase
9
+ - fix(deps): drop vulnerable extract-zip by forcing puppeteer-core 25
10
+ - fix(spec-1506,spec-1507): align release invariant and lint budget with shipped behaviour
11
+ - fix(spec-1506,spec-1507): correct native lockfile integrity and uncache every gate
12
+
13
+
1
14
  ## [5.3.21] - 2026-08-12
2
15
 
3
16
  ### Bug Fixes
@@ -14,7 +14,7 @@
14
14
  "maximumOutputBufferBytes": 67108864
15
15
  },
16
16
  "lintValidation": {
17
- "defaultTimeoutMs": 180000,
17
+ "defaultTimeoutMs": 420000,
18
18
  "minimumTimeoutMs": 1000,
19
19
  "maximumTimeoutMs": 1800000
20
20
  },
@@ -28,8 +28,8 @@
28
28
  },
29
29
  "validation": {
30
30
  "defaultDeadlineMs": 1800000,
31
- "durableLintTimeoutMs": 170000,
32
- "perGateTimeoutMs": 180000,
31
+ "durableLintTimeoutMs": 420000,
32
+ "perGateTimeoutMs": 450000,
33
33
  "complianceCommandTimeoutMs": 900000,
34
34
  "noProgressTimeoutMs": 960000,
35
35
  "submissionLockWaitMs": 180,
@@ -221,6 +221,7 @@ export async function detectTestCommand(projectPath, packageManager) {
221
221
  }
222
222
  return null;
223
223
  }
224
+ const LINT_SCRIPT_PREFERENCE = ['lint:gate', 'lint:ci', 'lint'];
224
225
  /**
225
226
  * Detect lint command from project config files.
226
227
  */
@@ -228,8 +229,9 @@ export async function detectLintCommand(projectPath, packageManager) {
228
229
  const pkgJson = await readJsonFile(join(projectPath, 'package.json'));
229
230
  if (pkgJson) {
230
231
  const scripts = pkgJson.scripts;
231
- if (scripts?.lint) {
232
- return `${pmRunner(packageManager)} run lint`;
232
+ const scriptName = LINT_SCRIPT_PREFERENCE.find((name) => typeof scripts?.[name] === 'string' && scripts[name] !== '');
233
+ if (scriptName) {
234
+ return `${pmRunner(packageManager)} run ${scriptName}`;
233
235
  }
234
236
  }
235
237
  if (await hasAnyFile(projectPath, ['.eslintrc*', 'eslint.config.*'])) {
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-aarch64-apple-darwin",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-aarch64-apple-darwin",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -17,15 +17,15 @@
17
17
  "platform": "darwin",
18
18
  "arch": "arm64",
19
19
  "libc": null,
20
- "artifactSha256": "5d0ff6b13b11d1d071a61c8211bc7b65453a8f8b42a1e7fe53d3d1c073980e02",
20
+ "artifactSha256": "4730c8bca1ecd506f9332cfd7754a3b2705272b7cfead67ed8a4a857ea51af47",
21
21
  "sbom": {
22
22
  "format": "CycloneDX-1.5",
23
23
  "path": "planu-core.darwin-arm64.node.sbom.json",
24
- "sha256": "b81e5b05dc2ff4921b39f56e4bae1e469d71216fbb9e4a20275d756197d75641"
24
+ "sha256": "379172a509801b9bb9072e03b95da643218c75c02a8cc7e11719193f37f028aa"
25
25
  },
26
26
  "provenance": {
27
27
  "builder": "scripts/build-rust-local.sh",
28
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
28
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
29
29
  "sourceTreeDirty": false,
30
30
  "sourceDateEpoch": 1,
31
31
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -34,6 +34,6 @@
34
34
  "signature": {
35
35
  "algorithm": "Ed25519",
36
36
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
37
- "value": "HRtAs/3Ma0OGaM9v+KVToQwspvBMKMKJWkE5Go3rkhNXRBwb7IbEsBKlD4gqWLGmVd49uOxpLnRy1PxNo+GqBQ=="
37
+ "value": "a6pf9ANIEnE+aYR1QZVf9LJOna7hPvbCmKSUoAYas2JtKtY5HkBvE/9FyN7j3PaG7P8SGXgCPNbAhZ4umyq2Dg=="
38
38
  }
39
39
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "5d0ff6b13b11d1d071a61c8211bc7b65453a8f8b42a1e7fe53d3d1c073980e02"
14
+ "content": "4730c8bca1ecd506f9332cfd7754a3b2705272b7cfead67ed8a4a857ea51af47"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-x86_64-apple-darwin",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-x86_64-apple-darwin",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -17,15 +17,15 @@
17
17
  "platform": "darwin",
18
18
  "arch": "x64",
19
19
  "libc": null,
20
- "artifactSha256": "e3af2d3036901b1778b46508e77170ddfef0cbc09cc2fb09d29c223d06779154",
20
+ "artifactSha256": "9204816afcda7990a7caa85991ced38335301a2db840a58d7c1017f72ad7fb44",
21
21
  "sbom": {
22
22
  "format": "CycloneDX-1.5",
23
23
  "path": "planu-core.darwin-x64.node.sbom.json",
24
- "sha256": "bd6287e7353ae8709d9876a1cfcea2a4718354b23d32ae86716dd9da0a38f9e8"
24
+ "sha256": "ba853b859c2a9a22ff223d48566f616d05ab8479b3656c8912dd8cbee8617f53"
25
25
  },
26
26
  "provenance": {
27
27
  "builder": "scripts/build-rust-local.sh",
28
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
28
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
29
29
  "sourceTreeDirty": false,
30
30
  "sourceDateEpoch": 1,
31
31
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -34,6 +34,6 @@
34
34
  "signature": {
35
35
  "algorithm": "Ed25519",
36
36
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
37
- "value": "MZGaYaJeFNHlC7jAh7+bMWMJNofvy7/ekl5xdw0az+E0uoZ8ykviCSqdyeEnhRxkR6/wDTcLdltd7UzwNlSAAw=="
37
+ "value": "n8UTXIAzGoISDWY5vDfDxlQBqP5oso3K37jRE5+kTUnedRmCvVUwPlTedlxMKXI+JWaE/gyq5tOl5V8BNOtXBg=="
38
38
  }
39
39
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "e3af2d3036901b1778b46508e77170ddfef0cbc09cc2fb09d29c223d06779154"
14
+ "content": "9204816afcda7990a7caa85991ced38335301a2db840a58d7c1017f72ad7fb44"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-aarch64-unknown-linux-gnu",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-aarch64-unknown-linux-gnu",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "linux",
17
17
  "arch": "arm64",
18
18
  "libc": "glibc",
19
- "artifactSha256": "7fb817e968e4e81ba34be0892ac79ede2e0aa242e925cca3fe8679250605aa54",
19
+ "artifactSha256": "acfa6ff4ed2e68598b779cd84eeac69900fd6911893d2ff26414a47304b2ccde",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-arm64-gnu.node.sbom.json",
23
- "sha256": "8a42027ee50329c7eb8f998216c46fab5af8585a87d16aad4c5bdda12b33b9eb"
23
+ "sha256": "cebfe96400b95cf97111e7f04e1992a9c7fbbd4071b44154d33ec10f1d3046ed"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "ilcDZiYvq7FNQJ+mGY1o9F6/uXQvC/nt8UMCfidVYkHRHf8QubwKk5UQlBH72YMWNaupYt9eRTJR1sWebfPKDw=="
36
+ "value": "Xyq0s76WcCzbKEu0nFqrYE0lzt5+UWllzUqcKnpFuXXSJhrvtEyTIW4N37ldPqEeZ4tTsfVAcWooxqpMT8aECA=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "7fb817e968e4e81ba34be0892ac79ede2e0aa242e925cca3fe8679250605aa54"
14
+ "content": "acfa6ff4ed2e68598b779cd84eeac69900fd6911893d2ff26414a47304b2ccde"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-aarch64-unknown-linux-musl",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-aarch64-unknown-linux-musl",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "linux",
17
17
  "arch": "arm64",
18
18
  "libc": "musl",
19
- "artifactSha256": "7339b70e762159aa7fc532b986ac8cb08c633fd4ca8c7ae121d13347a84f1a6c",
19
+ "artifactSha256": "b102c6bec361271c98c9940b50a37c2110fd0a4e7c8e96f7b12e904e1162e2a2",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-arm64-musl.node.sbom.json",
23
- "sha256": "6dac227097031af87e8e3c135ce415da2001de1bb9157b1f7dbb66204ea5019f"
23
+ "sha256": "6d912c7181d379ae613ffb00e2e70af7beade6da0890b892b801e31ed77074c7"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "XcWqYU0xSmU4nObgPLy7epaTov4h8+1X/8M45JLz0dsjOZaxm0eMBmp3GWOODR9LUfvRlzCVBL5RCEhp/ndRAg=="
36
+ "value": "rdhGtK396/2ZwQtLhz9D+o6VvucindJmLidQT3Yjy+A0dXp8IyT1MJm7g+KzVD6b+SfqWu6HgubuEgGfhyH9CQ=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "7339b70e762159aa7fc532b986ac8cb08c633fd4ca8c7ae121d13347a84f1a6c"
14
+ "content": "b102c6bec361271c98c9940b50a37c2110fd0a4e7c8e96f7b12e904e1162e2a2"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-x86_64-unknown-linux-gnu",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-x86_64-unknown-linux-gnu",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "linux",
17
17
  "arch": "x64",
18
18
  "libc": "glibc",
19
- "artifactSha256": "bec4c162f4a52ed21acae13828cd8c781ec473462f68ab5e0d5eda9bb12802d9",
19
+ "artifactSha256": "5d2c48ac0de6d60629345143648c78e291a4cba707756face2957f27afb7d36b",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-x64-gnu.node.sbom.json",
23
- "sha256": "0d8dc076ab389395ead5ddca3a53d961f97d67945050bc235655e0a9e54261a4"
23
+ "sha256": "d6125400832c0bdee2823af553d4e6b717b15cba47133ca88aaf91e2183ef6e1"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "GuawhQm5O0s3MXcu4HvaERIaKsh38aEgSY1mPESMfQght82rNpVRH1h3ZKfd30i1gq9OX37u1SBbbQMX1kGsDg=="
36
+ "value": "Cb1ueFKWd9mC0uzyo/kPIexFGBTxuVsJTk8knsTODmsR2ooH4rG/fqCqN2M1ZCO1kC7Zrpn5LwiifEcbUhUQBw=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "bec4c162f4a52ed21acae13828cd8c781ec473462f68ab5e0d5eda9bb12802d9"
14
+ "content": "5d2c48ac0de6d60629345143648c78e291a4cba707756face2957f27afb7d36b"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-x86_64-unknown-linux-musl",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-x86_64-unknown-linux-musl",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "linux",
17
17
  "arch": "x64",
18
18
  "libc": "musl",
19
- "artifactSha256": "85e7874f28199b762acb1333c6cda22d35c9edb6a6d7b36ec41f0818e41e4a08",
19
+ "artifactSha256": "43926c2400637b9670c3c869da140fedfa85dd786da4de04122c8f5022d3c5cc",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-x64-musl.node.sbom.json",
23
- "sha256": "4eb2a14c4032e907fdfb03591f7adb44c9388b818d901b924a5a8634105744e7"
23
+ "sha256": "5db161ed910755ad5fe11ebc10d190f81fdf6b69779f21c048819f3be7bcb34e"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "AT5DF8UCW6bCBxgX7qjZS0sjS0z311BKwt5AjhBncOJcuHgU84VGvK3nLfgCqbLGwO2ZlaRVKOjBWi5oHAiyBA=="
36
+ "value": "0NDYIwRlP6yJ/LWIt3in/B9XD367mRJM0WRoX5H4eERYz4/jtuyKA9yPXUh0sYnnY3roOFctTkbd4eLtFmtqBQ=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "85e7874f28199b762acb1333c6cda22d35c9edb6a6d7b36ec41f0818e41e4a08"
14
+ "content": "43926c2400637b9670c3c869da140fedfa85dd786da4de04122c8f5022d3c5cc"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-aarch64-pc-windows-msvc",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-aarch64-pc-windows-msvc",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "win32",
17
17
  "arch": "arm64",
18
18
  "libc": null,
19
- "artifactSha256": "6a1e5acdb098a3ac13938e1cf86248650f2b8346cb0d95ad8dc1dca43aa83b16",
19
+ "artifactSha256": "2895b0fa8aad3dd46ad59f9b1e8a327dcbbaffe7357ea78830e232a292944920",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.win32-arm64-msvc.node.sbom.json",
23
- "sha256": "91e7bc68013c5e27e526f0af43d2c187807f291c36190c7e5263f85a0bcce1b2"
23
+ "sha256": "2e14b8772ac8aa9ec07793b8e1db4e72dd23541ed338a1fbe728884082fbe796"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "iVieTwyF0EA4y4QaoJNSr47cvD1md8w1/VrJoPCEGVoTOPWIPcyEhZRPKMDxnuQRM2Eh0hsQONB4uLSrDcz+Dg=="
36
+ "value": "r0Wa9w/3KI0OAHWMTjGqerm90i5pEtHM8VWAKrEb4oqqtxjUQaYhPhKubZfTE4YOdrvn+1RXdoVaU8jMScdSAA=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "6a1e5acdb098a3ac13938e1cf86248650f2b8346cb0d95ad8dc1dca43aa83b16"
14
+ "content": "2895b0fa8aad3dd46ad59f9b1e8a327dcbbaffe7357ea78830e232a292944920"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.21",
4
- "engineVersion": "5.3.21",
5
- "buildId": "1-5.3.21-x86_64-pc-windows-msvc",
3
+ "cliVersion": "5.3.22",
4
+ "engineVersion": "5.3.22",
5
+ "buildId": "1-5.3.22-x86_64-pc-windows-msvc",
6
6
  "protocolAbi": 1,
7
7
  "capabilityAbi": 2,
8
8
  "nodeApiAbi": 4,
@@ -16,15 +16,15 @@
16
16
  "platform": "win32",
17
17
  "arch": "x64",
18
18
  "libc": null,
19
- "artifactSha256": "4ce52263d47492b6968e36e7d0722c80e785493028d9d524ca6ec24f960b221b",
19
+ "artifactSha256": "832a639657313dad460661ba34672d01ac1fc5674a655362f7d936e48353c0e5",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.win32-x64-msvc.node.sbom.json",
23
- "sha256": "1daa636cf1b98c866795051183f5aea2e3f9110039e2167ade205fbf2b2c6b24"
23
+ "sha256": "2fac480bb810bb3201adc6a82859ace5aeb0b46e62da7cd257fb8089d1ade10f"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "bedb8918a453fd7e20e704054f42f91211240a89",
27
+ "sourceCommit": "faabf932259a10c5cabfeedf510c23d686b45e83",
28
28
  "sourceTreeDirty": false,
29
29
  "sourceDateEpoch": 1,
30
30
  "rustToolchain": "rustc 1.95.0 (59807616e 2026-04-14)",
@@ -33,6 +33,6 @@
33
33
  "signature": {
34
34
  "algorithm": "Ed25519",
35
35
  "keyId": "e2ee765cb5ad9fbdc433ece332bce26d746d5e350b3acde0721a4c8c6337ff7b",
36
- "value": "SMqrkN5zMjAiEWYX9KW4TKa94sW/O2fKw5G8b7/4yzDny0SMsQM/VJxgrw4W8aKht1SqKeHYySApm5llGkzGDQ=="
36
+ "value": "MudkeMsYJwviSCoe775V8V4/N8d1dgRiQNRBlaGGrozpQb/cavJjNWpL8CoQEVsjX9n1CwjOeTVPu45gDzqqDQ=="
37
37
  }
38
38
  }
@@ -4,14 +4,14 @@
4
4
  "version": 1,
5
5
  "metadata": {
6
6
  "component": {
7
- "bom-ref": "pkg:cargo/planu-core@5.3.21",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.22",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.21",
10
+ "version": "5.3.22",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "4ce52263d47492b6968e36e7d0722c80e785493028d9d524ca6ec24f960b221b"
14
+ "content": "832a639657313dad460661ba34672d01ac1fc5674a655362f7d936e48353c0e5"
15
15
  }
16
16
  ]
17
17
  }
@@ -1106,7 +1106,7 @@
1106
1106
  "dependsOn": []
1107
1107
  },
1108
1108
  {
1109
- "ref": "pkg:cargo/planu-core@5.3.21",
1109
+ "ref": "pkg:cargo/planu-core@5.3.22",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -8,7 +8,7 @@ Auto-generated by \`init_project\`. Do not edit manually.
8
8
  When implementation changes are complete and validated, always address release explicitly with a local-first flow:
9
9
 
10
10
  - canonical local gate: \`pnpm check:preflight\`
11
- - source-quality evidence binds the exact release commit, so a pre-bump run can never produce a receipt the release will accept; the full source-quality plan runs once, inside the release, after the bump commit exists
11
+ - source-quality evidence binds the exact release commit, so a pre-bump run can never produce a receipt the release will accept; the full source-quality plan runs inside the release, against the bump commit, and reruns whenever a later step rewrites that commit (for example the native-lockfile-integrity amend), since the prior receipt no longer binds the new sha
12
12
  - canonical local release command: \`pnpm release:local\`
13
13
  - publish externally only when the user has explicitly requested shipping/publishing
14
14
  - use \`main\` as the default release branch; treat \`develop\` as optional gitflow compatibility only when the repository actively uses it
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "5.3.21",
3
+ "version": "5.3.22",
4
4
  "description": "Planu — MCP Server for Spec Driven Development with native Rust acceleration for hot paths. Cross-platform (Linux/macOS/Windows, x64/arm64, glibc/musl).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,14 +36,14 @@
36
36
  "packageName": "@planu/core"
37
37
  },
38
38
  "optionalDependencies": {
39
- "@planu/core-darwin-arm64": "5.3.21",
40
- "@planu/core-darwin-x64": "5.3.21",
41
- "@planu/core-linux-arm64-gnu": "5.3.21",
42
- "@planu/core-linux-arm64-musl": "5.3.21",
43
- "@planu/core-linux-x64-gnu": "5.3.21",
44
- "@planu/core-linux-x64-musl": "5.3.21",
45
- "@planu/core-win32-arm64-msvc": "5.3.21",
46
- "@planu/core-win32-x64-msvc": "5.3.21"
39
+ "@planu/core-darwin-arm64": "5.3.22",
40
+ "@planu/core-darwin-x64": "5.3.22",
41
+ "@planu/core-linux-arm64-gnu": "5.3.22",
42
+ "@planu/core-linux-arm64-musl": "5.3.22",
43
+ "@planu/core-linux-x64-gnu": "5.3.22",
44
+ "@planu/core-linux-x64-musl": "5.3.22",
45
+ "@planu/core-win32-arm64-msvc": "5.3.22",
46
+ "@planu/core-win32-x64-msvc": "5.3.22"
47
47
  },
48
48
  "engines": {
49
49
  "node": ">=24.0.0"
@@ -68,7 +68,8 @@
68
68
  "start": "node dist/index.js",
69
69
  "postpublish": "pnpm build",
70
70
  "clean": "rm -rf dist",
71
- "lint": "eslint src/ tests/ --max-warnings 0",
71
+ "lint": "eslint src/ tests/ --max-warnings 0 --cache --cache-strategy content --cache-location node_modules/.cache/eslint/",
72
+ "lint:gate": "eslint src/ tests/ --max-warnings 0",
72
73
  "lint:fix": "eslint src/ tests/ --fix --max-warnings 0",
73
74
  "format": "prettier --write 'src/**/*.ts' 'tests/**/*.test.ts'",
74
75
  "format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.test.ts'",
@@ -87,10 +88,10 @@
87
88
  "native:project-graph:e2e": "PLANU_NATIVE_E2E=1 vitest run tests/integration/native-project-graph-e2e.test.ts",
88
89
  "native:project-graph:benchmark": "node scripts/benchmark-native-performance.mjs --operation project_graph_query --samples 30 --warmups 5 --project-path . --spec-id SPEC-1119 --json",
89
90
  "benchmark:execution-kernel": "pnpm build && node scripts/benchmark-execution-kernel.mjs",
90
- "check": "pnpm typecheck && pnpm lint && pnpm format:check && pnpm check:destructive-ops && pnpm check:release-authorities && pnpm check:commercial-surfaces && pnpm check:tool-registration && pnpm check:public-privacy && pnpm check:website-proof && pnpm check:donation-assets && pnpm check:website-public-assets",
91
+ "check": "pnpm typecheck && pnpm lint:gate && pnpm format:check && pnpm check:destructive-ops && pnpm check:release-authorities && pnpm check:commercial-surfaces && pnpm check:tool-registration && pnpm check:public-privacy && pnpm check:website-proof && pnpm check:donation-assets && pnpm check:website-public-assets",
91
92
  "check:destructive-ops": "bash scripts/check-no-automatic-destructive-ops.sh",
92
93
  "check:strict": "pnpm check && pnpm generate:host-tool-registry -- --check && pnpm check:native-version-parity && pnpm check:environment-schema && pnpm audit:hardcodes && pnpm audit:deadcode && pnpm audit:circular && pnpm audit:types && pnpm audit:security && pnpm audit:i18n",
93
- "check:preflight": "pnpm typecheck && pnpm lint && pnpm format:check && node scripts/check-public-privacy.mjs && node scripts/check-preflight.mjs",
94
+ "check:preflight": "pnpm typecheck && pnpm lint:gate && pnpm format:check && node scripts/check-public-privacy.mjs && node scripts/check-preflight.mjs",
94
95
  "check:reliability": "node scripts/check-reliability-policies.mjs",
95
96
  "check:environment-schema": "node scripts/check-environment-schema.mjs",
96
97
  "test:contracts": "vitest run tests/contracts tests/integration/package-consumer-hono.test.ts",
@@ -120,7 +121,7 @@
120
121
  "prepublishOnly": "bash scripts/prepublish-guard.sh",
121
122
  "prepack": "pnpm build:ts && pnpm package:size",
122
123
  "test:debug": "vitest run --inspect-brk --single-thread",
123
- "validate": "pnpm build && pnpm typecheck && pnpm verify:typescript-migration && pnpm lint && pnpm format:check && pnpm test:release-gate",
124
+ "validate": "pnpm build && pnpm typecheck && pnpm verify:typescript-migration && pnpm lint:gate && pnpm format:check && pnpm test:release-gate",
124
125
  "docker:build": "docker build -t planu .",
125
126
  "docker:run": "docker compose up",
126
127
  "publish:blog": "node scripts/publish-blog.mjs",
package/planu-native.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dev.planu.native",
3
3
  "displayName": "Planu Native Lightweight Surface",
4
- "version": "5.3.21",
4
+ "version": "5.3.22",
5
5
  "packageName": "@planu/cli",
6
6
  "modes": {
7
7
  "lightweight": {
package/planu-plugin.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dev.planu.cli",
3
3
  "displayName": "Planu — Spec Driven Development",
4
4
  "description": "Manage software specs, estimations, and autonomous SDD workflows. Language-agnostic MCP server for Claude Code.",
5
- "version": "5.3.21",
5
+ "version": "5.3.22",
6
6
  "icon": "assets/plugin/icon.svg",
7
7
  "command": ["npx", "@planu/cli@latest"],
8
8
  "packageName": "@planu/cli",