iterate-skill-installer 3.9.4 → 3.10.0

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 (2) hide show
  1. package/lib/installer.js +14 -2
  2. package/package.json +1 -1
package/lib/installer.js CHANGED
@@ -593,7 +593,13 @@ function verifyGpgDetachedSignature(artifactPath, signaturePath, publicKeyArmor,
593
593
  return { status: 'unavailable', detail: 'gpg binary not found' };
594
594
  }
595
595
  if (importResult.error.code === 'ETIMEDOUT' || importResult.signal === 'SIGKILL') {
596
- return { status: 'unavailable', detail: `gpg import timed out after ${timeout} ms` };
596
+ // A hung gpg is not missing evidence: classify it 'invalid' so the
597
+ // ITERATE_ALLOW_UNSIGNED override cannot bypass authenticity (fail closed,
598
+ // mirroring the verify-timeout branch below and scripts/install.py).
599
+ return {
600
+ status: 'invalid',
601
+ detail: `gpg import timed out after ${timeout} ms (treated as invalid)`,
602
+ };
597
603
  }
598
604
  return { status: 'unavailable', detail: importResult.error.message };
599
605
  }
@@ -615,7 +621,13 @@ function verifyGpgDetachedSignature(artifactPath, signaturePath, publicKeyArmor,
615
621
  );
616
622
  if (verifyResult.error) {
617
623
  if (verifyResult.error.code === 'ETIMEDOUT' || verifyResult.signal === 'SIGKILL') {
618
- return { status: 'unavailable', detail: `gpg verify timed out after ${timeout} ms` };
624
+ // A hung gpg is not a missing dependency: classify it as 'invalid' so the
625
+ // ITERATE_ALLOW_UNSIGNED override cannot bypass authenticity. Mirrors
626
+ // iterate_cli/signing.py and scripts/install.py (keep in sync).
627
+ return {
628
+ status: 'invalid',
629
+ detail: `gpg verify timed out after ${timeout} ms (treated as invalid)`,
630
+ };
619
631
  }
620
632
  return { status: 'unavailable', detail: `gpg launch failed: ${verifyResult.error.message}` };
621
633
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iterate-skill-installer",
3
- "version": "3.9.4",
3
+ "version": "3.10.0",
4
4
  "description": "One-command installer for iterate-skill across AI coding assistants",
5
5
  "main": "lib/installer.js",
6
6
  "files": [