Skip to content

Releases: slng-ai/unmute

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 16 Sep 15:15
5ad45d7

v0.5.3 — alternating announce lines, a reworked salon, and steps that don't repeat

Highlights:

  • announce: takes a list. The caller hears one of those lines each
    time it fires, never the one that site used last, so a flow
    entered twice in a call does not sound like a recording. A single
    line still works and needs no change.

  • A task speaks its announce as the step is entered, whichever way
    the step was reached. On a tool the line sits in the tool body and
    fires once per call, so two calls in one turn played it twice.

  • A step the caller has not spoken since is refused instead of run
    again, on LiveKit and Pipecat. A finished result with no new
    caller turn above it is the model re-reading its own work.

  • LiveKit sessions retry the model once instead of four times. The
    default sleeps 4.1 seconds before it gives up.

  • Rework the salon concierge: seven tools instead of eleven, two
    plain tasks instead of a task group, and the saved booking now
    carries the sentence the agent reads out loud.

  • Fix a LiveKit call arriving as two Langfuse traces, and name a
    tool call after its tool on both targets.

Upgrade notes:

  • Recompile to pick up the refusal and the retry cap. Nothing in
    agent.yaml has to change.

  • A task group still compiles but speaks nothing on Pipecat. Use
    plain tasks there until that is fixed.

Changelog

Others

  • 178849e Find the call's trace root by name, and type a tool call on both targets
  • 42478f9 Let announce: hold several lines, and fix what live calls found
  • 698ae32 Rework the salon concierge and fix what live calls found
  • 45eaf99 Stop the colour gate walking this repo's own worktrees
  • 23e9842 Trim CLAUDE.md to what every session needs

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 15 Sep 11:59
51a5525

v0.5.2 — speech-to-speech agents, better manifests, and clearer deployment guides

Highlights:

  • Add realtime and live architectures on LiveKit and Pipecat.
    Run speech-to-speech agents, or pair a realtime model with a
    separate speech synthesizer. Existing packages default to cascade.

  • Add pharmacy-refills and takeaway-orders examples with local
    tools and knowledge lookup.

  • Improve the manifest editor and create agents from saved company
    rules with unmute init --manifest or --from-manifest.

  • Fix LiveKit tool inputs, Pipecat task history, delegated tool
    timing in the browser, and the Homebrew postflight warning.

  • Explain architecture choices, workflow limits, and deployment
    steps for LiveKit Cloud, Pipecat Cloud, and SLNG.

Upgrade notes:

  • Set the LiveKit framework version to 1.8.1 and Pipecat to 1.10.0
    in targets.yaml.

  • Realtime and live currently support single-agent browser calls.
    Keep cascade for tasks, saved state, tracing, and phone routes.

Changelog

Others

  • 5133c4f Add the architecture key and the two speech-to-speech shapes
  • 770e274 CLI-238: Unmute Manifest
  • c7d13e9 Check SLNG commands in the deployment guide
  • 8976acb Clarify deployment steps and architecture tradeoffs
  • 8558d8d Drive both realtime models against the real wheels
  • d4174b2 Fix LiveKit tool inputs and Pipecat task history
  • b599a1d Fix six things the review found in the new architectures
  • 7b244ea Fix the Homebrew postflight warning
  • 468f74c Fix the Homebrew postflight warning
  • 962b25b Fix the two staticcheck findings CI caught
  • 0ae10b0 Give a delegated tool call the turn it belongs to
  • 7522dc9 Keep a half cascade whole through the console
  • 4e82841 Keep the latest deployment target links
  • 69e9763 Link target pages to the deployment guides
  • 939251a Make the half cascade runnable, and say the call is owed on every row
  • ad3848e Move architecture documentation into the S2S follow-up
  • 37b6672 Refuse a turn-detecting model on the ordinary transcriber, and stop two examples promising what they cannot do
  • 849b275 Remove stale and repeated target guidance
  • be14b30 SLNG-1421: explain architecture tradeoffs and workflow control
  • 2c3be3f Stop one smoke assuming the example's think vendor

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 15 Sep 08:22
be2cd38

v0.5.1 — Google inference locations on LiveKit and Pipecat

Highlights:

  • Choose Google Vertex inference locations with params.location.
    US, EU, individual regions and explicit global routing now select
    the corresponding Google endpoint on both LiveKit and Pipecat.

  • Keep GOOGLE_API_KEY authentication and provider parameters,
    including thinking_config. Existing EU routing and Gemini
    Developer API configurations continue to work.

  • Follow Google's endpoint rules without a compiler region allowlist.
    Unsupported locations and unavailable models fail at the requested
    endpoint, with no fallback to global or another region.

  • Verify real US requests through both generated native clients.
    Regression checks cover endpoint selection, parameter forwarding,
    mixed locations, Developer API behavior and provider errors.

  • Update the model guide and coding-agent skill reference with
    location examples and routing behavior.

Changelog

Others

  • 649ed48 SLNG-1419: Support Google inference locations on both targets

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 13:31
141b67c

v0.5.0 — reusable company rules, native Gemini, and unified regions

Highlights:

  • Reuse company rules with unmute manifest. Guide new agents through
    allowed models, languages, regions, targets and tools. Each package
    carries its own manifest for offline validation and compilation.

  • Run native Gemini on LiveKit and Pipecat, including Vertex EU access
    with an API key. EU requests use the regional endpoint with no global
    fallback.

  • Use one set of 13 SLNG regions across deployment, speech and the
    Context Router. Listening, thinking and speaking now share
    params.world_part.

  • Build with clearer guides: a first-task walkthrough, complete field
    references, practical credential setup and example troubleshooting.
    New checks catch broken links, invalid MDX and missing field docs.

Upgrade notes:

  • Replace the Context Router's params.world_part_override with
    params.world_part. Choose a current region such as eu-west or
    us-east; the old eu, us, india and indonesia values are refused.

  • Update SLNG deployment_region values any, eu-central and ap-south
    to a supported region. LiveKit now rejects unknown worker regions
    and media region groups used as deployment regions.

Changelog

Others

  • 41bf835 Add native Gemini with Vertex EU API-key support
  • 0699e9b Add reusable manifests for agent creation
  • 0e43bab Call the target LiveKit, not LiveKit Agents
  • 378a0d7 Clarify README with practical NVIDIA speech endpoint examples (#216)
  • f1676be Document field contracts and fix LiveKit region validation
  • d913f7b Fix docs changelog updates after releases
  • 0e8cf2c Fix regional gateway checks after the merge
  • 3a08c61 Fix speech endpoint documentation in nemotron-voice-agent README (#215)
  • 7d15514 Fix three pages MDX would not parse, and gate both shapes
  • 5223ecb Give guide pages a shape: definition, map, quickstart, then depth
  • 050b6a1 Give the example READMEs the same shape as the guide pages
  • 0618ad6 Give the tools and optimization pages the same shape
  • e8136c5 Handoffs and task groups list their keys the same way
  • 0d7cb46 Hold the shape and the sentence length with gates
  • a5307ff Make the shape of a block visible before the prose about it
  • 94d2ee2 Point the MCP, hosted and webhook pages at an example that exists
  • 12ff582 Put the destinations note under the block it explains
  • 5a313f8 Say that contributions are welcome, and what a pull request needs
  • 882e7a7 Say the keys, drop the status lines
  • 757a480 Say what the salon does now, and what a task group is for
  • 3a41cc6 Set LiveKit examples to a 300 ms VAD window
  • 8f805db Show what a package can actually declare in the README
  • e6a7f18 Split the sentences a reader had to hold in their head
  • 11d5876 State every key on the four model pages, and lead with what SLNG is
  • 2e3d577 State the keys on all six telephony pages, and fix three samples
  • ba6047e State the keys on credentials, the warm pool and the dev flags
  • 53461b7 State the keys on the target, transfer and tracing pages
  • 4293bb5 State the keys on the tracing and transfer routes, and gate the rule
  • 80d52c8 Tab what differs by target, and define the words the site assumes
  • ed0570c Teach tasks first, and say what success looks like before anything else
  • c941ecd The Context Router takes the same world parts as speech
  • 9a1b8e1 Variables grows from simple to complex, and credentials leave it
  • b421acc Walk a reader from no task to a task with finish:, on the scaffold
  • a49414f Write up what the orchestration docs need
  • c2e70a3 templates: Nemotron voice agent
  • 99c96bf templates: correct the Nemotron README (#214)

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 11 Sep 09:16
2fd8193

v0.4.2 — regional speech, live transcripts, and typed contacts

Highlights:

  • Choose where SLNG speech requests go. Set params.world_part on each
    SLNG listen or speak model to select one of 13 regional gateways,
    including eu-north, eu-west, us-east and us-west. Unmute generates
    the matching endpoint on both LiveKit and Pipecat. Gateway location
    and worker deployment region are configured separately.

  • See every turn in unmute dev. Streaming transcripts show the caller's
    words and the agent's reply as they arrive. Model requests, tool calls
    and handoffs get their own rows, with per-request latency and audio
    timings to help explain where the wait comes from.

  • Collect typed contact details on LiveKit and Pipecat. EmailStr checks
    and normalizes email addresses before saving them. NameEmail keeps a
    name and address together, with dotted references for either field.
    Invalid values leave saved state untouched and tell the model what
    to correct.

  • Deploy SLNG tools by name. Reference published hosted tools and named
    MCP tools without pulling a mirror first. Deployment checks published
    contracts, injected arguments and required credentials before pushing.
    A dry run previews the versions and attachment changes.

  • Record conversation values and send SMS on SLNG. The new
    source: conversation lets the model save values during a call.
    The send_sms builtin sends a message to the caller's number on
    phone calls, with the sender fixed by the package.

  • Two new examples to build from. customer-intake shows typed details,
    caller confirmation and saved values passed into a local tool.
    hotel-concierge replaces slng-support with hosted lookups, MCP web
    search, conversation memory and SMS summaries.

  • Run local dev sessions side by side. Busy default ports are selected
    automatically, LiveKit stacks are isolated, and shutdown cleans up
    the session. Transcript handling, worker startup and Pipecat hangups
    also get fixes.

  • Updated dependencies and clearer guides. pipecat-slng moves to 0.5.2,
    generated Python supports ty 0.0.40, and the docs expand SLNG deployment,
    typed state, regional model settings and latency measurement.

Upgrade notes:

  • For SLNG listen and speak models, replace params.world_part_override
    and params.region_override with params.world_part and a specific
    gateway, such as eu-north. Legacy values na, eu and ap are refused.
    Omit world_part to keep the default endpoint. SLNG think models
    keep the Context Router's existing world_part_override setting.

  • SLNG deployment requires voiceai support for checked, resolved pushes
    (verified with 0.1.18). Validation and compilation remain offline.

Changelog

Others

  • 4f4a3b4 Add EmailStr and NameEmail to the variable type scope
  • ad8de07 Add a small example that collects typed details and hands them to a tool
  • e0a3798 Check a pid without syscall.Kill so the Windows release build compiles
  • 0e2943f Drop the co-author trailer too
  • 359b452 End a step on its tool without speaking, and scope its ending to the step
  • 852e2d0 End a step on its tool, skip a step whose work is done, listen for an opening
  • 594afc7 End the complaint step on record_complaint, and ask for agreement once
  • e0b920d Fix three smoke failures on internal/generate
  • af7b13b Gate what a model gets back for a spoken email address
  • 6256aa4 Let a scripted text run start with only the model key
  • 4c2b1cd Let only the concierge verify a caller
  • bcbe1db Let unmute dev sessions run side by side and never leave a stack behind
  • 17504b9 Read an address back the way the prompting page says to
  • cf45c9a Record the digest main's new example needs, and take the salon off snappy
  • 4f8c99e Refuse a second booking in the salon's backend, and say who speaks
  • e9355e4 Route SLNG speech through regional gateways
  • 8ac9ccf Show a handoff on the dev page so its model call has a cause
  • 9d7378b Use world_part for SLNG speech gateways
  • c82ef61 Write commits and PRs in plain words, with no tool attribution

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 17:11
22e1fe8

v0.4.1 — simpler SLNG deploys, live transcripts, and a hotel concierge

Highlights:

  • Reference SLNG hosted tools and MCP tools by name. Deployment checks published bindings and credentials, previews attachment changes, and pushes only after checks pass.
  • Follow conversations as they happen in unmute dev, with streaming transcripts, tool activity, and per-request latency.
  • Meet hotel-concierge: a new SLNG example combining hosted tools, web search, conversation memory, and SMS summaries.
  • Improve local worker startup, transcript handling, and graceful Pipecat hangups, with regression coverage for LiveKit task handoffs.
  • Update pipecat-slng to 0.5.2 and keep generated Python compatible with ty 0.0.40.
  • Expand the SLNG deployment walkthrough and clarify tool setup, testing, and latency measurement.

Upgrade note:
SLNG deployment now requires voiceai support for checked, resolved pushes
(verified with 0.1.18). Validation and compilation remain offline.

Changelog

Features

  • fdc9a74 feat: hotel-concierge showcase replaces slng-support; memory variables and send_sms on slng
  • f53adcb feat: simplify SLNG tool references and checked deployment

Bug fixes

  • 002baaf fix: remove required session input from SLNG phone example

Others

  • f826dd7 Fix dev transcripts and graceful Pipecat hangups
  • b76cac7 Fix local worker startup and restore salon Chat Completions
  • fd592b0 Fix the six variable and webhook smokes refused by the E.164 phone type
  • 1b5bf75 Gate the harness's own recovery from a group step's handoff
  • cd58183 Make the emitted LiveKit project ty-clean under ty 0.0.40
  • cc03ca5 Prove a group step's handoff moves the caller on LiveKit
  • b8835eb Raise the pipecat-slng pin to 0.5.2 and stop warning about warm standby
  • 846df51 Refuse a slng: reference to a curated capability by name
  • 51b75a5 Stream dev conversations and expose per-request latency
  • 6746a85 Take a Mapping in the Pipecat tracing start_call so ty 0.0.40 passes

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 11:38
743b6bd

v0.4.0 — typed state, simpler tasks, and portable hosted tools

Highlights:

  • Typed session state on LiveKit and Pipecat. Declare reusable shapes,
    lists, optional values and fixed choices. Task finish arguments come
    from the variables they assign, so each type is declared once.
    Results are validated together before any value is saved.

  • Explicit context sharing. Prompts read saved values with {{variable}}
    or {{variable.field}}. Tasks restore the owner's earlier context and
    return a completion status; saved results reach only prompts that
    name them. List assignments can append records across several tasks.

  • Simpler task definitions. Tasks live inside the agent that owns them,
    with their trigger, announcement and assignments in one place.
    Other agents can reuse a task by name.

  • Hosted SLNG tools. The new slng: block references an existing tool,
    and unmute pull saves its definition and hash into the package.
    Validation and compilation check the committed mirror offline.
    Supported mirrors also run in generated LiveKit and Pipecat projects.

  • Langfuse v4 tracing on both code targets. Each call stays in one trace,
    with the full conversation on its root and both sides of each exchange
    on a turn span. Tool spans carry their names, arguments and results;
    session IDs and trace names reach every observation.

  • More reliable conversations. Pipecat settles task tool calls before
    returning to the owner, starts replies after empty-history handoffs,
    and removes tool calls together with their replies when trimming history.
    Salon examples preserve verified identity and booking details across
    changes. A new text harness exercises generated LiveKit agents with
    real models and local tools.

  • Clearer CLI output and docs. Commands print what they did and what
    needs fixing; compile details live in compile-report.json.
    New guides cover state design, context sharing and verification.
    Shared OpenAI bindings can select LiveKit's Responses API; Pipecat
    warns and drops the options it cannot use.

Breaking changes and migration:

  • Replace agent model: and voice: selectors with think: and speak:.
    Task model overrides also use think:.

  • Move top-level task definitions into an agent's tasks: list.
    Replace delegates: with tasks: or task_groups: attachments,
    moving triggers and announcements onto the task or group.

  • Replace task result: schemas with typed variables and task assign:.
    Write assign: and tool inject: as lists of single-key entries.

  • Remove requires: and handoff context.variables:.
    Put step ordering in prompts and reference saved values explicitly.
    Tools still refuse missing or unconfirmed injected values.

  • Omitted task and handoff history now means messages.
    Use full when the receiver needs earlier tool calls and results.

  • Move package-level timezone: onto each clock pre-fetch entry.
    Replace tool read_only: with an explicit writes: false or
    writes: true on each tool pre-fetch entry.

  • SLNG deployment no longer creates tools from local: or webhook:.
    Create the tool on SLNG, reference it with slng:, run unmute pull,
    and commit the generated mirror. Local and webhook tools remain
    supported on LiveKit and Pipecat.

Changelog

Bug fixes

  • bfbc577 fix: reuse verified salon identity across booking changes
  • de36af9 fix: settle Pipecat task calls before returning to the owner
  • fa5ff86 fix: start Pipecat replies after empty-message handoffs
  • 3ae2dce fix: use direct OpenAI for the salon concierge

Others

  • e2c1e94 Accept an absent shaped value, and stop the reset step asking why they rang
  • 217dcbc Accumulate declared values, and refuse a value where it enters
  • 00edd0c Add a text harness that drives the emitted LiveKit agent
  • 3a18113 Add salon-concierge-v2, and let --var seed what the dispatch fills
  • 94fd9d4 Add salon-concierge-v3, the package spec 004 rewrites
  • 032924d Add the salon-concierge baseline package, and fix the Pipecat httpx import
  • 98061cf Assign one part of a result, and let any prompt read a variable
  • 4f48472 Brand every command's output, and gate the colour rule that was a wish
  • 77d717c Bring the configuration reference back in line with the structs
  • 26d69b3 Bump the router scope so the prompt fix actually reaches the model
  • c5e2c00 Carry input: and an omitted variables: through the console
  • a125485 Compose the state block onto every agent and task prompt
  • e6598fa Copy local agent skills into managed worktrees
  • 1bba382 Cut the example READMEs back, and take a real number out of the repo
  • 5dc55cb Cut the v2 READMEs back to what it is and how to run it
  • 3f4e2f1 Declare typed session state: the parser, the shapes, the classes
  • 559697a Delete PRODUCT.md
  • 13ee9d7 Document model fallback and what semantic_endpointing off actually does
  • cc50a6d Document typed inputs on every surface
  • 26ef652 Drop a duplicate append in code, and cut the prompts by a third
  • f68511d Drop a tool call with its reply when history: messages trims
  • 0369216 Drop the TwiML parameters the compiler stopped emitting, and the dated measurements
  • ea871dc Drop the compile-report pointers from the narrative and put the scaffold's blocks back in order
  • 9c61363 Drop the requires: gate, and let the prompt order the steps
  • b97aac2 Finish the booking step per saved booking, and stop the double filler
  • 08e2d5f Fix salon continuity and local worker startup
  • 67d03c7 Fix the Get started pages against a real init, compile and skill install
  • e6ba50f Give the LiveKit Twilio route its own page
  • 64cc0f1 Give the two front-page cards a destination
  • 366f4cf Hand every task and handoff a typed input
  • e61b767 Hold a pre-fetch to the same assignability rule a step is held to
  • 209f316 Hold the docs-site prose rules with a test
  • 7d9338a Ignore local agent skills in worktrees
  • e679d04 Keep salon v3 conversations in English
  • a3aaac2 List only the carriers a route supports
  • 6d0b437 Make choosing-a-structure the orchestration umbrella and fix the delegate name
  • e467725 Make dev and tracing one group, and fix what the tracing pages got wrong
  • 86444ae Make slng tools reference-only, and portable
  • 61c6e66 Make the OpenAI Responses params reachable from one think binding
  • 70a0eec Make the pre-fetch surface say what it actually does
  • 83062d6 Move salon-concierge-v2 out of examples/, and document what it does
  • c5f7258 Move three seams to reset, and the think model to luna
  • a875a49 Move tracing to the Langfuse v4 data model
  • 59d22ac Name a LiveKit tool span after the tool that ran
  • 13c48fd Name one part of a value in a prompt
  • f9713d4 Name the one case the prompt refresh does not cover
  • 1f3a56a Nest tasks in the agent, drop the delegates catalog, rename model/voice
  • 518e3fd Paint the failure prefix, the one line the branding had missed
  • 84fd36a Place the Deploy pages in the story and fix the retired builtin shape
  • ea255d2 Point the salon test package's think model straight at OpenAI
  • 98471c2 Preserve salon slot IDs through task completion
  • dd4074f Print per-span usage when reading a trace back
  • b311ffe Put the three seams back on messages; v2 is the 003 control
  • 9fa5207 Re-render an agent's prompt after its own step writes state
  • e84e44d Read a tool call back on both targets, with its fields intact
  • 083fc1e Read the router's variables per request on both targets
  • e39fbc4 Record both reasons when a caller books and also complains
  • 0b8d6ea Remove the mid-call variable write and the handoff variables list
  • 846b57c Rename input: to expect: on every authored surface
  • af255ec Reorder the docs-site into a story and name Unmute a declarative standard
  • a9b0a9c Repoint four anchors that heading renames on this branch broke
  • 7711500 Restore the unsupported ca...
Read more

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:05
c9ceb10

v0.3.2 — pre-fetch known facts, and a deploy that checks the account first

Highlights:

  • prefetch: resolves known facts before the greeting. A package declares an
    ordered list that reads three sources: clock: (a date under the package's
    timezone:), source: (a call fact the carrier supplies) and tool: (one
    read-only lookup, keyed on a value an earlier entry assigned). Each entry gets
    a 2s budget and cannot raise: a skip leaves the variable on its default and the
    existing guard runs the step that asks. confirm: marks a value the caller has
    not agreed to yet, so it renders in no prompt but its confirming step's and
    satisfies no gate until it is settled. announce: on a delegate covers the
    entry gap, spoken after the guard so a refused step stays silent.
    unmute dev --source from_number=... seeds a call fact into the browser loop,
    which has no carrier. Salon is rebuilt around it and get_current_date is gone.
    A package declaring none of the new fields emits byte-identical output.
  • unmute deploy checks the account before it writes anything. It asks the
    organisation what it already has, compares it with what the package needs, and
    reports every gap in one pass with the line that asked for it and the one action
    that fixes it. Checked: every builtin: tool, every MCP server and exposed
    server tool, and every vault secret and variable including whether it holds a
    value. A code or webhook tool is never reported missing because the push creates
    it. Secrets are filled by handing the prompt to voiceai secret create, so no
    value enters unmute or reaches argv. A refused run leaves build/ and the account
    untouched. Adds unmute resources and --call.
  • mcp: is core on slng. voiceai 0.1.16 resolves a reference by server name and
    copies each tool's schema hash from the platform's own snapshot, so nothing
    connects to the server; unmute warned the opposite and told authors an mcp:
    package could not deploy at all. Both were wrong. Adds mcp.server for a
    platform name carrying a dash or a space. Proven on a live deploy.
  • An agent declares what it can do in tools:, delegates:, handoffs: and
    escalations:. The block a thing is written in is its kind, so kind: and
    controls: are gone. A strict re-spelling: every package compiles byte for byte
    identical on every target.
  • Tracing: salon-concierge moves to Langfuse, and scripts/read_langfuse_trace.py
    reads a unmute dev call back out of it — transcript, tool calls and per-span
    latency, newest trace by default. Coval self-verification is push-based and is
    unaffected.
  • Docs: two new pre-fetch pages (the primitive, and how to decide what to
    pre-fetch), one page that explains the shape of a package before Orchestration
    needs it, and our own measured costs are out of the reader-facing pages.

Breaking:

  • controls: and kind: are removed with no alias. An old package fails as an
    unknown key, with file, line and column.

Changelog

Features

  • c225e36 feat(deploy): check the account before writing anything, and offer to fix what is missing
  • b834613 feat(prefetch): resolve known facts before the greeting
  • 0eddd12 feat(scripts): read a unmute dev call back out of Langfuse
  • 9b05e57 feat(slng): deploy MCP references, and stop reading a name the push never sends
  • 8300d7e feat(spec): four kind-named lists replace the controls block

Bug fixes

  • 70837f3 fix(salon): one cover line for the handover into booking, not two

Others

  • 5524f0a docs(self-verify): say the judge key is yours, not the package's
  • 3810276 langfuse tracing
  • 8e6bc14 required envs for langfuse

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 15:28
4afe709

v0.3.1: one deploy command, deployment names that stop colliding, and honest Coval traces

Highlights:

  • unmute deploy [package-dir] validates, compiles and pushes a package to
    SLNG in one command. It shells out to voiceai agents push --json, so the
    push contract stays in one released binary. A refused push relays every
    problem with the fix line and the dashboard page. Credentials come from
    SLNG_API_KEY, then VOICEAI_API_KEY, then a stored voiceai login profile,
    read from the package's own .env, and the organisation is printed every run.
  • Deployments are now named after the package, not the target. Before this,
    every package deployed as slng, livekit or pipecat, so a second package
    replaced the first one's live agent and two LiveKit packages split one
    worker's dispatch. agent.yaml now requires name:, and a deployment is
    that name joined to its target. This also fixes unmute dev, which minted a
    browser token for a room nothing ever joined.
  • Coval traces are per call again. Pipecat Cloud serves many calls from one
    warm container, and every call after the first was filed under the first
    call's conversation with nothing logged either way. Correlation now resets on
    every call, late spans are dropped instead of misfiled, local runs label
    themselves <name>-local, and one accurate log line replaces the message
    that claimed no trace was exported when one was.
  • Pipecat support raised to 1.8.0, with pipecat-slng >= 0.5.1. 0.5.0 imported a
    private name that 1.8.0 renamed, which broke every emitted bot at import.
  • The salon concierge example sounds like a person. Prompts now separate the
    speech contract from the personality, leave numbers, money and times in plain
    written form so the voice engine normalizes them, and drop the second
    acknowledgment that talked over each tool's announce line. Three defects came
    off a live call, and the evidence sits next to each rule. The skill teaches
    the same shape.
  • Docs: a runbook for the second deploy, including the routing records a rename
    strands, on every target's own page.

Breaking:

  • agent.yaml must carry a name:. A package without one is refused with the
    shape and an example.
  • Deployed identities change name, so the first deploy after this upgrade
    creates a new agent and leaves the old one live. Delete the old one.

Changelog

Features

  • c618dcb feat(deploy): name a deployment after its package, not its target
  • cdb5530 feat(deploy): one command to SLNG, and the guidance a refused push carries
  • 9f0d4fc feat(examples): make the salon concierge sound human, and teach the skill how
  • 69af6b1 feat(pipecat): raise the support window to 1.8.0

Bug fixes

  • 407da02 fix(tracing): file every call in a warm process as its own Coval conversation

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 14:34
f90c17e

v0.3.0 — compile to SLNG, knowledge search, and turn timing you can set

Highlights:

  • New slng target: compile a package straight to the SLNG platform.
  • Knowledge bases: point a tool at your own documents - txt, md or pdf files.
  • Turn timing is yours to set. endpointing_delay is the silence floor, pace
    is the ceiling, and semantic_endpointing can switch the turn model off.
  • Pipecat phone calls are faster and quieter: warm_instances keeps containers
    warm, and the agent no longer interrupts its own greeting on speakerphone.
  • Faster turns on both targets, from pipecat-slng 0.5.0 and the quicker SLNG route.
  • Context Router sends model settings per request, and prompt_suffix adds one
    line to every prompt in a package.
  • Task groups: a step that returns can carry its own prerequisites.
  • Console rebuilt on Bubble Tea and Lip Gloss, with one owner for colour.
  • Versioned docs, a full carrier setup guide, and a changelog that writes itself.

Breaking:

  • The vapi and deepgram targets are retired. deepgram is still a model
    vendor.
  • Local telephony testing is gone. Test phone calls on a deployed agent.

Changelog

Features

  • ed9410e feat(pipecat): warm_instances, so a phone call is not waiting on a cold container
  • 06a77b5 feat(router): send model params in the request body, and add prompt_suffix
  • e15cbdb feat(turn): give a package the turn ceiling, not just the silence floor
  • c129f82 feat: compile to slng, and refuse what slng will not run
  • 394015c feat: knowledge bases, a SLNG-maintained search over the client's own documents
  • a1c8f35 feat: let a returning step carry its own prerequisites
  • 6d3dd57 feat: version the docs, publish the Markdown surface, and a changelog that writes itself

Bug fixes

  • 58b9ff3 fix(pipecat): drop the TwiML parameters nothing reads, and scope call sources to LiveKit
  • c0a9802 fix(pipecat): ship dev_metrics, and stop the agent interrupting itself on a phone leg
  • d6d40e7 fix(smoke): un-rot the L4 fixtures, three stale ones behind one error

Others

  • e1219e3 Fix the reachability gate on a cold module cache
  • 5988d44 Give models.placement.local a row, and a gate that would have caught it
  • 57507e4 Repair the six L4 smokes the examples cut-down left behind
  • d559ba2 Send the router's per-call values per request, and say who answered
  • 0db190b Stop telling operators and coding agents to run a command that is gone
  • 1c0dc33 Take the pipecat-slng 0.5.0 turn fix, and the faster of the two SLNG routes
  • f163d1e Test telephony after deploy, and drop the local path that stood in for it
  • 7b9276c US1: build the console without a form library
  • 71012f1 US2: one owner for terminal colour
  • 7d80c91 US3: remove code nothing reaches
  • 2f65cf9 US4: input rules read as rules, not a chain
  • 88c018e US5: a gate behind each cut
  • 0a25cf3 US6: retire the vapi and deepgram targets