anthropics / anthropics/claude-plugins-official

remember: marketplace pins 0.25.0, which silently captures 0 exchanges on current Claude Code (fixed upstream in 0.27.0)

Open
#5,926 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
36.2k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

## Summary

The marketplace pins `remember` to `86fbfccfd0648bb06046753b5358d266374ad69f`, which is `chore(release): 0.25.0` (2026-09-01). That release carries a regression — fixed upstream in **0.27.0** (2026-09-05, upstream #543) — that stops memory capture entirely on current Claude Code: every session reads as `unrecognised` and saves **0 exchanges**.

Because the pin predates the fix, `/plugin` reports `remember is already at the latest version (0.25.0)` and there is no path to the fix through the marketplace. Upstream is at 0.29.1.

## Impact: it fails silently

Nothing on the surface looks wrong. Hooks fire, `.remember/` is present, the daily log fills, and `SessionEnd`'s forced flush runs and logs `[force] bypassing cooldown + min msgs`. The only visible symptom is that `now.md` stops changing — mine had not been written in 5 days while sessions ran daily, and the stale content was still being injected at every `SessionStart`.

The upstream release note describes it the same way: "every save on an affected install silently captured nothing, with hooks firing and `.remember/` present the whole time."

## Root cause (upstream #543)

`sniff_file_envelope_status()` (`pipeline/extract.py`) decides a transcript's host from its **first parseable line**. That was correct when written — Claude Code transcripts used to open with a `user` / `assistant` / `summary` / `system` line. They no longer do: transcripts now open with several bookkeeping records that `sniff_envelope()` (`pipeline/host.py`) cannot place, so the first-line decision returns `"unrecognised"` immediately and the whole file is skipped.

First-line `type` across the 13 transcripts in one project directory — none is in the allowlist, and none carries a `message` key:

| first-line `type` | files |
|---|---|
| `bridge-session` | 5 |
| `queue-operation` | 4 |
| `last-prompt` | 4 |

The content is present and untouched below those lines (one of these files has 103 `assistant` and 68 `user` lines).

Upstream 0.27.0 fixes this by scanning forward past lines it cannot place, up to `_ENVELOPE_SNIFF_SCAN_CAP` (50), and only falling back to `"unrecognised"` once the file or the cap is exhausted.

## Reproduce

```bash
# 1. What the marketplace pins
gh api repos/anthropics/claude-plugins-official/contents/.claude-plugin/marketplace.json --jq '.content' \
| base64 -d | jq -r '.plugins[] | select(.name=="remember") | .source.sha'
# 86fbfccfd0648bb06046753b5358d266374ad69f

# 2. What that SHA is
gh api repos/Digital-Process-Tools/claude-remember/commits/86fbfcc --jq '.commit.message'
# chore(release): 0.25.0

# 3. The symptom, on any affected install
grep "unrecognised transcript envelope" /.remember/logs/memory-$(date +%F).log
# ... unrecognised transcript envelope, 0 exchanges read (not a quiet session ...)
```

Step 3 prints for every session on an affected install. The plugin explicitly rules out the benign explanation in its own message: `(not a quiet session)`.

## Requested change

Bump the pinned SHA for `remember` in `.claude-plugin/marketplace.json` to a revision at or after upstream 0.27.0. Current candidates:

- `1f5d3f99983097e08f75d709fef8108d62ca97c6` — tag `v0.29.1`
- `31914eeed1a5052425f3cea6ef9250f939e20eb8` — `main` HEAD (2026-09-07)

No user-side migration is needed. Upstream's #450 quarantine mechanism recorded every affected session as unread from line 0 rather than discarding it, so sessions captured between 0.25.0 and the fix are picked up on the next save once the fix lands.

## Environment

- Claude Code 2.1.263, macOS. The upstream note names 2.1.257 / 2.1.258; 2.1.263 is affected as well, so this is not limited to those two builds.
- `remember` 0.25.0, installed from `claude-plugins-official` (user scope).
- Marketplace catalog cache refreshed the same day the pin was checked, so this is the live pin rather than a stale local cache.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.