Files
humanlayer/CHANGELOG.md
2025-06-03 13:35:44 -07:00

10 KiB

0.7.9

Features

  • Add channel field to Escalation model to allow channel overrides during escalation
  • Escalations can now specify a different contact channel than the original request

0.7.8

Changes

  • Rename humanlayer package in npm to @humanlayer/sdk - if you are using the humanlayer sdk, you should change your package.json to use the new package.

0.7.7

Fixes

  • Add additional_recipients field to EmailContactChannel in TypeScript SDK
  • No Python SDK changes, this field was already supported in the Python SDK and the upstream API

0.7.6

Features

  • Add thread_ts support for SlackContactChannel to enable sending messages in threads
  • Add slack_message_ts to FunctionCallStatus for tracking slack message timestamps
  • Export v1beta2 webhook types from typescript package root for better developer experience

Examples

  • Add langchain example demonstrating Slack thread creation and management
  • Update typescript examples with email escalation patterns

Documentation

  • Update examples to latest version and dependency management

0.7.5

Features

  • Add additional_recipients to EmailContactChannel to enable to, cc, bcc email recipients
  • Add escalate_email methods for Function Call and Human Contact objects, allowing for followup/escalation emails to be sent with additional recipients

Documentation

Examples

0.7.4

0.7.3

This was an internal release with build/release process changes, but no user-facing changes.

0.7.2 - Deprecated

This was an internal release with no user-facing changes. It did introduce a small issue, so please upgrade to 0.7.3.

0.7.1

Features

  • Support for interactive: bool on ReponseOption - setting to false will cause prompts to be written in by default
    • BREAKING - if you are using prompt_fill on ReponseOption, and want to give users the option to edit prompt, you will need to add interactive=True
# before
@hl.require_approval(
    # reject options lets you show custom pre-filled rejection prompts to the human
    reject_options=[
        ResponseOption(
            name="reject",
            description="Reject the message",
            prompt_fill="try again but this time ",
        ),
   # ...
# after
@hl.require_approval(
    # reject options lets you show custom pre-filled rejection prompts to the human
    reject_options=[
        ResponseOption(
            name="reject",
            description="Reject the message",
            prompt_fill="try again but this time ",
+           interactive=True
        ),
   # ...


  • API now returns HumanContactStatus.response_option_name and FunctionCallStatus.reject_option_name on objects for consuming human classification/steering reponses with deterministic (non-llm) code

Updates

  • Changed default http client timeout to 30s in python clients

Examples

0.7.0

  • AsyncHumanLayer.human_as_tool() is no longer async (but the tool it returns still is)
    • simplifies syntax to await hl.human_as_tool()(message="lorem ipsum") instead of await (await hl.human_as_tool())(message="lorem ipsum")
  • remove all approval_method logic for AsyncHumanLayer - only backend usage is supported. Use a sync HumanLayer if you want to use the cli or toggle between backend/cli methods
  • BREAKING - remove AsyncHumanLayer.cloud()
  • BREAKING - reduce ways to configure approval method by remoing env var for HUMANLAYER_APPROVAL_METHOD

0.6.5

Features

  • Added state preservation support to FunctionCallSpec and HumanContactSpec for maintaining context across request lifecycles (docs) (example)

Enhancements

  • Moved to uv for project management (examples still encourage throwaway envs with pip / requirements.txt)
  • Updated CI/CD pipeline to use uv instead of poetry
  • Improved PR template with clearer sections and guidance
  • Updated all example dependencies to use v0.6.5

0.6.4

Features

0.6.3

Features

  • Added async support for HumanLayer python SDK with AsyncHumanLayer class (example)
  • Added FastAPI example demonstrating webhooks and async usage (example)

Documentation

  • Improved webhook documentation and added concrete examples

0.6.2

Features

  • Added beta support for agent webhooks to launch agents in response to emails (docs) - support for slack inbound coming soon!

Enhancements

  • Added support for non-experimental email threading fields:

    • subject replaces experimental_subject_line
    • references_message_id replaces experimental_references_message_id
    • in_reply_to_message_id replaces experimental_in_reply_to_message_id
    • Old fields remain supported for backwards compatibility
  • Added convienience method EmailContactChannel.in_reply_to for easily creating an email contact channel that is in reply to another email

  • Improved handling of human_as_tool.__name__ generation to exclude more special characters

Documentation

  • Enhanced Slack channel documentation with setup instructions and ID lookup tips
  • Improved email channel documentation with clearer threading examples
  • Added Ruby and cURL examples for API reference
  • Updated documentation navigation and cross-linking
  • Added webhook documentation clarifications

Branding

  • Updated logo and documentation assets
  • Updated documentation links and social references

0.6.1

Features

  • Added initial Mintlify documentation structure
  • Added API reference documentation for function calls and classifications
  • Added smoke test target for faster example testing
  • Added email threading support (docs) with:
    • experimental_subject_line
    • experimental_references_message_id
    • experimental_in_reply_to_message_id

Documentation

  • Updated documentation links to point to humanlayer.dev
  • Added Docker configuration for local documentation development

0.6.0

Features

  • Added email channel support with subject line customization and threading capabilities (docs)
  • Added new examples demonstrating email channel usage:
    • Email channel with Linear ticket creation (example)
    • Email contact handling with threading (example)
  • Updated TypeScript definitions for email channel models
  • Updated all example dependencies to latest versions

0.5.11

Initial prep for email feature, use 0.6.0 instead

0.5.10

Enhancements

  • Add support for client-side usage of respond methods for responding to function calls / human contacts. This enables building custom approval UX in your web app / client of choice.
  • Added some contrived examples for client-side approvals in TS and PY

0.5.9

Fixes

  • Ensure HumanLayer cloud errors are correctly forwarded into thrown execeptions

Cloud

  • Switched from subscriptions to more flexible credits-based usage model

0.5.8

Features

Functionality to enable lower-level control over approval and human interaction. We had requests from users for more control over these processes compared to higher-order-function approaches.

  • Add lower-level fetch_approval, create_function_call, get_function_call methods to HumanLayer
  • Add lower-level fetch_human_response, create_human_contact, get_human_contact methods to HumanLayer

Examples:

Enhancements

  • Improved Makefile harness for running/testing examples with prerelease version or local API instances
  • Updated examples to use run_id to identify agents in slack and in approval history
  • Support for python 3.10 - please let us know if you hit any issues with 3.10!

0.5.7

  • Support for GripTape Custom Tools

0.5.6

  • Support for reject_options and response_options in require_approval and human_as_tool, respectively, allowing custom response buttons in slack and web platforms