Skip to content

πŸ¦‹ New version release - #563

Merged
brentrager merged 1 commit into
mainfrom
changeset-release/main
Aug 30, 2026
Merged

brentrager merged 1 commit into
mainfrom
changeset-release/main

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@smooai/smooth-operator@1.58.9

Patch Changes

  • 6bfc3ed: feat(dotnet,python,ts,go): let a host supply the turn's memory β€” durable auto-recall off Rust (th-ebe27d)

    Rust th-374b27: memory_for_access seam β€” durable auto-recall into every turnΒ #330 put memory_for_access on StorageAdapter and had the server runner thread the
    result into the engine's agent options, which is what lights up Big Smooth's durable
    auto-recall. The four sibling servers never did β€” and the gap was invisible, because all
    five engine cores already implement Memory and already recall relevant entries into
    context
    . The capability was fully built on both ends with nothing connecting them: no
    matter what store a deployment had, every turn on these servers ran without auto-recall.

    Each server now takes a MemoryProvider (IMemoryProvider in C#) with one method β€”
    memory_for_access(access) β€” resolved per turn and passed to the engine as
    AgentOptions.memory:

    seam install
    C# IMemoryProvider DI (services.GetService<IMemoryProvider>())
    Python MemoryProvider ServerState.memory_provider
    TypeScript MemoryProvider serve({ memoryProvider })
    Go MemoryProvider WithMemoryProvider(...)

    access is threaded exactly as it is for knowledge, so a multi-tenant host can bind memory
    to the requester's org/user; single-tenant hosts β€” Big Smooth's daemon, the reason the seam
    exists β€” ignore it, so each language also ships a StaticMemoryProvider over one store.

    Nothing changes for anyone who does not opt in. No provider, or a provider that returns
    nothing for this caller, leaves the turn byte-for-byte what it was β€” and that is a test, not
    a claim: each language asserts the no-provider and the declining-provider paths inject
    nothing, alongside the positive case and a relevance case (an unrelated message recalls
    nothing, so this is not a blanket dump of every stored memory into every turn).

    Five tests per language, named after their Rust counterparts in
    rust/smooth-operator-server/tests/injection_seams.rs, all four mutation-checked β€” dropping
    the one line that hands memory to the engine fails them.

    Two notes for whoever picks this up next. The recall block's header text is deliberately
    not asserted
    : the five cores currently inject three different strings for it (th-ffaeae),
    so the tests assert the recalled content reaches the model, which is the behavior the seam
    exists for. And the bundled lexical scorer counts raw token overlap with no stopword
    filter
    , so in practice a single shared "the" scores a hit β€” worth knowing before trusting
    recall precision in production.

    No wire-protocol change.

@smooai/smooth-operator-web-chat-example@0.0.122

Patch Changes

  • Updated dependencies [6bfc3ed]
    • @smooai/smooth-operator@1.58.9

@brentrager
brentrager merged commit 08cf337 into main Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant