You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(spec): regenerate the protocol reference on the merged tree
Discharges the os-regen deferral recorded by the merge commit. Both routed
paths are regenerated whole from the merged sources; no byte is hand-edited.
Union proof, both directions, per path:
content/docs/references/api/package-api.mdx
regen vs this branch's side == main's delta (20 lines, identical)
regen vs main's side == this branch's (14 lines, identical)
content/docs/references/index.mdx
regen vs this branch's side == main's delta (12 lines, identical)
regen vs main's side == this branch's (6 lines, identical)
The two lines excluded from that comparison carry the running schema TOTAL,
which a union must move where neither side alone does: base 1533, each side
alone 1534, merged tree 1535 — and 1535 is what the generator itself reports
for the merged sources, so the total is measured rather than reconciled.
main brought DatasetSelection/DatasetCompareTo/DatasetTotals into api/analytics
and retired KernelSecurityScanResult/KernelSecurityVulnerability
from kernel/plugin-security-advanced.
this branch brought FlowFunctionLoweredDeclaration into automation/flow-function.
Both survive in the merged output.
The ledger's last header counter is the build's own reading of the merged tree:
gen:schema measures 565 dropped sites across 205 published schemas, 366 projected,
9 with no JSON form — the first two already matched the union resolved in the merge
commit, so only refinementSitesThatDidProject moved.
Claude-Session: https://claude.ai/code/session_01LvwGppdonww4zGLWZo5rho
Co-authored-by: Claude <noreply@anthropic.com>
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
68
68
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
69
69
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
70
70
|**version**|`string`| ✅ | Package version (semantic versioning) |
@@ -257,7 +257,7 @@ Installed package with runtime lifecycle state
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
261
261
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
262
262
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
263
263
|**version**|`string`| ✅ | Package version (semantic versioning) |
@@ -320,7 +320,7 @@ Installed package row whose manifest is the assembled package body
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
324
324
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
325
325
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
326
326
|**version**|`string`| ✅ | Package version (semantic versioning) |
@@ -402,8 +402,8 @@ List installed packages request
402
402
|**status**|`Enum<'installed' \| 'disabled' \| 'installing' \| 'upgrading' \| 'uninstalling' \| 'error'>`| optional | Filter by package status |
403
403
|**enabled**|`boolean`| optional | Filter by enabled state |
404
404
|**type**|`string`| optional | Filter by the installed manifest's `type` — exact match, unmatched values select nothing |
405
-
| **limit** | `never` | optional | [REMOVED] `limit` / `cursor` were removed from GET /api/v1/packages in @objectstack/spec 17.5.0 (ADR-0049 enforce-or-remove) — both were declared here and read by nothing: the serving door filters on `status` / `type` and then returns every remaining row, so no page was ever withheld and no continuation token was ever minted. `limit` also declared `.default(50)`, so a reader of the published schema was entitled to believe an unparameterised list is capped at 50 rows; it has never been capped at all, and nothing parses a query string through this schema, so that default has never been stamped onto anything. Delete the key. This route is NOT paginated — it answers the whole installed set, which is a bounded table of tens of rows, and `hasMore` on the response is a constant `false` that is now true by construction. Filter with `status` and `type` instead of asking for a window. A first-class package cursor, if one is ever designed, will be a response-minted opaque token, not this key. |
406
-
| **cursor** | `never` | optional | [REMOVED] `limit` / `cursor` were removed from GET /api/v1/packages in @objectstack/spec 17.5.0 (ADR-0049 enforce-or-remove) — both were declared here and read by nothing: the serving door filters on `status` / `type` and then returns every remaining row, so no page was ever withheld and no continuation token was ever minted. `limit` also declared `.default(50)`, so a reader of the published schema was entitled to believe an unparameterised list is capped at 50 rows; it has never been capped at all, and nothing parses a query string through this schema, so that default has never been stamped onto anything. Delete the key. This route is NOT paginated — it answers the whole installed set, which is a bounded table of tens of rows, and `hasMore` on the response is a constant `false` that is now true by construction. Filter with `status` and `type` instead of asking for a window. A first-class package cursor, if one is ever designed, will be a response-minted opaque token, not this key. |
405
+
| **limit** | `never` | optional | [REMOVED] `limit` / `cursor` were removed from GET /api/v1/packages in @objectstack/spec 17.5.0 (ADR-0049 enforce-or-remove) — both were declared here and read by nothing: the serving door filters on `status` / `type` / `enabled` and then returns every remaining row, so no page was ever withheld and no continuation token was ever minted. `limit` also declared `.default(50)`, so a reader of the published schema was entitled to believe an unparameterised list is capped at 50 rows; it has never been capped at all, and nothing parses a query string through this schema, so that default has never been stamped onto anything. Delete the key. This route is NOT paginated — it answers the whole installed set, which is a bounded table of tens of rows, and `hasMore` on the response is a constant `false` that is now true by construction. Filter with `status`, `type` and `enabled` instead of asking for a window. A first-class package cursor, if one is ever designed, will be a response-minted opaque token, not this key. |
406
+
| **cursor** | `never` | optional | [REMOVED] `limit` / `cursor` were removed from GET /api/v1/packages in @objectstack/spec 17.5.0 (ADR-0049 enforce-or-remove) — both were declared here and read by nothing: the serving door filters on `status` / `type` / `enabled` and then returns every remaining row, so no page was ever withheld and no continuation token was ever minted. `limit` also declared `.default(50)`, so a reader of the published schema was entitled to believe an unparameterised list is capped at 50 rows; it has never been capped at all, and nothing parses a query string through this schema, so that default has never been stamped onto anything. Delete the key. This route is NOT paginated — it answers the whole installed set, which is a bounded table of tens of rows, and `hasMore` on the response is a constant `false` that is now true by construction. Filter with `status`, `type` and `enabled` instead of asking for a window. A first-class package cursor, if one is ever designed, will be a response-minted opaque token, not this key. |
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
508
508
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
509
509
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
510
510
|**version**|`string`| ✅ | Package version (semantic versioning) |
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
552
552
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
553
553
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
554
554
|**version**|`string`| ✅ | Package version (semantic versioning) |
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
671
671
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
672
672
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
673
673
|**version**|`string`| ✅ | Package version (semantic versioning) |
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
804
804
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
805
805
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
806
806
|**version**|`string`| ✅ | Package version (semantic versioning) |
|**id**|`string`| ✅ | Unique package identifier — must match reverse-domain notation (e.g. com.acme.crm) |
899
899
|**namespace**|`string`| optional | Short namespace identifier; also the mandatory prefix of every object name (e.g. "todo" → object names "todo_task", "todo_project") |
900
900
|**defaultDatasource**|`string`| optional (default: `"default"`) | Default datasource for all objects in this package |
901
901
|**version**|`string`| ✅ | Package version (semantic versioning) |
|[Automation Protocol](/docs/references/automation)| 14 | 75 | Flows and their nodes, approvals, ETL pipelines, webhooks, state machines, execution records. |
25
25
|[Data Protocol](/docs/references/data)| 29 | 175 | Objects, fields, queries, filters, datasources and drivers — the ObjectQL layer. |
0 commit comments