From 3d9a62eeca776213e9fcc9b4d8786d14eaa303dc Mon Sep 17 00:00:00 2001 From: Vader Yang Date: Wed, 16 Sep 2026 11:03:36 +0800 Subject: [PATCH] =?UTF-8?q?release:=20v0.8.2=20=E2=80=94=20concurrent=20id?= =?UTF-8?q?=20lookups=20reach=20production?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VERSION 0.8.1 -> 0.8.2 (plus the two files the toolchains require a literal in), and the Unreleased section becomes the 0.8.2 notes. The content is #200: the id-keyed reads split into 64-id chunks and run them concurrently, so opening a large agent turn goes 14.6 s -> 2.6 s and the services topology graph 7.5 s -> 1.7 s on production data. Production is the only place that change matters and the only place it is not yet running. One number in the notes was tightened on the way in. The draft quoted a 376-call turn at 15.7 s and a 418-call turn at 14.6 s — both true, from different experiments a day apart, but together they read as though one contradicted the other. Replaced with the per-call cost the two agree on. Claude-Session: https://claude.ai/code/session_01GxGWpo3L4BRMkwtoa9X54W --- CHANGELOG.md | 9 ++++++--- VERSION | 2 +- console/package.json | 2 +- server/Cargo.lock | 30 +++++++++++++++--------------- server/Cargo.toml | 2 +- 5 files changed, 24 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6269291..c301a67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.8.2] — 2026-09-16 + ### Performance - **Opening a large agent turn, and the services topology graph, were spending @@ -14,9 +16,10 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). many events match, so the no-JOIN read pattern — fetch the parent, then `id IN (?, ?, …)` for its children — bought nothing from batching the ids into one query and paid for every one of them serially. Measured on a production - instance: a 376-call turn took 15.7 s to open, of which 14.1 s was the single - bodies lookup; `/api/services/topology` took 6.0–6.5 s on **every** call, all - of it one `id IN (…)` carrying one term per turn in the window. The cost is + instance: opening an agent turn cost about 35 ms per call it contained, so the + largest turns of the day took 15 s, almost all of it the single bodies lookup; + `/api/services/topology` took 6.0–7.5 s on **every** call, all of it one + `id IN (…)` carrying one term per turn in the window. The cost is not the payload — the same terms with `| stats count` and no rows returned still took 12.8 s, while a term-free scan of the same window took 302 ms. diff --git a/VERSION b/VERSION index 6f4eebd..100435b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.1 +0.8.2 diff --git a/console/package.json b/console/package.json index a8881ae..f961bf8 100644 --- a/console/package.json +++ b/console/package.json @@ -1,7 +1,7 @@ { "name": "console", "private": true, - "version": "0.8.1", + "version": "0.8.2", "type": "module", "scripts": { "dev": "vite", diff --git a/server/Cargo.lock b/server/Cargo.lock index 54a5278..339e4d9 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -1361,7 +1361,7 @@ dependencies = [ [[package]] name = "h-api" -version = "0.8.1" +version = "0.8.2" dependencies = [ "axum", "chrono", @@ -1385,7 +1385,7 @@ dependencies = [ [[package]] name = "h-capture" -version = "0.8.1" +version = "0.8.2" dependencies = [ "async-trait", "aya", @@ -1406,7 +1406,7 @@ dependencies = [ [[package]] name = "h-common" -version = "0.8.1" +version = "0.8.2" dependencies = [ "config", "serde", @@ -1420,11 +1420,11 @@ dependencies = [ [[package]] name = "h-ebpf-common" -version = "0.8.1" +version = "0.8.2" [[package]] name = "h-export" -version = "0.8.1" +version = "0.8.2" dependencies = [ "h-llm", "serde", @@ -1434,7 +1434,7 @@ dependencies = [ [[package]] name = "h-llm" -version = "0.8.1" +version = "0.8.2" dependencies = [ "bitflags 2.11.0", "bytes", @@ -1454,7 +1454,7 @@ dependencies = [ [[package]] name = "h-metrics" -version = "0.8.1" +version = "0.8.2" dependencies = [ "h-common", "h-llm", @@ -1465,7 +1465,7 @@ dependencies = [ [[package]] name = "h-pcap-extract" -version = "0.8.1" +version = "0.8.2" dependencies = [ "bytes", "futures", @@ -1482,7 +1482,7 @@ dependencies = [ [[package]] name = "h-protocol" -version = "0.8.1" +version = "0.8.2" dependencies = [ "bytemuck", "bytes", @@ -1500,7 +1500,7 @@ dependencies = [ [[package]] name = "h-storage" -version = "0.8.1" +version = "0.8.2" dependencies = [ "async-trait", "bytes", @@ -1519,7 +1519,7 @@ dependencies = [ [[package]] name = "h-storage-aglake" -version = "0.8.1" +version = "0.8.2" dependencies = [ "async-trait", "bytes", @@ -1542,7 +1542,7 @@ dependencies = [ [[package]] name = "h-storage-clickhouse" -version = "0.8.1" +version = "0.8.2" dependencies = [ "async-trait", "bytes", @@ -1562,7 +1562,7 @@ dependencies = [ [[package]] name = "h-storage-duckdb" -version = "0.8.1" +version = "0.8.2" dependencies = [ "async-trait", "bytes", @@ -1582,7 +1582,7 @@ dependencies = [ [[package]] name = "h-turn" -version = "0.8.1" +version = "0.8.2" dependencies = [ "h-capture", "h-common", @@ -1691,7 +1691,7 @@ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "heron" -version = "0.8.1" +version = "0.8.2" dependencies = [ "axum", "clap", diff --git a/server/Cargo.toml b/server/Cargo.toml index 1a213d0..a803d92 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -8,7 +8,7 @@ exclude = ["h-ebpf-prog"] resolver = "2" [workspace.package] -version = "0.8.1" +version = "0.8.2" edition = "2021" license = "Apache-2.0"