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
* fix: adding strict checking and updating readme
* chore: changelog and version
* fix: Add strict validation to all Python and TypeScript classes
* fix: Address Code Rabit Comments
* fix: duplicate searchQuery param in typescript session.context()
* feat: add created_at, is_active fields, and get_message method
* feat: Add pagintion params to sdk
* fix: Remove lazy initalization behavior from sdks
* fix: Address File Upload Validation, add compatibility shims, address review comments
* chore: Docs updates
* fix: Convert session config from API format in Peer.sessions()
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: Pass all args to Session constructor in Peer.sessions()
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: Preserve createdAt in Peer.refresh(), pass all data in session.peers()
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: changelog for ts
* fix: Review Comments
* fix: Add createAt and to peers call
---------
Co-authored-by: Vineeth Voruganti <13438633+VVoruganti@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/changelog/introduction.mdx
+72-2Lines changed: 72 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -524,7 +524,30 @@ Welcome to the Honcho changelog! This section documents all notable changes to t
524
524
525
525
<Tabtitle="Python SDK">
526
526
[Python SDK](https://pypi.org/project/honcho-ai/)
527
-
<Updatelabel="v2.0.1 (Current)">
527
+
<Updatelabel="v2.1.0 (Current)">
528
+
### Added
529
+
530
+
-`created_at` property on `Peer` and `Session` objects
531
+
-`is_active` property on `Session` objects
532
+
-`get_message(message_id)` method on `Session` (sync and async) to fetch a single message by ID
533
+
-`page`, `size`, and `reverse` pagination parameters on all list methods
534
+
535
+
### Changed
536
+
537
+
-**Breaking**: `peer()` and `session()` now always make a get-or-create API call — no more lazy initialization
538
+
- Response configuration models now tolerate unknown fields from newer servers for forward compatibility
539
+
540
+
### Fixed
541
+
542
+
- Sync and async `Session.get_metadata()`, `get_configuration()`, and `refresh()` now refresh cached `created_at` and `is_active` values along with metadata and configuration
543
+
-`honcho.__version__` now derives from package metadata, with a source-checkout fallback, so it stays aligned with released package versions
544
+
</Update>
545
+
<Updatelabel="v2.0.2">
546
+
### Changed
547
+
548
+
- All input models now reject unknown fields via strict Pydantic validation (`extra="forbid"`). Previously, misspelled or extraneous fields were silently ignored. Now a `ValidationError` is raised with the unrecognized field name.
549
+
</Update>
550
+
<Updatelabel="v2.0.1">
528
551
### Added
529
552
530
553
-`set_peer_card` method
@@ -638,7 +661,54 @@ Welcome to the Honcho changelog! This section documents all notable changes to t
- List methods (`peers()`, `sessions()`, `messages()`, `workspaces()`) support both the new options object and the legacy raw-filter form
683
+
- Representation search options now accept strings and content-like objects, including `Message` instances, while rejecting whitespace-only or invalid runtime inputs
684
+
-**Breaking**: `peer()` and `session()` now always make a get-or-create API call — no more lazy initialization. If you relied on constructing SDK objects without triggering a network request, note that every `peer()` and `session()` call now hits the API:
685
+
```typescript
686
+
// Before (v2.0.x) — no API call
687
+
const session =honcho.session("my-session");
688
+
// After (v2.1.0) — makes a get-or-create API call
689
+
const session =awaithoncho.session("my-session");
690
+
```
691
+
- Response configuration models now tolerate unknown fields from newer servers for forward compatibility
692
+
- Moved `@types/node` from `dependencies` to `devDependencies`
693
+
694
+
### Fixed
695
+
696
+
-`uploadFile()` now rejects unsupported top-level binary/object inputs and only validates inputs the serializer can actually upload
697
+
-`uploadFile()` now serializes message configuration using API field names, matching `addMessages()`
698
+
- Session fetch methods now refresh cached `createdAt` and `isActive` values alongside metadata and configuration
699
+
</Update>
700
+
<Updatelabel="v2.0.2">
701
+
### Changed
702
+
703
+
- Client constructor now rejects unknown options via `.strict()` Zod validation. Previously, misspelled options (e.g., `baseUrl` instead of `baseURL`) were silently ignored, causing the SDK to fall back to defaults. Now a `ZodError` is thrown with the unrecognized key name.
704
+
- All input schemas now use `.strict()` validation to reject unknown fields.
705
+
-`FileUploadSchema.configuration` now uses `MessageConfigurationSchema` instead of open record type.
706
+
707
+
### Fixed
708
+
709
+
- README example used `baseUrl` instead of `baseURL`.
Copy file name to clipboardExpand all lines: docs/v2/documentation/core-concepts/configuration.mdx
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -353,6 +353,20 @@ import { Honcho } from "@honcho-ai/sdk";
353
353
```
354
354
</CodeGroup>
355
355
356
+
### Observation and Peer Join Order
357
+
358
+
Reasoning tasks are scheduled at the time a message is created, based on which peers are in the session **at that moment**. Honcho does not retroactively schedule reasoning for peers that join later.
359
+
360
+
This means:
361
+
362
+
- If Peer C joins a session **after** messages from Peer A and Peer B have already been sent, Peer C will **not** receive reasoning tasks for those earlier messages—even if Peer C has `observe_others` enabled.
363
+
- Peer C will only begin observing new messages sent after they join the session.
364
+
- Similarly, if a peer leaves a session, they stop being included as an observer for any messages sent after their departure.
365
+
366
+
<Warning>
367
+
There is no retroactive reasoning. If your application needs an observer peer to reason about prior conversation history, add the peer to the session **before** messages are sent. Alternatively use the .chat() endpoint to include the conversation history in the agent's context, regardless of if they were reasoned against or not
Copy file name to clipboardExpand all lines: docs/v3/documentation/features/advanced/representation-scopes.mdx
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -266,6 +266,20 @@ Directional representations update automatically through the reasoning pipeline
266
266
267
267
The pipeline respects scoping—Honcho's representations reason over messages across all sessions, while directional representations only reason over messages from sessions where the observer was an active participant.
268
268
269
+
### Peer Join Order Matters
270
+
271
+
Reasoning tasks are scheduled at the time a message is created, based on which peers are in the session **at that moment**. Honcho does not retroactively schedule reasoning for peers that join later.
272
+
273
+
This means:
274
+
275
+
- If Peer C joins a session **after** messages from Peer A and Peer B have already been sent, Peer C will **not** receive reasoning tasks for those earlier messages—even if Peer C has `observe_others=true`.
276
+
- Peer C will only begin observing new messages sent after they join the session.
277
+
- Similarly, if a peer leaves a session, they stop being included as an observer for any messages sent after their departure.
278
+
279
+
<Warning>
280
+
There is no retroactive reasoning. If your application needs an observer peer to reason about prior conversation history, add the peer to the session **before** messages are sent. Alternatively, use `peer.chat()` to include conversation history in the agent's context whether or not those messages were previously reasoned over.
281
+
</Warning>
282
+
269
283
<Note>
270
284
Conclusions are cached for fast retrieval. Use `representation()` to retrieve stored conclusions for dashboards and analytics. Use `peer.chat()` when you need query-specific reasoning with natural language.
0 commit comments