#12596: fix(status): show third-party memory plugins as active instead of unavailable
commands
stale
Cluster:
Memory Management Enhancements
## Summary
Fixes #7273 — `openclaw status` shows "unavailable" for working third-party memory plugins.
**Root cause:** `status.scan.ts` line 157-158 has a hardcoded early return:
```typescript
if (memoryPlugin.slot !== "memory-core") {
return null; // null → renderer shows "unavailable"
}
```
This PR replaces the early `return null` with a proper probe:
1. **If gateway is reachable**: Try `memory.status` RPC call to get entry count from the plugin
2. **If gateway is unreachable**: Return a minimal status object marking the plugin as active but unprobed
## Changes
- **`src/commands/status.scan.ts`**: For non-core plugins, attempt gateway RPC `memory.status` probe. If that fails, return a minimal status object instead of `null`.
- **`src/commands/status.command.ts`**: Detect plugin memory via `memoryPlugin.slot` (not `memory.files === 0`). Render "N entries" when probed or "active" when unprobed.
## Before
```
Memory │ enabled (plugin memory-lancedb) · unavailable
```
## After
```
Memory │ active · plugin memory-lancedb
```
Or when the plugin implements `memory.status` gateway method:
```
Memory │ 345 entries · plugin memory-lancedb
```
## Test plan
- [x] `tsc --noEmit` — zero type errors
- [x] `vitest run src/commands/status.test.ts` — 5/5 tests pass (existing tests cover core memory path)
- [x] Manual: configure `plugins.slots.memory = "memory-lancedb"`, run `openclaw status` → should show "active" instead of "unavailable"
- [ ] Manual: with core memory → output unchanged
## Notes
- **Minimal scope**: 2 files, ~50 lines changed — intentionally scoped to ONLY the status rendering fix
- **No new dependencies, no breaking changes**
- **Aware of #7289**: That PR bundles 32 files including unrelated features. This PR is the minimal fix that solves the user-facing bug.
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR changes the status scan/rendering path for memory so that non-core (`plugins.slots.memory != "memory-core"`) plugins no longer show as “unavailable”.
- In `src/commands/status.scan.ts`, the scanner now returns a minimal `MemoryProviderStatus` snapshot for third‑party plugins instead of `null`, optionally probing the gateway via `memory.status` to get an entry count.
- In `src/commands/status.command.ts`, rendering is updated to treat non-core slots as plugin memory and display either `N entries` (when probed) or `active` (when unprobed), followed by `plugin <slot>`.
Overall this keeps the existing core-memory status output intact while improving the UX for third-party memory plugins.
<h3>Confidence Score: 3/5</h3>
- This PR is likely safe to merge but has a couple of correctness risks in how plugin status is probed and rendered.
- The changes are localized and don’t alter core-memory probing, but the new plugin probe path depends on `callGateway` defaults and a loosely-typed RPC response, which can lead to false “active”/entry counts or contradictory UI in misconfiguration scenarios.
- src/commands/status.scan.ts, src/commands/status.command.ts
<!-- greptile_other_comments_section -->
<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>
<!-- /greptile_comment -->
Most Similar PRs
#21631: feat(doctor): detect memory plugins in memory search health check
by tsukhani · 2026-02-20
82.1%
#14466: fix(status): report memory status for all memory plugins (#14261)
by lailoo · 2026-02-12
77.7%
#4881: docs(plugin): clarify memory-lancedb is bundled (no npm install nee...
by AverageSuami · 2026-01-30
77.0%
#11179: fix(memory): replace confusing "No API key" errors in memory tools ...
by liuxiaopai-ai · 2026-02-07
75.8%
#12665: fix(tools): recognise tool groups that expand to plugin tools in al...
by mcaxtr · 2026-02-09
75.6%
#22327: fix(doctor): use gateway health status for memory search key check
by therk · 2026-02-21
75.4%
#2556: fix(plugin-install): handle existing plugins and filter workspace deps
by longmaba · 2026-01-27
74.8%
#20499: test(plugins): add bundled+config duplicate discovery regression
by dcol91863 · 2026-02-19
74.8%
#20338: feat: add daedalus-memory plugin — trust-gradient memory with tri-c...
by CmdrFALCO · 2026-02-18
74.7%
#8713: feat: gateway memory monitor, install linger, docs and failover
by quratus · 2026-02-04
74.4%