@planu/cli 5.3.4 → 5.3.5

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/engine/execution/validate-job-executor.js +25 -10
  3. package/dist/engine/planu-core.darwin-arm64.node.manifest.json +7 -7
  4. package/dist/engine/planu-core.darwin-arm64.node.sbom.json +4 -4
  5. package/dist/engine/planu-core.darwin-x64.node.manifest.json +7 -7
  6. package/dist/engine/planu-core.darwin-x64.node.sbom.json +4 -4
  7. package/dist/engine/planu-core.linux-arm64-gnu.node.manifest.json +7 -7
  8. package/dist/engine/planu-core.linux-arm64-gnu.node.sbom.json +4 -4
  9. package/dist/engine/planu-core.linux-arm64-musl.node.manifest.json +7 -7
  10. package/dist/engine/planu-core.linux-arm64-musl.node.sbom.json +4 -4
  11. package/dist/engine/planu-core.linux-x64-gnu.node.manifest.json +7 -7
  12. package/dist/engine/planu-core.linux-x64-gnu.node.sbom.json +4 -4
  13. package/dist/engine/planu-core.linux-x64-musl.node.manifest.json +7 -7
  14. package/dist/engine/planu-core.linux-x64-musl.node.sbom.json +4 -4
  15. package/dist/engine/planu-core.win32-arm64-msvc.node.manifest.json +7 -7
  16. package/dist/engine/planu-core.win32-arm64-msvc.node.sbom.json +4 -4
  17. package/dist/engine/planu-core.win32-x64-msvc.node.manifest.json +7 -7
  18. package/dist/engine/planu-core.win32-x64-msvc.node.sbom.json +4 -4
  19. package/dist/engine/reconcile/apply-changes.d.ts +0 -12
  20. package/dist/engine/reconcile/apply-changes.js +11 -33
  21. package/dist/engine/reconcile/verify-write.js +2 -3
  22. package/dist/engine/rules-reconciler.js +21 -2
  23. package/dist/engine/spec-format/acceptance-criteria.js +7 -1
  24. package/dist/engine/universal-rules/catalog.js +6 -0
  25. package/dist/engine/universal-rules/rules/agent-teams.js +0 -2
  26. package/dist/engine/universal-rules/rules/planu-approval-gates.js +0 -1
  27. package/dist/engine/universal-rules/rules/planu-bdd-criteria.js +0 -1
  28. package/dist/engine/universal-rules/rules/planu-clean-code-no-comments.d.ts +3 -0
  29. package/dist/engine/universal-rules/rules/planu-clean-code-no-comments.js +30 -0
  30. package/dist/engine/universal-rules/rules/planu-debate-review.d.ts +3 -0
  31. package/dist/engine/universal-rules/rules/planu-debate-review.js +38 -0
  32. package/dist/engine/universal-rules/rules/planu-dogfood-bugs.js +0 -2
  33. package/dist/engine/universal-rules/rules/planu-english-specs.js +0 -1
  34. package/dist/engine/universal-rules/rules/planu-minimal-change.js +0 -2
  35. package/dist/engine/universal-rules/rules/planu-modes.js +0 -2
  36. package/dist/engine/universal-rules/rules/planu-release-policy.js +0 -1
  37. package/dist/engine/universal-rules/rules/planu-revert-proof-tests.d.ts +3 -0
  38. package/dist/engine/universal-rules/rules/planu-revert-proof-tests.js +34 -0
  39. package/dist/engine/universal-rules/rules/planu-sdd-model-routing.js +0 -1
  40. package/dist/engine/universal-rules/rules/planu-workflow.js +0 -2
  41. package/dist/engine/validator/validation-report-writer.js +1 -1
  42. package/dist/tools/reconcile-spec.d.ts +1 -1
  43. package/dist/tools/reconcile-spec.js +303 -178
  44. package/dist/tools/update-status/dod-gates.js +3 -3
  45. package/dist/types/reconcile.d.ts +5 -17
  46. package/dist/types/reconcile.js +1 -7
  47. package/package.json +9 -9
  48. package/planu-native.json +1 -1
  49. package/planu-plugin.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [5.3.5] - 2026-08-06
2
+
3
+ ### Bug Fixes
4
+ - fix(tests): make the spec-write guard test independent of git HEAD
5
+ - fix(lifecycle): close done-gate bypass, report digest drift and ship debate rules
6
+ - fix(reconcile): harden audit-cell escaping and fail-closed rollback (SPEC-1250)
7
+ - fix(spec-format): preserve wrapped BDD continuation lines in criterion identities (SPEC-1253)
8
+
9
+ ### Chores
10
+ - chore(planu): close SPEC-1250 with debate evidence, file SPEC-1424
11
+ - chore(planu): SPEC-1253 done with debate evidence
12
+ - chore(planu): file SPEC-1423 (done-gate revalidate reprocessing)
13
+ - chore(planu): file SPEC-1421 and SPEC-1422 from client dogfood report
14
+
15
+
1
16
  ## [5.3.4] - 2026-08-06
2
17
 
3
18
  ### Bug Fixes
@@ -84,6 +84,25 @@ function validationPassed(result) {
84
84
  const report = structured?.validationReport;
85
85
  return structured?.ready === true && report?.passed === true;
86
86
  }
87
+ function withEnrichedValidationReportSha(structuredContent, sha) {
88
+ const validationReport = structuredContent.validationReport;
89
+ const artifactRefs = structuredContent.artifactRefs;
90
+ return {
91
+ ...structuredContent,
92
+ ...(validationReport ? { validationReport: { ...validationReport, sha } } : {}),
93
+ ...(artifactRefs ? { artifactRefs: { ...artifactRefs, validationReportSha: sha } } : {}),
94
+ };
95
+ }
96
+ function buildReceiptResult(checkpointResult, receiptId, receiptKey, enrichedReportSha) {
97
+ const baseStructuredContent = checkpointResult.structuredContent ?? {};
98
+ const structuredContent = enrichedReportSha
99
+ ? withEnrichedValidationReportSha(baseStructuredContent, enrichedReportSha)
100
+ : baseStructuredContent;
101
+ return {
102
+ ...checkpointResult,
103
+ structuredContent: { ...structuredContent, receiptId, receiptKey },
104
+ };
105
+ }
87
106
  async function closeFreshnessLeaseSafely(lease) {
88
107
  if (!lease) {
89
108
  return;
@@ -690,20 +709,14 @@ export class ValidateJobExecutor {
690
709
  throw new Error('[Planu] Validation inputs changed during receipt publication');
691
710
  }
692
711
  const receiptKey = `validation-receipt:${receipt.receiptId.slice('sha256:'.length)}`;
712
+ let enrichedReportSha;
693
713
  try {
694
- await this.persistReceiptArtifacts(identity, payload, receipt.receiptId, receiptKey);
714
+ enrichedReportSha = await this.persistReceiptArtifacts(identity, payload, receipt.receiptId, receiptKey);
695
715
  }
696
716
  catch (error) {
697
717
  throw new ReceiptPublicationInterruptedError({ cause: error });
698
718
  }
699
- return {
700
- ...checkpoint.result,
701
- structuredContent: {
702
- ...(checkpoint.result.structuredContent ?? {}),
703
- receiptId: receipt.receiptId,
704
- receiptKey,
705
- },
706
- };
719
+ return buildReceiptResult(checkpoint.result, receipt.receiptId, receiptKey, enrichedReportSha);
707
720
  }
708
721
  finally {
709
722
  database.close();
@@ -759,13 +772,15 @@ export class ValidateJobExecutor {
759
772
  kind: 'validation-report',
760
773
  });
761
774
  if (existingReport.ok) {
762
- await appendArtifact({
775
+ const rewritten = await appendArtifact({
763
776
  projectId: identity.projectId,
764
777
  specId: payload.bindings.specId,
765
778
  kind: 'validation-report',
766
779
  payload: { ...existingReport.payload, receiptId, receiptKey },
767
780
  });
781
+ return `sha256:${rewritten.sha}`;
768
782
  }
783
+ return undefined;
769
784
  }
770
785
  }
771
786
  /** Schedules background execution after the submit response can be flushed. */
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
- "cliVersion": "5.3.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-aarch64-apple-darwin",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "570521dc4b74de29cb0e40a5da5da31bb8a34851c7bbc632c40dfeba48400bfc",
20
+ "artifactSha256": "27b347bd91597ca547e26cf2eb25f4e7d7d7ec83ed405511bf8b80a52075b6a5",
21
21
  "sbom": {
22
22
  "format": "CycloneDX-1.5",
23
23
  "path": "planu-core.darwin-arm64.node.sbom.json",
24
- "sha256": "6f82916e52c2ae01a71b3d55b2c9c6ac607d4f9b153512d349cf8decc632b309"
24
+ "sha256": "cdacedfbf96f09a8815ea3b5b293d4d688d0a1216d5ac8e309c3031703144b76"
25
25
  },
26
26
  "provenance": {
27
27
  "builder": "scripts/build-rust-local.sh",
28
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
28
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "VKMAa/cn3GxIH/tAv535J9ZCcXOT6tCmakcat6U6z9HyWkTb8fpBG9xYQoufyQ7GVt1GocbWIyyOVX2HV6JbCg=="
37
+ "value": "V5w31e1ARajB+tq5/Zuqn/I6AS9upApk4U+3MQudZRJNXMsp+LynzSTuHb8Eg9G6AiXJxt88ZRtqJbAo2b0DAg=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "570521dc4b74de29cb0e40a5da5da31bb8a34851c7bbc632c40dfeba48400bfc"
14
+ "content": "27b347bd91597ca547e26cf2eb25f4e7d7d7ec83ed405511bf8b80a52075b6a5"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-x86_64-apple-darwin",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "0912425f86760d302fed2c7c81a1e6c41f46b143ba6e611120e1c9cffe4c7fe3",
20
+ "artifactSha256": "7993a3dc2ff7947eb227812e88b329e870fd0e8b7b3ad152796bef8d77387745",
21
21
  "sbom": {
22
22
  "format": "CycloneDX-1.5",
23
23
  "path": "planu-core.darwin-x64.node.sbom.json",
24
- "sha256": "8b9b3ef32f117e9ca3cebbe8ccfc04f4be4250496a45dffc6e9afa03640a89c9"
24
+ "sha256": "cc3be430ad14a4bb6f233e60c7fccb055079b3f3aa0208c6e6f8eca9ee47e7a3"
25
25
  },
26
26
  "provenance": {
27
27
  "builder": "scripts/build-rust-local.sh",
28
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
28
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "f/aPrNL3a1yLv73UGSBLj+lnbA1N9L7YqjgWDERXxNPsv9xmK6//LgzZhXXMHQmcU9kV40J3Re3sVnCB56MHDQ=="
37
+ "value": "lL4RDYXTj5JyMi4aPH4Dq9r7u45cD/onxAOOGeQJglIrLryYfLTgvUw0bCxLIExD4LghbskIpbMO5RoxilsTCA=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "0912425f86760d302fed2c7c81a1e6c41f46b143ba6e611120e1c9cffe4c7fe3"
14
+ "content": "7993a3dc2ff7947eb227812e88b329e870fd0e8b7b3ad152796bef8d77387745"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-aarch64-unknown-linux-gnu",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "0e815c9991af25c98c0d0de307b850385204b0e3eee7fd31ab40c5e77ebcd3d5",
19
+ "artifactSha256": "58667d7bf48d685e0a68845bf986ab76d7669909994649fed71b76b5e19c0fd9",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-arm64-gnu.node.sbom.json",
23
- "sha256": "bb4cdfbbd37c0990dc035253ccb275e109941ee3a9c169d520b4f1857ab6159b"
23
+ "sha256": "e167309ef0c22da6bbb804b6e59c64a2777aba539a718cd9225f2a5ffe16253f"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "bLVx5tLIU+AaTSOdP/kJeXAUtUOY+FqHpAX04NtahMzSz61CWs8YOEDhJzLWBNv7IeorjRSKasAq/5e8YG9YBA=="
36
+ "value": "jPABgCINF4cuTxCuWa2h5suwGdPzU0lXP7oL45TvpMv8A1YP/Q5Lt4w/DIqRYYjlWzsqk228wu0O5f5V+S+kDw=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "0e815c9991af25c98c0d0de307b850385204b0e3eee7fd31ab40c5e77ebcd3d5"
14
+ "content": "58667d7bf48d685e0a68845bf986ab76d7669909994649fed71b76b5e19c0fd9"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-aarch64-unknown-linux-musl",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "5189fb5c83e53a091b57c0cfd372455b6210ffc23919434a0cf7644455b60b77",
19
+ "artifactSha256": "948e76211c8b7a4770c9f79e172184baf13fa7208a06cc149b6cd168ef5c1cf6",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-arm64-musl.node.sbom.json",
23
- "sha256": "16fa655252e62f666d6a1ca041108685532d283622ed44bdd91838bf0953d7b2"
23
+ "sha256": "fe1febc4c73090f46d5513ac83d98fa5fcc69b50b82aea2a9eb9bfc9943d9f58"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "6QGtEc97VMTZiSeA8cROjxiO8GRssD0jak6OWFPzIQ+CG7xsnloT/6G7Yxyi0HVmoEShx2pnmSKpigEg5wQyCQ=="
36
+ "value": "W8DaJ4zBO7CgzNQ8Ygt3Fsq76sLt2AZgzRzfZLN2cxvOEsTK/aS+KgM/JpSfKbuv45c7wBgM5jUvLSPIh/qTAw=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "5189fb5c83e53a091b57c0cfd372455b6210ffc23919434a0cf7644455b60b77"
14
+ "content": "948e76211c8b7a4770c9f79e172184baf13fa7208a06cc149b6cd168ef5c1cf6"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-x86_64-unknown-linux-gnu",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "3fa9b1c9b4096bbf7628582e4f2fe62250836f6415000e402b67eb109aaf2d32",
19
+ "artifactSha256": "c1df1defdec7ecf99a65391798bb1452a0677193fc49778ebb621adf8f984da7",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-x64-gnu.node.sbom.json",
23
- "sha256": "93bdc77c871c4e47c47becd9bfe65cf96970dbc17619ad9963c9ca901777b2fd"
23
+ "sha256": "1fa7db3a02d7cd799a500eb378a41dacde4eb5f694916b49ad651658c24f3a9d"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "ehdGAkoK/g0bywWm+yz+e6X3dZ5gmVCWjz6jip97SMkUysrPvgTiEWRJFa7DRcwLBNpmDr0M1iR3Dcktv4EpDg=="
36
+ "value": "vtEQHO2zRWFl2vbnBxSjwxwT+VTgwuPDVxcYAoQaIBFNt3JSOeh/NwXfEmn43xQ66vvRW1wsu5mj5nIvz7B5DQ=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "3fa9b1c9b4096bbf7628582e4f2fe62250836f6415000e402b67eb109aaf2d32"
14
+ "content": "c1df1defdec7ecf99a65391798bb1452a0677193fc49778ebb621adf8f984da7"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-x86_64-unknown-linux-musl",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "84a3ad58be73c7b2c75a1b15252e557644c80bf66e6484781107300b6b0aec91",
19
+ "artifactSha256": "0116080409d8d34a70bcd11545d83ef0055475bac5338e1390eb2694296f64e1",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.linux-x64-musl.node.sbom.json",
23
- "sha256": "dd6d811714f3dbe94427c0e66399f779dd9d9c194af589ae143bd16dc929b31a"
23
+ "sha256": "26de786cbe886f27871dba4af38506dbbefd7823503a3af1ec91e506b10efd41"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "DUxITC22qKLQyVQNvklBEPM4TRryjTl4v3QM6mz+4f46GEkcMEOJ+6K3kH4/U425xnQH3fKBuqtpvWpj9Er8Aw=="
36
+ "value": "UVlIbDnlrHlchfrOyYRZu/Rj8qQQkbiaPKNf8ei7B1+rXkHdryVRUiC06/UP3aaydkDVXhdkLOQmvLw1JbnyDA=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "84a3ad58be73c7b2c75a1b15252e557644c80bf66e6484781107300b6b0aec91"
14
+ "content": "0116080409d8d34a70bcd11545d83ef0055475bac5338e1390eb2694296f64e1"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-aarch64-pc-windows-msvc",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "d3f8633e9c7014a9163666c20dcd016f64b362e575ffb26afa9e8f51393cc8ba",
19
+ "artifactSha256": "69f0804044cbbf83b24eba6c91ba56052d502fdf605cb87de1e372606a1ff030",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.win32-arm64-msvc.node.sbom.json",
23
- "sha256": "cb8c0c1f6567d471967a019e14fd7834b359c8a423626129bb8b01d404df9f5d"
23
+ "sha256": "69209ba0e316391778bbe7204080e36bb793efc060e77a9007b9d954081545d7"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "R9tg5e4kK1p1AOy5RPA/HvLo5GwymlNQsCDMiGePRFZVetj8GumU1QAjBxF+B/yYCvaMa0YmuKCRrbpI4raNBQ=="
36
+ "value": "CBuCyMiMXamGF99MF2n+dvmeHDR3NBXjUAgiutEjRmTakq+qdh6fPiGXQKli5kRhd5O4nfNWobIsaWJ+vSCdBA=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "d3f8633e9c7014a9163666c20dcd016f64b362e575ffb26afa9e8f51393cc8ba"
14
+ "content": "69f0804044cbbf83b24eba6c91ba56052d502fdf605cb87de1e372606a1ff030"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
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.4",
4
- "engineVersion": "5.3.4",
5
- "buildId": "1-5.3.4-x86_64-pc-windows-msvc",
3
+ "cliVersion": "5.3.5",
4
+ "engineVersion": "5.3.5",
5
+ "buildId": "1-5.3.5-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": "a1ffe9cf1c0fa69ad29543b70dc3e6af72993f4ac3b770b5ed8f1794b5082020",
19
+ "artifactSha256": "266c514673274fe29f5d625cf33524e203371741f320e6933c0231824506e433",
20
20
  "sbom": {
21
21
  "format": "CycloneDX-1.5",
22
22
  "path": "planu-core.win32-x64-msvc.node.sbom.json",
23
- "sha256": "76c83934b4a0fb50e59919c6d27723a395f5387af0c467674f5eeb0bb328a3a3"
23
+ "sha256": "ba40d6627f3bacbc78c068a377d420a1d6cfebe1e75e7e90b4b94c726f7b71ea"
24
24
  },
25
25
  "provenance": {
26
26
  "builder": "scripts/build-rust-local.sh",
27
- "sourceCommit": "7f78cd615083c4284cab36c05f11dc2ce76e5cbd",
27
+ "sourceCommit": "1ebfd1609a251513993d8635170963f6dab1420e",
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": "/yNziQ2dBYLR9Qg13plc/CanSa9RXWtBP8E8TDNsJYuZ+jLV1dnHksyG0zlVrGw/guegmsNe/LRC6fREdCFMCA=="
36
+ "value": "zQa9uJfhQpDFLD3/iWUJQGPjUjlqm66DKR9VX+2kbc7dGmYODAxXYLxxJKnFKnpjyaToedkLmurajIE4zMODAA=="
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.4",
7
+ "bom-ref": "pkg:cargo/planu-core@5.3.5",
8
8
  "type": "library",
9
9
  "name": "planu-core",
10
- "version": "5.3.4",
10
+ "version": "5.3.5",
11
11
  "hashes": [
12
12
  {
13
13
  "alg": "SHA-256",
14
- "content": "a1ffe9cf1c0fa69ad29543b70dc3e6af72993f4ac3b770b5ed8f1794b5082020"
14
+ "content": "266c514673274fe29f5d625cf33524e203371741f320e6933c0231824506e433"
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.4",
1109
+ "ref": "pkg:cargo/planu-core@5.3.5",
1110
1110
  "dependsOn": [
1111
1111
  "pkg:cargo/core-foundation@0.10.1",
1112
1112
  "pkg:cargo/hmac@0.12.1",
@@ -1,16 +1,4 @@
1
1
  import { type ReconcileChange, type ApplyChangesResult } from '../../types/index.js';
2
2
  export type { ApplyChangesResult, SkippedChange } from '../../types/index.js';
3
- /**
4
- * Apply approved text changes to the spec.md body.
5
- *
6
- * For each non-metadata approved change:
7
- * 1. Locate the named section's body via heading anchor.
8
- * 2. Require exactly one occurrence of `originalValue` inside that section.
9
- * 3. Replace it in-place at the resolved absolute offset.
10
- *
11
- * Skips (with reason) when the section heading is absent, the value is missing
12
- * inside the section, or the value appears multiple times (ambiguous match).
13
- * Writes only when at least one substitution succeeded.
14
- */
15
3
  export declare function applyChangesToSpec(specPath: string, changes: ReconcileChange[]): Promise<ApplyChangesResult>;
16
4
  //# sourceMappingURL=apply-changes.d.ts.map