# Reported issues for plur

Pod holds 23 of 131 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [plur](/mcp/plur).

## Most discussed

### plur_feedback cannot resolve ANY remote-scoped engram — the relevance loop is dead for team knowledge

Two defects, found while investigating the wrap-up's learning-classifier report. They compound, and the second is the serious one.

## Reproduction (live, on the installed 0.17.x MCP)

```
plur_recall("audit subagents revert-checks isolation worktree")
  → id: "ENG-GPL-2026-08-13-025", scope: "group:plur/plur-ai/engineering"   ✅ found

plur_feedback("ENG-GPL-2026-08-13-025", "positive")   → "Engram not found"  ❌
plur_feedback("ENG-2026-08-13-025",     "positive")   → "Engram not found"  ❌

# con

[Read the thread](https://github.com/plur-ai/plur/issues/907) · 2026-08-13 · closed · outside contributor · 11 comments

### plur_learn: intermittent whole-payload drop on v0.16.1 (received_fields:[]) — not deterministically the tags array (refines #297)

## Summary

Follow-up to #297 (closed, `upstream-bug`). On `@plur-ai/mcp` **v0.16.1** the same failure signature recurs — the **entire arguments object arrives empty** (server reports `received_fields: []` → `"Invalid arguments: statement: Required"`) — but new evidence **contradicts #297's conclusion** that a `tags` array is the deterministic trigger. The drop is **intermittent** and not tied to array-typed parameters at all.

## Environment

- `@plur-ai/mcp` **v0.16.1** (`plur_status` → `versi

[Read the thread](https://github.com/plur-ai/plur/issues/772) · 2026-07-31 · closed · outside contributor · 5 comments

### Comms: publish Cursor support article on dev.to (scheduled 2026-07-17)

## What

Publish the Cursor support article drafted 2026-07-13. Positioned for Cursor users hitting the 40-tool MCP budget limit.

**Draft:** \`1-tracks/comms/drafts/plur-cursor-support-devto-2026-07-13.md\`
Status: \`draft-fact-checked\` (technical facts verified 2026-07-12 by heartbeat)

## Facts verified (heartbeat 2026-07-12)

- \`plur_admin\` dispatch syntax \`{ action, args }\` — confirmed correct in \`packages/mcp/src/tools.ts\`
- \`.mdc\` file structure: static \`plur-memory.mdc\` (insta

[Read the thread](https://github.com/plur-ai/plur/issues/533) · 2026-07-12 · open · outside contributor · 7 comments

### P0: Ship PLUR OpenClaw plugin to ClawHub — Supermemory beat us there

## Context

Positioning review (2026-07-08) found: **Supermemory already has an OpenClaw memory plugin live on ClawHub** (`clawhub.ai/plugins/openclaw-memory-supermemory`). ClawHub is PLUR's primary MCP discovery channel (CEO priority #2). Every day PLUR isn't listed is a day Supermemory owns the memory plugin slot.

## What

Ship a PLUR OpenClaw plugin to ClawHub so developers discover PLUR when searching for memory in the OpenClaw/ClawHub ecosystem.

## Why urgent

- Supermemory's OpenClaw plu

[Read the thread](https://github.com/plur-ai/plur/issues/516) · 2026-07-09 · closed · outside contributor · 47 comments

### Independent audit of the 0.10.0 scope-security work before release

## What this is

Before we tag and publish 0.10.0, I'd like a second pair of eyes — yours — on the **whole body of scope-security work** that went into this release. We just finished a multi-round hardening pass on how engram memories are scoped, stored, routed, shared, and published. Two earlier rounds were review-only; the third added an automated attack-test suite that found a real problem the manual reviews had missed — which is exactly why I'd rather have an independent audit *before* we sh

[Read the thread](https://github.com/plur-ai/plur/issues/377) · 2026-06-22 · closed · outside contributor · 5 comments

### Docs review — homepage framing, agent-consumption gaps, and quick wins

## Overall

The docs are well above average for AI-infra. The MCP tools reference is best-in-class — every tool has "When agents call it," "Gotchas," and `_next`/`_related` hints. The engram schema page is exemplary. But the homepage and onboarding undersell what's strong, and there are gaps worth closing — especially for agent consumption.

## What's working

- Concrete hook ("Your AI finally remembers") with specific tools named.
- Benchmark numbers upfront — 89% wins, "Haiku + PLUR > Opus wit

[Read the thread](https://github.com/plur-ai/plur/issues/236) · 2026-05-26 · closed · outside contributor · 5 comments

### Plur session_start enforcement hooks don't fire when Claude launched from subdirectory projects

## Problem

Plur's `plur init` installs hooks into `~/.claude/settings.json` (global), but the **enforcement hooks** (SessionStart reminder, PreToolUse guard that blocks tools until session_start is called, PostToolUse sentinel) are configured in **project-level** settings (`~/Data/.claude/settings.json`).

When Claude Code is launched from a **subdirectory project** (e.g. `~/Data/0-personal/code/war-analysis/`), those project-level enforcement hooks **do not fire** because:

1. `war-analysis/.c

[Read the thread](https://github.com/plur-ai/plur/issues/95) · 2026-05-07 · closed · outside contributor · 6 comments

### plur init: multi-project setup gaps (no --domain, no project-level .claude/ creation, no batch mode)

## Context

I manage a monorepo-like setup with 10+ repos under a parent directory (`~/Data/4-provenance/2-projects/`), each a separate git project. I wanted every repo to:

1. Start the Plur MCP server when I launch Claude Code from that folder
2. Have hooks installed (inject, observe, learn-check)
3. Tag engrams with a project-specific `domain` (e.g. `provenance.sdk`, `provenance.gateway`) and `scope` (e.g. `project:swarm-provenance-sdk`) so they're distinguishable in the shared global `~/.plu

[Read the thread](https://github.com/plur-ai/plur/issues/19) · 2026-04-09 · closed · outside contributor · 14 comments

## Most recent

### 0.19.0: plur_doctor over MCP kills the server instantly (Connection closed, 0s); CLI doctor unaffected

## Summary

On 0.19.0, calling **`plur_doctor` through MCP kills the server instantly** — the process dies and the harness reports `Connection closed` after **0s**. The CLI `plur doctor` runs the same diagnostics without dying. Since Claude Code does not restart a server that dies mid-call, one `plur_doctor` call ends memory for the whole session.

## Environment

- plur-mcp **0.19.0**, `node packages/mcp/dist/index.js`, `PLUR_TOOL_PROFILE=full`
- macOS (Darwin 25.3.0), Node v24.10.0

## Observe

[Read the thread](https://github.com/plur-ai/plur/issues/1070) · 2026-08-28 · closed · outside contributor · 2 comments

### 0.19.0: MCP server SIGKILLed ~11s into first cold plur_session_start — whole session left memoryless

## Summary

On 0.19.0, the MCP server is killed with **SIGKILL ~11s into the first cold `plur_session_start` of the day**. Claude Code does not restart an MCP server that dies mid-call, so a single cold-start death leaves the **entire session memoryless** — no recall, no learn, hooks degraded. Warm starts succeed.

## Environment

- plur-mcp **0.19.0** (released 2026-08-27), launched as `node packages/mcp/dist/index.js` with `PLUR_TOOL_PROFILE=full`, `PLUR_REMOTE_RECALL_TIMEOUT_MS=2000`
- macOS 

[Read the thread](https://github.com/plur-ai/plur/issues/1069) · 2026-08-28 · open · outside contributor · 4 comments

### plur init overwrites a harness MCP config file when it fails to parse, discarding the user's other servers

Found while auditing the 0.19.0 release (#1058).

`plur init` overwrites a harness MCP config file whenever that file fails to parse, discarding every server the user had registered in it.

## Reproduction

With `~/.gemini/config/mcp_config.json` containing two servers and a single trailing comma:

```json
{
  "mcpServers": {
    "github":   { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
    "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/serve

[Read the thread](https://github.com/plur-ai/plur/issues/1059) · 2026-08-28 · closed · outside contributor · 0 comments

### Auditability Card: docs/auditability.md

An honest, public statement of where each component sits on the Integrity Strength scale (none / append-only / hash-chained / signed), across the five audit dimensions, with what raises each level and the tracking issues.

Claims must match what has actually merged at the time of writing — including that signed status is *reached* per host only once identities and keys are configured, not when the code ships.

**Acceptance**
- [ ] Per-component table (engram store, history log, packs)
- [ ] Leve

[Read the thread](https://github.com/plur-ai/plur/issues/1057) · 2026-08-27 · open · outside contributor · 0 comments

### Codex mcp_tool hooks are a stub — parses, dispatches, never calls the tool (re-probe on updates)

Codex's hook schema advertises a `mcp_tool` handler type — a hook that calls an MCP tool directly with `${tool_input.field}` templating, no subprocess:

```json
{ "type": "mcp_tool", "server": "plur", "tool": "plur_session_start", "input": {...}, "timeout": 30 }
```

If it worked, PLUR's Codex `SessionStart` could route straight into `plur_session_start` with no shim process, no CLI cold start, and no shell-command trust prompt. Worth tracking, because it is strictly better than the command-hook

[Read the thread](https://github.com/plur-ai/plur/issues/1032) · 2026-08-26 · open · outside contributor · 0 comments

### Codex CLI adapter: hooks + MCP + AGENTS.md, so PLUR actually injects and enforces there

PLUR ships an MCP server to Codex users and nothing else. No engram injection, no session enforcement, no learn nudges, no always-on instruction block — every mechanism that makes PLUR work in Claude Code is harness-specific, and `plur init` only knows about Claude Code and Cursor. Recall and learning end up depending on the model spontaneously calling the tools, which is exactly the failure mode `ENG-2026-0401-001` records.

Codex ships a hook system that is close to a straight port of Claude C

[Read the thread](https://github.com/plur-ai/plur/issues/1031) · 2026-08-26 · closed · outside contributor · 0 comments

### Pack update: compare versions, migrate accumulated state, and report what changed

There is no way to update an installed pack.

The only version comparison in the repository serves the bundled pack: `plur init` walks `packages/mcp/packs/`, and if the bundled version is greater than the installed one it calls `installPack` again to overwrite (`packages/mcp/src/index.ts:300-351`). That is the entire mechanism.

For a user's own pack:
- **No core API.** `Plur.installPack` (`index.ts:7198`) is the only entry point and unconditionally overwrites.
- **No CLI subcommand.** The dispa

[Read the thread](https://github.com/plur-ai/plur/issues/1026) · 2026-08-26 · open · outside contributor · 0 comments

### Specify install, update and uninstall — and define the install registry the spec already calls authoritative

The standard describes a pack as an artifact. It does not say what happens to one.

§5 is marked STABLE and covers the directory layout, the manifest fields, the export privacy rule and the integrity hash. Everything a *consumer* does is absent.

## What is missing, precisely

**Install has no algorithm.** The word appears three times in the standard — `:507` (the `manifest.yaml` auto-upgrade), `:512` ("the authoritative integrity record at install time is the registry entry") and `:598`. There 

[Read the thread](https://github.com/plur-ai/plur/issues/1020) · 2026-08-26 · open · outside contributor · 1 comment

### Resolve the seven pack contradictions between the specs, the schema and the reference

Seven places where the standard, the profile, the generated schema and the reference disagree about packs. Each is small; together they are what an independent implementer trips over first.

This is filed ahead of the code work because `plur-ai/encode` is implementing §5 **directly in Python** (encode#32) rather than calling core. It is the first party to build from the document alone, and it has already relied on one of these being true when it is not.

## The seven

**1. The manifest is not as

[Read the thread](https://github.com/plur-ai/plur/issues/1019) · 2026-08-26 · open · outside contributor · 2 comments

### Epic: knowledge packs — from artifact to lifecycle

Tracking issue for the knowledge pack lifecycle in core: building a pack, importing one, and everything after — updating it, removing it, and keeping its provenance intact along the way.

## Why now

#958 gave packs provenance on **export**. Nothing consumes it on import — `_installPackDir` copies only `isFile()` entries (`packages/core/src/packs.ts:762-769`), so the `provenance/` directory a pack ships is deleted at the moment a recipient installs it. Every record written by #972 is unobservabl

[Read the thread](https://github.com/plur-ai/plur/issues/1018) · 2026-08-26 · open · outside contributor · 1 comment

### Derive the documented tool count instead of hardcoding it in five places

Follow-up from the review of #976, which corrects the documented size of the full tool profile.

## The recurring problem

The number is written by hand in at least five places, and they disagree with each other:

| Location | Says |
|---|---|
| `README.md:106` | 43 (corrected by #976) |
| `packages/mcp/src/tools.ts:684` | 43 (corrected by #976) |
| `packages/mcp/src/tools.ts:879` and `:881` | 41 |
| `packages/mcp/test/tool-surface.test.ts:38` and `:55` | 41 |
| `packages/cli/test/mcp-entry-read

[Read the thread](https://github.com/plur-ai/plur/issues/1010) · 2026-08-24 · open · outside contributor · 0 comments

### Enumerate and close every engram write path that bypasses statement sanitization

Follow-up from the batch review of #942 and #953.

#953's stated justification is that `Plur.learn()` is "the single chokepoint every write path shares, so no path can bypass it". That claim is false as written, and the correction matters because it is the whole argument for fixing #940 there rather than somewhere else.

This issue is to enumerate every path that writes an engram, establish which ones reach a sanitizer, and close the ones that do not.

## Paths confirmed to bypass `learn()`

**1

[Read the thread](https://github.com/plur-ai/plur/issues/1005) · 2026-08-24 · open · outside contributor · 0 comments

### Pack trust surface: narrow credential patterns, a fabricated licence, and a hash that reads as certification

A security reviewer worked through the pack defences black-box. The `SKILL.md` scan gap they found is fixed (#987). These remain.

## 1. The credential patterns are narrow

All of these install clean inside an engram statement:

| Credential | Form |
|---|---|
| GitHub personal access token | `ghp_1234567890abcdefghijklmnopqrstuvwxyz12` |
| Slack bot token | `xoxb-1234567890-abcdefghijklmnopqrstuvwx` |
| Plaintext password | `The database password is hunter2SuperSecret!` |
| Base64-encoded AWS c

[Read the thread](https://github.com/plur-ai/plur/issues/993) · 2026-08-23 · open · outside contributor · 0 comments

### Installing a pack ignores the provenance it ships, and installed engrams lose it

## The problem

`plur packs preview` now reads the provenance a pack ships (#970). `plur packs install` does not. The provenance directory is ignored entirely on the install path, so:

- **Corrupt, missing and orphaned records go unreported.** A tester replaced a record with invalid JSON, deleted two others, and added a record for an engram not in the pack. All three installed with exit 0 and not one word of output.
- **Installed engrams carry no provenance.** Once installed, `plur provenance <i

[Read the thread](https://github.com/plur-ai/plur/issues/989) · 2026-08-23 · open · outside contributor · 0 comments

### An MCP tool for provenance — today the feature cannot be reached from a session

Part of #958. **Depends on** #964.

## The gap

There are 44 tools and none of them touches provenance. So a user running the installed server cannot get a provenance record at all. They can turn the setting on and records appear on disk, but nothing lets them ask for one, read one, or check one.

Everything else people do with PLUR happens through the tools. A feature that cannot be reached that way is, for most users, a feature that does not exist.

Found by a user asking the obvious question:

[Read the thread](https://github.com/plur-ai/plur/issues/979) · 2026-08-23 · open · outside contributor · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/plur-ai/plur/issues).
