You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+19-8Lines changed: 19 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,18 +5,29 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
8
-
## [Unreleased]
8
+
## [3.0.4] - 2026-04-02
9
9
10
-
### Fixed
10
+
### Added
11
11
12
-
- Memory leak in deriver: `_observation_locks` dict grew unboundedly with every unique (workspace, observer, observed) combination; replaced with `WeakValueDictionary` so locks are automatically evicted when no longer in use (DEV-1412)
13
-
- SQL injection vector in `dependencies.py`: parameterized `SET application_name` queries using `set_config()` instead of f-string interpolation (DEV-1400)
14
-
- NUL byte (`\x00`) crashes: all user-facing text inputs (message content, metadata, peer cards, queries) are now sanitized at the Pydantic schema level before reaching PostgreSQL (DEV-1400)
12
+
- JSONB metadata validation enforces 100 key limit and max depth of 5 (#419)
15
13
16
-
### Added
14
+
### Changed
15
+
16
+
- Schemas refactored from single `schemas.py` into `schemas/api.py`, `schemas/configuration.py`, and `schemas/internal.py` with backwards-compatible re-exports (#419)
17
+
18
+
### Fixed
17
19
18
-
- JSONB metadata validation: max 100 top-level keys and max nesting depth of 5 on all metadata input fields (DEV-1400)
19
-
- Filter recursion depth limit: `_build_filter_conditions()` now enforces a max depth of 5 to prevent stack overflow from deeply nested filter dicts (DEV-1400)
20
+
- Missing `deleted_at` filter on `RepresentationManager._query_documents_recent()` and `._query_documents_most_derived()` allowed soft-deleted documents to leak into the deriver's working representation (#456)
21
+
-`CleanupStaleItemsCompletedEvent` emitted spuriously when no queue item was actually deleted (#454)
- Memory leak: `_observation_locks` switched to `WeakValueDictionary` to prevent unbounded growth (#419)
24
+
- SQL injection in `dependencies.py`: parameterized `set_config` calls to prevent injection via request context (#419)
25
+
- NUL byte crashes: string inputs (message content, queries, peer cards) now stripped at schema level (#419)
26
+
- Filter recursion depth capped at 5 to prevent stack overflow (#419)
27
+
- Dedup-skipped observations now correctly reflected in created counts (#477)
28
+
- External vector store support for message search — routes queries through configured external vector store with oversampling and
29
+
deduplication to handle chunked embeddings (#479)
30
+
- Dialectic agent no longer holds a DB connection during LLM calls — embeddings are pre-computed before tool execution, DB sessions isolated in `extract_preferences`, `query_documents` no longer accepts a DB session parameter (#477)
Copy file name to clipboardExpand all lines: docs/changelog/introduction.mdx
+22-12Lines changed: 22 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,20 +27,30 @@ Welcome to the Honcho changelog! This section documents all notable changes to t
27
27
### Honcho API and SDK Changelogs
28
28
<Tabs>
29
29
<Tabtitle="Honcho API">
30
-
<Updatelabel="v3.0.4 (Unreleased)">
31
-
### Fixed
30
+
<Updatelabel="v3.0.4 (Current)">
31
+
### Added
32
32
33
-
- Memory leak in deriver: `_observation_locks` dict grew unboundedly with every unique (workspace, observer, observed) combination; replaced with `WeakValueDictionary` so locks are automatically evicted when no longer in use (DEV-1412)
34
-
- SQL injection vector in `dependencies.py`: parameterized `SET application_name` queries using `set_config()` instead of f-string interpolation (DEV-1400)
35
-
- NUL byte (`\x00`) crashes: all user-facing text inputs (message content, metadata, peer cards, queries) are now sanitized at the Pydantic schema level before reaching PostgreSQL (DEV-1400)
33
+
- JSONB metadata validation enforces 100 key limit and max depth of 5 (#419)
36
34
37
-
### Added
35
+
### Changed
38
36
39
-
- JSONB metadata validation: max 100 top-level keys and max nesting depth of 5 on all metadata input fields (DEV-1400)
40
-
- Filter recursion depth limit: `_build_filter_conditions()` now enforces a max depth of 5 to prevent stack overflow from deeply nested filter dicts (DEV-1400)
41
-
</Update>
37
+
- Schemas refactored from single `schemas.py` into `schemas/api.py`, `schemas/configuration.py`, and `schemas/internal.py` with backwards-compatible re-exports (#419)
42
38
43
-
<Updatelabel="v3.0.3 (Current)">
39
+
### Fixed
40
+
41
+
- Missing `deleted_at` filter on `RepresentationManager._query_documents_recent()` and `._query_documents_most_derived()` allowed soft-deleted documents to leak into the deriver's working representation (#456)
42
+
-`CleanupStaleItemsCompletedEvent` emitted spuriously when no queue item was actually deleted (#454)
- Memory leak: `_observation_locks` switched to `WeakValueDictionary` to prevent unbounded growth (#419)
45
+
- SQL injection in `dependencies.py`: parameterized `set_config` calls to prevent injection via request context (#419)
46
+
- NUL byte crashes: string inputs (message content, queries, peer cards) now stripped at schema level (#419)
47
+
- Filter recursion depth capped at 5 to prevent stack overflow (#419)
48
+
- Dedup-skipped observations now correctly reflected in created counts (#477)
49
+
- External vector store support for message search — routes queries through configured external vector store with oversampling and
50
+
deduplication to handle chunked embeddings (#479)
51
+
- Dialectic agent no longer holds a DB connection during LLM calls — embeddings are pre-computed before tool execution, DB sessions isolated in `extract_preferences`, `query_documents` no longer accepts a DB session parameter (#477)
52
+
</Update>
53
+
<Updatelabel="v3.0.3">
44
54
### Added
45
55
46
56
- Consolidated session context into a single DB session with 40/60 token budget allocation between summary and messages
@@ -524,7 +534,7 @@ Welcome to the Honcho changelog! This section documents all notable changes to t
524
534
525
535
<Tabtitle="Python SDK">
526
536
[Python SDK](https://pypi.org/project/honcho-ai/)
527
-
<Updatelabel="v2.1.0 (Current)">
537
+
<Updatelabel="v2.1.0">
528
538
### Added
529
539
530
540
-`created_at` property on `Peer` and `Session` objects
@@ -661,7 +671,7 @@ Welcome to the Honcho changelog! This section documents all notable changes to t
0 commit comments