@objectstack/observability 17.0.0-rc.0 → 17.0.0-rc.2

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/CHANGELOG.md ADDED
@@ -0,0 +1,1443 @@
1
+ # @objectstack/observability
2
+
3
+ ## 17.0.0-rc.2
4
+
5
+ ### Patch Changes
6
+
7
+ - ff17642: fix(runtime): declarative `defineJob` cron jobs are actually scheduled (#4567)
8
+
9
+ Every background job authored as `defineJob({ schedule: { type: 'cron', … } })`
10
+ was **silently never scheduled**. `JobSchema.parse` rewrites the cron
11
+ `expression` into the canonical expression envelope
12
+ (`{ dialect: 'cron', source: '0 1 * * *' }` — the authoring/persistence tier),
13
+ but `AppPlugin` handed `job.schedule` verbatim to `IJobService.schedule`, whose
14
+ boundary contract documents `expression` as a **bare cron string** because
15
+ `CronJobAdapter` passes it straight to croner. croner rejected the object
16
+ (`CronPattern: Pattern has to be of type string.`), the throw was swallowed by a
17
+ per-job `try/catch` that only `warn`ed, and the author saw a green build and a
18
+ green boot with the job never running. `interval` / `once` schedules and
19
+ flow `schedule` triggers were unaffected.
20
+
21
+ **Fix (contract-first).** The authoring→boundary downgrade now happens at the one
22
+ place the two tiers meet — `AppPlugin`'s declarative-job registration, alongside
23
+ the existing `retryPolicy` / `timeout` threading — via
24
+ `toBoundaryJobSchedule()`. The adapters stay strict: no `typeof === 'object'`
25
+ tolerance was added downstream, so the boundary keeps exactly one shape.
26
+ A schedule that cannot be reduced to it (unknown type, AST-only or non-`cron`
27
+ expression envelope, missing `intervalMs` / `at`) is rejected by name.
28
+
29
+ **The failure path is no longer silent.** A job that cannot be scheduled now logs
30
+ at **error** level with its own message (`Background job FAILED TO SCHEDULE — it
31
+ will never run`), plus a boot summary line when any job failed, and increments
32
+ the new `job_schedule_failures_total` counter
33
+ (`SEMCONV.jobScheduleFailuresTotal`, labels `app` / `job`) on the observability
34
+ metrics registry. "Failed to schedule" no longer shares the quiet `warn` used by
35
+ "handler not found in bundle.functions" — the first is an outage of declared
36
+ work, the second is a job that was never going to run.
37
+
38
+ No authoring change is required: existing `defineJob` cron declarations start
39
+ working on upgrade.
40
+
41
+ - Updated dependencies [430dcc2]
42
+ - Updated dependencies [e6ac4bd]
43
+ - Updated dependencies [80334c7]
44
+ - Updated dependencies [ce5242c]
45
+ - Updated dependencies [a7163ea]
46
+ - Updated dependencies [e6e9379]
47
+ - Updated dependencies [98877c9]
48
+ - Updated dependencies [98877c9]
49
+ - Updated dependencies [e6b1b69]
50
+ - Updated dependencies [ad047d2]
51
+ - Updated dependencies [2826d1e]
52
+ - Updated dependencies [5a84d41]
53
+ - Updated dependencies [20b1a9e]
54
+ - Updated dependencies [203a449]
55
+ - Updated dependencies [ac37fc6]
56
+ - Updated dependencies [4820f55]
57
+ - Updated dependencies [462d9c4]
58
+ - Updated dependencies [7d21581]
59
+ - Updated dependencies [f2445c9]
60
+ - Updated dependencies [23338c3]
61
+ - Updated dependencies [5b843fb]
62
+ - Updated dependencies [b4487aa]
63
+ - Updated dependencies [65ca83a]
64
+ - Updated dependencies [67bf2e2]
65
+ - Updated dependencies [c6d1cb4]
66
+ - Updated dependencies [36030ff]
67
+ - Updated dependencies [6117f7b]
68
+ - Updated dependencies [e533b0b]
69
+ - Updated dependencies [cdf4d9a]
70
+ - Updated dependencies [aee1806]
71
+ - Updated dependencies [c13350b]
72
+ - Updated dependencies [c13350b]
73
+ - Updated dependencies [9ca2d85]
74
+ - Updated dependencies [c13350b]
75
+ - Updated dependencies [891d345]
76
+ - Updated dependencies [a52e2ef]
77
+ - Updated dependencies [5293114]
78
+ - Updated dependencies [20bc357]
79
+ - Updated dependencies [5966c2a]
80
+ - Updated dependencies [2382580]
81
+ - Updated dependencies [d9fa683]
82
+ - Updated dependencies [3c7bcc0]
83
+ - Updated dependencies [4b6cac7]
84
+ - Updated dependencies [7631964]
85
+ - Updated dependencies [ac471a0]
86
+ - Updated dependencies [60ae58e]
87
+ - Updated dependencies [ce92674]
88
+ - Updated dependencies [9f601e8]
89
+ - Updated dependencies [51c5227]
90
+ - Updated dependencies [a4a85c8]
91
+ - Updated dependencies [07a4e26]
92
+ - Updated dependencies [ec975f1]
93
+ - Updated dependencies [eb4204b]
94
+ - Updated dependencies [4f13be2]
95
+ - Updated dependencies [61cc079]
96
+ - Updated dependencies [0e96e46]
97
+ - Updated dependencies [d52d4fe]
98
+ - Updated dependencies [742cebb]
99
+ - Updated dependencies [ce92674]
100
+ - Updated dependencies [cf2c9b7]
101
+ - Updated dependencies [0f9faa2]
102
+ - Updated dependencies [7cf42fe]
103
+ - Updated dependencies [5966c2a]
104
+ - Updated dependencies [f78dd83]
105
+ - Updated dependencies [a2cd18a]
106
+ - Updated dependencies [4638aaa]
107
+ - Updated dependencies [0222d3c]
108
+ - Updated dependencies [0a936ea]
109
+ - Updated dependencies [023c00b]
110
+ - Updated dependencies [155507e]
111
+ - Updated dependencies [7bba90b]
112
+ - Updated dependencies [7e05d8e]
113
+ - Updated dependencies [061406d]
114
+ - Updated dependencies [c1f344b]
115
+ - Updated dependencies [9c93465]
116
+ - Updated dependencies [ebb209c]
117
+ - Updated dependencies [63b33e6]
118
+ - Updated dependencies [2a44c1d]
119
+ - Updated dependencies [695cfbd]
120
+ - Updated dependencies [7445149]
121
+ - Updated dependencies [071d0dc]
122
+ - Updated dependencies [0848bea]
123
+ - Updated dependencies [d51bed2]
124
+ - Updated dependencies [b8b3c64]
125
+ - Updated dependencies [0c0fbd9]
126
+ - Updated dependencies [f3141d8]
127
+ - Updated dependencies [5a84d41]
128
+ - Updated dependencies [fd3013a]
129
+ - Updated dependencies [21676eb]
130
+ - Updated dependencies [e336549]
131
+ - Updated dependencies [d40f43a]
132
+ - Updated dependencies [e5e7ee0]
133
+ - Updated dependencies [a2ebea2]
134
+ - Updated dependencies [800bdb0]
135
+ - Updated dependencies [04f1182]
136
+ - Updated dependencies [5647006]
137
+ - Updated dependencies [38f7e4f]
138
+ - Updated dependencies [c57f3cf]
139
+ - Updated dependencies [97faca3]
140
+ - Updated dependencies [ad5fe25]
141
+ - Updated dependencies [ea90179]
142
+ - Updated dependencies [ce92674]
143
+ - Updated dependencies [5ef0b5b]
144
+ - Updated dependencies [48fbacb]
145
+ - Updated dependencies [355e951]
146
+ - Updated dependencies [dadb43f]
147
+ - @objectstack/spec@17.0.0-rc.2
148
+
149
+ ## 17.0.0-rc.1
150
+
151
+ ### Patch Changes
152
+
153
+ - 2e836de: chore(packaging): CHANGELOG.md ships in every npm tarball (#4261)
154
+
155
+ The AGENTS.md post-task checklist requires breaking changesets to carry their
156
+ FROM → TO migration because "this text ships to consumers as `CHANGELOG.md`
157
+ inside the npm package and is what an upgrading agent greps after the tombstone
158
+ error." That delivery path was severed for 68 of the 69 publishable packages:
159
+ npm packs `package.json` / `README*` / `LICENSE*` unconditionally but — unlike
160
+ older npm versions — not `CHANGELOG.md`, and the canonical
161
+ `"files": ["dist", "README.md"]` whitelist never named it. Measured on npm
162
+ 10.9.7: `npm pack --dry-run` on `@objectstack/types` shipped 3 files while its
163
+ 70KB `CHANGELOG.md` stayed behind. Only `@objectstack/spec` listed it
164
+ explicitly.
165
+
166
+ The tombstone-error scenario is precisely the one where the repo is out of
167
+ reach — the upgrading agent has `node_modules` and nothing else — so the
168
+ migration text has to ride in the tarball. Every publishable package now
169
+ declares `CHANGELOG.md` in `files`, and the canonical whitelist is
170
+ `["dist", "README.md", "CHANGELOG.md"]`.
171
+
172
+ The other half is the gate: `check:published-files` gains a fifth invariant,
173
+ COMPLETE — a whitelist that fails to cover `CHANGELOG.md` fails the
174
+ always-required lint job, so the next package cannot silently sever the path
175
+ again. `@objectstack/spec`'s per-package EXTRA_ENTRIES exemption dissolves
176
+ into the canonical set.
177
+
178
+ Consumer-visible change: one more file per install (the package's changelog,
179
+ e.g. 70.8KB for `@objectstack/types`), and `grep -r "removed key"
180
+ node_modules/@objectstack/*/CHANGELOG.md` now finds the migration it was
181
+ promised.
182
+
183
+ - Updated dependencies [6a67d7a]
184
+ - Updated dependencies [0ecc656]
185
+ - Updated dependencies [06772eb]
186
+ - Updated dependencies [270650f]
187
+ - Updated dependencies [3aef718]
188
+ - Updated dependencies [1ea6bce]
189
+ - Updated dependencies [c1dcacd]
190
+ - Updated dependencies [ad303ed]
191
+ - Updated dependencies [32ccb23]
192
+ - Updated dependencies [f5a4ef0]
193
+ - Updated dependencies [2d3e255]
194
+ - Updated dependencies [7d7521f]
195
+ - Updated dependencies [5dc4d02]
196
+ - Updated dependencies [05154a1]
197
+ - Updated dependencies [9b6fe7c]
198
+ - Updated dependencies [8c711fb]
199
+ - Updated dependencies [09e4547]
200
+ - Updated dependencies [91f4c78]
201
+ - Updated dependencies [820eff9]
202
+ - Updated dependencies [8d895ff]
203
+ - Updated dependencies [f6472d7]
204
+ - Updated dependencies [78caf51]
205
+ - Updated dependencies [62a789b]
206
+ - Updated dependencies [789ad63]
207
+ - Updated dependencies [2af1988]
208
+ - Updated dependencies [12a19a8]
209
+ - Updated dependencies [41dcda3]
210
+ - Updated dependencies [c8124e5]
211
+ - Updated dependencies [a1a4140]
212
+ - Updated dependencies [217e2e6]
213
+ - Updated dependencies [86a71d1]
214
+ - Updated dependencies [d5c75e2]
215
+ - Updated dependencies [03d26f7]
216
+ - Updated dependencies [4384921]
217
+ - Updated dependencies [3c628ce]
218
+ - Updated dependencies [7cb922e]
219
+ - Updated dependencies [1d22114]
220
+ - Updated dependencies [b5f9397]
221
+ - Updated dependencies [ed77493]
222
+ - Updated dependencies [58a03d2]
223
+ - Updated dependencies [dc530b4]
224
+ - Updated dependencies [e59786e]
225
+ - Updated dependencies [bcf1112]
226
+ - Updated dependencies [9774b78]
227
+ - Updated dependencies [b07d829]
228
+ - Updated dependencies [a648e96]
229
+ - Updated dependencies [a47ac06]
230
+ - Updated dependencies [e4c61a7]
231
+ - Updated dependencies [cc60165]
232
+ - Updated dependencies [081aa6f]
233
+ - Updated dependencies [91f4c78]
234
+ - Updated dependencies [e8d0c21]
235
+ - Updated dependencies [c1d44f7]
236
+ - Updated dependencies [ab9fb5c]
237
+ - Updated dependencies [f985b3f]
238
+ - Updated dependencies [9a4932a]
239
+ - Updated dependencies [f9fc874]
240
+ - Updated dependencies [011b386]
241
+ - Updated dependencies [7777e8f]
242
+ - Updated dependencies [507b92a]
243
+ - Updated dependencies [7309c81]
244
+ - Updated dependencies [20bc1ec]
245
+ - Updated dependencies [90c2b15]
246
+ - Updated dependencies [42eeb7d]
247
+ - Updated dependencies [01e124d]
248
+ - Updated dependencies [7ce02eb]
249
+ - Updated dependencies [a13827e]
250
+ - Updated dependencies [7733604]
251
+ - Updated dependencies [40e420f]
252
+ - Updated dependencies [d13004a]
253
+ - Updated dependencies [5b47ab5]
254
+ - Updated dependencies [b09d8d9]
255
+ - Updated dependencies [b09d8d9]
256
+ - Updated dependencies [8675db6]
257
+ - Updated dependencies [b09d8d9]
258
+ - Updated dependencies [3eb1b2b]
259
+ - Updated dependencies [59b85c0]
260
+ - Updated dependencies [6e357ed]
261
+ - Updated dependencies [d6938bf]
262
+ - Updated dependencies [31e0be9]
263
+ - Updated dependencies [4bfd455]
264
+ - Updated dependencies [ffd2ce2]
265
+ - Updated dependencies [62f8017]
266
+ - Updated dependencies [a831df1]
267
+ - Updated dependencies [f752ee3]
268
+ - Updated dependencies [a1b61e0]
269
+ - Updated dependencies [cd6b9f2]
270
+ - Updated dependencies [2cb6d3c]
271
+ - Updated dependencies [af2a095]
272
+ - Updated dependencies [ec796d5]
273
+ - Updated dependencies [e87fea1]
274
+ - Updated dependencies [c65e529]
275
+ - Updated dependencies [3ca34c1]
276
+ - Updated dependencies [239c3a3]
277
+ - Updated dependencies [94a0bbc]
278
+ - Updated dependencies [d6bfb3d]
279
+ - Updated dependencies [a2266a6]
280
+ - Updated dependencies [d25a0ec]
281
+ - Updated dependencies [667b83e]
282
+ - Updated dependencies [627b188]
283
+ - Updated dependencies [8d4eae7]
284
+ - Updated dependencies [65a3a84]
285
+ - Updated dependencies [ccd9397]
286
+ - Updated dependencies [bca935b]
287
+ - Updated dependencies [c54c822]
288
+ - Updated dependencies [8dcc0f5]
289
+ - Updated dependencies [75b9e51]
290
+ - Updated dependencies [0a2f233]
291
+ - Updated dependencies [8621cdd]
292
+ - Updated dependencies [6f23667]
293
+ - Updated dependencies [5d21a48]
294
+ - Updated dependencies [19365b7]
295
+ - Updated dependencies [b7ed26d]
296
+ - Updated dependencies [b3a3d83]
297
+ - Updated dependencies [7a55913]
298
+ - Updated dependencies [35accbf]
299
+ - Updated dependencies [6038de7]
300
+ - Updated dependencies [eb95d97]
301
+ - Updated dependencies [e4c2dc8]
302
+ - Updated dependencies [1bd2795]
303
+ - Updated dependencies [8186a70]
304
+ - Updated dependencies [a329cca]
305
+ - Updated dependencies [6eec18c]
306
+ - Updated dependencies [4d7bebf]
307
+ - Updated dependencies [821ac7a]
308
+ - Updated dependencies [8f81731]
309
+ - Updated dependencies [8b50cb3]
310
+ - Updated dependencies [8c2db68]
311
+ - Updated dependencies [22b5e54]
312
+ - Updated dependencies [0166bd5]
313
+ - Updated dependencies [9b702dc]
314
+ - Updated dependencies [ab16331]
315
+ - @objectstack/spec@17.0.0-rc.1
316
+
317
+ ## 17.0.0-rc.0
318
+
319
+ ### Patch Changes
320
+
321
+ - Updated dependencies [50616d9]
322
+ - Updated dependencies [08b5a3d]
323
+ - Updated dependencies [d99aeb3]
324
+ - Updated dependencies [4727eb8]
325
+ - Updated dependencies [f63cd09]
326
+ - Updated dependencies [fa3d0cf]
327
+ - Updated dependencies [af5a224]
328
+ - Updated dependencies [71f76e1]
329
+ - Updated dependencies [37b1346]
330
+ - Updated dependencies [99736a0]
331
+ - Updated dependencies [fe67e34]
332
+ - Updated dependencies [fdb4f50]
333
+ - Updated dependencies [1bd5652]
334
+ - Updated dependencies [14252d3]
335
+ - Updated dependencies [7fb436c]
336
+ - Updated dependencies [879ea13]
337
+ - Updated dependencies [201b31f]
338
+ - Updated dependencies [e2616e0]
339
+ - Updated dependencies [6fdc5c6]
340
+ - Updated dependencies [8b9d71e]
341
+ - Updated dependencies [33f5e23]
342
+ - Updated dependencies [259af21]
343
+ - Updated dependencies [587fc91]
344
+ - Updated dependencies [1986594]
345
+ - Updated dependencies [ad4af62]
346
+ - Updated dependencies [d44dbfa]
347
+ - Updated dependencies [474fe39]
348
+ - Updated dependencies [0bc685a]
349
+ - Updated dependencies [b949059]
350
+ - Updated dependencies [be1c52c]
351
+ - Updated dependencies [c5ff96d]
352
+ - Updated dependencies [84e7be9]
353
+ - Updated dependencies [a6c3f38]
354
+ - Updated dependencies [debc23a]
355
+ - Updated dependencies [0f8ad09]
356
+ - Updated dependencies [8f9689f]
357
+ - Updated dependencies [57a3bb3]
358
+ - Updated dependencies [5f9a987]
359
+ - Updated dependencies [db02d47]
360
+ - Updated dependencies [0bfdf46]
361
+ - Updated dependencies [376a061]
362
+ - Updated dependencies [7c7e246]
363
+ - Updated dependencies [f35cdc5]
364
+ - Updated dependencies [9ea2bc5]
365
+ - Updated dependencies [c2d9098]
366
+ - Updated dependencies [a227ed7]
367
+ - Updated dependencies [9613396]
368
+ - Updated dependencies [e47b342]
369
+ - Updated dependencies [4ed7ed4]
370
+ - Updated dependencies [2fa4ca1]
371
+ - Updated dependencies [f5a2320]
372
+ - Updated dependencies [deb538f]
373
+ - Updated dependencies [5b89711]
374
+ - Updated dependencies [0c8a22f]
375
+ - Updated dependencies [763931e]
376
+ - Updated dependencies [de9af8a]
377
+ - Updated dependencies [c4df271]
378
+ - Updated dependencies [a41ba5c]
379
+ - Updated dependencies [189854c]
380
+ - Updated dependencies [0e3a226]
381
+ - Updated dependencies [1d4756e]
382
+ - Updated dependencies [720c5ad]
383
+ - Updated dependencies [a8d1e24]
384
+ - Updated dependencies [41642b0]
385
+ - Updated dependencies [4cca74c]
386
+ - Updated dependencies [88ef03e]
387
+ - Updated dependencies [9e2caf3]
388
+ - Updated dependencies [81ce41a]
389
+ - Updated dependencies [85e1e4e]
390
+ - Updated dependencies [dac6a08]
391
+ - Updated dependencies [394b7a1]
392
+ - Updated dependencies [677b591]
393
+ - Updated dependencies [d77d1b7]
394
+ - Updated dependencies [5b79a34]
395
+ - Updated dependencies [c757854]
396
+ - Updated dependencies [0045682]
397
+ - Updated dependencies [2a5f04a]
398
+ - Updated dependencies [4f740b0]
399
+ - Updated dependencies [67452d1]
400
+ - Updated dependencies [0fc6219]
401
+ - Updated dependencies [605e190]
402
+ - Updated dependencies [c6c59f1]
403
+ - Updated dependencies [b0e78a8]
404
+ - Updated dependencies [f31cc8d]
405
+ - Updated dependencies [f343dc4]
406
+ - Updated dependencies [8269e32]
407
+ - Updated dependencies [74f7339]
408
+ - Updated dependencies [a6c35a2]
409
+ - Updated dependencies [c2f1002]
410
+ - Updated dependencies [f163028]
411
+ - Updated dependencies [f07808c]
412
+ - Updated dependencies [7ffc3d3]
413
+ - Updated dependencies [88346ba]
414
+ - Updated dependencies [4631592]
415
+ - Updated dependencies [32ff033]
416
+ - Updated dependencies [5ac93d4]
417
+ - Updated dependencies [93f267f]
418
+ - Updated dependencies [0024abf]
419
+ - Updated dependencies [acbf364]
420
+ - Updated dependencies [7687f7b]
421
+ - Updated dependencies [1659072]
422
+ - Updated dependencies [abceb0d]
423
+ - Updated dependencies [0c302a7]
424
+ - Updated dependencies [6633337]
425
+ - Updated dependencies [f00d8d4]
426
+ - Updated dependencies [503be86]
427
+ - Updated dependencies [cde1975]
428
+ - Updated dependencies [0bc685a]
429
+ - Updated dependencies [11949fc]
430
+ - Updated dependencies [b098b0e]
431
+ - Updated dependencies [4d00b13]
432
+ - Updated dependencies [57bab76]
433
+ - Updated dependencies [b90086a]
434
+ - Updated dependencies [b95577a]
435
+ - Updated dependencies [83c161f]
436
+ - Updated dependencies [d8c4957]
437
+ - Updated dependencies [f24cb83]
438
+ - Updated dependencies [5dbbb92]
439
+ - Updated dependencies [69f1dfd]
440
+ - @objectstack/spec@17.0.0-rc.0
441
+
442
+ ## 16.1.0
443
+
444
+ ### Patch Changes
445
+
446
+ - 818e6a3: fix(server-timing): emit the per-request, admin-gated `Server-Timing` header on the standard server (`os serve`/`dev`) (#3361)
447
+
448
+ The per-request `Server-Timing` path (#2408) — where an admin sends
449
+ `X-OS-Debug-Timing: 1` (or `json`) and gets phase timings while an ordinary user
450
+ gets nothing — never emitted on the shipped Hono server. The disclosure gate the
451
+ Hono middleware opens is only ever flipped by the runtime dispatcher's
452
+ `timedResolveExecutionContext`, but the data (`/api/v1/data/*`) and metadata
453
+ (`/api/v1/meta/*`) routes on `os serve`/`dev` are served by `@objectstack/rest`'s
454
+ `RestServer` (which shadows the Hono plugin's own CRUD), and its identity
455
+ resolver never opened the gate. Only global mode (`OS_SERVER_TIMING=true`) — which
456
+ discloses to _every_ caller, not just admins — worked.
457
+
458
+ - **observability**: the disclosure predicate `isPerfDisclosurePrincipal(ec)` now
459
+ lives here (the home of the gate), the single definition of "who may pull
460
+ per-request timings" shared by every HTTP entry point. `@objectstack/runtime`
461
+ re-exports it for back-compat.
462
+ - **rest**: `RestServer.resolveExecCtx` opens the gate for an admin/service
463
+ principal (via the carried `posture` rung), the REST-server analog of the
464
+ dispatcher — this is the fix that makes `os serve`/`dev` emit.
465
+ - **plugin-hono-server**: the standalone CRUD surface's self-contained
466
+ `resolveCtx` opens the gate too (deriving the rung for the gate decision only,
467
+ never writing it onto the enforcement context). Adds an e2e test that boots the
468
+ Hono app and asserts an admin gets `Server-Timing` while a member/anon does not.
469
+
470
+ - Updated dependencies [9e45b63]
471
+ - @objectstack/spec@16.1.0
472
+
473
+ ## 16.0.0
474
+
475
+ ### Minor Changes
476
+
477
+ - efbcfe1: feat(observability): admin-only richer per-request timing detail via `X-OS-Debug-Timing: json` (#2408)
478
+
479
+ Completes the optional "richer JSON" diagnostic from #2408. In addition to the
480
+ basic `Server-Timing` header, an admin/service caller can now request a
481
+ per-query breakdown — the slowest SQL statements and a query count — by sending
482
+ `X-OS-Debug-Timing: json`. The detail is returned in a separate
483
+ `X-OS-Debug-Timing-Detail` response header (compact JSON) and is **admin-only,
484
+ even under global mode**: an ordinary caller never sees SQL shapes.
485
+
486
+ - **observability**: `PerfTiming` gains opt-in per-event detail capture
487
+ (`enableDetail` / `recordDetail` / `details`) plus the ambient
488
+ `recordServerTimingDetail`. The disclosure gate gains a `privileged` level
489
+ (set by `allowPerfDisclosure`, read via `isPerfDisclosurePrivileged`) so the
490
+ richer detail can be gated independently of the basic header.
491
+ - **driver-sql**: when detail capture is on, the query listener additionally
492
+ records each query's **parametrized** statement (knex's `q.sql`, `?`
493
+ placeholders) — never the bindings, so no literal row value ever enters the
494
+ collector. Zero overhead when detail is off.
495
+ - **plugin-hono-server**: `X-OS-Debug-Timing: json` enables detail capture; the
496
+ middleware emits `X-OS-Debug-Timing-Detail` (slowest queries, capped and
497
+ sanitized to header-safe ASCII) only when the principal is a proven admin.
498
+
499
+ Basic and global behavior are unchanged; `json` is purely additive.
500
+
501
+ - 2049b6a: feat(observability): admin-gated per-request `Server-Timing` via `X-OS-Debug-Timing` (#2408)
502
+
503
+ Perf-tuning mode was previously global-only (`serverTiming` option /
504
+ `OS_SERVER_TIMING`), which discloses internal phase durations — a mild
505
+ backend-fingerprinting surface — to every caller. This adds the per-request
506
+ gating path from the design so an operator can pull a single request's
507
+ `Server-Timing` breakdown on a live environment without turning the header on
508
+ for everyone.
509
+
510
+ - **observability**: a request-scoped disclosure gate (`runWithPerfDisclosure`,
511
+ `allowPerfDisclosure`, `isPerfDisclosureAllowed`, `PerfDisclosureGate`) kept
512
+ separate from the pure `PerfTiming` collector and pinned to its own
513
+ `Symbol.for` store so the middleware and dispatcher share it across module
514
+ copies.
515
+ - **plugin-hono-server**: the Server-Timing middleware is registered by default
516
+ (unless `serverTiming: false`). It runs the collector when timing is global
517
+ **or** the request sends `X-OS-Debug-Timing: 1`, and emits the header only
518
+ when the gate is open. `OS_PERF_TIMING=1` now also enables global mode.
519
+ - **runtime**: after resolving the execution context, the dispatcher opens the
520
+ gate for admin/service/system principals, so ordinary callers never receive
521
+ the header even if they send the debug header.
522
+
523
+ Existing global-mode behavior is unchanged.
524
+
525
+ ### Patch Changes
526
+
527
+ - ce468c8: feat(observability): decompose `Server-Timing` into auth / db / hooks / serialize spans (perf-tuning mode)
528
+
529
+ The opt-in `Server-Timing` header now breaks a request's server time into the phases that actually explain it, so an operator can open DevTools → Network → Timing and see where the time went without standing up an external tracing backend:
530
+
531
+ - **`db`** — total SQL time with a **query count**. The SQL driver wires knex's `query` / `query-response` events (keyed by `__knexQueryUid`) and folds each query into one aggregate member (`db;dur=210;desc="6 queries"`) — the query count is the number most useful for spotting N sequential round-trips. Timing is attributed to the originating request via `AsyncLocalStorage`, so it is correct under concurrency and never cross-attributes. SQL text is never emitted, only durations and a count.
532
+ - **`auth`** — identity / session resolution in the dispatcher, the prime suspect for unexplained data-API overhead.
533
+ - **`hooks`** — total business-hook execution time with a hook count, fed through the engine's existing `HookMetricsRecorder` seam (wired from the runtime, so `@objectstack/objectql`'s lean `core` tier stays observability-free).
534
+ - **`serialize`** — response JSON encoding in the HTTP adapter.
535
+
536
+ Adds `countServerTiming(name, dur, unit)` (and `PerfTiming.count`) to fold high-frequency phases into a single aggregate member instead of flooding the header. Every phase is a no-op when perf-tuning is off (`serverTiming: true` / `OS_SERVER_TIMING=true`), so there is zero measurable overhead on the normal path.
537
+
538
+ Closes #2408.
539
+
540
+ - Updated dependencies [f972574]
541
+ - Updated dependencies [6289ec3]
542
+ - Updated dependencies [22013aa]
543
+ - Updated dependencies [3ad3dd5]
544
+ - Updated dependencies [8efa395]
545
+ - Updated dependencies [3a18b60]
546
+ - Updated dependencies [a8aa34c]
547
+ - Updated dependencies [a3823b2]
548
+ - Updated dependencies [43a3efb]
549
+ - Updated dependencies [524696a]
550
+ - Updated dependencies [bfa3c3f]
551
+ - Updated dependencies [5e3301d]
552
+ - Updated dependencies [46e876c]
553
+ - Updated dependencies [158aa14]
554
+ - Updated dependencies [62a2117]
555
+ - Updated dependencies [d2723e2]
556
+ - Updated dependencies [fefcd54]
557
+ - Updated dependencies [beaf2de]
558
+ - Updated dependencies [369eb6e]
559
+ - Updated dependencies [06ff734]
560
+ - Updated dependencies [b659111]
561
+ - Updated dependencies [5754a23]
562
+ - Updated dependencies [6c270a6]
563
+ - Updated dependencies [668dd17]
564
+ - Updated dependencies [8abf133]
565
+ - Updated dependencies [e0859b1]
566
+ - Updated dependencies [04ecd4e]
567
+ - Updated dependencies [4d5a892]
568
+ - Updated dependencies [16cebeb]
569
+ - Updated dependencies [86d30af]
570
+ - Updated dependencies [8923843]
571
+ - Updated dependencies [a2795f6]
572
+ - Updated dependencies [f16b492]
573
+ - Updated dependencies [4b6fde8]
574
+ - Updated dependencies [2018df9]
575
+ - Updated dependencies [fc5a3a2]
576
+ - Updated dependencies [8ff9210]
577
+ - @objectstack/spec@16.0.0
578
+
579
+ ## 16.0.0-rc.1
580
+
581
+ ### Patch Changes
582
+
583
+ - Updated dependencies [6289ec3]
584
+ - Updated dependencies [8efa395]
585
+ - Updated dependencies [bfa3c3f]
586
+ - Updated dependencies [62a2117]
587
+ - Updated dependencies [06ff734]
588
+ - @objectstack/spec@16.0.0-rc.1
589
+
590
+ ## 16.0.0-rc.0
591
+
592
+ ### Minor Changes
593
+
594
+ - efbcfe1: feat(observability): admin-only richer per-request timing detail via `X-OS-Debug-Timing: json` (#2408)
595
+
596
+ Completes the optional "richer JSON" diagnostic from #2408. In addition to the
597
+ basic `Server-Timing` header, an admin/service caller can now request a
598
+ per-query breakdown — the slowest SQL statements and a query count — by sending
599
+ `X-OS-Debug-Timing: json`. The detail is returned in a separate
600
+ `X-OS-Debug-Timing-Detail` response header (compact JSON) and is **admin-only,
601
+ even under global mode**: an ordinary caller never sees SQL shapes.
602
+
603
+ - **observability**: `PerfTiming` gains opt-in per-event detail capture
604
+ (`enableDetail` / `recordDetail` / `details`) plus the ambient
605
+ `recordServerTimingDetail`. The disclosure gate gains a `privileged` level
606
+ (set by `allowPerfDisclosure`, read via `isPerfDisclosurePrivileged`) so the
607
+ richer detail can be gated independently of the basic header.
608
+ - **driver-sql**: when detail capture is on, the query listener additionally
609
+ records each query's **parametrized** statement (knex's `q.sql`, `?`
610
+ placeholders) — never the bindings, so no literal row value ever enters the
611
+ collector. Zero overhead when detail is off.
612
+ - **plugin-hono-server**: `X-OS-Debug-Timing: json` enables detail capture; the
613
+ middleware emits `X-OS-Debug-Timing-Detail` (slowest queries, capped and
614
+ sanitized to header-safe ASCII) only when the principal is a proven admin.
615
+
616
+ Basic and global behavior are unchanged; `json` is purely additive.
617
+
618
+ - 2049b6a: feat(observability): admin-gated per-request `Server-Timing` via `X-OS-Debug-Timing` (#2408)
619
+
620
+ Perf-tuning mode was previously global-only (`serverTiming` option /
621
+ `OS_SERVER_TIMING`), which discloses internal phase durations — a mild
622
+ backend-fingerprinting surface — to every caller. This adds the per-request
623
+ gating path from the design so an operator can pull a single request's
624
+ `Server-Timing` breakdown on a live environment without turning the header on
625
+ for everyone.
626
+
627
+ - **observability**: a request-scoped disclosure gate (`runWithPerfDisclosure`,
628
+ `allowPerfDisclosure`, `isPerfDisclosureAllowed`, `PerfDisclosureGate`) kept
629
+ separate from the pure `PerfTiming` collector and pinned to its own
630
+ `Symbol.for` store so the middleware and dispatcher share it across module
631
+ copies.
632
+ - **plugin-hono-server**: the Server-Timing middleware is registered by default
633
+ (unless `serverTiming: false`). It runs the collector when timing is global
634
+ **or** the request sends `X-OS-Debug-Timing: 1`, and emits the header only
635
+ when the gate is open. `OS_PERF_TIMING=1` now also enables global mode.
636
+ - **runtime**: after resolving the execution context, the dispatcher opens the
637
+ gate for admin/service/system principals, so ordinary callers never receive
638
+ the header even if they send the debug header.
639
+
640
+ Existing global-mode behavior is unchanged.
641
+
642
+ ### Patch Changes
643
+
644
+ - ce468c8: feat(observability): decompose `Server-Timing` into auth / db / hooks / serialize spans (perf-tuning mode)
645
+
646
+ The opt-in `Server-Timing` header now breaks a request's server time into the phases that actually explain it, so an operator can open DevTools → Network → Timing and see where the time went without standing up an external tracing backend:
647
+
648
+ - **`db`** — total SQL time with a **query count**. The SQL driver wires knex's `query` / `query-response` events (keyed by `__knexQueryUid`) and folds each query into one aggregate member (`db;dur=210;desc="6 queries"`) — the query count is the number most useful for spotting N sequential round-trips. Timing is attributed to the originating request via `AsyncLocalStorage`, so it is correct under concurrency and never cross-attributes. SQL text is never emitted, only durations and a count.
649
+ - **`auth`** — identity / session resolution in the dispatcher, the prime suspect for unexplained data-API overhead.
650
+ - **`hooks`** — total business-hook execution time with a hook count, fed through the engine's existing `HookMetricsRecorder` seam (wired from the runtime, so `@objectstack/objectql`'s lean `core` tier stays observability-free).
651
+ - **`serialize`** — response JSON encoding in the HTTP adapter.
652
+
653
+ Adds `countServerTiming(name, dur, unit)` (and `PerfTiming.count`) to fold high-frequency phases into a single aggregate member instead of flooding the header. Every phase is a no-op when perf-tuning is off (`serverTiming: true` / `OS_SERVER_TIMING=true`), so there is zero measurable overhead on the normal path.
654
+
655
+ Closes #2408.
656
+
657
+ - Updated dependencies [f972574]
658
+ - Updated dependencies [22013aa]
659
+ - Updated dependencies [3ad3dd5]
660
+ - Updated dependencies [3a18b60]
661
+ - Updated dependencies [a8aa34c]
662
+ - Updated dependencies [a3823b2]
663
+ - Updated dependencies [43a3efb]
664
+ - Updated dependencies [524696a]
665
+ - Updated dependencies [5e3301d]
666
+ - Updated dependencies [46e876c]
667
+ - Updated dependencies [158aa14]
668
+ - Updated dependencies [d2723e2]
669
+ - Updated dependencies [fefcd54]
670
+ - Updated dependencies [beaf2de]
671
+ - Updated dependencies [369eb6e]
672
+ - Updated dependencies [b659111]
673
+ - Updated dependencies [5754a23]
674
+ - Updated dependencies [6c270a6]
675
+ - Updated dependencies [668dd17]
676
+ - Updated dependencies [8abf133]
677
+ - Updated dependencies [e0859b1]
678
+ - Updated dependencies [04ecd4e]
679
+ - Updated dependencies [4d5a892]
680
+ - Updated dependencies [16cebeb]
681
+ - Updated dependencies [86d30af]
682
+ - Updated dependencies [8923843]
683
+ - Updated dependencies [a2795f6]
684
+ - Updated dependencies [f16b492]
685
+ - Updated dependencies [4b6fde8]
686
+ - Updated dependencies [2018df9]
687
+ - Updated dependencies [fc5a3a2]
688
+ - @objectstack/spec@16.0.0-rc.0
689
+
690
+ ## 15.1.1
691
+
692
+ ### Patch Changes
693
+
694
+ - @objectstack/spec@15.1.1
695
+
696
+ ## 15.1.0
697
+
698
+ ### Patch Changes
699
+
700
+ - Updated dependencies [f531a26]
701
+ - Updated dependencies [f531a26]
702
+ - Updated dependencies [f531a26]
703
+ - Updated dependencies [f531a26]
704
+ - Updated dependencies [f531a26]
705
+ - Updated dependencies [f531a26]
706
+ - Updated dependencies [3fe9df1]
707
+ - Updated dependencies [f531a26]
708
+ - Updated dependencies [f531a26]
709
+ - Updated dependencies [f531a26]
710
+ - Updated dependencies [f531a26]
711
+ - Updated dependencies [f531a26]
712
+ - Updated dependencies [f531a26]
713
+ - Updated dependencies [f531a26]
714
+ - Updated dependencies [f531a26]
715
+ - Updated dependencies [f531a26]
716
+ - Updated dependencies [f531a26]
717
+ - Updated dependencies [f531a26]
718
+ - Updated dependencies [4109153]
719
+ - Updated dependencies [f531a26]
720
+ - Updated dependencies [f531a26]
721
+ - Updated dependencies [f531a26]
722
+ - Updated dependencies [f531a26]
723
+ - Updated dependencies [f531a26]
724
+ - Updated dependencies [f531a26]
725
+ - Updated dependencies [627f225]
726
+ - Updated dependencies [f531a26]
727
+ - Updated dependencies [f531a26]
728
+ - Updated dependencies [f531a26]
729
+ - @objectstack/spec@15.1.0
730
+
731
+ ## 15.0.0
732
+
733
+ ### Patch Changes
734
+
735
+ - Updated dependencies [28b7c28]
736
+ - Updated dependencies [13749ec]
737
+ - Updated dependencies [e62c233]
738
+ - Updated dependencies [ed61c9b]
739
+ - Updated dependencies [31d04d4]
740
+ - @objectstack/spec@15.0.0
741
+
742
+ ## 14.8.0
743
+
744
+ ### Patch Changes
745
+
746
+ - Updated dependencies [16b4bf6]
747
+ - Updated dependencies [16b4bf6]
748
+ - Updated dependencies [10e8983]
749
+ - Updated dependencies [607aaf4]
750
+ - Updated dependencies [bb71321]
751
+ - @objectstack/spec@14.8.0
752
+
753
+ ## 14.7.0
754
+
755
+ ### Patch Changes
756
+
757
+ - Updated dependencies [d6a72eb]
758
+ - @objectstack/spec@14.7.0
759
+
760
+ ## 14.6.0
761
+
762
+ ### Patch Changes
763
+
764
+ - Updated dependencies [609cb13]
765
+ - Updated dependencies [ce6d151]
766
+ - @objectstack/spec@14.6.0
767
+
768
+ ## 14.5.0
769
+
770
+ ### Patch Changes
771
+
772
+ - Updated dependencies [526805e]
773
+ - Updated dependencies [d79ca07]
774
+ - Updated dependencies [33ebd34]
775
+ - Updated dependencies [c044f08]
776
+ - Updated dependencies [01274eb]
777
+ - @objectstack/spec@14.5.0
778
+
779
+ ## 14.4.0
780
+
781
+ ### Patch Changes
782
+
783
+ - Updated dependencies [7953832]
784
+ - Updated dependencies [82e745e]
785
+ - Updated dependencies [f3035bd]
786
+ - Updated dependencies [82c0d94]
787
+ - Updated dependencies [7449476]
788
+ - @objectstack/spec@14.4.0
789
+
790
+ ## 14.3.0
791
+
792
+ ### Patch Changes
793
+
794
+ - Updated dependencies [2a71f48]
795
+ - Updated dependencies [02f6af4]
796
+ - Updated dependencies [c1064f1]
797
+ - @objectstack/spec@14.3.0
798
+
799
+ ## 14.2.0
800
+
801
+ ### Patch Changes
802
+
803
+ - Updated dependencies [ac8f029]
804
+ - Updated dependencies [4ab9958]
805
+ - @objectstack/spec@14.2.0
806
+
807
+ ## 14.1.0
808
+
809
+ ### Patch Changes
810
+
811
+ - Updated dependencies [5a8465f]
812
+ - Updated dependencies [7f8620b]
813
+ - Updated dependencies [82ba3a6]
814
+ - @objectstack/spec@14.1.0
815
+
816
+ ## 14.0.0
817
+
818
+ ### Patch Changes
819
+
820
+ - Updated dependencies [0a8e685]
821
+ - Updated dependencies [afa8115]
822
+ - Updated dependencies [80f12ca]
823
+ - Updated dependencies [e2fa074]
824
+ - Updated dependencies [23c8668]
825
+ - Updated dependencies [29f017d]
826
+ - Updated dependencies [216fa9a]
827
+ - Updated dependencies [6c22b12]
828
+ - @objectstack/spec@14.0.0
829
+
830
+ ## 13.0.0
831
+
832
+ ### Patch Changes
833
+
834
+ - Updated dependencies [6d83431]
835
+ - Updated dependencies [01917c2]
836
+ - Updated dependencies [b271691]
837
+ - Updated dependencies [a5a1e41]
838
+ - Updated dependencies [466adf6]
839
+ - Updated dependencies [5be00c3]
840
+ - Updated dependencies [466adf6]
841
+ - Updated dependencies [2bee609]
842
+ - Updated dependencies [fc7e7f7]
843
+ - @objectstack/spec@13.0.0
844
+
845
+ ## 12.6.0
846
+
847
+ ### Patch Changes
848
+
849
+ - Updated dependencies [6cebf22]
850
+ - @objectstack/spec@12.6.0
851
+
852
+ ## 12.5.0
853
+
854
+ ### Patch Changes
855
+
856
+ - Updated dependencies [8b3d363]
857
+ - @objectstack/spec@12.5.0
858
+
859
+ ## 12.4.0
860
+
861
+ ### Patch Changes
862
+
863
+ - Updated dependencies [60dc3ba]
864
+ - @objectstack/spec@12.4.0
865
+
866
+ ## 12.3.0
867
+
868
+ ### Patch Changes
869
+
870
+ - Updated dependencies [e7eceec]
871
+ - @objectstack/spec@12.3.0
872
+
873
+ ## 12.2.0
874
+
875
+ ### Patch Changes
876
+
877
+ - Updated dependencies [fce8ff4]
878
+ - Updated dependencies [3962023]
879
+ - Updated dependencies [2bb193d]
880
+ - Updated dependencies [0426d27]
881
+ - Updated dependencies [da807f7]
882
+ - @objectstack/spec@12.2.0
883
+
884
+ ## 12.1.0
885
+
886
+ ### Patch Changes
887
+
888
+ - Updated dependencies [93e6d02]
889
+ - @objectstack/spec@12.1.0
890
+
891
+ ## 12.0.0
892
+
893
+ ### Patch Changes
894
+
895
+ - Updated dependencies [a8df396]
896
+ - Updated dependencies [e695fe0]
897
+ - Updated dependencies [7c09621]
898
+ - Updated dependencies [7709db4]
899
+ - Updated dependencies [2082109]
900
+ - Updated dependencies [7c09621]
901
+ - Updated dependencies [9860de4]
902
+ - Updated dependencies [069c205]
903
+ - @objectstack/spec@12.0.0
904
+
905
+ ## 11.10.0
906
+
907
+ ### Patch Changes
908
+
909
+ - Updated dependencies [6a9397e]
910
+ - Updated dependencies [c0efe5d]
911
+ - @objectstack/spec@11.10.0
912
+
913
+ ## 11.9.0
914
+
915
+ ### Patch Changes
916
+
917
+ - Updated dependencies [d3595d9]
918
+ - @objectstack/spec@11.9.0
919
+
920
+ ## 11.8.0
921
+
922
+ ### Patch Changes
923
+
924
+ - @objectstack/spec@11.8.0
925
+
926
+ ## 11.7.0
927
+
928
+ ### Patch Changes
929
+
930
+ - Updated dependencies [5178906]
931
+ - @objectstack/spec@11.7.0
932
+
933
+ ## 11.6.0
934
+
935
+ ### Patch Changes
936
+
937
+ - @objectstack/spec@11.6.0
938
+
939
+ ## 11.5.0
940
+
941
+ ### Patch Changes
942
+
943
+ - Updated dependencies [6ee4f04]
944
+ - Updated dependencies [c1e3a65]
945
+ - @objectstack/spec@11.5.0
946
+
947
+ ## 11.4.0
948
+
949
+ ### Patch Changes
950
+
951
+ - Updated dependencies [5821c51]
952
+ - Updated dependencies [a0fce3f]
953
+ - @objectstack/spec@11.4.0
954
+
955
+ ## 11.3.0
956
+
957
+ ### Patch Changes
958
+
959
+ - Updated dependencies [58e8e31]
960
+ - Updated dependencies [b4a5df0]
961
+ - @objectstack/spec@11.3.0
962
+
963
+ ## 11.2.0
964
+
965
+ ### Patch Changes
966
+
967
+ - Updated dependencies [d0f4b13]
968
+ - Updated dependencies [302bdab]
969
+ - @objectstack/spec@11.2.0
970
+
971
+ ## 11.1.0
972
+
973
+ ### Minor Changes
974
+
975
+ - dc2990f: Observability: per-request performance timing surfaced via the `Server-Timing` response header ("perf-tuning mode").
976
+
977
+ `@objectstack/observability` gains a tiny, dependency-free `PerfTiming` collector plus an `AsyncLocalStorage`-backed ambient API (`runWithPerfTiming` / `currentPerfTiming` and the no-op-when-disabled free functions `measureServerTiming` / `startServerTiming` / `recordServerTiming`) and a spec-compliant `formatServerTiming` serializer that sanitizes names to tokens and quotes/escapes descriptions (no header injection).
978
+
979
+ The Hono server plugin can now emit `Server-Timing` per request. It is **off by default** — the header discloses internal phase durations, which is a backend-fingerprinting surface — and opt-in via `new HonoServerPlugin({ serverTiming: true })` or `OS_SERVER_TIMING=true` (so it works through the default `os serve`). When enabled, every response carries `total` (measured by an outer middleware that brackets the whole request) plus the adapter-contributed `parse` and `handler` sub-phases; any code on the request's async call chain can add its own phases via the ambient API. When disabled, the timing call sites are zero-overhead no-ops.
980
+
981
+ ### Patch Changes
982
+
983
+ - Updated dependencies [ecf193f]
984
+ - Updated dependencies [51bec81]
985
+ - Updated dependencies [3e593a7]
986
+ - Updated dependencies [63d5403]
987
+ - @objectstack/spec@11.1.0
988
+
989
+ ## 11.0.0
990
+
991
+ ### Patch Changes
992
+
993
+ - Updated dependencies [ab5718a]
994
+ - Updated dependencies [4845c12]
995
+ - Updated dependencies [c1a754a]
996
+ - Updated dependencies [6fbe91f]
997
+ - Updated dependencies [715d667]
998
+ - Updated dependencies [5eef4cf]
999
+ - Updated dependencies [72759e1]
1000
+ - Updated dependencies [6c4fbd9]
1001
+ - Updated dependencies [ef3ed67]
1002
+ - Updated dependencies [cd51229]
1003
+ - Updated dependencies [7697a0e]
1004
+ - Updated dependencies [e7e04f1]
1005
+ - Updated dependencies [cfd5ac4]
1006
+ - Updated dependencies [2be5c1f]
1007
+ - Updated dependencies [ad143ce]
1008
+ - Updated dependencies [5c4a8c8]
1009
+ - Updated dependencies [3afaeed]
1010
+ - Updated dependencies [8801c02]
1011
+ - Updated dependencies [3d04e06]
1012
+ - Updated dependencies [4a84c98]
1013
+ - Updated dependencies [d980f0d]
1014
+ - Updated dependencies [a658523]
1015
+ - Updated dependencies [82ff91c]
1016
+ - Updated dependencies [638f472]
1017
+ - @objectstack/spec@11.0.0
1018
+
1019
+ ## 10.3.0
1020
+
1021
+ ### Patch Changes
1022
+
1023
+ - @objectstack/spec@10.3.0
1024
+
1025
+ ## 10.2.0
1026
+
1027
+ ### Patch Changes
1028
+
1029
+ - Updated dependencies [b496498]
1030
+ - @objectstack/spec@10.2.0
1031
+
1032
+ ## 10.1.0
1033
+
1034
+ ### Patch Changes
1035
+
1036
+ - Updated dependencies [49da36e]
1037
+ - Updated dependencies [ac79f16]
1038
+ - @objectstack/spec@10.1.0
1039
+
1040
+ ## 10.0.0
1041
+
1042
+ ### Patch Changes
1043
+
1044
+ - Updated dependencies [d7ff626]
1045
+ - Updated dependencies [2a1b16b]
1046
+ - Updated dependencies [e16f2a8]
1047
+ - Updated dependencies [e411a82]
1048
+ - Updated dependencies [a581385]
1049
+ - Updated dependencies [220ce5b]
1050
+ - Updated dependencies [3efe334]
1051
+ - Updated dependencies [feead7e]
1052
+ - Updated dependencies [6ca20b3]
1053
+ - Updated dependencies [5f875fe]
1054
+ - Updated dependencies [b469950]
1055
+ - @objectstack/spec@10.0.0
1056
+
1057
+ ## 9.11.0
1058
+
1059
+ ### Patch Changes
1060
+
1061
+ - Updated dependencies [e7f6539]
1062
+ - Updated dependencies [2365d07]
1063
+ - Updated dependencies [6595b53]
1064
+ - Updated dependencies [fa8964d]
1065
+ - Updated dependencies [36138c7]
1066
+ - Updated dependencies [a8e4f3b]
1067
+ - Updated dependencies [4c213c2]
1068
+ - Updated dependencies [2afb612]
1069
+ - @objectstack/spec@9.11.0
1070
+
1071
+ ## 9.10.0
1072
+
1073
+ ### Patch Changes
1074
+
1075
+ - Updated dependencies [db02bd5]
1076
+ - Updated dependencies [641675d]
1077
+ - Updated dependencies [94e9040]
1078
+ - Updated dependencies [1f88fd9]
1079
+ - Updated dependencies [1f88fd9]
1080
+ - @objectstack/spec@9.10.0
1081
+
1082
+ ## 9.9.1
1083
+
1084
+ ### Patch Changes
1085
+
1086
+ - @objectstack/spec@9.9.1
1087
+
1088
+ ## 9.9.0
1089
+
1090
+ ### Patch Changes
1091
+
1092
+ - Updated dependencies [84249a4]
1093
+ - Updated dependencies [11af299]
1094
+ - Updated dependencies [d5774b5]
1095
+ - Updated dependencies [134043a]
1096
+ - Updated dependencies [90108e0]
1097
+ - Updated dependencies [9afeb2d]
1098
+ - Updated dependencies [6bec07e]
1099
+ - Updated dependencies [601cc11]
1100
+ - Updated dependencies [575448d]
1101
+ - @objectstack/spec@9.9.0
1102
+
1103
+ ## 9.8.0
1104
+
1105
+ ### Patch Changes
1106
+
1107
+ - Updated dependencies [97c55b3]
1108
+ - Updated dependencies [1b1f490]
1109
+ - @objectstack/spec@9.8.0
1110
+
1111
+ ## 9.7.0
1112
+
1113
+ ### Patch Changes
1114
+
1115
+ - @objectstack/spec@9.7.0
1116
+
1117
+ ## 9.6.0
1118
+
1119
+ ### Patch Changes
1120
+
1121
+ - Updated dependencies [d1e930a]
1122
+ - Updated dependencies [71578f2]
1123
+ - Updated dependencies [5e3a301]
1124
+ - Updated dependencies [5db2742]
1125
+ - @objectstack/spec@9.6.0
1126
+
1127
+ ## 9.5.1
1128
+
1129
+ ### Patch Changes
1130
+
1131
+ - Updated dependencies [ee72aae]
1132
+ - @objectstack/spec@9.5.1
1133
+
1134
+ ## 9.5.0
1135
+
1136
+ ### Patch Changes
1137
+
1138
+ - Updated dependencies [d08551c]
1139
+ - Updated dependencies [707aeed]
1140
+ - Updated dependencies [7a103d4]
1141
+ - Updated dependencies [4b01250]
1142
+ - @objectstack/spec@9.5.0
1143
+
1144
+ ## 9.4.0
1145
+
1146
+ ### Patch Changes
1147
+
1148
+ - Updated dependencies [060467a]
1149
+ - Updated dependencies [0856476]
1150
+ - Updated dependencies [b678d8c]
1151
+ - Updated dependencies [b678d8c]
1152
+ - Updated dependencies [b678d8c]
1153
+ - @objectstack/spec@9.4.0
1154
+
1155
+ ## 9.3.0
1156
+
1157
+ ### Patch Changes
1158
+
1159
+ - Updated dependencies [1ada658]
1160
+ - Updated dependencies [3219191]
1161
+ - Updated dependencies [290f631]
1162
+ - Updated dependencies [50b7b47]
1163
+ - Updated dependencies [f15d6f6]
1164
+ - Updated dependencies [f8684ea]
1165
+ - Updated dependencies [b4765be]
1166
+ - @objectstack/spec@9.3.0
1167
+
1168
+ ## 9.2.0
1169
+
1170
+ ### Patch Changes
1171
+
1172
+ - Updated dependencies [2f57b75]
1173
+ - Updated dependencies [2f57b75]
1174
+ - @objectstack/spec@9.2.0
1175
+
1176
+ ## 9.1.0
1177
+
1178
+ ### Patch Changes
1179
+
1180
+ - Updated dependencies [b9062c9]
1181
+ - @objectstack/spec@9.1.0
1182
+
1183
+ ## 9.0.1
1184
+
1185
+ ### Patch Changes
1186
+
1187
+ - Updated dependencies [1817845]
1188
+ - @objectstack/spec@9.0.1
1189
+
1190
+ ## 9.0.0
1191
+
1192
+ ### Patch Changes
1193
+
1194
+ - Updated dependencies [4c3f693]
1195
+ - Updated dependencies [0bf39f1]
1196
+ - Updated dependencies [f533f42]
1197
+ - Updated dependencies [1c83ee8]
1198
+ - @objectstack/spec@9.0.0
1199
+
1200
+ ## 8.0.1
1201
+
1202
+ ### Patch Changes
1203
+
1204
+ - @objectstack/spec@8.0.1
1205
+
1206
+ ## 8.0.0
1207
+
1208
+ ### Patch Changes
1209
+
1210
+ - Updated dependencies [a46c017]
1211
+ - Updated dependencies [b990b89]
1212
+ - Updated dependencies [99111ec]
1213
+ - Updated dependencies [d5a8161]
1214
+ - Updated dependencies [5cf1f1b]
1215
+ - Updated dependencies [9ef89d4]
1216
+ - Updated dependencies [3306d2f]
1217
+ - Updated dependencies [bc44195]
1218
+ - Updated dependencies [9e2e229]
1219
+ - @objectstack/spec@8.0.0
1220
+
1221
+ ## 7.9.0
1222
+
1223
+ ### Patch Changes
1224
+
1225
+ - @objectstack/spec@7.9.0
1226
+
1227
+ ## 7.8.0
1228
+
1229
+ ### Patch Changes
1230
+
1231
+ - Updated dependencies [06f2bbb]
1232
+ - Updated dependencies [36719db]
1233
+ - Updated dependencies [424ab26]
1234
+ - @objectstack/spec@7.8.0
1235
+
1236
+ ## 7.7.0
1237
+
1238
+ ### Patch Changes
1239
+
1240
+ - Updated dependencies [b391955]
1241
+ - Updated dependencies [f06b64e]
1242
+ - Updated dependencies [023bf93]
1243
+ - @objectstack/spec@7.7.0
1244
+
1245
+ ## 7.6.0
1246
+
1247
+ ### Patch Changes
1248
+
1249
+ - Updated dependencies [955d4c8]
1250
+ - Updated dependencies [c4a4cbd]
1251
+ - Updated dependencies [b046ec2]
1252
+ - Updated dependencies [2170ad9]
1253
+ - Updated dependencies [02d6359]
1254
+ - Updated dependencies [7648242]
1255
+ - Updated dependencies [8fa1e7f]
1256
+ - Updated dependencies [55866f5]
1257
+ - Updated dependencies [60f9c45]
1258
+ - @objectstack/spec@7.6.0
1259
+
1260
+ ## 7.5.0
1261
+
1262
+ ### Patch Changes
1263
+
1264
+ - @objectstack/spec@7.5.0
1265
+
1266
+ ## 7.4.1
1267
+
1268
+ ### Patch Changes
1269
+
1270
+ - @objectstack/spec@7.4.1
1271
+
1272
+ ## 7.4.0
1273
+
1274
+ ### Patch Changes
1275
+
1276
+ - Updated dependencies [23c7107]
1277
+ - Updated dependencies [c72daad]
1278
+ - Updated dependencies [f115182]
1279
+ - Updated dependencies [2faf9f2]
1280
+ - Updated dependencies [2faf9f2]
1281
+ - Updated dependencies [2faf9f2]
1282
+ - Updated dependencies [58b450b]
1283
+ - Updated dependencies [82eb6cf]
1284
+ - Updated dependencies [13d8653]
1285
+ - Updated dependencies [ff3d006]
1286
+ - Updated dependencies [5e831de]
1287
+ - @objectstack/spec@7.4.0
1288
+
1289
+ ## 7.3.0
1290
+
1291
+ ### Patch Changes
1292
+
1293
+ - Updated dependencies [5e7c554]
1294
+ - @objectstack/spec@7.3.0
1295
+
1296
+ ## 7.2.1
1297
+
1298
+ ### Patch Changes
1299
+
1300
+ - @objectstack/spec@7.2.1
1301
+
1302
+ ## 7.2.0
1303
+
1304
+ ### Patch Changes
1305
+
1306
+ - @objectstack/spec@7.2.0
1307
+
1308
+ ## 7.1.0
1309
+
1310
+ ### Patch Changes
1311
+
1312
+ - Updated dependencies [47a92f4]
1313
+ - @objectstack/spec@7.1.0
1314
+
1315
+ ## 7.0.0
1316
+
1317
+ ### Patch Changes
1318
+
1319
+ - Updated dependencies [74470ad]
1320
+ - Updated dependencies [d29617e]
1321
+ - Updated dependencies [dc72172]
1322
+ - @objectstack/spec@7.0.0
1323
+
1324
+ ## 6.9.0
1325
+
1326
+ ### Patch Changes
1327
+
1328
+ - @objectstack/spec@6.9.0
1329
+
1330
+ ## 6.8.1
1331
+
1332
+ ### Patch Changes
1333
+
1334
+ - @objectstack/spec@6.8.1
1335
+
1336
+ ## 6.8.0
1337
+
1338
+ ### Patch Changes
1339
+
1340
+ - Updated dependencies [6e88f77]
1341
+ - Updated dependencies [c8b9f57]
1342
+ - @objectstack/spec@6.8.0
1343
+
1344
+ ## 6.7.1
1345
+
1346
+ ### Patch Changes
1347
+
1348
+ - @objectstack/spec@6.7.1
1349
+
1350
+ ## 6.7.0
1351
+
1352
+ ### Patch Changes
1353
+
1354
+ - Updated dependencies [430067b]
1355
+ - Updated dependencies [4f9e9d4]
1356
+ - @objectstack/spec@6.7.0
1357
+
1358
+ ## 6.6.0
1359
+
1360
+ ### Patch Changes
1361
+
1362
+ - Updated dependencies [a49cfc2]
1363
+ - @objectstack/spec@6.6.0
1364
+
1365
+ ## 6.5.1
1366
+
1367
+ ### Patch Changes
1368
+
1369
+ - @objectstack/spec@6.5.1
1370
+
1371
+ ## 6.5.0
1372
+
1373
+ ### Patch Changes
1374
+
1375
+ - @objectstack/spec@6.5.0
1376
+
1377
+ ## 6.4.0
1378
+
1379
+ ### Patch Changes
1380
+
1381
+ - Updated dependencies [f8651cc]
1382
+ - Updated dependencies [f8651cc]
1383
+ - Updated dependencies [0bf6f9a]
1384
+ - @objectstack/spec@6.4.0
1385
+
1386
+ ## 6.3.0
1387
+
1388
+ ### Patch Changes
1389
+
1390
+ - @objectstack/spec@6.3.0
1391
+
1392
+ ## 6.2.0
1393
+
1394
+ ### Patch Changes
1395
+
1396
+ - Updated dependencies [b4c74a9]
1397
+ - @objectstack/spec@6.2.0
1398
+
1399
+ ## 6.1.1
1400
+
1401
+ ### Patch Changes
1402
+
1403
+ - @objectstack/spec@6.1.1
1404
+
1405
+ ## 6.1.0
1406
+
1407
+ ### Patch Changes
1408
+
1409
+ - Updated dependencies [93c0589]
1410
+ - @objectstack/spec@6.1.0
1411
+
1412
+ ## 6.0.0
1413
+
1414
+ ### Patch Changes
1415
+
1416
+ - Updated dependencies [629a716]
1417
+ - Updated dependencies [dbc4f7d]
1418
+ - Updated dependencies [944f187]
1419
+ - @objectstack/spec@6.0.0
1420
+
1421
+ ## 5.2.0
1422
+
1423
+ ### Patch Changes
1424
+
1425
+ - Updated dependencies [bab2b20]
1426
+ - Updated dependencies [fa011d8]
1427
+ - Updated dependencies [b806f58]
1428
+ - @objectstack/spec@5.2.0
1429
+
1430
+ ## 5.1.0
1431
+
1432
+ ### Patch Changes
1433
+
1434
+ - Updated dependencies [75f4ee6]
1435
+ - Updated dependencies [823d559]
1436
+ - @objectstack/spec@5.1.0
1437
+
1438
+ ## 5.0.0
1439
+
1440
+ ### Patch Changes
1441
+
1442
+ - Updated dependencies [2f9073a]
1443
+ - @objectstack/spec@5.0.0