kino 0.2.0 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f66c88f09e6d65c5b9ca4b0ed4f1a10f735343286dfed32fbd54d13216faf886
4
- data.tar.gz: 871d3eeaed7cf34ed8fc83a53fba42d5dfe28b916e9b6c695b332fcf17be5ab8
3
+ metadata.gz: 129f2e9c0c20ba89c1f2f1e854d32f2b746858546b0c6fdb1a88a3fcb14e05cf
4
+ data.tar.gz: 66b465f2e5989e621487752d0b4dac48a9da0857b5290effaac9af803bd315e2
5
5
  SHA512:
6
- metadata.gz: 22b189c9301618dfe411965cfea6f91cd7511b79265f5826e7e158110752104ec3c8c9da55c0e1dcfa4ad4f883bcca5e392505661244c030e3fac000de06fc18
7
- data.tar.gz: 3ef719d98e7fcc5b5570d9dc606f24c51df1651abc4814007e48cdfa46eaf43e49cbc9680b08e344002670a51e2f9d0d29ee6f3ace2327f27cdbe4c15fc6fe6c
6
+ metadata.gz: ac6656c0cd168c5c43dd5d1585b639b93f2489b5e017cbdd297c383c19d083c391cd7ac60034dbcd825bc525b42d7a966f884aa9d03eb0185e7bf8b5539a7781
7
+ data.tar.gz: 4392ca122bb8d865eec08393a6f339343bb2f5fac209b82e845ec6319d04f71a7a309a70d5d6518a70d70fc701c50dbd482646250b4d46f3e0d313e497bf4e3d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,35 @@
1
+ ## [0.3.0] - 2026-08-13
2
+
3
+ - Queue-time histogram: `/metrics` exposes `kino_request_queue_seconds`, a
4
+ histogram of how long each request waited for a free worker (the
5
+ saturation signal), and `server.stats`/`/stats` gain `queue_time`
6
+ (count and summed seconds). Measured internally with a monotonic clock,
7
+ so it needs no proxy header and is immune to clock skew.
8
+ - Lifecycle hooks: `after_boot`, `after_worker_boot`,
9
+ `after_request_complete`, and `on_worker_exit` join `on_error`, so apps
10
+ can wire their own metrics, readiness, and error tracking. The
11
+ worker-context hooks must be Ractor-shareable in `:ractor` mode; a raising
12
+ hook is logged and never kills a worker.
13
+ - Stuck-worker quarantine: past `quarantine_timeout`, a wedged dispatch
14
+ slot is quarantined and a replacement worker is spawned to restore
15
+ capacity (capped by `quarantine_max`), surfaced via `/stats`, `/metrics`,
16
+ and `server.stats`. The wedged worker is never force-killed.
17
+ - Control plane: a read-only monitoring listener (`control_bind`,
18
+ optional `control_token`) serving live stats as JSON at `/stats`,
19
+ Prometheus metrics at `/metrics`, and `/ready`/`/live` probes, answered
20
+ from the native layer on a dedicated thread so it stays responsive
21
+ while workers are busy, stuck, or draining.
22
+ - Per-worker stats: `/stats`, `/metrics`, and `server.stats` now break the
23
+ counters down per dispatch slot (served, in-flight, and `busy_ms`, the
24
+ age of the slot's current request), so a stuck slot is visible
25
+ individually.
26
+ - Update Rust and Ruby dependencies.
27
+
28
+ ## [0.2.1] - 2026-07-27
29
+
30
+ - Update Rust dependencies for Kino.
31
+ - Update: puma 8 in benchmarks.
32
+
1
33
  ## [0.2.0] - 2026-07-13
2
34
 
3
35
  - Strip debug info from release builds.