mythik 0.1.3 → 0.1.4

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.
Files changed (34) hide show
  1. package/README.md +75 -51
  2. package/dist/actions/dispatcher.d.ts.map +1 -1
  3. package/dist/actions/dispatcher.js +11 -2
  4. package/dist/actions/dispatcher.js.map +1 -1
  5. package/dist/renderer/prop-schemas.js +1 -1
  6. package/dist/renderer/prop-schemas.js.map +1 -1
  7. package/dist/sql/drivers/mysql.d.ts.map +1 -1
  8. package/dist/sql/drivers/mysql.js +7 -5
  9. package/dist/sql/drivers/mysql.js.map +1 -1
  10. package/dist/sql/drivers/postgres.d.ts.map +1 -1
  11. package/dist/sql/drivers/postgres.js +7 -5
  12. package/dist/sql/drivers/postgres.js.map +1 -1
  13. package/dist/sql/drivers/sqlite.d.ts.map +1 -1
  14. package/dist/sql/drivers/sqlite.js +7 -5
  15. package/dist/sql/drivers/sqlite.js.map +1 -1
  16. package/dist/sql/drivers/sqlserver.d.ts.map +1 -1
  17. package/dist/sql/drivers/sqlserver.js +7 -5
  18. package/dist/sql/drivers/sqlserver.js.map +1 -1
  19. package/dist/sql/errors.d.ts +10 -0
  20. package/dist/sql/errors.d.ts.map +1 -1
  21. package/dist/sql/errors.js +14 -0
  22. package/dist/sql/errors.js.map +1 -1
  23. package/docs/consumer/ai-context-primitives.md +3 -0
  24. package/docs/consumer/ai-context-runtime-semantics.md +10 -8
  25. package/docs/consumer/ai-context.md +39 -29
  26. package/docs/consumer/reference-doc.md +40 -35
  27. package/docs/wiki/compiled/action-fetch.md +7 -2
  28. package/docs/wiki/compiled/concept-package-layout.md +11 -11
  29. package/docs/wiki/compiled/concept-public-package-names.md +24 -15
  30. package/docs/wiki/compiled/path-ui-loading-error.md +5 -0
  31. package/docs/wiki/compiled/pattern-fetch-vs-datasources.md +5 -0
  32. package/docs/wiki/compiled/pattern-loading-content-empty.md +3 -2
  33. package/docs/wiki/compiled/primitive-select.md +16 -2
  34. package/package.json +20 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../src/sql/drivers/sqlserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAA8D,MAAM,aAAa,CAAC;AAE1H,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IACjE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAED,UAAU,eAAe;IACvB,OAAO,IAAI,YAAY,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,YAAY,CAAC;CACzB;AAED,UAAU,8BAA8B;IACtC,KAAK,MAAM,EAAE,OAAO,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;KAAE,CAAC;CAChE;AAED,UAAU,2BAA2B;IACnC,KAAK,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAC;CACrD;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,8BAA8B,CAAC;IAC/C,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC;IACnD,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9C;AA4KD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,mBAAwB,GAAG,SAAS,CAoRxG"}
1
+ {"version":3,"file":"sqlserver.d.ts","sourceRoot":"","sources":["../../../src/sql/drivers/sqlserver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAA8D,MAAM,aAAa,CAAC;AAE1H,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IACjE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACjG;AAED,UAAU,eAAe;IACvB,OAAO,IAAI,YAAY,CAAC;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,IAAI,YAAY,CAAC;CACzB;AAED,UAAU,8BAA8B;IACtC,KAAK,MAAM,EAAE,OAAO,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;KAAE,CAAC;CAChE;AAED,UAAU,2BAA2B;IACnC,KAAK,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAC;CACrD;AAED,UAAU,gBAAgB;IACxB,cAAc,EAAE,8BAA8B,CAAC;IAC/C,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,OAAO,CAAC;IACnD,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9C;AA6KD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,mBAAwB,GAAG,SAAS,CAqRxG"}
@@ -1,5 +1,5 @@
1
1
  import { compileNamedParams as compileSqlNamedParams } from '../named-params.js';
2
- import { SqlDriverError } from '../errors.js';
2
+ import { missingSqlDriverDependencyError, SqlDriverError } from '../errors.js';
3
3
  const SQLSERVER_CAPABILITIES = {
4
4
  dialect: 'sqlserver',
5
5
  namedParams: true,
@@ -80,9 +80,10 @@ async function loadMssqlModule() {
80
80
  return (await import('mssql'));
81
81
  }
82
82
  catch (error) {
83
- throw new SqlDriverError('SQL Server support requires the optional dependency "mssql".', {
84
- code: 'SQL_DRIVER_DEPENDENCY_MISSING',
83
+ throw missingSqlDriverDependencyError({
84
+ label: 'SQL Server',
85
85
  dialect: 'sqlserver',
86
+ packageName: 'mssql',
86
87
  cause: error,
87
88
  });
88
89
  }
@@ -191,9 +192,10 @@ export function createSqlServerDriver(config, deps = {}) {
191
192
  catch (error) {
192
193
  if (error instanceof SqlDriverError)
193
194
  throw error;
194
- throw new SqlDriverError('SQL Server support requires the optional dependency "mssql".', {
195
- code: 'SQL_DRIVER_DEPENDENCY_MISSING',
195
+ throw missingSqlDriverDependencyError({
196
+ label: 'SQL Server',
196
197
  dialect: 'sqlserver',
198
+ packageName: 'mssql',
197
199
  cause: error,
198
200
  });
199
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqlserver.js","sourceRoot":"","sources":["../../../src/sql/drivers/sqlserver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlserver.js","sourceRoot":"","sources":["../../../src/sql/drivers/sqlserver.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
1
  export interface SqlDriverErrorOptions {
2
2
  code: string;
3
3
  dialect?: string;
4
+ packageName?: string;
5
+ installCommand?: string;
4
6
  cause?: unknown;
5
7
  }
6
8
  export declare class SqlDriverError extends Error {
7
9
  readonly code: string;
8
10
  readonly dialect?: string;
11
+ readonly packageName?: string;
12
+ readonly installCommand?: string;
9
13
  readonly cause?: unknown;
10
14
  constructor(message: string, options: SqlDriverErrorOptions);
11
15
  }
16
+ export declare function missingSqlDriverDependencyError(args: {
17
+ label: string;
18
+ dialect: string;
19
+ packageName: string;
20
+ cause?: unknown;
21
+ }): SqlDriverError;
12
22
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/sql/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;CAO5D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/sql/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;CAS5D;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,cAAc,CAYjB"}
@@ -1,13 +1,27 @@
1
1
  export class SqlDriverError extends Error {
2
2
  code;
3
3
  dialect;
4
+ packageName;
5
+ installCommand;
4
6
  cause;
5
7
  constructor(message, options) {
6
8
  super(message);
7
9
  this.name = 'SqlDriverError';
8
10
  this.code = options.code;
9
11
  this.dialect = options.dialect;
12
+ this.packageName = options.packageName;
13
+ this.installCommand = options.installCommand;
10
14
  this.cause = options.cause;
11
15
  }
12
16
  }
17
+ export function missingSqlDriverDependencyError(args) {
18
+ const installCommand = `npm install ${args.packageName}`;
19
+ return new SqlDriverError(`${args.label} support requires the optional peer dependency "${args.packageName}". Install it with: ${installCommand}`, {
20
+ code: 'SQL_DRIVER_DEPENDENCY_MISSING',
21
+ dialect: args.dialect,
22
+ packageName: args.packageName,
23
+ installCommand,
24
+ cause: args.cause,
25
+ });
26
+ }
13
27
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/sql/errors.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAS;IACb,OAAO,CAAU;IACR,KAAK,CAAW;IAElC,YAAY,OAAe,EAAE,OAA8B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/sql/errors.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,WAAW,CAAU;IACrB,cAAc,CAAU;IACf,KAAK,CAAW;IAElC,YAAY,OAAe,EAAE,OAA8B;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,+BAA+B,CAAC,IAK/C;IACC,MAAM,cAAc,GAAG,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,IAAI,cAAc,CACvB,GAAG,IAAI,CAAC,KAAK,mDAAmD,IAAI,CAAC,WAAW,uBAAuB,cAAc,EAAE,EACvH;QACE,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,cAAc;QACd,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CACF,CAAC;AACJ,CAAC"}
@@ -206,8 +206,11 @@ Options formats:
206
206
  ```json
207
207
  "options": ["Low", "Medium", "High"]
208
208
  "options": [{ "label": "Low", "value": "low" }, { "label": "Medium", "value": "medium" }]
209
+ "options": { "$state": "/cat/services/data" }, "labelKey": "name", "valueKey": "id"
209
210
  ```
210
211
 
212
+ `labelKey` defaults to `"label"` and `valueKey` defaults to `"value"`. Use them for catalog rows such as `{ "id": 1, "name": "Cambio de aceite" }`. Values are emitted as strings from `on.change`. Malformed object options render as disabled diagnostics instead of blank clickable rows.
213
+
211
214
  ### checkbox
212
215
 
213
216
  | Prop | Type | Default | Description |
@@ -54,14 +54,14 @@ When the framework resolves `$state`, `$template`, `$prop`, `$auth`, and other e
54
54
 
55
55
  **Why it matters:** `onClick: [{ action: "fetch", params: { url: { "$template": "/api/items/${ /ui/selectedId }" }}}]` — the `$template` reads `/ui/selectedId` at *click* time. If the user clicked a different row between render and click, the click reads the later value. Correct behavior for typical event flows.
56
56
 
57
- **Special cases:**
58
- - **Inside a `repeat`** — the binding wrapper is eagerly resolved so `$item` / `$index` can bind to the row being rendered. Inner `$state` / `$template` inside `params` stay lazy (press-time) unless they reference `$item` directly.
59
- - **`$prop` bindings** — when the binding itself is `{ $prop: "onAction" }` (custom-element Layer 3 propagation), the `$prop` is resolved eagerly so the consumer's supplied action chain replaces it. Inner expressions inside that chain stay lazy.
60
- - **`TransactionBinding`** — passed through verbatim; transaction engine resolves phases at their respective times.
61
- - **Mixed event arrays** — an event array may contain normal action bindings and transaction bindings together. The renderer dispatches each entry sequentially and awaits transaction execution before continuing to the next entry.
62
- - **`params.skipIf`** — resolved at dispatch time before the rest of the action params. If truthy, the action is skipped and the surrounding action chain continues.
63
-
64
- Implementation: `packages/core/src/renderer/engine.ts:996-1049`.
57
+ **Special cases:**
58
+ - **Inside a `repeat`** — the binding wrapper is eagerly resolved so `$item` / `$index` can bind to the row being rendered. Inner `$state` / `$template` inside `params` stay lazy (press-time) unless they reference `$item` directly.
59
+ - **`$prop` bindings** — when the binding itself is `{ $prop: "onAction" }` (custom-element Layer 3 propagation), the `$prop` is resolved eagerly so the consumer's supplied action chain replaces it. Inner expressions inside that chain stay lazy.
60
+ - **`TransactionBinding`** — passed through verbatim; transaction engine resolves phases at their respective times.
61
+ - **Mixed event arrays** — an event array may contain normal action bindings and transaction bindings together. The renderer dispatches each entry sequentially and awaits transaction execution before continuing to the next entry.
62
+ - **`params.skipIf`** — resolved at dispatch time before the rest of the action params. If truthy, the action is skipped and the surrounding action chain continues.
63
+
64
+ Implementation: `packages/core/src/renderer/engine.ts:996-1049`.
65
65
 
66
66
  ### 1.3 Column actions — lazy resolution at press time
67
67
 
@@ -397,6 +397,8 @@ Implementation: `packages/core/src/actions/dispatcher.ts:103-116` (openModal/clo
397
397
 
398
398
  **`/ui/lastError`** — `fetch` action writes the error message on failure, cleared on next successful fetch.
399
399
 
400
+ For critical screen-load fetches, set `params.errorTarget` to a screen-owned `/ui/...` path. The fetch action writes the same structured error there and clears it on success; this avoids relying only on shared `/ui/lastError`, which unrelated fetches can overwrite.
401
+
400
402
  **dataSources auto-managed paths (post-Item-E wire):**
401
403
  - `/{target}Loading` — `true` during in-flight request, `false` after resolve/reject
402
404
  - `/{target}Error` — error message on failure, `null` on success
@@ -24,14 +24,17 @@ Use `npm install mythik mythik-react` for a React app, `npm install -D mythik-cl
24
24
 
25
25
  Server-side SQL helpers, SQL drivers, and SQL-backed spec stores are imported from `mythik/server`, not from the browser-safe `mythik` entry. Supported SQL dialects are `sqlserver`, `postgres`, `mysql`, and `sqlite`.
26
26
 
27
- Database runtime dependencies: SQL adapters (`mssql`, `pg`, `mysql2`, and `better-sqlite3`) are optional dependencies of `mythik` and install by default with npm/pnpm unless optional dependencies are omitted. If the host installs with optional dependencies disabled, add only the adapter you use:
27
+ Database runtime dependencies: SQL adapters (`mssql`, `pg`, `mysql2`, and `better-sqlite3`) are optional peer dependencies. Browser-only installs do not need them. SQL-backed stores and servers must install exactly the adapter for the selected database:
28
28
 
29
29
  ```bash
30
+ npm install mssql # SQL Server
30
31
  npm install pg # PostgreSQL
31
32
  npm install mysql2 # MySQL
32
33
  npm install better-sqlite3 # SQLite
33
34
  ```
34
35
 
36
+ SQLite uses the native `better-sqlite3` adapter. npm warnings from that adapter's transitive native-build helpers are adapter-level install noise, not a Mythik runtime failure. Missing SQL adapter errors include the package name and exact install command for the selected dialect.
37
+
35
38
  MySQL support targets MySQL 8.0.19+ for generated upsert SQL. Older MySQL deployments need an explicit custom SQL path or another supported dialect.
36
39
 
37
40
  ## Spec Structure
@@ -342,19 +345,19 @@ Extended: `locale`, `notation` (compact/scientific), `signDisplay` (always/excep
342
345
 
343
346
  ### Named Bindings
344
347
 
345
- `$let` / `$ref` — define once, use many times:
346
- ```json
347
- { "$let": { "total": { "$array": "count", "source": { "$state": "/items" } } }, "$in": { "$ref": "total" } }
348
- ```
349
- `$ref` may also read nested values from an object binding with dot notation:
350
- ```json
351
- { "$let": { "user": { "$state": "/auth/user" } }, "$in": { "$ref": "user.name" } }
352
- ```
353
- Inside the same `$let`, `$template` placeholders can read the same dotted binding paths, for example `${user.name}`.
354
- **JSONB array format** (when stored in DB, order matters):
355
- ```json
356
- { "$let": [["filtered", { "$array": "filter", "source": { "$state": "/items" }, "where": { "field": "status", "eq": "active" } }], ["count", { "$array": "count", "source": { "$ref": "filtered" } }]], "$in": { "$ref": "count" } }
357
- ```
348
+ `$let` / `$ref` — define once, use many times:
349
+ ```json
350
+ { "$let": { "total": { "$array": "count", "source": { "$state": "/items" } } }, "$in": { "$ref": "total" } }
351
+ ```
352
+ `$ref` may also read nested values from an object binding with dot notation:
353
+ ```json
354
+ { "$let": { "user": { "$state": "/auth/user" } }, "$in": { "$ref": "user.name" } }
355
+ ```
356
+ Inside the same `$let`, `$template` placeholders can read the same dotted binding paths, for example `${user.name}`.
357
+ **JSONB array format** (when stored in DB, order matters):
358
+ ```json
359
+ { "$let": [["filtered", { "$array": "filter", "source": { "$state": "/items" }, "where": { "field": "status", "eq": "active" } }], ["count", { "$array": "count", "source": { "$ref": "filtered" } }]], "$in": { "$ref": "count" } }
360
+ ```
358
361
 
359
362
  ### Group & Selection (inside repeat)
360
363
 
@@ -391,15 +394,15 @@ All primitives accept `style`, `visible`, and `permission`. Tokens are project-d
391
394
 
392
395
  Wire to events with `on`: `{ "on": { "press": { "action": "...", "params": {...} } } }`
393
396
 
394
- Arrays execute sequentially: `"press": [action1, action2, action3]`. Arrays may mix normal action bindings and transaction bindings; each entry runs in order and transactions are awaited before the next entry.
397
+ Arrays execute sequentially: `"press": [action1, action2, action3]`. Arrays may mix normal action bindings and transaction bindings; each entry runs in order and transactions are awaited before the next entry.
395
398
 
396
399
  **Trap:** Action chains don't stop on failure — `validateForm` marks errors but does NOT halt the chain. Use `submitForm` with `formId` instead (validates + blocks if invalid). See [ai-context-patterns.md](ai-context-patterns.md).
397
400
 
398
- Add `"fireAndForget": true` to dispatch without waiting (background re-fetch after closing modal).
399
-
400
- Any action binding may include `params.skipIf`. Mythik resolves `skipIf` at dispatch time before resolving the rest of the params; when truthy, that action is skipped and the surrounding action chain continues.
401
-
402
- ### Action Reference
401
+ Add `"fireAndForget": true` to dispatch without waiting (background re-fetch after closing modal).
402
+
403
+ Any action binding may include `params.skipIf`. Mythik resolves `skipIf` at dispatch time before resolving the rest of the params; when truthy, that action is skipped and the surrounding action chain continues.
404
+
405
+ ### Action Reference
403
406
 
404
407
  | Action | Params | Purpose |
405
408
  |--------|--------|---------|
@@ -438,6 +441,7 @@ Any action binding may include `params.skipIf`. Mythik resolves `skipIf` at disp
438
441
  - Empty strings in body → `null` (prevents DB errors)
439
442
  - Sets `/ui/loading` while in flight
440
443
  - On error: sets `/ui/lastError` with status and message
444
+ - Optional `errorTarget` writes the same structured error to a screen-owned path and clears that path on success. Use it for critical screen-load fetches instead of relying only on global `/ui/lastError`
441
445
  - Auth headers auto-injected for `authDomains` URLs
442
446
 
443
447
  ### Transactions (Optimistic Updates)
@@ -591,14 +595,16 @@ Inside: `{ "$selection": "selected" }` (boolean), `{ "$selection": "count" }`. T
591
595
 
592
596
  **Rule:** Don't mix both for the same data target. Pick one pattern per data source.
593
597
 
598
+ For critical `initialActions` fetches, set `params.errorTarget` to a screen-owned path (for example `/ui/loadErrors/orderForm`) and render a visible error state from that path. `/ui/lastError` is global and can be overwritten by unrelated fetches.
599
+
594
600
  ### Loading/Content/Empty Pattern
595
601
 
596
- **With `initialActions` fetch** (uses `/ui/loading` and `/ui/lastError`):
602
+ **With `initialActions` fetch** (uses `/ui/loading`; critical loads should set `errorTarget`):
597
603
  ```json
598
604
  "loading": { "visible": { "$and": [{ "$state": "/ui/loading" }, { "$not": { "$array": "count", "source": { "$state": "/items" } } }] } },
599
605
  "content": { "visible": { "$array": "count", "source": { "$state": "/items" } } },
600
606
  "empty": { "visible": { "$and": [{ "$not": { "$state": "/ui/loading" } }, { "$not": { "$array": "count", "source": { "$state": "/items" } } }] } },
601
- "error": { "visible": { "$state": "/ui/lastError" } }
607
+ "error": { "visible": { "$state": "/ui/loadErrors/items" } }
602
608
  ```
603
609
 
604
610
  **With `dataSources`** (uses auto-generated `/{target}Loading` and `/{target}Error`):
@@ -1347,7 +1353,7 @@ If a consumer overrides any name, AI applies the same schema under the consumer-
1347
1353
 
1348
1354
  ### Canonical reference
1349
1355
 
1350
- The canonical SQL store DDL ships in the installed package. Use `mythik init-store --dialect <sqlserver|postgres|mysql|sqlite> --dry-run` or `getSqlStoreDdl(dialect)` from `mythik/server` to inspect it. Do not copy DDL from unrelated local artifacts.
1356
+ The canonical SQL store DDL ships in the installed package. Use `mythik init-store --dialect <sqlserver|postgres|mysql|sqlite> --dry-run` or `getSqlStoreDdl(dialect)` from `mythik/server` to inspect it. Do not copy DDL from unrelated local artifacts.
1351
1357
 
1352
1358
  ### Schema evolution
1353
1359
 
@@ -1445,9 +1451,13 @@ When the framework changes the schema in a future version, this section will gai
1445
1451
  85. For existing spec edits, the required AI loop is `mythik manifest` -> `mythik elements` -> `mythik patch --from-file` -> verify. Manifest tells you the structure; elements gives the exact JSON you are changing; patch is the validated write path. Do not skip directly to full-spec `pull`/rewrite/push for a local change, do not mutate DB rows manually, and do not call `SpecStore.save()` from app code. Use `push` for new specs or intentional full replacement only.
1446
1452
  86. Mythik's AI documentation ships with the `mythik` npm package. Before generating or modifying specs, locate it with `mythik docs path` and start from `docs/llms.txt`, `docs/consumer/ai-context.md`, and `docs/wiki/compiled/README.md`. Use `mythik docs copy ./mythik-docs` when a project-local copy is easier to hand to an AI agent.
1447
1453
  87. DNA numeric seeds (`roundness`, `density`, `depth`, `formality`) are canonical `0–1` values. Generate `0.7`, not `70`. The runtime tolerates legacy `0–100` values by normalizing any numeric seed greater than `1` with `/100` during DNA derivation, including initial AppSpec load and runtime `updateTokens`.
1448
- 88. API query endpoints can combine `pagination: "offset"` with `scopeFilter`. For generated counts, Mythik applies the scope filter to the source query before `COUNT(*)`, so paginated totals remain tenant-scoped. Prefer generated counts. If a custom `endpoint.count` is truly needed with `scopeFilter`, include `{{scopeWhere[:alias]}}` or `{{scopeAnd[:alias]}}`; Mythik expands the macro to the correct scope predicate and removes it for bypass roles. Other custom count SQL is left verbatim. Use `:alias` for JOIN/subquery counts, and do not reference internal scope params directly.
1449
- 89. Transaction `confirm` failures from `fetch` preserve backend error details for `onError`. Read `/tx/error/message` for the best available message; when the backend returns `{ error: { code, message } }`, Mythik keeps that message, `code`, HTTP `status`, and raw `data` after rollback. Do not parse `/ui/lastError` from transaction specs.
1450
- 90. For SQL-backed stores and servers, use the generic `mythik/server` SQL boundary. Initialize tables with `mythik init-store --dialect <sqlserver|postgres|mysql|sqlite>` or inspect DDL with `--dry-run`; configure the CLI with `--store`, `--url`/`--filename`/SQL Server flags, or `MYTHIK_*` environment variables; and keep spec edits on the required `manifest -> elements -> patch --from-file -> validate` loop. Write custom API SQL in the selected dialect with Mythik named params (`@name`); Mythik does not translate custom SQL between dialects.
1451
- 91. Event arrays may mix normal actions and transaction bindings. Mythik executes them sequentially and awaits each transaction before continuing. Use this when a flow needs a small action before or after an optimistic transaction; do not wrap a transaction inside another transaction phase.
1452
- 92. `$ref` and `$template` placeholders can read nested values from `$let` object bindings with dot notation, for example `{ "$ref": "user.name" }` or `${user.name}`. If a dotted `$ref` segment is missing, runtime throws an unknown `$ref` error rather than silently returning undefined.
1453
- 93. Use `params.skipIf` for a dispatch-time action guard when an action should be skipped but the surrounding action chain should continue. `skipIf` is resolved before other params and is removed before the action handler runs. Do not use `skipIf` as a substitute for form validation or transaction rollback.
1454
+ 88. API query endpoints can combine `pagination: "offset"` with `scopeFilter`. For generated counts, Mythik applies the scope filter to the source query before `COUNT(*)`, so paginated totals remain tenant-scoped. Prefer generated counts. If a custom `endpoint.count` is truly needed with `scopeFilter`, include `{{scopeWhere[:alias]}}` or `{{scopeAnd[:alias]}}`; Mythik expands the macro to the correct scope predicate and removes it for bypass roles. Other custom count SQL is left verbatim. Use `:alias` for JOIN/subquery counts, and do not reference internal scope params directly.
1455
+ 89. Transaction `confirm` failures from `fetch` preserve backend error details for `onError`. Read `/tx/error/message` for the best available message; when the backend returns `{ error: { code, message } }`, Mythik keeps that message, `code`, HTTP `status`, and raw `data` after rollback. Do not parse `/ui/lastError` from transaction specs.
1456
+ 90. For SQL-backed stores and servers, use the generic `mythik/server` SQL boundary. Initialize tables with `mythik init-store --dialect <sqlserver|postgres|mysql|sqlite>` or inspect DDL with `--dry-run`; configure the CLI with `--store`, `--url`/`--filename`/SQL Server flags, or `MYTHIK_*` environment variables; and keep spec edits on the required `manifest -> elements -> patch --from-file -> validate` loop. Write custom API SQL in the selected dialect with Mythik named params (`@name`); Mythik does not translate custom SQL between dialects.
1457
+ 91. Event arrays may mix normal actions and transaction bindings. Mythik executes them sequentially and awaits each transaction before continuing. Use this when a flow needs a small action before or after an optimistic transaction; do not wrap a transaction inside another transaction phase.
1458
+ 92. `$ref` and `$template` placeholders can read nested values from `$let` object bindings with dot notation, for example `{ "$ref": "user.name" }` or `${user.name}`. If a dotted `$ref` segment is missing, runtime throws an unknown `$ref` error rather than silently returning undefined.
1459
+ 93. Use `params.skipIf` for a dispatch-time action guard when an action should be skipped but the surrounding action chain should continue. `skipIf` is resolved before other params and is removed before the action handler runs. Do not use `skipIf` as a substitute for form validation or transaction rollback.
1460
+ 94. For critical direct `fetch` actions, especially `initialActions` screen loads, set `params.errorTarget` to a screen-owned `/ui/...` path and render that path visibly. The fetch action still writes global `/ui/lastError`, but `/ui/lastError` is shared and can be overwritten by unrelated fetches. On success, Mythik clears the provided `errorTarget`.
1461
+ 95. `select.options` accepts strings, `{ label, value }` objects, or catalog-shaped objects when `labelKey` and `valueKey` are provided. Example: `{ "options": { "$state": "/cat/services/data" }, "labelKey": "name", "valueKey": "id" }`. Values are emitted as strings from `on.change`; malformed option data renders disabled diagnostics instead of blank clickable rows or crashes.
1462
+ 96. SQL adapters are optional peer dependencies, not installed-by-default runtime payload. Browser-only apps install `mythik mythik-react` without database drivers. SQL-backed stores/servers must install exactly one selected adapter: `mssql`, `pg`, `mysql2`, or `better-sqlite3`. SQLite uses native `better-sqlite3`; native-build helper warnings from that adapter are not Mythik runtime failures.
1463
+ 97. Missing SQL adapter errors are actionable. The thrown `SqlDriverError` includes `packageName`, `installCommand`, and a message with the exact `npm install ...` command for the selected dialect.
@@ -309,9 +309,9 @@ Nested conditionals for multi-branch logic:
309
309
  ```json
310
310
  { "$template": "Hello, ${/user/name}! You have ${/inbox/count} messages." }
311
311
  ```
312
- Interpolates values into a string. Supports two reference types:
313
- - State paths: `${/user/name}` — reads from application state
314
- - `$let` bindings: `${age}` or `${user.name}` — reads from a named binding defined with `$let`
312
+ Interpolates values into a string. Supports two reference types:
313
+ - State paths: `${/user/name}` — reads from application state
314
+ - `$let` bindings: `${age}` or `${user.name}` — reads from a named binding defined with `$let`
315
315
 
316
316
  ### `$computed` — Registered function
317
317
  ```json
@@ -326,20 +326,20 @@ Calls a registered function with resolved arguments. **Prefer `$math`, `$array`,
326
326
  "$in": { "$ref": "bmi" }
327
327
  }
328
328
  ```
329
- Define a named value once, reference it multiple times. Avoids repetition.
330
-
331
- `$ref` can read nested values from an object binding with dot notation:
332
- ```json
333
- {
334
- "$let": { "user": { "$state": "/auth/user" } },
335
- "$in": { "$ref": "user.name" }
336
- }
337
- ```
338
- The same dotted binding lookup is available inside `$template` placeholders, for example `${user.name}`.
339
-
340
- **Later bindings can reference earlier ones:**
341
- ```json
342
- {
329
+ Define a named value once, reference it multiple times. Avoids repetition.
330
+
331
+ `$ref` can read nested values from an object binding with dot notation:
332
+ ```json
333
+ {
334
+ "$let": { "user": { "$state": "/auth/user" } },
335
+ "$in": { "$ref": "user.name" }
336
+ }
337
+ ```
338
+ The same dotted binding lookup is available inside `$template` placeholders, for example `${user.name}`.
339
+
340
+ **Later bindings can reference earlier ones:**
341
+ ```json
342
+ {
343
343
  "$let": {
344
344
  "total": { "$array": "count", "source": { "$state": "/items" } },
345
345
  "label": { "$template": "${total} items" }
@@ -862,9 +862,9 @@ Wire actions to events with the `on` property:
862
862
  }
863
863
  ```
864
864
 
865
- ### Multiple Actions (Sequential)
866
-
867
- Actions in an array execute sequentially — each async action (like `fetch`) completes before the next one starts:
865
+ ### Multiple Actions (Sequential)
866
+
867
+ Actions in an array execute sequentially — each async action (like `fetch`) completes before the next one starts:
868
868
  ```json
869
869
  {
870
870
  "on": {
@@ -931,6 +931,7 @@ The `fetch` action supports:
931
931
  - **Empty string sanitization:** Empty strings in body are automatically converted to `null` (prevents database errors for typed columns)
932
932
  - **Loading state:** Sets `/ui/loading` to true while in flight, false when done
933
933
  - **Error handling:** On failure, sets `/ui/lastError` with status and message
934
+ - **Screen-owned errors:** Optional `errorTarget` receives the same structured error and is cleared on success; use it for critical `initialActions` loads
934
935
 
935
936
  ```json
936
937
  {
@@ -946,14 +947,14 @@ The `fetch` action supports:
946
947
  },
947
948
  "target": "/lastResult"
948
949
  }
949
- }
950
- ```
951
-
952
- Action arrays may also mix normal action bindings and transaction bindings. Mythik runs each entry in order and waits for a transaction to finish before dispatching the next entry.
953
-
954
- Any action binding can include `params.skipIf`. Mythik resolves `skipIf` at dispatch time before the rest of the params; if it is truthy, that action is skipped and the surrounding action chain continues.
955
-
956
- ### Transactions (Optimistic Updates)
950
+ }
951
+ ```
952
+
953
+ Action arrays may also mix normal action bindings and transaction bindings. Mythik runs each entry in order and waits for a transaction to finish before dispatching the next entry.
954
+
955
+ Any action binding can include `params.skipIf`. Mythik resolves `skipIf` at dispatch time before the rest of the params; if it is truthy, that action is skipped and the surrounding action chain continues.
956
+
957
+ ### Transactions (Optimistic Updates)
957
958
 
958
959
  Use `transaction` for CRUD operations that need instant UI feedback. The framework takes a state snapshot, applies your changes instantly, then confirms with the server. On failure, it rolls back automatically.
959
960
 
@@ -3056,7 +3057,7 @@ The current background and motion stack combines app-level `LayerBackground`, an
3056
3057
 
3057
3058
  211. **`useShapeAnimations(ref, animations, options)` — Layer 3 web runner** — Exported from `mythik-react` via `packages/react/src/animation/useShapeAnimations.ts`. React hook for SVG-child animations (`<path>`/`<circle>`/`<rect>`/`<g>`…). Consumes the same `ElementAnimations` contract as `useElementAnimations` but narrowed to the `ambient` trigger ONLY; shape children have no hover/focus/active contract and no distinct mount ceremony. Attaches CSS animations via `el.style.animation` (surgical, preserves other inline styles); keyframes register once through the CSSOM singleton (zero `dangerouslySetInnerHTML`) and dedupe by hash so multiple shape instances with the same recipe share one CSS rule. Dev mode warns when non-ambient triggers are passed. Production silently ignores them. `options.recipes` SHOULD be stable for useMemo performance.
3058
3059
 
3059
- 212. **`useShapeAnimations(animations, options)` — Layer 3 RN runner** — Repository-preview implementation in `packages/react-native/src/animation/useShapeAnimations.ts`; it is not part of the supported npm publish surface yet. Reanimated parity of rule 211: returns `{ animatedProps }` that the consumer spreads onto `Animated.createAnimatedComponent(Path)` from `react-native-svg`. Uses the `HARD_PER_TRIGGER` (=6) fixed-pool `useSharedValue` pattern (`useSharedValueArray` helper, also exported) so React Hook count stays stable. Reuses `composeRNStyle(contributions, interpolate, interpolateColor)` shared with `useElementAnimations` — single composition pipeline for View-style and animated SVG props. Relies on `react-native-svg` v13+ auto-translating the transform array into SVG `transform="..."` strings. Same dev-mode non-ambient-trigger warning as the web hook.
3060
+ 212. **`useShapeAnimations(animations, options)` — Layer 3 RN runner** — Repository-preview implementation in `packages/react-native/src/animation/useShapeAnimations.ts`; it is not part of the supported npm publish surface yet. Reanimated parity of rule 211: returns `{ animatedProps }` that the consumer spreads onto `Animated.createAnimatedComponent(Path)` from `react-native-svg`. Uses the `HARD_PER_TRIGGER` (=6) fixed-pool `useSharedValue` pattern (`useSharedValueArray` helper, also exported) so React Hook count stays stable. Reuses `composeRNStyle(contributions, interpolate, interpolateColor)` shared with `useElementAnimations` — single composition pipeline for View-style and animated SVG props. Relies on `react-native-svg` v13+ auto-translating the transform array into SVG `transform="..."` strings. Same dev-mode non-ambient-trigger warning as the web hook.
3060
3061
 
3061
3062
  213. **Cross-platform Layer 3 parity pins** — `buildCSSKeyframes` (web) and `buildReanimatedSpec` (RN) interpret the same resolved `AnimationSpec` identically on load-bearing invariants: duration agreement (ms count matches regardless of input form `'28s'`/`'28000'`), keyframe stop count (web `%` markers match RN `inputRange` length), direction semantic (`'alternate'` token ⇔ `timing.reverse=true`), iterations `'infinite'`/numeric count, animated-prop enumeration (`translateX/Y`/`rotateDeg`/`scale`).
3062
3063
 
@@ -3215,9 +3216,13 @@ See `ai-context.md` for spec-gen anti-patterns the AI must NOT generate.
3215
3216
  282. **Existing spec edits must use the CLI inspection-then-patch loop** - For an existing screen/app/api spec, AI agents should run `mythik manifest <id>` first, inspect only the target nodes with `mythik elements <id> <ids>`, apply a small RFC 6902 patch with `mythik patch <id> --from-file patch.json`, and verify with `manifest` or `elements`. This keeps edits surgical, validated, versionable, and reviewable. `pull` is for backup, migration, review, or full-document work; `push` is for new specs or intentional full replacement. Direct database edits and direct `SpecStore.save()` calls bypass validation and are not approved spec-write paths.
3216
3217
  283. **Bundled AI docs are part of the install surface** - The `mythik` package includes `docs/llms.txt`, `docs/consumer/*`, and `docs/wiki/compiled/*`. Agents should run `mythik docs path` before spec generation and read the bundled docs rather than guessing from package source. Use `mythik docs copy ./mythik-docs` to create a project-local copy when the host workflow needs explicit files.
3217
3218
  284. **DNA numeric seeds are canonical `0–1`, with legacy `0–100` normalization** - Generate `tokens.dna.roundness`, `density`, `depth`, and `formality` as `0–1` numbers (`0.7`, not `70`). The runtime normalizes numeric seed values greater than `1` by dividing by `100` inside DNA derivation, so initial AppSpec load and runtime `updateTokens` share the same backward-compatible behavior.
3218
- 285. **Scoped pagination counts filter before aggregation** - Query endpoints may combine `pagination: "offset"` with `scopeFilter`. For generated counts, the server applies the scope filter to the query source first and then counts the scoped source, so the response `total` matches the same tenant/role slice as `data`. Prefer generated counts. If custom `endpoint.count` is truly needed with `scopeFilter`, it must include `{{scopeWhere[:alias]}}` or `{{scopeAnd[:alias]}}`; Mythik expands the macro to the correct scope predicate and removes it for bypass roles. Other custom count SQL is left verbatim. Specs should use `:alias` for JOIN/subquery counts and should not reference internal scope parameter names directly.
3219
- 286. **Transaction fetch failures preserve backend error details** - When a transaction `confirm` uses `fetch` and the backend returns an HTTP error payload such as `{ error: { code, message } }`, `/tx/error` is written after rollback with the best backend message plus `code`, HTTP `status`, and raw `data`. `onError` should read `/tx/error/message`; transaction specs should not read global `/ui/lastError`.
3220
- 287. **SQL-backed stores and servers use one dialect-aware `mythik/server` boundary** - Import `createSqlDriver`, `SqlSpecStore`, `SqlVersionedSpecStore`, `SqlEnvironmentStore`, and `getSqlStoreDdl` from `mythik/server` for Node-side SQL work. Supported dialects are `sqlserver`, `postgres`, `mysql`, and `sqlite`. Initialize store tables with `mythik init-store --dialect <dialect>` for reachable SQL stores, `--target` for SQLite, or `--dry-run` for review/apply through a deployment process. SQL Server `init-store` accepts explicit `--server`, `--database`, `--user`, `--password`, `--encrypt`, and `--trust-server-certificate` flags. CLI commands share the same store flags/env vars and must keep existing-spec edits on the `manifest -> elements -> patch --from-file -> validate` loop. ApiSpec `dialect` controls generated CRUD/catalog/pagination/scope SQL; custom SQL remains dialect-native with Mythik named params (`@name`) and is not translated between dialects.
3221
- 288. **Event arrays may mix actions and transactions** - Event bindings can be a single action, a single transaction, or an array containing both normal action bindings and transaction bindings. Mythik executes the array sequentially and awaits each transaction before continuing. Transaction phases cannot contain nested transactions.
3222
- 289. **`$let` dotted references read nested binding values** - A `$ref` may target an object binding path such as `{ "$ref": "user.name" }`, and `$template` placeholders may read the same path as `${user.name}`. Use this for object values produced by `$let`; missing dotted `$ref` segments are invalid references and should be fixed instead of treated as optional data.
3223
- 290. **`params.skipIf` is a dispatch-time action guard** - Any action binding may include `params.skipIf`. Mythik resolves it before resolving the rest of the params; when truthy, the action is skipped and the action chain continues. The action handler never receives `skipIf`.
3219
+ 285. **Scoped pagination counts filter before aggregation** - Query endpoints may combine `pagination: "offset"` with `scopeFilter`. For generated counts, the server applies the scope filter to the query source first and then counts the scoped source, so the response `total` matches the same tenant/role slice as `data`. Prefer generated counts. If custom `endpoint.count` is truly needed with `scopeFilter`, it must include `{{scopeWhere[:alias]}}` or `{{scopeAnd[:alias]}}`; Mythik expands the macro to the correct scope predicate and removes it for bypass roles. Other custom count SQL is left verbatim. Specs should use `:alias` for JOIN/subquery counts and should not reference internal scope parameter names directly.
3220
+ 286. **Transaction fetch failures preserve backend error details** - When a transaction `confirm` uses `fetch` and the backend returns an HTTP error payload such as `{ error: { code, message } }`, `/tx/error` is written after rollback with the best backend message plus `code`, HTTP `status`, and raw `data`. `onError` should read `/tx/error/message`; transaction specs should not read global `/ui/lastError`.
3221
+ 287. **SQL-backed stores and servers use one dialect-aware `mythik/server` boundary** - Import `createSqlDriver`, `SqlSpecStore`, `SqlVersionedSpecStore`, `SqlEnvironmentStore`, and `getSqlStoreDdl` from `mythik/server` for Node-side SQL work. Supported dialects are `sqlserver`, `postgres`, `mysql`, and `sqlite`. Initialize store tables with `mythik init-store --dialect <dialect>` for reachable SQL stores, `--target` for SQLite, or `--dry-run` for review/apply through a deployment process. SQL Server `init-store` accepts explicit `--server`, `--database`, `--user`, `--password`, `--encrypt`, and `--trust-server-certificate` flags. CLI commands share the same store flags/env vars and must keep existing-spec edits on the `manifest -> elements -> patch --from-file -> validate` loop. ApiSpec `dialect` controls generated CRUD/catalog/pagination/scope SQL; custom SQL remains dialect-native with Mythik named params (`@name`) and is not translated between dialects.
3222
+ 288. **Event arrays may mix actions and transactions** - Event bindings can be a single action, a single transaction, or an array containing both normal action bindings and transaction bindings. Mythik executes the array sequentially and awaits each transaction before continuing. Transaction phases cannot contain nested transactions.
3223
+ 289. **`$let` dotted references read nested binding values** - A `$ref` may target an object binding path such as `{ "$ref": "user.name" }`, and `$template` placeholders may read the same path as `${user.name}`. Use this for object values produced by `$let`; missing dotted `$ref` segments are invalid references and should be fixed instead of treated as optional data.
3224
+ 290. **`params.skipIf` is a dispatch-time action guard** - Any action binding may include `params.skipIf`. Mythik resolves it before resolving the rest of the params; when truthy, the action is skipped and the action chain continues. The action handler never receives `skipIf`.
3225
+ 291. **Direct `fetch` supports `errorTarget` for visible screen-load failures** - `fetch.params.errorTarget` writes HTTP/network errors to a consumer-owned state path and clears it on success. Use it for critical `initialActions` loads so the screen can render a local banner/empty state; `/ui/lastError` remains global compatibility state and can be overwritten by unrelated fetches.
3226
+ 292. **`select` supports catalog keys and invalid-option diagnostics** - `select.options` may be strings, `{ label, value }`, or catalog-shaped objects when `labelKey`/`valueKey` are provided. Values emitted from the primitive are strings. Malformed option data renders as disabled diagnostics instead of blank clickable options or crashes, so AI-generated catalog bindings fail visibly.
3227
+ 293. **SQL adapters are optional peer dependencies** - `mythik` does not install SQL drivers by default. Browser-only apps install `mythik mythik-react`. SQL-backed stores/servers must install exactly the selected adapter (`mssql`, `pg`, `mysql2`, or `better-sqlite3`). SQLite uses native `better-sqlite3`; warnings from its transitive native-build helpers are adapter-level install warnings, not Mythik runtime failures.
3228
+ 294. **Missing SQL adapter errors are actionable** - If a SQL-backed store or server uses a dialect whose adapter package is not installed, Mythik throws `SqlDriverError` with `code: "SQL_DRIVER_DEPENDENCY_MISSING"`, `packageName`, `installCommand`, and a message containing the exact `npm install ...` command.
@@ -20,7 +20,8 @@ transactions, `GET` in `initialActions`). For reactive GETs, prefer
20
20
  "method"?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE",
21
21
  "headers"?: <object-or-$state>,
22
22
  "body"?: <object-with-expressions>,
23
- "target"?: "/state/path"
23
+ "target"?: "/state/path",
24
+ "errorTarget"?: "/ui/screen-owned-error-path"
24
25
  }}
25
26
  ```
26
27
 
@@ -30,6 +31,9 @@ transactions, `GET` in `initialActions`). For reactive GETs, prefer
30
31
  - **Empty strings in body → `null`** (prevents DB errors on typed columns).
31
32
  - Sets `/ui/loading` to `true` while in flight; `false` when done.
32
33
  - On error: writes `/ui/lastError` with status and message.
34
+ - If `errorTarget` is provided, writes the same structured error there and
35
+ clears it on success. Use this for critical `initialActions` screen loads
36
+ instead of relying only on global `/ui/lastError`.
33
37
  - **Auth headers auto-injected** for URLs whose hostname matches
34
38
  `auth.authDomains` — see [[@concept-auth-domains]].
35
39
 
@@ -50,7 +54,8 @@ POST with body:
50
54
  "title": { "$state": "/form/title" },
51
55
  "description": { "$state": "/form/description" }
52
56
  },
53
- "target": "/lastResult"
57
+ "target": "/lastResult",
58
+ "errorTarget": "/ui/loadErrors/taskCreate"
54
59
  }}
55
60
  ```
56
61
 
@@ -11,20 +11,20 @@ sources: [docs/consumer/ai-context.md, docs/consumer/WHERE-TO-LOOK.md]
11
11
 
12
12
  | Package | Purpose |
13
13
  |---|---|
14
- | `mythik` | Browser-safe core. State, expressions, validation, renderer engine, design, auth, data, security, and browser-safe spec stores |
15
- | `mythik/server` | Node-only spec stores, SQL drivers, and SQL DDL helpers: `FileSpecStore`, `SqlSpecStore`, `SqlVersionedSpecStore`, `SqlEnvironmentStore`, `createSqlDriver`, `getSqlStoreDdl`, and SQL Server compatibility stores |
16
- | `mythik-react` | React host, renderer, and web primitives |
17
- | `mythik-cli` | CLI package; installs the `mythik` command |
18
- | `mythik-cli/api` | Programmatic CLI API: `runPush`, `runPatch`, `runLint`, `parsePatchInput`, and types |
19
- | `mythik-server` | Express server runtime for ApiSpecs |
20
-
21
- React Native work lives in the repository as a preview track and is not part of the supported npm publish surface yet.
14
+ | `mythik` | Browser-safe core. State, expressions, validation, renderer engine, design, auth, data, security, and browser-safe spec stores |
15
+ | `mythik/server` | Node-only spec stores, SQL drivers, and SQL DDL helpers: `FileSpecStore`, `SqlSpecStore`, `SqlVersionedSpecStore`, `SqlEnvironmentStore`, `createSqlDriver`, `getSqlStoreDdl`, and SQL Server compatibility stores |
16
+ | `mythik-react` | React host, renderer, and web primitives |
17
+ | `mythik-cli` | CLI package; installs the `mythik` command |
18
+ | `mythik-cli/api` | Programmatic CLI API: `runPush`, `runPatch`, `runLint`, `parsePatchInput`, and types |
19
+ | `mythik-server` | Express server runtime for ApiSpecs |
20
+
21
+ React Native work lives in the repository as a preview track and is not part of the supported npm publish surface yet.
22
22
 
23
23
  ## Browser vs server core entries
24
24
 
25
- The default `mythik` entry is browser-safe by construction. Node-only stores and SQL drivers live behind the `mythik/server` subpath so browser bundles do not pull `fs`, SQL adapters, or other Node-only dependencies.
26
-
27
- SQL adapters (`mssql`, `pg`, `mysql2`, `better-sqlite3`) are optional dependencies of `mythik`. npm/pnpm install optional dependencies by default; if optional dependencies are omitted, install the adapter for the database in use.
25
+ The default `mythik` entry is browser-safe by construction. Node-only stores and SQL drivers live behind the `mythik/server` subpath so browser bundles do not pull `fs`, SQL adapters, or other Node-only dependencies.
26
+
27
+ SQL adapters (`mssql`, `pg`, `mysql2`, `better-sqlite3`) are optional peer dependencies. Browser-only apps do not install database drivers by default; SQL-backed stores and servers must install exactly the adapter for the selected database. SQLite uses native `better-sqlite3`, so warnings from its transitive native-build helpers belong to that adapter install path. Missing SQL adapter errors include the package name and exact install command.
28
28
 
29
29
  ## Programmatic CLI API
30
30