@rightkit/release 0.2.133 → 0.2.134

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.
@@ -72,13 +72,21 @@ function destinationFor(line) {
72
72
  }
73
73
 
74
74
  /** Find repository subdirectories above storage threshold outside managed root. */
75
- export function findLargeRepositorySubdirectories({ appRoot, managedRoot = resolveManagedRoot(), thresholdBytes = DEFAULT_STORAGE_THRESHOLD_BYTES, ignored = gitIgnored } = {}) {
75
+ export function findLargeRepositorySubdirectories({ appRoot, managedRoot = resolveManagedRoot(), thresholdBytes = DEFAULT_STORAGE_THRESHOLD_BYTES, ignored = gitIgnored, declared = [] } = {}) {
76
76
  if (!Number.isFinite(thresholdBytes) || thresholdBytes < 1) throw new TypeError("thresholdBytes must be positive");
77
77
  const root = path.resolve(appRoot);
78
78
  const ignoredRoot = managedRoot ? path.resolve(managedRoot) : null;
79
79
  const findings = [];
80
80
  const inside = (candidate, parent) => candidate === parent || candidate.startsWith(`${parent}${path.sep}`);
81
81
  const managedIgnored = ignoredRoot && inside(ignoredRoot, root) ? Boolean(ignored(ignoredRoot, root)) : false;
82
+ // App-declared durable stores (model stores, test fixture roots) are intentional and exempt.
83
+ // Each needs a reason: config `storage.declaredStores: [{ path, reason }]`, paths relative to the app root.
84
+ const declaredRoots = (declared ?? []).map((item) => {
85
+ if (!item?.path || !String(item.reason ?? "").trim()) throw new TypeError("storage.declaredStores entries need path and reason");
86
+ const resolved = path.resolve(root, item.path);
87
+ if (!inside(resolved, root) || resolved === root) throw new TypeError(`storage.declaredStores path must be inside the app root: ${item.path}`);
88
+ return resolved;
89
+ });
82
90
  const walk = (directory) => {
83
91
  let total = 0;
84
92
  let entries;
@@ -91,6 +99,7 @@ export function findLargeRepositorySubdirectories({ appRoot, managedRoot = resol
91
99
  if (stat.isSymbolicLink()) continue;
92
100
  if (stat.isDirectory()) {
93
101
  if (managedIgnored && inside(file, ignoredRoot)) continue;
102
+ if (declaredRoots.some((declaredRoot) => inside(file, declaredRoot))) continue;
94
103
  total += walk(file);
95
104
  } else if (stat.isFile()) total += stat.size;
96
105
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rightkit/release",
3
- "version": "0.2.133",
3
+ "version": "0.2.134",
4
4
  "description": "Portable release CLI/SDK with fail-closed public GitHub Releases and private R2 + RightApps distribution.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "type": "module",
package/release.mjs CHANGED
@@ -210,7 +210,7 @@ if (opts.doctor) {
210
210
  });
211
211
  const storageFindings = [
212
212
  ...installerCopyFindings,
213
- ...findLargeRepositorySubdirectories({ appRoot: root, managedRoot, thresholdBytes: Number(process.env.RIGHTKIT_ARTIFACT_STORAGE_THRESHOLD_BYTES ?? DEFAULT_STORAGE_THRESHOLD_BYTES) }),
213
+ ...findLargeRepositorySubdirectories({ appRoot: root, managedRoot, declared: config.storage?.declaredStores ?? [], thresholdBytes: Number(process.env.RIGHTKIT_ARTIFACT_STORAGE_THRESHOLD_BYTES ?? DEFAULT_STORAGE_THRESHOLD_BYTES) }),
214
214
  ];
215
215
  if (storageFindings.length) {
216
216
  console.log("artifact-storage: report-only storage findings detected:");
@@ -281,8 +281,9 @@ if (opts.platform === "win") {
281
281
  });
282
282
  }
283
283
  } else if (opts.platform === "mac") {
284
- const signingFiles = target.sign.prePackageFiles.map((p) => path.resolve(root, p));
285
284
  if (runMacPhase("prepackage")) await runCommand(target.prePackage, root);
285
+ // Resolve after prePackage: with storage governance the artifact may live only in RIGHT_RELEASE_ARTIFACT_DIR.
286
+ const signingFiles = target.sign.prePackageFiles.map((p) => resolveReleaseArtifactPath(root, p));
286
287
  for (const file of signingFiles) await mustExist(file, `missing macOS Developer ID signing artifact: ${file}`);
287
288
  if (runMacPhase("sign")) await signMacos(signingFiles, root);
288
289
  } else if (nativeAssembly) {
@@ -27,9 +27,9 @@
27
27
  "@rightkit/onboarding": "0.2.3",
28
28
  "@rightkit/pdf-ui": "0.1.2",
29
29
  "@rightkit/platform-ui": "0.1.2",
30
- "@rightkit/qa": "0.3.0",
30
+ "@rightkit/qa": "0.3.1",
31
31
  "@rightkit/qa-chrome": "0.1.3",
32
- "@rightkit/release": "0.2.133",
32
+ "@rightkit/release": "0.2.134",
33
33
  "@rightkit/settings-ui": "0.2.7",
34
34
  "@rightkit/shell": "0.1.0",
35
35
  "@rightkit/tauri": "0.1.1",
@@ -156,7 +156,8 @@
156
156
  "0.2.129",
157
157
  "0.2.130",
158
158
  "0.2.131",
159
- "0.2.132"
159
+ "0.2.132",
160
+ "0.2.133"
160
161
  ],
161
162
  "@rightkit/qa": [
162
163
  "0.1.0",
@@ -164,7 +165,8 @@
164
165
  "0.2.1",
165
166
  "0.2.2",
166
167
  "0.2.3",
167
- "0.2.4"
168
+ "0.2.4",
169
+ "0.3.0"
168
170
  ],
169
171
  "@rightkit/app-shell": [
170
172
  "0.1.0",
@@ -256,7 +258,7 @@
256
258
  "rightkit-pdf": "0.1.0",
257
259
  "rightkit-playback": "0.1.1",
258
260
  "rightkit-process": "0.3.1",
259
- "rightkit-qa": "0.2.10",
261
+ "rightkit-qa": "0.2.11",
260
262
  "rightkit-qts": "0.2.1",
261
263
  "rightkit-qts-ggml": "0.1.0",
262
264
  "rightkit-qts-ggml-sys": "0.1.0",
@@ -306,7 +308,7 @@
306
308
  "rightkit-pdf": "0.1.0",
307
309
  "rightkit-playback": "0.1.1",
308
310
  "rightkit-process": "0.3.1",
309
- "rightkit-qa": "0.2.10",
311
+ "rightkit-qa": "0.2.11",
310
312
  "rightkit-qts": "0.2.1",
311
313
  "rightkit-qts-ggml": "0.1.0",
312
314
  "rightkit-qts-ggml-sys": "0.1.0",
@@ -335,9 +337,9 @@
335
337
  "@rightkit/onboarding": "0.2.3",
336
338
  "@rightkit/pdf-ui": "0.1.2",
337
339
  "@rightkit/platform-ui": "0.1.2",
338
- "@rightkit/qa": "0.3.0",
340
+ "@rightkit/qa": "0.3.1",
339
341
  "@rightkit/qa-chrome": "0.1.3",
340
- "@rightkit/release": "0.2.132",
342
+ "@rightkit/release": "0.2.133",
341
343
  "@rightkit/settings-ui": "0.2.7",
342
344
  "@rightkit/shell": "0.1.0",
343
345
  "@rightkit/tauri": "0.1.1",
@@ -389,7 +391,8 @@
389
391
  "rightkit-qa": [
390
392
  "0.2.7",
391
393
  "0.2.8",
392
- "0.2.9"
394
+ "0.2.9",
395
+ "0.2.10"
393
396
  ],
394
397
  "rightkit-sandbox": [
395
398
  "0.1.0",