openclaw - ✅(Solved) Fix [Bug] resolveBackgroundTaskTerminalResult returns empty terminalSummary; progressSummary truncated at 240 chars [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#74070Fetched 2026-04-30 06:29:00
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Author
Timeline (top)
cross-referenced ×2commented ×1

Error Message

Background-task completions delivered via sessions_send arrive as bare "Background task done" with no payload. The terminalSummary field is null for non-error completions, so callers see only the boilerplate label and have to go look up the task to read its output.

Fix Action

Fix / Workaround

Patched locally since 2026-04-17; user-facing completion summaries went from "Background task done" to actually useful one-liners.

PR fix notes

PR #74103: fix(background-task): return progressSummary as terminalSummary; raise progress cap to 1200

Description (problem / solution / changelog)

Fix #74070\n\n1. resolveBackgroundTaskTerminalResult() now falls back to progressSummary as terminalSummary for non-blocked completions (was returning {})\n2. Raises ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH from 240 to 1200 chars

Changed files

  • src/acp/control-plane/manager.core.ts (modified, +2/-2)

Code Example

function resolveBackgroundTaskTerminalResult(...) {
    ...
    return {};   // for non-blocked completions, terminalSummary never gets set
}

---

const cleaned = normalized.replace(/\s*ANNOUNCE_SKIP\s*$/i, "").trim();
   if (!cleaned) return {};
   return { terminalSummary: cleaned };
RAW_BUFFERClick to expand / collapse

Version: OpenClaw 2026.4.26 (also 4.21 / 4.15)

File: dist/manager-BIQ5eGBZ.jsresolveBackgroundTaskTerminalResult()

Symptom

Background-task completions delivered via sessions_send arrive as bare "Background task done" with no payload. The terminalSummary field is null for non-error completions, so callers see only the boilerplate label and have to go look up the task to read its output.

Additionally, even when progressSummary is populated, it gets clipped at ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH = 240 characters — too short for a useful one-line summary of any non-trivial task.

Cause

function resolveBackgroundTaskTerminalResult(...) {
    ...
    return {};   // for non-blocked completions, terminalSummary never gets set
}

The function returns an empty object instead of falling back to progressSummary when nothing else is available.

Suggested fix

  1. When the function would return {} for a non-blocked completion, pass progressSummary through as terminalSummary:
    const cleaned = normalized.replace(/\s*ANNOUNCE_SKIP\s*$/i, "").trim();
    if (!cleaned) return {};
    return { terminalSummary: cleaned };
  2. Raise ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH from 240 to ~1200. 240 truncates mid-sentence routinely.

Patched locally since 2026-04-17; user-facing completion summaries went from "Background task done" to actually useful one-liners.

extent analysis

TL;DR

Update the resolveBackgroundTaskTerminalResult function to return progressSummary as terminalSummary when no other summary is available and consider increasing ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH to improve summary usefulness.

Guidance

  • Review the resolveBackgroundTaskTerminalResult function to ensure it correctly handles non-blocked completions by returning progressSummary as terminalSummary when terminalSummary is not set.
  • Verify that increasing ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH to a higher value (e.g., 1200) improves the usefulness of task summaries without causing other issues.
  • Test the updated function with various task completion scenarios to ensure that summaries are correctly populated and not truncated excessively.
  • Consider applying the suggested fix to all affected versions (2026.4.26, 4.21, 4.15) to ensure consistency across different environments.

Example

function resolveBackgroundTaskTerminalResult(...) {
    ...
    const cleaned = normalized.replace(/\s*ANNOUNCE_SKIP\s*$/i, "").trim();
    if (!cleaned) {
        // Fall back to progressSummary when terminalSummary is not available
        return { terminalSummary: progressSummary };
    }
    return { terminalSummary: cleaned };
}

Notes

The suggested fix assumes that progressSummary is a suitable fallback for terminalSummary when the latter is not available. However, this might not always be the case, and additional logic might be needed to handle different task completion scenarios.

Recommendation

Apply the workaround by updating the resolveBackgroundTaskTerminalResult function and increasing ACP_BACKGROUND_TASK_PROGRESS_MAX_LENGTH to improve task summary usefulness, as this approach directly addresses the identified issues and has been patched locally with positive results.

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 [Bug] resolveBackgroundTaskTerminalResult returns empty terminalSummary; progressSummary truncated at 240 chars [1 pull requests, 1 comments, 2 participants]