From 48fc9084888bc17100053227284f939a5aca5e91 Mon Sep 17 00:00:00 2001 From: zhanghui Date: Fri, 7 Aug 2026 19:30:55 +0800 Subject: [PATCH] chore(release): v1.2.3 (#400) * chore(release): v1.2.3 Co-Authored-By: Claude Opus 5 (1M context) * docs(changelog): note the ome.db growth in the 1.2.3 upgrade section SkillClusterUpdated now persists a 1024-dim embedding, taking a skill_cluster_updated run_record row from ~0.8 KB to ~14 KB. That is a sizing change for ~/.everos/.index/sqlite/ome.db and belongs next to the foresight default flip, not only in the Changed entry. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: zhanghui Co-authored-by: Claude Opus 5 (1M context) --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ba8a1e..6516988 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.2.3] - 2026-08-07 +**Background maintenance that fails loudly instead of quietly.** A soak run on +1.2.2 found a table that had stopped reclaiming disk for 100 minutes while +`/health` stayed green — nothing had *failed*, a call had simply never returned, +and every signal was built from failure counters. Auditing for that shape turned +up six more places it could happen: reads with no deadline (which stop the whole +md to LanceDB projection, not just one table), background loops that die +permanently on one exception with no log at all, an alert counter reset by the +remediation it triggers. All of them are now bounded, and a stall that does +happen names the table it happened to. Alongside that, agent-skill extraction is +rescued from a retry-then-dead-letter loop, keyword search no longer returns 500 +during an index rebuild, and the maintenance cadences moved into settings. + ### Fixed - **Agent skill extraction is no longer stuck in a retry-then-dead-letter @@ -353,6 +365,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 beats were heavy from the 300s cadence. Log level (`debug`) and the benign-conflict semantics are unchanged — this adds one field. +### Upgrade + +Two behaviour changes to know about before upgrading. + +`extract_foresight` now ships disabled — a deployment relying on foresight +entries must set `enabled = true` for it in `ome.toml`. + +`SkillClusterUpdated` now carries the case's 1024-dim embedding, so a +`skill_cluster_updated` row in the OME `run_record` table grows from ~0.8 KB to +~14 KB — about 14 MB for that strategy's default 1000-record ring buffer, +against ~0.8 MB before. Anyone sizing `~/.everos/.index/sqlite/ome.db` should +account for it. + +Nothing else needs action: the new `[cascade]` section is optional and a config +written by an earlier version falls back to the same defaults (verified on a +clean install). + +One deployment note. When a supervised background loop crashes repeatedly and +exhausts its restart budget, the worker now sends itself `SIGTERM` rather than +serving on with a dead projection pipeline. That assumes something restarts the +process — systemd `Restart=always`, Docker `restart: unless-stopped`, a k8s +Deployment. Without one the process simply stops, which is still preferable to a +server answering searches from a silently frozen index, but it is worth knowing +before the first time it happens. + ## [1.2.2] - 2026-08-04 ### Added