From 3de3e88abc06c515a8bd5d0ecd0e2680a9a8c0a4 Mon Sep 17 00:00:00 2001 From: DanMat Date: Sun, 2 Aug 2026 13:35:09 -0400 Subject: [PATCH] chore: declare the Node floor we actually test, clarify upgrade docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Packkit's own package.json (root and mcp) declared engines node >=18, but CI only exercises Node 20, 22, and 24 — an untested, EOL floor that any provider package would inherit through a peerDependency range. Raise both to >=20 so the declared floor matches what we test. (Generated projects keep their deliberate Node 24 floor; the react/react-dom >=18 peer ranges are unrelated.) Also reorder the README upgrade section so the flow reads new-projects-first: baseline-aware for 3.3+ projects, conservative fallback for older ones, and an explicit note that --apply never overwrites your edits or resolves conflicts. Co-Authored-By: Claude Opus 4.8 --- README.md | 14 +++++++++----- mcp/package.json | 2 +- package.json | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f648e42..82820a3 100644 --- a/README.md +++ b/README.md @@ -92,16 +92,20 @@ Your own files, scripts, and dependencies are never touched by `--apply`. The report lists everything preserved so you can review it and opt into replacement where you want Packkit's version. -**Baseline-aware.** Since it records a baseline of what it generated (in -`packkit.json`), upgrade can do a three-way comparison and tell the difference -between a change *you* made and one the *template* made: +**Baseline-aware (new projects).** Projects scaffolded with Packkit 3.3+ record +a baseline of what was generated (in `packkit.json`), so upgrade can do a +three-way comparison and tell the difference between a change *you* made and one +the *template* made: - **template-only change** (you didn't edit it) → applied by `--apply`, safely; - **your edit** (the template didn't change) → preserved; - **both changed** → flagged as a conflict to review. -Older projects without a baseline fall back to the conservative rule: anything -that differs is preserved for review. `--json` reports the classification and +**Older projects** without a baseline fall back to the conservative rule: +anything that differs is preserved for review. + +Either way, `--apply` never overwrites your own edits or resolves conflicts for +you — those are always preserved. `--json` reports the classification and `baselineAvailable` for automation. **Honest provenance.** After an upgrade, `packkit.json` records what actually diff --git a/mcp/package.json b/mcp/package.json index 2acfd2e..b9b8382 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -12,7 +12,7 @@ "README.md" ], "engines": { - "node": ">=18" + "node": ">=20" }, "repository": { "type": "git", diff --git a/package.json b/package.json index 980b016..b6a063d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "llms.txt" ], "engines": { - "node": ">=18" + "node": ">=20" }, "scripts": { "start": "node bin/cli.js",