roast-my-design-system 9.0.3 → 9.0.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.
package/cli/roast.mjs CHANGED
@@ -209,10 +209,13 @@ const tmp = mkdtempSync(join(tmpdir(), 'roast-'));
209
209
  const harvestPath = join(tmp, 'harvest.json');
210
210
  const summaryPath = join(tmp, 'summary.json');
211
211
 
212
- function run(script, args, env) {
213
- // --json keeps stdout clean for the JSON payload; child chatter is dropped
212
+ function run(script, args) {
213
+ // --json keeps stdout clean for the JSON payload; child chatter is dropped.
214
+ // No env is passed: the child inherits the process environment as any
215
+ // child does, and nothing is copied or added (9.0.4: a plugin scanner
216
+ // reads an explicit spread of process.env as forwarding credentials).
214
217
  const r = spawnSync(process.execPath, [join(SCRIPTS, script), ...args],
215
- { stdio: asJson ? 'ignore' : 'inherit', ...(env ? { env: { ...process.env, ...env } } : {}) });
218
+ { stdio: asJson ? 'ignore' : 'inherit' });
216
219
  if (r.status !== 0) {
217
220
  rmSync(tmp, { recursive: true, force: true });
218
221
  process.exit(r.status ?? 1);
@@ -233,8 +236,8 @@ try {
233
236
 
234
237
  // the harvest goes to a temp dir this wrapper deletes right after; tell the
235
238
  // script so it does not print a path that will be gone seconds later
236
- run('harvest/index.mjs', [target, '--out', harvestPath,
237
- ...excludes.flatMap((e) => ['--exclude', e])], { ROAST_EPHEMERAL_OUT: '1' });
239
+ run('harvest/index.mjs', [target, '--out', harvestPath, '--ephemeral-out',
240
+ ...excludes.flatMap((e) => ['--exclude', e])]);
238
241
  say('');
239
242
  run('diagnose/index.mjs', [harvestPath, '--out', outPath, '--theme', theme, '--summary', summaryPath,
240
243
  ...(commissionedBy ? ['--by', commissionedBy] : []),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roast-my-design-system",
3
- "version": "9.0.3",
3
+ "version": "9.0.5",
4
4
  "mcpName": "io.github.gregkozakiewicz/roast-my-design-system",
5
5
  "description": "Your AI can write the UI. This makes sure it writes your UI. A deterministic scanner scores your design system 0-100 against 112 public repos, reads React and web components (Stencil, Lit), hands you a copy-paste fix prompt for each top finding, writes rules for Claude, Cursor, Copilot and Windsurf with --apply, and runs as a local MCP server with --mcp.",
6
6
  "keywords": [
@@ -295,7 +295,9 @@ writeFileSync(outPath, JSON.stringify(harvest, null, 2));
295
295
  // itself from harvest.json. Run directly (the skill flow), everything prints
296
296
  // here in one go, with the real output path at the end.
297
297
  for (const l of headerLines(harvest)) console.log(l);
298
- if (process.env.ROAST_EPHEMERAL_OUT !== '1') {
298
+ // --ephemeral-out: the npx wrapper deletes the harvest right after, so the
299
+ // path is not worth printing (a flag since 9.0.4; it was an env var)
300
+ if (!process.argv.includes('--ephemeral-out')) {
299
301
  for (const l of detailLines(harvest)) console.log(l);
300
302
  console.log(`\n → ${outPath} (${harvest.tookMs}ms)`);
301
303
  }
@@ -1,7 +1,7 @@
1
1
  // Single version constant for the engine — imported by diagnose (report
2
2
  // footer) and rules (generated-by line). This is the bump spot that used to
3
3
  // live as a const inside diagnose/index.mjs.
4
- export const VERSION = '9.0.3';
4
+ export const VERSION = '9.0.5';
5
5
  // The shape of harvest.json and summary.json. Bumped only when a field is
6
6
  // renamed, removed or changes meaning; a new field is not a new schema. A
7
7
  // tool comparing two scans compares like with like by this number, not by VERSION.