Skip to content

chore: bump agents from 0.17.4 to 0.24.0 in /client - #32

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/client/agents-0.24.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/client/agents-0.24.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 28, 2026

Copy link
Copy Markdown

Bumps agents from 0.17.4 to 0.24.0.

Release notes

Sourced from agents's releases.

agents@0.24.0

Minor Changes

  • #2249 ebab868 Thanks @​mattzcarey! - WebSockets speaks the Agent protocol for plain hosts, and gains a Cap'n Web transport.

    • A plain Durable Object composed with WebSockets now works with useAgent and AgentClient: the capability sends the identity frame on connect (protocol: false leaves the connect sequence to the host) and serves callables — an RpcTarget whose prototype methods are the host's remote interface.
    • useAgent({ transport }) and AgentClient({ transport }) pick the wire. "cf-websocket" (default) is the hibernating socket; call()/stub send JSON rpc frames. "capnweb" runs one Cap'n Web session that carries protocol frames and serves callables natively: call()/stub invoke them directly, an RpcTarget result is a live stub, a ReadableStream streams, calls pipeline. The Durable Object stays in memory while a capnweb connection is open. PartySocket still owns reconnection on both.
    • @callable() decorators remain the JSON-wire interface of Agent; an Agent wanting native calls passes callables.
    • The experimental ?__agents_rpc=capnweb endpoint from 0.23.0 is removed.
    • LifecycleServices exposes name and className.
  • #2245 beff78a Thanks @​mattzcarey! - Add the Queue Lifecycle capability (agents/queue) for durable background work. Each pushed item is a job in the Lifecycle job queue, due immediately, run from the alarm loop one at a time in push order with Lifecycle's retry, deadman, and memory-limit policy. Callbacks are registered in the constructor and typed at declaration and push; push() accepts a stable id (upsert) and per-item retry.

    Agent.queue() and friends now delegate to the capability. Queued callbacks run from the alarm loop in a fresh invocation, so they no longer see the enqueuing request's connection or request through getCurrentAgent() (the agent itself is still available). The cf_agents_queues table and the in-isolate drain are gone; legacy rows migrate into the job queue on the next start. queue() accepts options.id; dequeue, dequeueAll, dequeueAllByCallback, getQueue, and getQueues are now asynchronous; and QueueItem.created_at is renamed createdAt. LifecycleServices.starting() is replaced by status(), which returns "zero" | "starting" | "started".

    Think's workflow-notification outbox and submission drain now run as queue items; the cf_think_workflow_notifications table migrates and is dropped on start.

    Both one-shot migrations (cf_agents_queues in Queue, cf_think_workflow_notifications in Think) are temporary upgrade paths and will be removed in the next minor release, by which point every started object has migrated. Deployments skipping this release should upgrade through it. Workflow-notification delivery retries with backoff capped at ten minutes (previously five) and gives up after twelve hours of continuous failure (previously never), reporting the failure through onError.

  • #2179 43a58a1 Thanks @​AntoniTok! - Move agent state into the opt-in State Lifecycle capability.

    State was one method doing four jobs inside Agent — validate, persist, broadcast, notify. It moves wholesale into a State capability that owns storage and change ordering, so any Lifecycle host gets durable, validated state without inheriting Agent:

    new State({
      initialState: { count: 0 },
      validateStateChange: (next, source) => validate(next, source),
      onChanged: (state, source) => notify(state, source),
    });

    The capability owns the cf_agents_state state row, lazy load with an in-memory cache, initial-state seeding, and validated persistence. It runs only the onStart hook (versioned schema init under its own cf_agents:state_schema_version key) and reaches Lifecycle only for storage — no alarm, no request path. It never touches connections.

    Host-owned behavior is injected, not moved: validateStateChange stays an overridable Agent method and the post-change onChanged hook is passed into State as a plain option. Synchronous and asynchronous notification hooks are both supported. Agent keeps its initialState field and seeds it from the state getter (standalone hosts pass initialState to State directly). Broadcast and the notification hook stay on Agent, and the onMessage state branch stays too; only its inner write delegates to the capability.

    State is the only owner of cf_agents_state: it creates the table,

... (truncated)

Changelog

Sourced from agents's changelog.

0.24.0

Minor Changes

  • #2249 ebab868 Thanks @​mattzcarey! - WebSockets speaks the Agent protocol for plain hosts, and gains a Cap'n Web transport.

    • A plain Durable Object composed with WebSockets now works with useAgent and AgentClient: the capability sends the identity frame on connect (protocol: false leaves the connect sequence to the host) and serves callables — an RpcTarget whose prototype methods are the host's remote interface.
    • useAgent({ transport }) and AgentClient({ transport }) pick the wire. "cf-websocket" (default) is the hibernating socket; call()/stub send JSON rpc frames. "capnweb" runs one Cap'n Web session that carries protocol frames and serves callables natively: call()/stub invoke them directly, an RpcTarget result is a live stub, a ReadableStream streams, calls pipeline. The Durable Object stays in memory while a capnweb connection is open. PartySocket still owns reconnection on both.
    • @callable() decorators remain the JSON-wire interface of Agent; an Agent wanting native calls passes callables.
    • The experimental ?__agents_rpc=capnweb endpoint from 0.23.0 is removed.
    • LifecycleServices exposes name and className.
  • #2245 beff78a Thanks @​mattzcarey! - Add the Queue Lifecycle capability (agents/queue) for durable background work. Each pushed item is a job in the Lifecycle job queue, due immediately, run from the alarm loop one at a time in push order with Lifecycle's retry, deadman, and memory-limit policy. Callbacks are registered in the constructor and typed at declaration and push; push() accepts a stable id (upsert) and per-item retry.

    Agent.queue() and friends now delegate to the capability. Queued callbacks run from the alarm loop in a fresh invocation, so they no longer see the enqueuing request's connection or request through getCurrentAgent() (the agent itself is still available). The cf_agents_queues table and the in-isolate drain are gone; legacy rows migrate into the job queue on the next start. queue() accepts options.id; dequeue, dequeueAll, dequeueAllByCallback, getQueue, and getQueues are now asynchronous; and QueueItem.created_at is renamed createdAt. LifecycleServices.starting() is replaced by status(), which returns "zero" | "starting" | "started".

    Think's workflow-notification outbox and submission drain now run as queue items; the cf_think_workflow_notifications table migrates and is dropped on start.

    Both one-shot migrations (cf_agents_queues in Queue, cf_think_workflow_notifications in Think) are temporary upgrade paths and will be removed in the next minor release, by which point every started object has migrated. Deployments skipping this release should upgrade through it. Workflow-notification delivery retries with backoff capped at ten minutes (previously five) and gives up after twelve hours of continuous failure (previously never), reporting the failure through onError.

  • #2179 43a58a1 Thanks @​AntoniTok! - Move agent state into the opt-in State Lifecycle capability.

    State was one method doing four jobs inside Agent — validate, persist, broadcast, notify. It moves wholesale into a State capability that owns storage and change ordering, so any Lifecycle host gets durable, validated state without inheriting Agent:

    new State({
      initialState: { count: 0 },
      validateStateChange: (next, source) => validate(next, source),
      onChanged: (state, source) => notify(state, source),
    });

    The capability owns the cf_agents_state state row, lazy load with an in-memory cache, initial-state seeding, and validated persistence. It runs only the onStart hook (versioned schema init under its own cf_agents:state_schema_version key) and reaches Lifecycle only for storage — no alarm, no request path. It never touches connections.

    Host-owned behavior is injected, not moved: validateStateChange stays an overridable Agent method and the post-change onChanged hook is passed into State as a plain option. Synchronous and asynchronous notification hooks are both supported. Agent keeps its initialState field and seeds it from the state getter (standalone hosts pass initialState to State directly). Broadcast and the notification hook stay on Agent, and the onMessage state branch stays too; only its inner write delegates to the capability.

... (truncated)

Commits
  • c076e4c Version Packages (#2251)
  • 0fd3c8b fix(think): preserve scheduled retries across restarts (#2297)
  • 16b6856 feat(agents): add the provider-agnostic browser interaction contract (#2291)
  • 9efee5f fix: security dependency updates (vitest, valibot, smol-toml, hono, astro) (#...
  • f6e556f fix(agents): preserve fiber result when cleanup fails (#2244)
  • 46760e6 refactor(agents): WebSockets owns the Agent protocol's state sync and connect...
  • ee6a8cf fix(e2e): make the nightly e2e suites green (#2256)
  • 43a58a1 feat(agents): move state into an opt-in Lifecycle capability (agents/state) (...
  • beff78a feat(queue): durable Queue capability over the Lifecycle job queue (agents/qu...
  • ebab868 feat(agents): WebSockets speaks the Agent protocol for plain hosts; Cap'n Web...
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [agents](https://github.com/cloudflare/agents/tree/HEAD/packages/agents) from 0.17.4 to 0.24.0.
- [Release notes](https://github.com/cloudflare/agents/releases)
- [Changelog](https://github.com/cloudflare/agents/blob/main/packages/agents/CHANGELOG.md)
- [Commits](https://github.com/cloudflare/agents/commits/agents@0.24.0/packages/agents)

---
updated-dependencies:
- dependency-name: agents
  dependency-version: 0.24.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Sep 28, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: dependencies. Please create it before Dependabot can add it to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot @github

dependabot Bot commented on behalf of github Oct 13, 2026

Copy link
Copy Markdown
Author

Superseded by #35.

@dependabot dependabot Bot closed this Oct 13, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/client/agents-0.24.0 branch October 13, 2026 03:40
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.

0 participants