@skyf0xx/hedgehog 6.2.9 → 6.2.10

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/bin/cli.mjs CHANGED
@@ -2250,8 +2250,12 @@ async function verifyCommand(args) {
2250
2250
  }
2251
2251
 
2252
2252
  // Fires once per project — see community.mjs. Deliberately last: after
2253
- // the gate's own output, not before it.
2254
- const starJustShown = await shouldPromptForStar(DEST_ROOT, { intentComplete: result.intentComplete });
2253
+ // the gate's own output, not before it. Suppressed by HEDGEHOG_NO_COMMUNITY_PROMPT
2254
+ // for ephemeral workflows (temp-dir installs with no persistent .hedgehog/ to track
2255
+ // cooldown state) that would otherwise re-fire on every invocation.
2256
+ const starJustShown = process.env.HEDGEHOG_NO_COMMUNITY_PROMPT
2257
+ ? false
2258
+ : await shouldPromptForStar(DEST_ROOT, { intentComplete: result.intentComplete });
2255
2259
  if (starJustShown) {
2256
2260
  console.log(formatStarPrompt());
2257
2261
  console.log('');
@@ -2262,7 +2266,8 @@ async function verifyCommand(args) {
2262
2266
  // just showed the star prompt for the first time. See
2263
2267
  // shouldPromptForShowcase for why `starJustShown` has to come from
2264
2268
  // here rather than being re-derived from state.
2265
- if (await shouldPromptForShowcase(DEST_ROOT, { intentComplete: result.intentComplete, starJustShown })) {
2269
+ if (!process.env.HEDGEHOG_NO_COMMUNITY_PROMPT &&
2270
+ (await shouldPromptForShowcase(DEST_ROOT, { intentComplete: result.intentComplete, starJustShown }))) {
2266
2271
  console.log(formatShowcasePrompt());
2267
2272
  console.log('');
2268
2273
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyf0xx/hedgehog",
3
- "version": "6.2.9",
3
+ "version": "6.2.10",
4
4
  "description": "Install the Hedgehog build discipline (agents + skills) into a repo, for Claude Code, Cursor, or Gemini CLI.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hedgehog",
3
- "version": "6.2.9",
3
+ "version": "6.2.10",
4
4
  "description": "Hedgehog build discipline: ordered, tested, verified build steps.",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
@@ -41,6 +41,12 @@ export const CORE_CACHE_ROOT = join(homedir(), '.hedgehog', 'cores');
41
41
  // exercised end to end before it is published.
42
42
  const SOURCE_ENV = 'HEDGEHOG_CORE_SOURCE';
43
43
 
44
+ // Skip cache (both reads and writes) when set; every invocation gets a fresh
45
+ // npm pack with no persistence to ~/.hedgehog/cores/. Useful when the
46
+ // caller's use of the fetched core is ephemeral or when accurate npm
47
+ // download stats are needed.
48
+ const NO_CACHE_ENV = 'HEDGEHOG_CORE_NO_CACHE';
49
+
44
50
  const exists = (p) =>
45
51
  access(p, constants.F_OK).then(
46
52
  () => true,
@@ -83,6 +89,13 @@ export async function fetchCore(entry) {
83
89
  throw err;
84
90
  }
85
91
 
92
+ // When NO_CACHE_ENV is set, skip cache entirely and return the staged
93
+ // extraction directly, leaving staged.tmp in place (since staged.root
94
+ // lives inside it).
95
+ if (process.env[NO_CACHE_ENV]) {
96
+ return { ...read, root: staged.root, version };
97
+ }
98
+
86
99
  // Another install may have cached this exact version between the pack
87
100
  // and now; its copy is as good as this one, so keep it and drop ours.
88
101
  if (await exists(cached)) {