From aa993a6dddce7c5c3372d776d591f33a4cc559f7 Mon Sep 17 00:00:00 2001 From: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:19:51 -0400 Subject: [PATCH] chore(docs): Release Candidate for v3.0.10 (#813) --- CHANGELOG.md | 19 +++++++++++++++++++ docs/changelog/introduction.mdx | 21 ++++++++++++++++++++- docs/docs.json | 2 +- honcho-cli/CHANGELOG.md | 23 +++++++++++++++++++++++ honcho-cli/pyproject.toml | 2 +- honcho-cli/uv.lock | 2 +- pyproject.toml | 2 +- uv.lock | 6 +++--- 8 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 honcho-cli/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index cff3c273..3809fa3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [3.0.10] - 2026-06-15 + +### Added + +- Messages are now embedded via a background task rather than blocking API request +- Read-only DB session mode (`get_read_db` / `tracked_db(..., read_only=True)`) so reads don't hold a transaction open across the work +- `CORS_ORIGINS` env var to configure CORS allowed origins without editing source; defaults match the prior hardcoded list, so self-hosted deployments behind custom domains can whitelist their frontend (#697) +- `scripts/generate_jwt.py` — utility for minting scoped or admin Honcho JWTs (`--admin`, `--workspace`/`--peer`/`--session`, `--expires` with human-friendly durations, `--print-only`) without calling the keys API (#757) +- `STALE_WORK_UNIT_CLEANUP_INTERVAL_SECONDS` (default 60s) — minimum jittered spacing between deriver stale-work-unit cleanup runs, so cleanup no longer runs on every seconds-scale poll (`0.0` keeps the legacy every-poll behavior) (#773) + +### Changed + +- Optimized the deriver and dreamer prompt cache prefixes to improve prompt-cache hit rates (#806) + +### Fixed + +- `times_derived` is now properly reinforced when a duplicate conclusion is detected. It had been pinned at 1 for nearly every conclusion (the reject-new branch dropped the increment and the new-wins branch reset the count to 1), so `ORDER BY times_derived DESC` fell back to arbitrary heap order and froze stale conclusions to the front of injected context. Reinforcement is now an atomic increment and both most-derived queries gained a `created_at DESC` recency tiebreaker (#768) +- Webhook creation now correctly rejects private/internal IP addresses (#793) + ## [3.0.9] - 2026-06-02 ### Changed diff --git a/docs/changelog/introduction.mdx b/docs/changelog/introduction.mdx index a4778f76..c5bc129d 100644 --- a/docs/changelog/introduction.mdx +++ b/docs/changelog/introduction.mdx @@ -27,7 +27,26 @@ Welcome to the Honcho changelog! This section documents all notable changes to t ### Honcho API and SDK Changelogs - + + ### Added + + - Messages are now embedded via a background task rather than blocking API request + - Read-only DB session mode (`get_read_db` / `tracked_db(..., read_only=True)`) so reads don't hold a transaction open across the work + - `CORS_ORIGINS` env var to configure CORS allowed origins without editing source; defaults match the prior hardcoded list, so self-hosted deployments behind custom domains can whitelist their frontend (#697) + - `scripts/generate_jwt.py` — utility for minting scoped or admin Honcho JWTs (`--admin`, `--workspace`/`--peer`/`--session`, `--expires` with human-friendly durations, `--print-only`) without calling the keys API (#757) + - `STALE_WORK_UNIT_CLEANUP_INTERVAL_SECONDS` (default 60s) — minimum jittered spacing between deriver stale-work-unit cleanup runs, so cleanup no longer runs on every seconds-scale poll (`0.0` keeps the legacy every-poll behavior) (#773) + + ### Changed + + - Optimized the deriver and dreamer prompt cache prefixes to improve prompt-cache hit rates (#806) + + ### Fixed + + - `times_derived` is now properly reinforced when a duplicate conclusion is detected. It had been pinned at 1 for nearly every conclusion (the reject-new branch dropped the increment and the new-wins branch reset the count to 1), so `ORDER BY times_derived DESC` fell back to arbitrary heap order and froze stale conclusions to the front of injected context. Reinforcement is now an atomic increment and both most-derived queries gained a `created_at DESC` recency tiebreaker (#768) + - Webhook creation now correctly rejects private/internal IP addresses (#793) + + + ### Changed - Connection acquisition is now a single attempt with no server-side retry, on a vanilla `AsyncSession`. A new `DB_CONNECT_TIMEOUT_SECONDS` (default 2s) bounds the attempt so a saturated or unreachable pooler fails fast instead of holding a client connection open to re-knock. A saturated DB now surfaces to the caller — the API returns an error and the deriver backs off and retries on a later poll — which lets the pooler drain rather than amplifying saturation. diff --git a/docs/docs.json b/docs/docs.json index 4c240e50..669faf96 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -24,7 +24,7 @@ "navigation": { "versions": [ { - "version": "v3.0.9", + "version": "v3.0.10", "api": { "openapi": ["v3/openapi.json"] }, diff --git a/honcho-cli/CHANGELOG.md b/honcho-cli/CHANGELOG.md new file mode 100644 index 00000000..7d56f768 --- /dev/null +++ b/honcho-cli/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/) +and this project adheres to [Semantic Versioning](http://semver.org/). + +## [0.1.1] - 2026-06-15 + +### Fixed + +- Declare `click` as an explicit dependency. The CLI imported `click` directly but relied on it being pulled in transitively, so installs without it on the path could fail at runtime (#787) + +## [0.1.0] - 2026-04-20 + +### Added + +- Initial release of `honcho-cli` — a terminal for inspecting and managing a Honcho deployment (#424) +- `workspace`, `peer`, `session`, `message`, `conclusion`, and `config` command groups for managing resources against any Honcho server +- `init` onboarding flow that prompts for and persists connection settings, with flag/env-var pre-seeding for non-interactive use +- Per-command flags, environment variables, and a config file for pointing the CLI at different servers (local, self-hosted, or hosted) +- Rich terminal output and an agent-usage mode for scripting against the CLI +- Documentation and an agent skill for the CLI (#589) diff --git a/honcho-cli/pyproject.toml b/honcho-cli/pyproject.toml index 951a6d58..b3293a1a 100644 --- a/honcho-cli/pyproject.toml +++ b/honcho-cli/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "honcho-cli" -version = "0.1.0" +version = "0.1.1" description = "A terminal for Honcho — memory that reasons." readme = "README.md" requires-python = ">=3.11" diff --git a/honcho-cli/uv.lock b/honcho-cli/uv.lock index 4dc041ab..fce3f13a 100644 --- a/honcho-cli/uv.lock +++ b/honcho-cli/uv.lock @@ -88,7 +88,7 @@ wheels = [ [[package]] name = "honcho-cli" -version = "0.1.0" +version = "0.1.1" source = { editable = "." } dependencies = [ { name = "click" }, diff --git a/pyproject.toml b/pyproject.toml index 4856619e..95a7789c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "honcho" -version = "3.0.9" +version = "3.0.10" description = "Honcho Server" authors = [ {name = "Plastic Labs", email = "hello@plasticlabs.ai"}, diff --git a/uv.lock b/uv.lock index 37fb0cb7..a71283bb 100644 --- a/uv.lock +++ b/uv.lock @@ -8,7 +8,7 @@ resolution-markers = [ ] [options] -exclude-newer = "2026-05-28T15:27:36.945866Z" +exclude-newer = "2026-06-10T19:45:16.447512Z" exclude-newer-span = "P5D" [manifest] @@ -1159,7 +1159,7 @@ wheels = [ [[package]] name = "honcho" -version = "3.0.9" +version = "3.0.10" source = { virtual = "." } dependencies = [ { name = "alembic" }, @@ -1302,7 +1302,7 @@ dev = [{ name = "ruff", specifier = ">=0.11.13" }] [[package]] name = "honcho-cli" -version = "0.1.0" +version = "0.1.1" source = { editable = "honcho-cli" } dependencies = [ { name = "click" },