honcho/sdks/typescript/CHANGELOG.md

7.4 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[2.2.0] - 2026-07-02

Added

  • ConclusionLevel type (explicit, deductive, inductive, contradiction) and a level field on Conclusion, exposing the reasoning level the server already tracked but previously stripped from responses.
  • filters option on conclusions.list() and conclusions.query(), passed through to the same dynamic server-side filter logic as the other list endpoints. Filter explicit-only conclusions with { filters: { level: 'explicit' } }, or by any other supported field/operator. Requires a Honcho server with the matching API support (Honcho v3.0.11+).

Fixed

  • Scope-managed filter keys (observer, observed, session) are now rejected with a clear error if passed in filters, instead of silently overriding the scope and returning conclusions from a different peer pair. Use peer.conclusions / peer.conclusionsOf(target) and the dedicated session option instead. session_id remains a valid filter on query().

[2.1.2] - 2026-05-21

Added

  • peers option on Honcho.session() — attach peers to a session at creation time instead of needing a follow-up session.addPeers() call. Accepts the same PeerAddition shape as session.addPeers() (peer ID strings, Peer objects, arrays of either, or a record with per-peer observe_me/observe_others config).

Changed

  • ID validation in validation.ts now accepts workspace, peer, and session IDs up to 512 characters (was 100), matching the server-side schema change in Honcho v3.0.7.

Fixed

  • Honcho.workspaces() now actually forwards the reverse option to the server. The 2.1.0 changelog listed workspaces() among the list methods that gained reverse, but client.ts was missing the field on the params type and request builder, so the option was silently dropped. Honoring reverse on the workspace/peer/session list routes also requires a Honcho server with the matching API fix; older servers silently ignore the parameter.

[2.1.1] - 2026-04-01

Fixed

  • Broadened fetch error retry logic to catch all TypeError network failures (connection resets, DNS errors, etc.) instead of only those with 'fetch' in the message, improving resilience across runtimes (Node, Bun, browsers)

[2.1.0] - 2026-03-25

Added

  • createdAt property on Peer and Session wrapper objects
  • isActive property on Session wrapper objects
  • getMessage(messageId) method on Session to fetch a single message by ID
  • Peer.representation(), Session.representation(), and Session.context() now accept Message objects for searchQuery (extracts .content automatically)
  • page, size, and reverse pagination controls on all list methods: peers(), sessions(), messages(), workspaces(), and conclusions.list()

Changed

  • Breaking: searchQuery removed from top-level context() options. Use representationOptions.searchQuery instead — this eliminates the duplicate parameter and is consistent with the API structure.
  • List methods (peers(), sessions(), messages(), workspaces()) support both the new options object and the legacy raw-filter form: peers({ filters, page, size, reverse }) and peers(filters).
  • Representation search options now accept strings and content-like objects (including Message instances) while rejecting whitespace-only or invalid runtime inputs.
  • Breaking: peer() and session() now always make a get-or-create API call. Previously, calling without metadata/configuration returned a lazy object with no API call. All Peer/Session objects now have createdAt populated immediately.
  • Response configuration models (WorkspaceConfigurationResponse, SessionConfigurationResponse) now tolerate unknown fields from newer servers for forward compatibility
  • Reusable PeerIdObjectSchema and SessionIdObjectSchema helpers for union validation
  • Moved @types/node from dependencies to devDependencies

Fixed

  • uploadFile() now rejects unsupported top-level binary/object inputs and only validates inputs the serializer can actually upload.
  • uploadFile() now serializes message configuration using API field names, matching addMessages().
  • Session fetch methods now refresh cached createdAt and isActive values alongside metadata and configuration.

[2.0.2] - 2026-03-10

Changed

  • Breaking: 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.

[2.0.1] - 2026-02-09

Added

  • setPeerCard method

Changed

  • card is now getCard with card kept for backwards compatibility and marked as deprecated

[2.0.0] - 2026-01-13

Added

  • ConclusionScope object for CRUD operations on conclusions (renamed from observations)
  • Representation configuration support

Changed

  • Observations renamed to Conclusions across the SDK
  • Major SDK refactoring and cleanup
  • Simplified method signatures throughout
  • Representation endpoints now return string instead of old Representation object

Fixed

  • Pagination this binding issue

Removed

  • Representation object
  • Stainless "core" SDK -- this SDK is now standalone

[1.6.0] - 2025-12-03

Added

  • metadata and configuration fields to Workspace, Peer, Session, and Message objects
  • Session Clone methods
  • Peer level get_context method
  • ObservationScope object to perform CRUD operations on observations
  • Representation object for WorkingRepresentations

Changed

  • methods that take IDs, can all optionally take an object of the same type

[1.5.0] - 2025-10-09

Added

  • Delete workspace method

Changed

  • message_id of Summary model is a string nanoid
  • Get Context can return Peer Card & Peer Representation

[1.4.1] — 2025-10-01

Added

  • Get Peer Card method
  • Update Message metadata method
  • Session level deriver status methods
  • Delete session message

Fixed

  • Dialectic Stream returns Iterators
  • Type warnings

Changed

  • Pagination class to match core implementation

[1.4.0] - 2025-08-12

Added

  • getSummaries API returning structured summaries
  • Webhook support

Changed

  • Messages can take an optional created_at value, defaulting to the current time (UTC ISO 8601)

[1.3.0] - 2025-08-04

Added

  • Zod validation
  • Added getPeerConfig to Session object

Changed

  • Moved parameters out of random opts dictionaries in many places
  • Peer and Session objects now use inner client like python SDK

Fixed

  • Enabled missing metadata options in many places
  • Proper default behavior for SessionPeerConfig

[1.2.1] - 2025-07-21

Fixed

  • Order of parameters in getSessions endpoint

Added

  • Linting via Biome
  • Adding filter parameter to various endpoints

[1.2.0] - 2025-07-16

Added

  • Get/poll deriver queue status endpoints added to workspace
  • Added endpoint to upload files as messages

Removed

  • Removed peer messages in accordance with Honcho 2.1.0

Changed

  • Updated chat endpoint to use singular query in accordance with Honcho 2.1.0

[1.1.0] - 2025-07-08

Fixed

  • Create default workspace on Honcho client instantiation
  • Simplified Honcho client import path