From 5ba45b1d7403b9c27eef8fe128b93679b466ec19 Mon Sep 17 00:00:00 2001 From: Rohan Dsouza Date: Tue, 1 Sep 2026 20:07:15 +0530 Subject: [PATCH 1/2] chore: release v0.15.0 --- CHANGELOG.md | 2 ++ pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef5a1b..bebedca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.15.0] - 2026-09-01 + ### Added - **`keys` and `expires_at` on `hotdata_create_managed_database`.** Both were available on the diff --git a/pyproject.toml b/pyproject.toml index a242574..91af968 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "hotdata-langchain" -version = "0.14.0" +version = "0.15.0" description = "LangChain tools for Hotdata runtime" readme = "README.md" requires-python = ">=3.10" diff --git a/uv.lock b/uv.lock index afcede0..26201ae 100644 --- a/uv.lock +++ b/uv.lock @@ -274,7 +274,7 @@ wheels = [ [[package]] name = "hotdata-langchain" -version = "0.14.0" +version = "0.15.0" source = { editable = "." } dependencies = [ { name = "hotdata" }, From 961060a4ea4e163e6c89dcdce735b382394fba98 Mon Sep 17 00:00:00 2001 From: Rohan Dsouza Date: Tue, 1 Sep 2026 20:07:44 +0530 Subject: [PATCH 2/2] docs: promote the load-mode wording fix out of the notes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `delete` removing matched rows and inserting nothing is the most consequential change in this release — the previous wording invited a reading that destroys rows and reports success. It belongs under Fixed, next to the `keys` validation, rather than as a footnote. The floor bump now says outright that it tightens what an existing installation may resolve. --- CHANGELOG.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bebedca..d16ec80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- **The load tool now says what each keyed mode does to a matched row**, rather than naming + `upsert`, `update` and `delete` together under one clause about matching by key. `delete` + removes matched rows and inserts nothing, and the previous wording left it open to reading as + delete-then-insert by key — a misreading that destroys rows and reports success. Each mode now + states its effect on a matched row and on one that matches nothing. + +- **A `keys` entry naming a table the same call is not declaring is refused.** It would + otherwise create a keyless table and report success, and since a key can only be set at + creation, the only fix is to create another database. + - **Building the tools raised on `langchain-core` 1.0.0**, the version this package declares as its floor. Its docstring parser reads a colon in a wrapped `Args:` continuation line as the start of a new argument, so `Arg one by key in docstring not found in function signature` @@ -59,7 +69,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 support for — which is how the `langchain-core` break above reached a release, and how the framework floor drifted three minor versions behind what the package was developed against. -- **`hotdata-framework>=0.13.0`** (from `>=0.10.0`). 0.13.0 is where an `append` load became +- **`hotdata-framework>=0.13.0`** (from `>=0.10.0`), which tightens what an existing installation + may resolve. 0.13.0 is where an `append` load became retryable — before it, `append` was excluded from retries, so a load that hit `409 RESOURCE_LOCKED` failed whatever `max_retries` was set to. This release makes `append` reachable from a tool, so the floor moves with it. It also brings terminal-vs-transient 409 @@ -74,12 +85,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 framework client, which hardcodes the fields it forwards — so they need an upstream change rather than a wider signature in this package. -- The load tool now states what each keyed mode does to a matched row rather than naming the - three together. `delete` removes matched rows and inserts nothing, which the previous wording - left open to reading as delete-then-insert by key — a misreading that destroys rows and - reports success. A `keys` entry naming an undeclared table is now refused rather than - silently creating a keyless table, which cannot be corrected afterwards. - - Retrying a failed `append` from an agent still duplicates rows, and no version fixes that. Re-sending the same upload replays the server's receipt, but a tool call has no memory across turns, so a repeat stages a fresh upload with no receipt to replay. The load tool's