Skip to content

fix(active-memory): fast-fail stalled recall paths#76183

Merged
clawsweeper[bot] merged 4 commits intomainfrom
clawsweeper/automerge-openclaw-openclaw-75761
May 2, 2026
Merged

fix(active-memory): fast-fail stalled recall paths#76183
clawsweeper[bot] merged 4 commits intomainfrom
clawsweeper/automerge-openclaw-openclaw-75761

Conversation

@clawsweeper
Copy link
Copy Markdown
Contributor

@clawsweeper clawsweeper Bot commented May 2, 2026

Repair plan for #75761:

  • Rebase/refresh fix/active-memory-empty-search-fast-fail onto current main (9bedcff904dda8e153e1006b868b0f0532abecdf) and resolve the dirty merge state.
  • Keep the implementation limited to Active Memory runtime/tests and the existing changelog entry.
  • Address the current blockers: check-lint, check-additional-extension-bundled, check-additional, and the aggregate check failure.
  • Preserve the intended lifecycle: Active Memory still runs in before_prompt_build; useful recall still injects <active_memory_plugin>; clean zero-hit/unavailable Memory Search and hard timeout paths resolve as empty/timeout without injecting timeout boilerplate.
  • Keep QMD recall quality work in fix(memory): improve QMD recall for channel queries #75860 separate.

Validation before re-review:

  • pnpm exec oxfmt --check --threads=1 CHANGELOG.md extensions/active-memory/index.ts extensions/active-memory/index.test.ts
  • pnpm exec oxlint extensions/active-memory/index.ts extensions/active-memory/index.test.ts
  • pnpm test extensions/active-memory/index.test.ts
  • pnpm check:changed

After repair, run a fresh ClawSweeper/Codex review on the exact repaired head before any merge-capable applicator proceeds.

ClawSweeper 🐠 replacement reef notes:

fish notes: model gpt-5.5, reasoning high; reviewed against 3a55e61.

@clawsweeper clawsweeper Bot added size: L clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation labels May 2, 2026
@clawsweeper
Copy link
Copy Markdown
Contributor Author

clawsweeper Bot commented May 2, 2026

Codex review: passed.

Summary
This PR adds Active Memory transcript polling to fast-fail terminal zero-hit or unavailable recall tool results, filters timeout boilerplate, extends focused regressions, and adds a changelog fix entry.

Reproducibility: yes. The PR includes focused regressions that reproduce terminal zero-hit search, unavailable search, non-empty details.results with debug.hits: 0, memory_get misses, and timeout boilerplate behavior.

Next step before merge
No repair lane is needed; this automerge-opted PR has no blocking review findings and should proceed through exact-head CI and mergeability gates.

Security
Cleared: The diff only changes Active Memory runtime logic, colocated tests, and a changelog entry; it does not alter dependencies, workflows, package scripts, permissions, or secret handling.

Review details

Best possible solution:

Merge this scoped Active Memory fix once exact-head CI and automerge gates are green, leaving the QMD recall-quality changes to the separate open follow-up.

Do we have a high-confidence way to reproduce the issue?

Yes. The PR includes focused regressions that reproduce terminal zero-hit search, unavailable search, non-empty details.results with debug.hits: 0, memory_get misses, and timeout boilerplate behavior.

Is this the best way to solve the issue?

Yes. The repaired approach is narrow and plugin-owned: it observes the existing transcript/tool-result contract, preserves useful non-empty recall results, and avoids pulling separate QMD quality work into this timeout fix.

What I checked:

  • Current main behavior: Current main races the embedded recall subagent only against the timeout promise, so it has no terminal memory-search watcher and still waits until timeout for clean empty/unavailable recall paths. (extensions/active-memory/index.ts:2315, 192e750035e7)
  • PR terminal result guard: The repaired head classifies terminal empty search only when the returned details.results array is empty when present, otherwise falling back to debug.hits === 0; this preserves non-empty returned results even when debug telemetry reports zero hits. (extensions/active-memory/index.ts:1600, e5ea3f1a7a4e)
  • PR race integration: The repaired head races terminalMemorySearchWatch.promise with the subagent and timeout, aborts the embedded run when terminal recall wins, persists an empty status, and resets the timeout circuit breaker. (extensions/active-memory/index.ts:2470, e5ea3f1a7a4e)
  • Memory Core result contract: Memory Core sets debug.hits from raw memory hits before merging supplement results into the final returned results array, which supports the repaired non-empty-results guard. (extensions/memory-core/src/tools.ts:310, 192e750035e7)
  • Regression coverage: The PR adds focused tests for zero-hit fast-fail, non-empty results with debug.hits: 0, unavailable search, memory_get miss non-terminal behavior, hard timeout, and timeout-boilerplate filtering. (extensions/active-memory/index.test.ts:2305, e5ea3f1a7a4e)
  • Validation state: The repair comment reports pnpm check:changed; the public check-runs API for the exact repaired head showed no failures at inspection time, with 68 success, 9 skipped, and 2 still in progress. (e5ea3f1a7a4e)

Likely related people:

  • steipete: Recent Active Memory timeout/setup-grace work, timeout-test stabilization, and adjacent Memory Core tool-config work touched the same recall/runtime surface. (role: recent maintainer; confidence: high; commits: 59449d7f19cc, d85d782a0a27, 8a8cc8dc9fca; files: extensions/active-memory/index.ts, extensions/active-memory/index.test.ts, extensions/memory-core/src/tools.ts)
  • Takhoffman: Prior merged Active Memory bundled recall/QMD work changed the same recall lifecycle, and the PR discussion shows Takhoffman re-enabled ClawSweeper automerge after an earlier pause. (role: adjacent owner; confidence: medium; commits: f256eeba431b, 885209ed0330, 4f00b769251d; files: extensions/active-memory/index.ts, extensions/memory-core/src/tools.ts)
  • vyctorbrzezowski: Merged work exposed memory tools to Active Memory recall runs, directly adjacent to this PR's memory_recall/memory_search/memory_get behavior. (role: adjacent owner; confidence: medium; commits: eabab1f64f9e; files: extensions/active-memory/index.ts, extensions/active-memory/index.test.ts)

Remaining risk / open question:

  • Exact-head CI still had two in-progress check runs at inspection time, so merge should remain gated on final CI and mergeability.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 192e750035e7.

@clawsweeper
Copy link
Copy Markdown
Contributor Author

clawsweeper Bot commented May 2, 2026

🦞🦞
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=e5ea3f1a7a4e84f55422c426b6471179d23b2c53)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-05-02T22:23:03Z
Merge commit: ae82a39150f9

What merged:

  • This PR adds Active Memory transcript polling to fast-fail terminal zero-hit or unavailable recall tool results, filters timeout boilerplate, extends focused regressions, and adds a changelog fix entry.
  • Reproducibility: yes. The PR includes focused regressions that reproduce terminal zero-hit search, unavailab ... rch, non-empty details.results with debug.hits: 0, memory_get misses, and timeout boilerplate behavior.

Fixups included:

  • Included follow-up commit: fix(active-memory): fast-fail stalled recall paths
  • Included follow-up commit: fix(clawsweeper): address review for automerge-openclaw-openclaw-7576…
  • Included follow-up commit: fix(clawsweeper): reconcile automerge-openclaw-openclaw-75761 with ma…
  • Ran the ClawSweeper repair loop before final review.

The automerge loop is complete.

Automerge progress:

  • 2026-05-02 22:11:35 UTC review requested repair [`3a55e615b3a1`](https://github.com/openclaw/openclaw/commit/3a55e615b3a14cc383c6c37dad690faad0bce3b2) (structured ClawSweeper marker: fix-required (finding=review-feedback sha=3a55e6...)
  • 2026-05-02 17:41:46 UTC repair queued [`3a55e615b3a1`](https://github.com/openclaw/openclaw/commit/3a55e615b3a14cc383c6c37dad690faad0bce3b2) (autonomous) Run: https://github.com/openclaw/clawsweeper/actions/runs/25257889652
  • 2026-05-02 18:11:42 UTC repair completed (no branch change) in 27m 40s Run: https://github.com/openclaw/clawsweeper/actions/runs/25257889652 source PR fix(active-memory): fast-fail stalled recall paths #76183 is paused by clawsweeper:human-review; refusing to mutate the PR branch
  • 2026-05-02 22:07:46 UTC review queued [`3a55e615b3a1`](https://github.com/openclaw/openclaw/commit/3a55e615b3a14cc383c6c37dad690faad0bce3b2) (queued)
  • 2026-05-02 21:57:25 UTC repair queued [`3a55e615b3a1`](https://github.com/openclaw/openclaw/commit/3a55e615b3a14cc383c6c37dad690faad0bce3b2) (autonomous) Run: https://github.com/openclaw/clawsweeper/actions/runs/25262875217
  • 2026-05-02 22:19:07 UTC repair completed [`e5ea3f1a7a4e`](https://github.com/openclaw/openclaw/commit/e5ea3f1a7a4e84f55422c426b6471179d23b2c53) (branch updated) in 19m 15s Run: https://github.com/openclaw/clawsweeper/actions/runs/25262875217 initial automerge rebase is delegated to Codex repair
  • 2026-05-02 22:19:07 UTC review queued [`e5ea3f1a7a4e`](https://github.com/openclaw/openclaw/commit/e5ea3f1a7a4e84f55422c426b6471179d23b2c53) (after repair)
  • 2026-05-02 22:22:37 UTC review passed [`e5ea3f1a7a4e`](https://github.com/openclaw/openclaw/commit/e5ea3f1a7a4e84f55422c426b6471179d23b2c53) (structured ClawSweeper verdict: pass (sha=e5ea3f1a7a4e84f55422c426b6471179d23b2...)
  • 2026-05-02 22:23:05 UTC merged [`e5ea3f1a7a4e`](https://github.com/openclaw/openclaw/commit/e5ea3f1a7a4e84f55422c426b6471179d23b2c53) (merged by ClawSweeper automerge)

@Takhoffman
Copy link
Copy Markdown
Contributor

@clawsweeper stop

@clawsweeper clawsweeper Bot added the clawsweeper:human-review Needs maintainer review before ClawSweeper can continue label May 2, 2026
@clawsweeper
Copy link
Copy Markdown
Contributor Author

clawsweeper Bot commented May 2, 2026

🦞🦞
Got it. ClawSweeper will leave this item for human review.

I added clawsweeper:human-review and paused the automation trail until a maintainer asks again.

@Takhoffman
Copy link
Copy Markdown
Contributor

@clawsweeper automerge

@clawsweeper clawsweeper Bot removed the clawsweeper:human-review Needs maintainer review before ClawSweeper can continue label May 2, 2026
@clawsweeper clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-75761 branch from 3a55e61 to e5ea3f1 Compare May 2, 2026 22:19
@clawsweeper clawsweeper Bot merged commit ae82a39 into main May 2, 2026
81 checks passed
@clawsweeper clawsweeper Bot deleted the clawsweeper/automerge-openclaw-openclaw-75761 branch May 2, 2026 22:23
lxe pushed a commit to lxe/openclaw that referenced this pull request May 6, 2026
Summary:
- This PR adds Active Memory transcript polling to fast-fail terminal zero-hit or unavailable recall tool results, filters timeout boilerplate, extends focused regressions, and adds a changelog fix entry.
- Reproducibility: yes. The PR includes focused regressions that reproduce terminal zero-hit search, unavailab ... rch, non-empty `details.results` with `debug.hits: 0`, memory_get misses, and timeout boilerplate behavior.

ClawSweeper fixups:
- Included follow-up commit: fix(active-memory): fast-fail stalled recall paths
- Included follow-up commit: fix(clawsweeper): address review for automerge-openclaw-openclaw-7576…
- Included follow-up commit: fix(clawsweeper): reconcile automerge-openclaw-openclaw-75761 with ma…
- Ran the ClawSweeper repair loop before final review.

Validation:
- ClawSweeper review passed for head e5ea3f1.
- Required merge gates passed before the squash merge.

Prepared head SHA: e5ea3f1
Review: openclaw#76183 (comment)

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: codexGW <9350182+codexGW@users.noreply.github.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
Summary:
- This PR adds Active Memory transcript polling to fast-fail terminal zero-hit or unavailable recall tool results, filters timeout boilerplate, extends focused regressions, and adds a changelog fix entry.
- Reproducibility: yes. The PR includes focused regressions that reproduce terminal zero-hit search, unavailab ... rch, non-empty `details.results` with `debug.hits: 0`, memory_get misses, and timeout boilerplate behavior.

ClawSweeper fixups:
- Included follow-up commit: fix(active-memory): fast-fail stalled recall paths
- Included follow-up commit: fix(clawsweeper): address review for automerge-openclaw-openclaw-7576…
- Included follow-up commit: fix(clawsweeper): reconcile automerge-openclaw-openclaw-75761 with ma…
- Ran the ClawSweeper repair loop before final review.

Validation:
- ClawSweeper review passed for head e5ea3f1.
- Required merge gates passed before the squash merge.

Prepared head SHA: e5ea3f1
Review: openclaw#76183 (comment)

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: codexGW <9350182+codexGW@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant