mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-11-02 07:13:02 +00:00
The Included Memories popup stores the memory list on a data-* attribute by joining it into a single string (String(response.data) / response.data), then reads it back by splitting on [,\n] in showMarkerPopover and in the T3 popup. Memory text is free-form and frequently contains commas and newlines, so a single memory was fragmented into several rows. In T3 that also desynced the per-item delete: the clicked index no longer mapped to a real memory, so removal spliced the wrong entry and rewrote the injected prompt from the mangled list. Store the list as JSON on the attribute and parse it back, so a memory with a comma or newline survives as one item. serializeMemoriesForDataset returns an empty string for an empty list so existing "memories present" truthiness checks on the attribute are unchanged, and parseMemoriesFromDataset falls back to the old delimiter split for any legacy value. This is confined to the popup's own display data: the GET_RELATED_MEMORIES response and the injected dataset.supermemories prompt text are left exactly as they were, so recall behaviour does not change. Applied consistently across ChatGPT, Claude, Gemini and T3, with unit tests for the round-trip. |
||
|---|---|---|
| .. | ||
| browser-extension | ||
| docs | ||
| mcp | ||
| memory-graph-playground | ||
| raycast-extension | ||
| web | ||