@stacksjs/defaults 0.74.25 → 0.74.27

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.
@@ -258,7 +258,10 @@ Entity-centric API for single-table design:
258
258
  migrations: 'migrations',
259
259
  migrationLocks: 'migration_locks',
260
260
  queryLogging: {
261
- enabled: true,
261
+ // Defaults on outside production and off in production. Production also
262
+ // skips query hooks unless persistent history is explicitly enabled.
263
+ enabled: env.DB_QUERY_LOGGING_ENABLED ?? !['production', 'prod'].includes(env.APP_ENV || ''),
264
+ captureAllTraces: false, // slow and failed queries always keep traces
262
265
  slowThreshold: 100, // ms
263
266
  retention: 7, // days
264
267
  pruneFrequency: 24, // hours
@@ -301,6 +301,7 @@ Reprocessing refreshes existing messages instead of skipping them, preserves the
301
301
  - `buddy mail:user:add <email>` - add mail user
302
302
  - `buddy mail:user:list` - list mail users
303
303
  - `buddy mail:user:delete <email>` - delete mail user
304
+ - `buddy mail:storage:machine-bind` - restore unattended reboot recovery with a systemd machine-bound encrypted LUKS credential
304
305
 
305
306
  ## Gotchas
306
307
  - Default driver is `ses` - requires AWS credentials
@@ -314,6 +315,7 @@ Reprocessing refreshes existing messages instead of skipping them, preserves the
314
315
  - Mailtrap requires `inboxId` for sandbox mode
315
316
  - EmailSDK reads inbox from S3 (bucket configured via env)
316
317
  - EmailSDK attachment downloads use binary-safe S3 reads and opaque IDs
318
+ - Externally keyed mail storage stays locked after a host reboot by design. Use `buddy mail:storage:machine-bind` when unattended recovery is required; the AWS recovery secret remains escrowed.
317
319
  - `buddy email:reprocess` preserves existing read state and exits nonzero on failure
318
320
  - Email categorization auto-sorts incoming mail by domain/substring patterns
319
321
  - The `text` fallback is auto-generated from HTML via `htmlToText()`
@@ -63,6 +63,12 @@ const count = await db.selectFrom('users').count()
63
63
  const total = await db.selectFrom('orders').sum('amount')
64
64
  ```
65
65
 
66
+ Production SQLite uses a compact deferred builder for the common
67
+ `select().where().limit().execute()` chain when no query hooks or global
68
+ soft-delete scope is active. Complex methods and arguments automatically replay
69
+ onto the complete upstream builder. Use the normal API in either case; do not
70
+ fork application code into a separate raw-query path for this optimization.
71
+
66
72
  ## Configuration (config/query-builder.ts)
67
73
 
68
74
  ```typescript
@@ -2,7 +2,7 @@
2
2
  "publisher": "Stacks",
3
3
  "name": "vscode-stacks",
4
4
  "displayName": "Stacks",
5
- "version": "0.74.25",
5
+ "version": "0.74.27",
6
6
  "description": "A modern Stacks development environment.",
7
7
  "license": "MIT",
8
8
  "funding": "https://github.com/sponsors/chrisbbreuer",
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/defaults",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.74.25",
5
+ "version": "0.74.27",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/stacksjs/stacks.git",
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "@iconify-json/f7": "^1.2.2",
57
57
  "@iconify-json/hugeicons": "^1.2.27",
58
- "@stacksjs/mobile": "^0.74.25",
58
+ "@stacksjs/mobile": "^0.74.27",
59
59
  "@stacksjs/sanitizer": "^0.2.113",
60
60
  "ts-qr-codes": "^0.1.8"
61
61
  }