@objectstack/observability 16.1.0 → 17.0.0-rc.1

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