genesis-stack 1.4.8 → 1.4.10

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.8",
3
+ "version": "1.4.10",
4
4
  "description": "The optional curated technology Stack catalog for Genesis projects.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -362,6 +362,46 @@ https://mobily-enterprises.github.io/jskit-ai/
362
362
  - Leave `npm run lint` (which reports narrowing in code) and `npx jskit check`
363
363
  without findings.
364
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
+
365
405
  ## Verification
366
406
 
367
407
  - Verify `application`: `npm` `run` `verify`
@@ -50,7 +50,8 @@ Rails SQLite connection, Active Record migration, and database filename conventi
50
50
  its schema and migrates an existing one.
51
51
  - The `sqlite3` gem normally installs a precompiled native gem; a source build
52
52
  needs the SQLite headers. Use the inherited Rails migration and seed
53
- guidance and test concurrent writes on SQLite itself.
53
+ guidance, and run a path's two-writer test, where it needs one, on SQLite
54
+ itself.
54
55
  - Sanity checks with Rails and SQLite: the rails and sqlite pieces' checks
55
56
  apply.
56
57
 
@@ -30,9 +30,9 @@ SQLite file-backed persistence, migrations, and backup conventions.
30
30
  - Keep durable database files outside disposable build and release directories.
31
31
  A host may supply a persistent filename; do not replace that value with a
32
32
  repository-relative default or recreate an existing database during setup.
33
- - Use transactions, foreign-key enforcement, and bounded busy handling. Prove
34
- concurrent writes using SQLite itself; a different engine does not establish
35
- SQLite's locking behavior.
33
+ - Use transactions, foreign-key enforcement, and bounded busy handling. Run a
34
+ path's two-writer test, where it needs one, on SQLite itself; a different
35
+ engine does not establish SQLite's locking behavior.
36
36
  - Use SQLite's online backup API or `VACUUM INTO` for a consistent backup of a
37
37
  running database, including committed WAL data. Do not copy only the main file
38
38
  while writers are active. Validate backups and prove restoration before