create-substrat 0.8.5 → 0.8.6

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/index.js CHANGED
@@ -36,11 +36,11 @@ const TEMPLATE = join(HERE, 'template');
36
36
  // The runtime packages release together off one version line (the changesets `fixed`
37
37
  // group), so one constant is right for all of them. Engines do NOT share a line —
38
38
  // each versions on its own, so one pin per engine, deliberately.
39
- const SUBSTRAT = '^0.97.0';
40
- const ENGINE_WORKORDER = '^0.10.5';
41
- const ENGINE_INVOICING = '^0.9.13';
42
- const BOUNDARY_LINT = '^0.3.0';
43
- const DEV_ISSUER = '^0.1.12';
39
+ const SUBSTRAT = '^0.98.0';
40
+ const ENGINE_WORKORDER = '^0.10.6';
41
+ const ENGINE_INVOICING = '^0.9.14';
42
+ const BOUNDARY_LINT = '^0.4.0';
43
+ const DEV_ISSUER = '^0.1.13';
44
44
 
45
45
  const DOCS = 'https://substrat.net';
46
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-substrat",
3
- "version": "0.8.5",
3
+ "version": "0.8.6",
4
4
  "description": "Scaffold a Substrat vertical — `npm create substrat <dir>`.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -223,6 +223,21 @@ vertical done, boot the server and drive the real flow over HTTP as two personas
223
223
  should succeed and one who should be denied — and confirm the denial arrives as a denial
224
224
  (not a generic error).
225
225
 
226
+ ## When it breaks — symptom → fix
227
+
228
+ Six failures that have each cost someone a day. What makes them expensive is that none of
229
+ them names its own cause: the symptom points somewhere other than the fix, so an agent
230
+ debugging from first principles walks away from the answer.
231
+
232
+ | Symptom | Fix |
233
+ |---|---|
234
+ | `expected a Zod schema` at runtime, pointing nowhere useful | Two copies of Zod. Never add `zod` to `package.json` — import `z` from `@substrat-run/contracts`, so the schema you build and the one the host validates with are the same class. |
235
+ | Killing the dev server kills unrelated ones too | `pkill -f 'tsx src/server.ts'` matches every Substrat project running on the machine, not just yours. Kill by port instead: `kill $(lsof -ti :<port>)`. |
236
+ | Green locally, red in CI, with nothing in the diff that explains it | A warm build output hides it. Delete `dist`, reinstall from the lockfile (`--frozen-lockfile`), and re-run the gates before believing a local green. |
237
+ | Green test suite, broken app | The scenario calls operations directly and never reaches `server.ts`, its routes, or the principal picker. Boot the server and drive the flow over HTTP as two personas — one who should succeed and one who should be denied. |
238
+ | Permission denied after you widened a role | Roles are projected into a scope when that scope is provisioned, from `ROLES` in `src/provision.ts`. An existing scope keeps the projection it was born with — re-provision it (or re-seed onto a fresh data directory), then present the permission diff below. |
239
+ | `pnpm install` dies compiling `better-sqlite3` | Take `better-sqlite3` out of `pnpm.onlyBuiltDependencies`. Since 13.x it ships prebuilt binaries and no install script, but it still ships a `binding.gyp` — so an allowlist entry makes pnpm run a `node-gyp rebuild` that nothing here needs. |
240
+
226
241
  ## Two human checkpoints — you may never self-approve
227
242
 
228
243
  Present these and stop: