genesis-stack 1.4.7 → 1.4.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genesis-stack",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "description": "The optional curated technology Stack catalog for Genesis projects.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -82,3 +82,11 @@ JSKIT MySQL runtime, live-schema CRUD generation, and persistence conventions.
82
82
  error translation at one established persistence boundary.
83
83
  - Never compete with or rewrite a generator-owned baseline migration. Preserve
84
84
  retained migration history and data semantics.
85
+
86
+ ## Data pass
87
+
88
+ - Apply the MySQL part of JSKIT's data pass page at
89
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/data-pass#mysql`:
90
+ one schema change per migration because MySQL DDL commits as it goes, online
91
+ index changes that fail rather than lock (`ALGORITHM=INPLACE, LOCK=NONE`),
92
+ and `EXPLAIN ANALYZE` on the test database at realistic size.
@@ -78,3 +78,11 @@ JSKIT PostgreSQL runtime, live-schema CRUD generation, and persistence conventio
78
78
  error translation at one established persistence boundary.
79
79
  - Never compete with or rewrite a generator-owned baseline migration. Preserve
80
80
  retained migration history and data semantics.
81
+
82
+ ## Data pass
83
+
84
+ - Apply the PostgreSQL part of JSKIT's data pass page at
85
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/data-pass#postgresql`:
86
+ concurrent index builds in a migration without a transaction, constraints
87
+ added `NOT VALID` and validated afterwards on large tables, and
88
+ `EXPLAIN (ANALYZE, BUFFERS)` on the test database at realistic size.
@@ -326,6 +326,82 @@ https://mobily-enterprises.github.io/jskit-ai/
326
326
  - The checks cannot see layout, spacing or contrast; look at every screenshot
327
327
  for those.
328
328
 
329
+ ## Identity pass
330
+
331
+ - Read JSKIT's visual identity page at
332
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/visual-identity`
333
+ and its Material 3 rules at
334
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/material-3`
335
+ completely. The identity lives where that page puts it: the seed and a
336
+ named colour per content kind in `src/theme/index.js`, every content colour
337
+ in `src/theme/palettes.js`, the cover and empty-state art in
338
+ `src/components/art/`, the logo with `favicon.svg`, the startup shell in
339
+ `index.html`, and sign-in in the auth surface's `AppBrand.vue`.
340
+ - Run `npx jskit check m3` until it reports nothing and `npx jskit check`
341
+ until it passes, then take the screenshots as JSKIT's UI pass method shows.
342
+
343
+ ## Quality pass
344
+
345
+ - Read JSKIT's quality pass page at
346
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/quality-pass`
347
+ completely: where loading, empty, error and refused states live in a JSKIT
348
+ app, how each refusal carries its own code to `useJskitText()`'s
349
+ `serverMessage()`, and how Playwright forces each state.
350
+ - Run `npm run verify` and the focused Vitest and Playwright tests of the
351
+ affected screens.
352
+
353
+ ## Data pass
354
+
355
+ - Read JSKIT's data pass page at
356
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/data-pass`
357
+ and its data access guide at
358
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/data-access`
359
+ completely: the table resource is each table's one owner, Knex migrations
360
+ carry constraints and indexes, and `expectFlatQueries()` compares a path's
361
+ queries at a few rows and at a realistic number on `TEST_DB_NAME`.
362
+ - Leave `npm run lint` (which reports narrowing in code) and `npx jskit check`
363
+ without findings.
364
+
365
+ ## Security pass
366
+
367
+ - Read JSKIT's security pass page at
368
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/security-pass`
369
+ completely: each route's `auth` and `permission`, a table resource's
370
+ `ownership` and row policy scoping every handle call, `expectScoped()` for
371
+ another workspace's rows, `rateLimit` and `config.auth.rateLimits`, the
372
+ first account's setup code, and what `NODE_ENV=production` requires, such as
373
+ `AUTH_LOCAL_SESSION_SECRET`.
374
+ - Try each refusal through `app.inject` on the test server, then run
375
+ `npm run verify`.
376
+
377
+ ## User experience pass
378
+
379
+ - Read JSKIT's user experience pass page at
380
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/ux-pass`
381
+ completely: main tasks as `shell.primary-nav` placements and each inner
382
+ page's `jskit.parent`, `ShellPrimaryAction` for a list's New and a record's
383
+ one filled next step, a new form's `initialValue` or `createModel`,
384
+ `saveSuccess` for where Save lands, `CrudDeleteAction`'s confirmation, Undo
385
+ in the snackbar, and the app's words through `useJskitText()`.
386
+ - Walk each main task in the host's managed Preview or a Playwright spec, then
387
+ run `npm run verify`.
388
+
389
+ ## Speed pass
390
+
391
+ - Read JSKIT's speed pass page at
392
+ `https://mobily-enterprises.github.io/jskit-ai/guide/framework/speed-pass`
393
+ completely: `jskit test` runs test files in parallel within the machine's
394
+ test budget (`V64_TEST_CONCURRENCY`, else half the CPUs) and ends with its
395
+ slowest files, `jskit test --databases` restores a stored snapshot for each
396
+ file, a fixture every file only reads is made once in a
397
+ `--test-global-setup` module, a client provider exported by its own subpath
398
+ keeps screens out of every page's first load, and a list reads its related
399
+ records with `include` and its selected values by `filter[id]` in one
400
+ request.
401
+ - Compare the whole `npm test` wall time, its slowest files and the build's
402
+ chunk sizes before and after, then leave `npx jskit check` and
403
+ `npm run verify` passing.
404
+
329
405
  ## Verification
330
406
 
331
407
  - Verify `application`: `npm` `run` `verify`