@planu/cli 5.3.5 → 5.3.7
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 +50 -0
- package/dist/config/runtime-policy.json +1 -0
- package/dist/engine/convention-scanner/codebase-scanner.js +1 -1
- package/dist/engine/hooks/handlers/on-impl-change.d.ts +17 -4
- package/dist/engine/hooks/handlers/on-impl-change.js +43 -44
- package/dist/engine/living-spec-analyzer.d.ts +5 -2
- package/dist/engine/living-spec-analyzer.js +5 -2
- package/dist/engine/planu-core.darwin-arm64.node.manifest.json +7 -7
- package/dist/engine/planu-core.darwin-arm64.node.sbom.json +4 -4
- package/dist/engine/planu-core.darwin-x64.node.manifest.json +7 -7
- package/dist/engine/planu-core.darwin-x64.node.sbom.json +4 -4
- package/dist/engine/planu-core.linux-arm64-gnu.node.manifest.json +7 -7
- package/dist/engine/planu-core.linux-arm64-gnu.node.sbom.json +4 -4
- package/dist/engine/planu-core.linux-arm64-musl.node.manifest.json +7 -7
- package/dist/engine/planu-core.linux-arm64-musl.node.sbom.json +4 -4
- package/dist/engine/planu-core.linux-x64-gnu.node.manifest.json +7 -7
- package/dist/engine/planu-core.linux-x64-gnu.node.sbom.json +4 -4
- package/dist/engine/planu-core.linux-x64-musl.node.manifest.json +7 -7
- package/dist/engine/planu-core.linux-x64-musl.node.sbom.json +4 -4
- package/dist/engine/planu-core.win32-arm64-msvc.node.manifest.json +7 -7
- package/dist/engine/planu-core.win32-arm64-msvc.node.sbom.json +4 -4
- package/dist/engine/planu-core.win32-x64-msvc.node.manifest.json +7 -7
- package/dist/engine/planu-core.win32-x64-msvc.node.sbom.json +4 -4
- package/dist/engine/runtime-policy.js +7 -0
- package/dist/engine/scope-boundaries/contradiction-checker.js +28 -20
- package/dist/engine/spec-format/acceptance-criteria.js +5 -2
- package/dist/engine/spec-migrator/filesystem-import.js +113 -73
- package/dist/engine/spec-migrator/frontmatter-parser.js +15 -13
- package/dist/tools/auto-reconcile.js +1 -1
- package/dist/tools/challenge-spec/challenge-report.js +1 -1
- package/dist/tools/init-project/portable-index-reconciler.js +2 -1
- package/dist/tools/reconcile-spec.js +3 -1
- package/dist/tools/safe-handler.js +0 -2
- package/dist/tools/start-hooks/engine.d.ts +2 -3
- package/dist/tools/start-hooks/engine.js +50 -33
- package/dist/tools/start-hooks.d.ts +1 -1
- package/dist/tools/start-hooks.js +1 -2
- package/dist/tools/tool-registry/group-infra.js +36 -0
- package/dist/tools/update-status/transition-guard.js +17 -4
- package/dist/tools/validate-assurance.js +1 -1
- package/dist/tools/validate-lint.js +1 -1
- package/dist/tools/validate.d.ts +1 -0
- package/dist/tools/validate.js +21 -2
- package/dist/types/file-hooks.d.ts +4 -6
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.js +0 -1
- package/dist/types/mcp.d.ts +0 -19
- package/dist/types/runtime-policy.d.ts +1 -0
- package/dist/types/spec/core.d.ts +5 -0
- package/dist/types/spec/inputs.d.ts +16 -0
- package/package.json +9 -9
- package/planu-native.json +1 -1
- package/planu-plugin.json +1 -1
- package/dist/engine/hooks/agent-hook-migrator.d.ts +0 -9
- package/dist/engine/hooks/agent-hook-migrator.js +0 -140
- package/dist/types/hook-status-update.d.ts +0 -10
- package/dist/types/hook-status-update.js +0 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,53 @@
|
|
|
1
|
+
## [5.3.7] - 2026-08-08
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
- fix(scope-boundaries): split sentences regardless of next-sentence casing
|
|
5
|
+
- fix(validate): fail lint on timeout and bound unbounded validate gates
|
|
6
|
+
- fix(spec-1450): anchor scope-contradiction substring checks to word boundaries
|
|
7
|
+
|
|
8
|
+
### Chores
|
|
9
|
+
- chore(spec-1453): redact local home path from reproducer
|
|
10
|
+
- chore(planu): record SPEC-1449 and SPEC-1450 done transitions
|
|
11
|
+
- chore(spec-1450): integrate scope-contradiction matching after arbitrated review
|
|
12
|
+
- chore(spec-1449): integrate validate gate timeouts after dual-provider approve
|
|
13
|
+
- chore(specs): cut speculative scope from the skills backlog
|
|
14
|
+
- chore(spec-1449): approve after 6-round independent review + Discovery evidence
|
|
15
|
+
- chore(deps): override nanoid to >=3.3.17 for GHSA-2v37-7h3g-55p8
|
|
16
|
+
- chore(planu): sync session state after SPEC-1449/1450 review cycle
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [5.3.6] - 2026-08-07
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
- fix(spec-1404): make filesystem hook watcher observation-only
|
|
23
|
+
- fix(spec-1427): recognize exposed/exposes as affirmative scope drift
|
|
24
|
+
- fix(spec-1427): stop scope-contradiction check from flagging boundary-preserving criteria
|
|
25
|
+
- fix(spec-1415): arbitrate independent Codex review, harden fence and marker matching
|
|
26
|
+
- fix(spec-1415): heal 35 truncated spec.md bodies with a one-shot script
|
|
27
|
+
- fix(spec-migrator): preserve actionable estimation during portable spec import
|
|
28
|
+
- fix(spec-1429): cover the two untested acceptance criteria and correct stale claims
|
|
29
|
+
- fix(tests): match CLAUDE.md's current canonical release gate commands
|
|
30
|
+
- fix(spec-format): stop discarding BDD criteria mixed with checklist bullets
|
|
31
|
+
- fix(challenge-spec): count the challenge gate requirement against distinct scenario names
|
|
32
|
+
|
|
33
|
+
### Refactoring
|
|
34
|
+
- refactor(spec-migrator): extract importSpecEntry to satisfy max-lines-per-function
|
|
35
|
+
|
|
36
|
+
### Chores
|
|
37
|
+
- chore(planu): redact absolute home path from public spec reproducers
|
|
38
|
+
- chore(planu): sync session state after SPEC-1403/1404 closure
|
|
39
|
+
- chore(spec-1404): mark done after independent implementation review
|
|
40
|
+
- chore(planu): move SPEC-1449/1450 to review with challenge resolution evidence
|
|
41
|
+
- chore(planu): file SPEC-1449/1450 dogfood bugs, sync session state
|
|
42
|
+
- chore(spec-1427): mark spec done and drop duplicate test ownership entry
|
|
43
|
+
- chore(spec-1415): reconcile Files scope for done gate, file SPEC-1447 dogfood bug
|
|
44
|
+
- chore(planu): approve SPEC-1415 after challenge/grounding gate fixes
|
|
45
|
+
- chore(planu): sync SDD lifecycle state for SPEC-1404/1415/1427, file SPEC-1445/1446
|
|
46
|
+
- chore(planu): mark SPEC-1429 and SPEC-1431 done, file SPEC-1443/1444
|
|
47
|
+
- chore(planu): sync session-context checkpoint
|
|
48
|
+
- chore(planu): close 8 verified-stale backlog specs
|
|
49
|
+
|
|
50
|
+
|
|
1
51
|
## [5.3.5] - 2026-08-06
|
|
2
52
|
|
|
3
53
|
### Bug Fixes
|
|
@@ -7,7 +7,7 @@ const MAX_VIOLATIONS_PER_CATEGORY = 50;
|
|
|
7
7
|
// ── helpers ───────────────────────────────────────────────────────────────────
|
|
8
8
|
function execSafe(cmd, cwd) {
|
|
9
9
|
try {
|
|
10
|
-
return execSync(cmd, { cwd, stdio: ['pipe', 'pipe', 'pipe'] }).toString();
|
|
10
|
+
return execSync(cmd, { cwd, timeout: 5_000, stdio: ['pipe', 'pipe', 'pipe'] }).toString();
|
|
11
11
|
}
|
|
12
12
|
catch {
|
|
13
13
|
return '';
|
|
@@ -13,6 +13,18 @@ export declare function recordAnalysisTimestamp(specId: string, nowMs?: number,
|
|
|
13
13
|
* Clear all rate limit timestamps (for testing).
|
|
14
14
|
*/
|
|
15
15
|
export declare function clearRateLimitTimestamps(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get the cached result from the last on-impl-change analysis.
|
|
18
|
+
* If projectPath is omitted, returns the most recently set result across all projects.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getLastImplChangeResult(projectPath?: string): ImplChangeAnalysisResult | null;
|
|
21
|
+
/**
|
|
22
|
+
* Reset the on-impl-change diagnostic cache.
|
|
23
|
+
* If projectPath is provided, clears only that project's cache.
|
|
24
|
+
* If omitted, clears all projects.
|
|
25
|
+
* Useful for testing.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resetImplChangeCache(projectPath?: string): void;
|
|
16
28
|
/**
|
|
17
29
|
* Returns true for src/**\/*.ts files, excluding test files.
|
|
18
30
|
* Test files are identified by the .test.ts or .spec.ts suffix.
|
|
@@ -26,9 +38,10 @@ export declare function findRelatedSpecs(filePath: string, specs: MinimalAnalyza
|
|
|
26
38
|
/**
|
|
27
39
|
* Handle an implementation file change event.
|
|
28
40
|
* Fire-and-forget — all errors are caught internally.
|
|
29
|
-
* When specs array and analyzeSpec function are provided, analyzes related specs
|
|
30
|
-
*
|
|
31
|
-
*
|
|
41
|
+
* When specs array and analyzeSpec function are provided, analyzes related specs
|
|
42
|
+
* and records the result as a diagnostic (see getLastImplChangeResult). It never
|
|
43
|
+
* transitions spec lifecycle status or writes spec.md — that requires an explicit
|
|
44
|
+
* reconcile_spec / update_status call by the user (SPEC-1404).
|
|
32
45
|
*/
|
|
33
|
-
export declare function handleOnImplChange(event: WatcherEvent, projectPath: string, specs?: MinimalAnalyzableSpec[], analyzeSpec?: AnalyzeSpecFn
|
|
46
|
+
export declare function handleOnImplChange(event: WatcherEvent, projectPath: string, specs?: MinimalAnalyzableSpec[], analyzeSpec?: AnalyzeSpecFn): Promise<ImplChangeAnalysisResult | undefined>;
|
|
34
47
|
//# sourceMappingURL=on-impl-change.d.ts.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// engine/hooks/handlers/on-impl-change.ts — on-impl-change hook handler (SPEC-137)
|
|
2
2
|
// Triggered when source implementation files (src/**/*.ts) change.
|
|
3
|
-
// Analyzes related specs
|
|
4
|
-
|
|
5
|
-
const UPDATE_STATUS_MODULE = '../../../tools/update-status/index.js';
|
|
3
|
+
// Analyzes related specs and reports completion percentage as a diagnostic —
|
|
4
|
+
// it never mutates spec lifecycle state (SPEC-1404).
|
|
6
5
|
// ---------------------------------------------------------------------------
|
|
7
6
|
// Rate limiter (per spec, 5 min cooldown)
|
|
8
7
|
// ---------------------------------------------------------------------------
|
|
@@ -40,6 +39,38 @@ export function clearRateLimitTimestamps() {
|
|
|
40
39
|
lastAnalysisTimestamps.clear();
|
|
41
40
|
}
|
|
42
41
|
// ---------------------------------------------------------------------------
|
|
42
|
+
// Diagnostic cache (per-project, mirrors on-push-check.ts's cache pattern)
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
const lastImplChangeResultMap = new Map();
|
|
45
|
+
/**
|
|
46
|
+
* Get the cached result from the last on-impl-change analysis.
|
|
47
|
+
* If projectPath is omitted, returns the most recently set result across all projects.
|
|
48
|
+
*/
|
|
49
|
+
export function getLastImplChangeResult(projectPath) {
|
|
50
|
+
if (projectPath !== undefined) {
|
|
51
|
+
return lastImplChangeResultMap.get(projectPath) ?? null;
|
|
52
|
+
}
|
|
53
|
+
let last = null;
|
|
54
|
+
for (const v of lastImplChangeResultMap.values()) {
|
|
55
|
+
last = v;
|
|
56
|
+
}
|
|
57
|
+
return last;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Reset the on-impl-change diagnostic cache.
|
|
61
|
+
* If projectPath is provided, clears only that project's cache.
|
|
62
|
+
* If omitted, clears all projects.
|
|
63
|
+
* Useful for testing.
|
|
64
|
+
*/
|
|
65
|
+
export function resetImplChangeCache(projectPath) {
|
|
66
|
+
if (projectPath !== undefined) {
|
|
67
|
+
lastImplChangeResultMap.delete(projectPath);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
lastImplChangeResultMap.clear();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
43
74
|
// Pattern matching
|
|
44
75
|
// ---------------------------------------------------------------------------
|
|
45
76
|
/**
|
|
@@ -98,11 +129,12 @@ export function findRelatedSpecs(filePath, specs) {
|
|
|
98
129
|
/**
|
|
99
130
|
* Handle an implementation file change event.
|
|
100
131
|
* Fire-and-forget — all errors are caught internally.
|
|
101
|
-
* When specs array and analyzeSpec function are provided, analyzes related specs
|
|
102
|
-
*
|
|
103
|
-
*
|
|
132
|
+
* When specs array and analyzeSpec function are provided, analyzes related specs
|
|
133
|
+
* and records the result as a diagnostic (see getLastImplChangeResult). It never
|
|
134
|
+
* transitions spec lifecycle status or writes spec.md — that requires an explicit
|
|
135
|
+
* reconcile_spec / update_status call by the user (SPEC-1404).
|
|
104
136
|
*/
|
|
105
|
-
export async function handleOnImplChange(event, projectPath, specs, analyzeSpec
|
|
137
|
+
export async function handleOnImplChange(event, projectPath, specs, analyzeSpec) {
|
|
106
138
|
try {
|
|
107
139
|
if (!isSourceFile(event.path)) {
|
|
108
140
|
return;
|
|
@@ -133,53 +165,20 @@ export async function handleOnImplChange(event, projectPath, specs, analyzeSpec,
|
|
|
133
165
|
});
|
|
134
166
|
if (result.completionPct === 100) {
|
|
135
167
|
autoReconciled = true;
|
|
136
|
-
console.warn(`[hooks]
|
|
137
|
-
if (autoMarkDone) {
|
|
138
|
-
await markSpecDone(spec.id, projectPath);
|
|
139
|
-
}
|
|
168
|
+
console.warn(`[hooks] Spec ${spec.id} reached 100% completion (diagnostic only)`);
|
|
140
169
|
}
|
|
141
170
|
}
|
|
142
|
-
|
|
171
|
+
const analysisResult = {
|
|
143
172
|
changedFile: event.path,
|
|
144
173
|
specsAnalyzed: results,
|
|
145
174
|
autoReconciled,
|
|
146
175
|
};
|
|
176
|
+
lastImplChangeResultMap.set(projectPath, analysisResult);
|
|
177
|
+
return analysisResult;
|
|
147
178
|
}
|
|
148
179
|
catch (err) {
|
|
149
180
|
console.warn(`[hooks] on-impl-change error for ${event.path}:`, err);
|
|
150
181
|
return undefined;
|
|
151
182
|
}
|
|
152
183
|
}
|
|
153
|
-
// ---------------------------------------------------------------------------
|
|
154
|
-
// Auto-done helper
|
|
155
|
-
// ---------------------------------------------------------------------------
|
|
156
|
-
/**
|
|
157
|
-
* Mark a spec as 'done' in the spec store.
|
|
158
|
-
* Errors are logged but not re-thrown so the hook pipeline continues.
|
|
159
|
-
*/
|
|
160
|
-
async function markSpecDone(specId, projectPath) {
|
|
161
|
-
try {
|
|
162
|
-
const projectId = hashProjectPath(projectPath);
|
|
163
|
-
// SPEC-720: Route through handleUpdateStatus so all gates (DoD/validate/QA) run.
|
|
164
|
-
const updateStatusModule = (await import(UPDATE_STATUS_MODULE));
|
|
165
|
-
const result = await updateStatusModule.handleUpdateStatus({
|
|
166
|
-
specId,
|
|
167
|
-
status: 'done',
|
|
168
|
-
projectId,
|
|
169
|
-
projectPath,
|
|
170
|
-
trigger: 'fs-hook',
|
|
171
|
-
actor: 'system',
|
|
172
|
-
});
|
|
173
|
-
if (result.isError) {
|
|
174
|
-
const reason = result.content[0]?.type === 'text' ? result.content[0].text : 'gate blocked';
|
|
175
|
-
console.warn(`[hooks] Auto-done blocked for ${specId} (gates): ${reason}`);
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
console.warn(`[hooks] Auto-done: spec ${specId} marked as 'done' via update_status gates`);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
catch (err) {
|
|
182
|
-
console.warn(`[hooks] Auto-done failed for ${specId}:`, err);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
184
|
//# sourceMappingURL=on-impl-change.js.map
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type { Spec, LivingSpecReport } from '../types/index.js';
|
|
1
|
+
import type { Spec, LivingSpecReport, AnalyzeLivingSpecOptions } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Analyze a spec's acceptance criteria against the codebase.
|
|
4
4
|
* Returns a per-criterion assessment and overall completion percentage.
|
|
5
|
+
* Does not write ## Progress into spec.md unless options.writeProgress is true —
|
|
6
|
+
* callers that document a Progress write (reconcile_spec, auto-reconcile) opt in
|
|
7
|
+
* explicitly (SPEC-1404).
|
|
5
8
|
*/
|
|
6
|
-
export declare function analyzeLivingSpec(spec: Spec, projectPath: string): Promise<LivingSpecReport>;
|
|
9
|
+
export declare function analyzeLivingSpec(spec: Spec, projectPath: string, options?: AnalyzeLivingSpecOptions): Promise<LivingSpecReport>;
|
|
7
10
|
//# sourceMappingURL=living-spec-analyzer.d.ts.map
|
|
@@ -12,8 +12,11 @@ const MAX_FILES_TO_SCAN = 80;
|
|
|
12
12
|
/**
|
|
13
13
|
* Analyze a spec's acceptance criteria against the codebase.
|
|
14
14
|
* Returns a per-criterion assessment and overall completion percentage.
|
|
15
|
+
* Does not write ## Progress into spec.md unless options.writeProgress is true —
|
|
16
|
+
* callers that document a Progress write (reconcile_spec, auto-reconcile) opt in
|
|
17
|
+
* explicitly (SPEC-1404).
|
|
15
18
|
*/
|
|
16
|
-
export async function analyzeLivingSpec(spec, projectPath) {
|
|
19
|
+
export async function analyzeLivingSpec(spec, projectPath, options = {}) {
|
|
17
20
|
const criteria = await extractCriteria(spec);
|
|
18
21
|
const assessments = [];
|
|
19
22
|
// Pre-load file index for the project (cached for all criteria)
|
|
@@ -30,7 +33,7 @@ export async function analyzeLivingSpec(spec, projectPath) {
|
|
|
30
33
|
// SPEC-1010 PR-C: Write living spec analysis into the unified spec.md
|
|
31
34
|
// ## Progress section instead of a standalone progress.md file.
|
|
32
35
|
let progressUpdated = false;
|
|
33
|
-
if (spec.specPath) {
|
|
36
|
+
if (options.writeProgress === true && spec.specPath) {
|
|
34
37
|
progressUpdated = await updateProgressInSpec(spec.specPath, assessments, completionPercent);
|
|
35
38
|
}
|
|
36
39
|
else if (spec.progressPath) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
|
-
"cliVersion": "5.3.
|
|
4
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
20
|
+
"artifactSha256": "5969aa547241ec63357a76a7019c62ff3daa81a8396f650e1f795cc7f1e81158",
|
|
21
21
|
"sbom": {
|
|
22
22
|
"format": "CycloneDX-1.5",
|
|
23
23
|
"path": "planu-core.darwin-arm64.node.sbom.json",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "757ec9b87c1e0f2cbcd96194fa9d0c97f728b6c42789ea547f303d920e6bb542"
|
|
25
25
|
},
|
|
26
26
|
"provenance": {
|
|
27
27
|
"builder": "scripts/build-rust-local.sh",
|
|
28
|
-
"sourceCommit": "
|
|
28
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
37
|
+
"value": "Ia+76Z663Ktv2bkf8x7TjdNXGsA/l8pCasDiSYsJmCbJ01jVxqO+qcRZ7ayNq6wrZ7/vD/OR4YyDhAv5bQvqBg=="
|
|
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.
|
|
7
|
+
"bom-ref": "pkg:cargo/planu-core@5.3.7",
|
|
8
8
|
"type": "library",
|
|
9
9
|
"name": "planu-core",
|
|
10
|
-
"version": "5.3.
|
|
10
|
+
"version": "5.3.7",
|
|
11
11
|
"hashes": [
|
|
12
12
|
{
|
|
13
13
|
"alg": "SHA-256",
|
|
14
|
-
"content": "
|
|
14
|
+
"content": "5969aa547241ec63357a76a7019c62ff3daa81a8396f650e1f795cc7f1e81158"
|
|
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.
|
|
1109
|
+
"ref": "pkg:cargo/planu-core@5.3.7",
|
|
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
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
20
|
+
"artifactSha256": "53ce7d511df238b0fd1831ad04bc707b49595aeec2cf17cb010e292bdd0783db",
|
|
21
21
|
"sbom": {
|
|
22
22
|
"format": "CycloneDX-1.5",
|
|
23
23
|
"path": "planu-core.darwin-x64.node.sbom.json",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "fb6e23c6c74daed13132788a88c1d02b348d392baabeeda70d14d2f291830b29"
|
|
25
25
|
},
|
|
26
26
|
"provenance": {
|
|
27
27
|
"builder": "scripts/build-rust-local.sh",
|
|
28
|
-
"sourceCommit": "
|
|
28
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
37
|
+
"value": "qk6XvA4l7UGWmK2xYdpnkdSp6FizRrviTgz8bXsKMohnF+X5epsXZKADWMOQuMOaD956mzmkAj35D+oJFsDxDw=="
|
|
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.
|
|
7
|
+
"bom-ref": "pkg:cargo/planu-core@5.3.7",
|
|
8
8
|
"type": "library",
|
|
9
9
|
"name": "planu-core",
|
|
10
|
-
"version": "5.3.
|
|
10
|
+
"version": "5.3.7",
|
|
11
11
|
"hashes": [
|
|
12
12
|
{
|
|
13
13
|
"alg": "SHA-256",
|
|
14
|
-
"content": "
|
|
14
|
+
"content": "53ce7d511df238b0fd1831ad04bc707b49595aeec2cf17cb010e292bdd0783db"
|
|
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.
|
|
1109
|
+
"ref": "pkg:cargo/planu-core@5.3.7",
|
|
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
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
19
|
+
"artifactSha256": "e028b42de742bd6fa24701f16fd98d1612c99910dd65b17c48397f7203ac9a67",
|
|
20
20
|
"sbom": {
|
|
21
21
|
"format": "CycloneDX-1.5",
|
|
22
22
|
"path": "planu-core.linux-arm64-gnu.node.sbom.json",
|
|
23
|
-
"sha256": "
|
|
23
|
+
"sha256": "d832a0f7e5270482b8d9dc7aed5d5d8343ab692b35f9844c464cb211b0336c89"
|
|
24
24
|
},
|
|
25
25
|
"provenance": {
|
|
26
26
|
"builder": "scripts/build-rust-local.sh",
|
|
27
|
-
"sourceCommit": "
|
|
27
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
36
|
+
"value": "T/tkZC0rxSANsXzAc7BPR/XuGXyF2Q80FlgZmlxOptgLFHNzPvMajWoryBvAPLo5M5/hgd1vfQrGdQUo4VwwAw=="
|
|
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.
|
|
7
|
+
"bom-ref": "pkg:cargo/planu-core@5.3.7",
|
|
8
8
|
"type": "library",
|
|
9
9
|
"name": "planu-core",
|
|
10
|
-
"version": "5.3.
|
|
10
|
+
"version": "5.3.7",
|
|
11
11
|
"hashes": [
|
|
12
12
|
{
|
|
13
13
|
"alg": "SHA-256",
|
|
14
|
-
"content": "
|
|
14
|
+
"content": "e028b42de742bd6fa24701f16fd98d1612c99910dd65b17c48397f7203ac9a67"
|
|
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.
|
|
1109
|
+
"ref": "pkg:cargo/planu-core@5.3.7",
|
|
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
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
19
|
+
"artifactSha256": "8088eca500977faa73bd856bfe230255496cadc0e6dedbe507b12f2a785bb842",
|
|
20
20
|
"sbom": {
|
|
21
21
|
"format": "CycloneDX-1.5",
|
|
22
22
|
"path": "planu-core.linux-arm64-musl.node.sbom.json",
|
|
23
|
-
"sha256": "
|
|
23
|
+
"sha256": "a9da9e9d6fe66aeb38d3b2a171070e5cff569165c338cfaf8dc7e9f9cc2111d5"
|
|
24
24
|
},
|
|
25
25
|
"provenance": {
|
|
26
26
|
"builder": "scripts/build-rust-local.sh",
|
|
27
|
-
"sourceCommit": "
|
|
27
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
36
|
+
"value": "jg+UY6UJf0S/RDF81RiKUxgsa3ujNuBu7K2bUIsxpuP/rnKXmZrCPZX30BmSZoyYSVYspF9VVlfwlfDb6mZcAQ=="
|
|
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.
|
|
7
|
+
"bom-ref": "pkg:cargo/planu-core@5.3.7",
|
|
8
8
|
"type": "library",
|
|
9
9
|
"name": "planu-core",
|
|
10
|
-
"version": "5.3.
|
|
10
|
+
"version": "5.3.7",
|
|
11
11
|
"hashes": [
|
|
12
12
|
{
|
|
13
13
|
"alg": "SHA-256",
|
|
14
|
-
"content": "
|
|
14
|
+
"content": "8088eca500977faa73bd856bfe230255496cadc0e6dedbe507b12f2a785bb842"
|
|
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.
|
|
1109
|
+
"ref": "pkg:cargo/planu-core@5.3.7",
|
|
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
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
19
|
+
"artifactSha256": "69b3f0f7054729ddda1c16481de50cd2371fc297bf2ca9bffd03291c596a853f",
|
|
20
20
|
"sbom": {
|
|
21
21
|
"format": "CycloneDX-1.5",
|
|
22
22
|
"path": "planu-core.linux-x64-gnu.node.sbom.json",
|
|
23
|
-
"sha256": "
|
|
23
|
+
"sha256": "105e157699e6e089c740c37c50e666d0feef8b01939466e97e92c5fc3676b919"
|
|
24
24
|
},
|
|
25
25
|
"provenance": {
|
|
26
26
|
"builder": "scripts/build-rust-local.sh",
|
|
27
|
-
"sourceCommit": "
|
|
27
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
36
|
+
"value": "ovSb2fxdlhx8Shy5vQUS6mDePdVnSMfMAfhyW/ukSKrPS8BCA7sNYdq5JQ+1d24qtLLhR0Y+Wi89ShHz61VHAA=="
|
|
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.
|
|
7
|
+
"bom-ref": "pkg:cargo/planu-core@5.3.7",
|
|
8
8
|
"type": "library",
|
|
9
9
|
"name": "planu-core",
|
|
10
|
-
"version": "5.3.
|
|
10
|
+
"version": "5.3.7",
|
|
11
11
|
"hashes": [
|
|
12
12
|
{
|
|
13
13
|
"alg": "SHA-256",
|
|
14
|
-
"content": "
|
|
14
|
+
"content": "69b3f0f7054729ddda1c16481de50cd2371fc297bf2ca9bffd03291c596a853f"
|
|
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.
|
|
1109
|
+
"ref": "pkg:cargo/planu-core@5.3.7",
|
|
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
|
-
"engineVersion": "5.3.
|
|
5
|
-
"buildId": "1-5.3.
|
|
3
|
+
"cliVersion": "5.3.7",
|
|
4
|
+
"engineVersion": "5.3.7",
|
|
5
|
+
"buildId": "1-5.3.7-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": "
|
|
19
|
+
"artifactSha256": "bf270b2b6a40ba2211487f2da514183717cdc24b28cbee53f8d62af0462317bd",
|
|
20
20
|
"sbom": {
|
|
21
21
|
"format": "CycloneDX-1.5",
|
|
22
22
|
"path": "planu-core.linux-x64-musl.node.sbom.json",
|
|
23
|
-
"sha256": "
|
|
23
|
+
"sha256": "6630878e3b9ae9e9a552a1d26d57e61575bd0507ef62270d375a4f47e5c3134d"
|
|
24
24
|
},
|
|
25
25
|
"provenance": {
|
|
26
26
|
"builder": "scripts/build-rust-local.sh",
|
|
27
|
-
"sourceCommit": "
|
|
27
|
+
"sourceCommit": "2ec2f2db1b564d710e56bee0b7637b49c540ca32",
|
|
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": "
|
|
36
|
+
"value": "jd3TfnFE+uJqatv0qIhNiO1Pd/c0GxogpwD0Mp30gzgO/65Dv8McDE2YtA3aVSKfQDLtj8hKhZqKCcDgC4FFAw=="
|
|
37
37
|
}
|
|
38
38
|
}
|