From d97871476d2c9c753a9a8a6664d15eebac20b23f Mon Sep 17 00:00:00 2001 From: viettranx Date: Mon, 27 Apr 2026 12:00:17 +0700 Subject: [PATCH] docs(changelog): v3.11.3 hotfix entry (#1034) --- docs/project-changelog.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/project-changelog.md b/docs/project-changelog.md index 0d527788..7eb413cf 100644 --- a/docs/project-changelog.md +++ b/docs/project-changelog.md @@ -4,6 +4,30 @@ Significant changes, features, and fixes in reverse chronological order. --- +## v3.11.3 — 2026-04-26 + +### Fixes + +- **`goclaw providers verify`** — empty body now triggers ping mode (provider registered/reachable check) and returns `{valid:true}` for registered providers. New `--model ` flag for chat-verify against a specific model. CLI response parser switched from stale `{success, models}` to `{valid, error}`. Onboard auto-verify path fixed identically (was silently printing "FAILED" on every successful provider creation). (#1034) +- **`goclaw providers delete`** — succeeds when referenced by `agent_heartbeats`. FK changed to `ON DELETE SET NULL`; `DeleteProvider` (PG + SQLite) now wraps in a transaction that also disables affected heartbeats so the next scheduler tick cannot fire stale config. `slog.Warn("heartbeat.provider_cleared")` emitted with the disabled count. (#1034) +- **`goclaw doctor`** — provider rows with empty `display_name` now render the canonical `name` instead of a blank line. Query switched from `COALESCE(display_name, name)` to `COALESCE(NULLIF(display_name, ''), name)`. (#1034) + +### Migrations + +- **PG:** `000057_heartbeat_provider_fk_set_null` — defensive orphan cleanup, drop existing FK by lookup, re-add with `ON DELETE SET NULL`. Brief `ACCESS EXCLUSIVE` lock on `agent_heartbeats` during ALTER (sub-second on small tables; heartbeat workers may pause briefly). +- **SQLite:** schema v25 → v26 — full table rebuild for `agent_heartbeats` with new FK clause; explicit 25-column INSERT/SELECT preserves existing rows. `idx_heartbeats_due` recreated. + +### Upgrade notes + +- **Docker users:** MUST pull the new image (`ghcr.io/nextlevelbuilder/goclaw:v3.11.3`) AND run `goclaw upgrade` (or `goclaw migrate up`). Stale images on v3.11.2 will fail boot with `schema version mismatch: required 57, current 56` after the migration runs. +- **Bare-metal users:** rebuild and run `./goclaw upgrade`. + +### OpenAPI + +- `/v1/providers/{id}/verify` — `requestBody.required: false`; `model` documented as optional with ping-mode semantics. + +--- + ## 2026-04-24 ### Tools: Config-driven shell deny-groups + read_audio routing fixes