@mcptoolshop/promo-kit 0.1.2 → 0.1.3

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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.3 — 2026-02-16
4
+
5
+ ### Fixed
6
+
7
+ - Config template now includes `paths.dataDir` and `paths.publicDir` so path overrides are discoverable
8
+ - Selftest detects unknown keys in `paths` (e.g. `paths.data` → "did you mean `paths.dataDir`?")
9
+
10
+ ### Added
11
+
12
+ - Dogfood pilot: trust receipt generated against own catalog repo (commit + SHA-256 hashes)
13
+
3
14
  ## 0.1.2 — 2026-02-16
4
15
 
5
16
  ### Changed
package/README.md CHANGED
@@ -9,6 +9,12 @@
9
9
  Receipt-backed promotions · freeze modes · drift detection · <b>zero dependencies</b>
10
10
  </p>
11
11
 
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@mcptoolshop/promo-kit"><img src="https://img.shields.io/npm/v/@mcptoolshop/promo-kit?style=flat-square&color=cb3837" alt="npm version" /></a>
14
+ <a href="https://github.com/mcp-tool-shop/mcp-tool-shop/releases"><img src="https://img.shields.io/github/v/release/mcp-tool-shop/mcp-tool-shop?style=flat-square&label=release" alt="GitHub release" /></a>
15
+ <a href="https://github.com/mcp-tool-shop/mcp-tool-shop/blob/main/packages/promo-kit/LICENSE"><img src="https://img.shields.io/npm/l/@mcptoolshop/promo-kit?style=flat-square" alt="license" /></a>
16
+ </p>
17
+
12
18
  ---
13
19
 
14
20
  ## What it does
@@ -15,5 +15,9 @@
15
15
  },
16
16
  "contact": {
17
17
  "email": "team@example.com"
18
+ },
19
+ "paths": {
20
+ "dataDir": "site/src/data",
21
+ "publicDir": "site/public"
18
22
  }
19
23
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcptoolshop/promo-kit",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Portable promotion engine for tool catalogs. Receipt-backed promotions, freeze modes, drift detection.",
5
5
  "type": "module",
6
6
  "main": "./index.mjs",
@@ -78,6 +78,20 @@ check("kit.config.json is valid JSON with required fields", () => {
78
78
  assert(config.paths?.publicDir, "paths.publicDir missing");
79
79
  });
80
80
 
81
+ // Warn about unknown keys in paths (common misconfiguration)
82
+ check("no unknown keys in paths", () => {
83
+ const knownPathKeys = new Set(["dataDir", "publicDir"]);
84
+ const unknownKeys = Object.keys(config.paths || {}).filter((k) => !knownPathKeys.has(k));
85
+ if (unknownKeys.length > 0) {
86
+ const hints = unknownKeys.map((k) => {
87
+ if (k === "data") return `"paths.data" → did you mean "paths.dataDir"?`;
88
+ if (k === "public") return `"paths.public" → did you mean "paths.publicDir"?`;
89
+ return `"paths.${k}" is not a recognized field`;
90
+ });
91
+ throw new Error(`Unknown paths keys: ${hints.join("; ")}`);
92
+ }
93
+ });
94
+
81
95
  check("kitVersion in supported range", () => {
82
96
  const v = config.kitVersion;
83
97
  assert(