openclaw - ✅(Solved) Fix [Feature]: Support long-running node-host commands with progress updates [1 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#74845Fetched 2026-05-01 05:40:47
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
2
Author
Timeline (top)
commented ×1cross-referenced ×1labeled ×1

Add first-class support for long-running node-host commands that can report progress and intermediate updates back to the caller.

Root Cause

Add first-class support for long-running node-host commands that can report progress and intermediate updates back to the caller.

Fix Action

Fix / Workaround

Keep solving this with integration-specific workarounds This can work for a single integration, but it does not feel like a good long-term platform pattern. It makes behavior less consistent and raises maintenance cost over time.

Use polling instead of intermediate updates Polling can sometimes approximate progress, but it tends to produce a worse user experience and extra overhead. It also still leaves long-running node-side workflows feeling like a workaround rather than a supported capability.

PR fix notes

PR #68857: feat: add gateway.nodes.invokeTimeoutMs config option

Description (problem / solution / changelog)

Fixes #68090

Summary

The node.invoke timeout was hardcoded to 30 seconds with no way to configure it. Users running long operations through node commands had to accept the fixed timeout.

Changes

  1. src/config/types.gateway.ts — Added invokeTimeoutMs?: number to GatewayNodesConfig
  2. src/gateway/node-registry.ts — Added defaultInvokeTimeoutMs property (default 30000), used as fallback when no per-call timeout is specified
  3. src/gateway/server.impl.ts — Wires gateway.nodes.invokeTimeoutMs config to the node registry at startup

Usage

{
  "gateway": {
    "nodes": {
      "invokeTimeoutMs": 60000
    }
  }
}

Test Plan

  • Without config: verify default 30s timeout behavior is unchanged
  • With gateway.nodes.invokeTimeoutMs: 60000: verify node.invoke uses 60s timeout
  • With per-call timeoutMs: verify per-call value takes precedence over config default

Changed files

  • src/config/types.gateway.ts (modified, +2/-0)
  • src/gateway/node-registry.ts (modified, +3/-1)
  • src/gateway/server.impl.ts (modified, +3/-0)
RAW_BUFFERClick to expand / collapse

Summary

Add first-class support for long-running node-host commands that can report progress and intermediate updates back to the caller.

Problem to solve

Right now, node-host commands seem best suited for short-lived request/response work. That makes more persistent or interactive node-side tasks harder to support cleanly.

In practice, some workflows need a node-side command to stay alive for longer, send intermediate updates, and only return a final result at the end. Without a standard path for that, these workflows tend to drift toward integration-specific handling instead of using a reusable platform capability.

From a maintainer perspective, this feels less like “one integration wants a custom feature” and more like “the platform may be missing a useful primitive for longer-running node-side work.”

Proposed solution

A helpful direction might be to introduce a standard streaming or long-running command path alongside the existing one-shot node invoke flow.

We are not attached to a specific API shape, but something in this area would likely help:

keep the current one-shot node command behavior as-is add an opt-in path for commands that need to send progress or intermediate events let the caller receive those updates before the final result arrives keep the same overall security and lifecycle expectations as normal node commands

From our point of view, the important part is not the exact naming. It is having a shared mechanism that long-running node-host workflows can build on, instead of each integration needing its own special path.

If this ends up looking like a streaming variant of the current node invoke flow, that seems like it would address the need well. But we would defer to maintainer judgment on the right shape.

Alternatives considered

Keep solving this with integration-specific workarounds This can work for a single integration, but it does not feel like a good long-term platform pattern. It makes behavior less consistent and raises maintenance cost over time.

Use polling instead of intermediate updates Polling can sometimes approximate progress, but it tends to produce a worse user experience and extra overhead. It also still leaves long-running node-side workflows feeling like a workaround rather than a supported capability.

Impact

Reusable platform value: This would help more than one integration. It creates a better base for any node-side workflow that takes longer than a single request/response cycle. Lower maintenance cost: A shared capability is easier to maintain than multiple special-case implementations. Cleaner extensibility: It gives plugin authors a more natural path for long-running node-side behavior. Better UX: Users can see progress and intermediate updates instead of waiting for a single final response. Better architectural direction: It helps OpenClaw grow around reusable capabilities instead of accumulating one-off exceptions.

Evidence/examples

We ran into this through real remote agent workflows, where node-side work can stay active for a while and benefits a lot from progress-style updates instead of a single final reply.

So this request comes from a concrete implementation need, not just a hypothetical API preference.

Additional information

We do have a more detailed internal analysis of one possible path forward, but for upstream the main point is probably simpler:

A standard long-running / streaming node command capability seems like it would make the platform more generally useful, while also reducing pressure for integration-specific core handling.

If helpful, we can also share a more concrete example of the workflow that led us to this request.

extent analysis

TL;DR

Introduce a standard streaming or long-running command path for node-host commands to support progress updates and intermediate events.

Guidance

  • Identify the specific requirements for long-running node-host commands, such as progress updates and intermediate events, to inform the design of the new capability.
  • Consider the security and lifecycle expectations for normal node commands and ensure the new capability aligns with these standards.
  • Evaluate the trade-offs between a streaming variant of the current node invoke flow and other potential approaches, such as polling.
  • Develop a shared mechanism for long-running node-host workflows to build on, rather than relying on integration-specific workarounds.

Example

No specific code example is provided, as the issue focuses on the need for a new capability rather than a specific implementation.

Notes

The introduction of a standard long-running or streaming node command capability may require significant changes to the existing platform architecture. It is essential to carefully consider the implications and potential impact on existing integrations and workflows.

Recommendation

Apply a workaround by introducing a standard streaming or long-running command path, as this seems to be the most promising approach to address the need for progress updates and intermediate events in node-host commands. This will provide a reusable platform capability, reduce maintenance costs, and improve the user experience.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Feature]: Support long-running node-host commands with progress updates [1 pull requests, 1 comments, 2 participants]