Skip to content

Docs/auto save clarity and tools - #1390

Closed
milla-jovovich wants to merge 14 commits into
developfrom
docs/auto-save-clarity-and-tools
Closed

Docs/auto save clarity and tools#1390
milla-jovovich wants to merge 14 commits into
developfrom
docs/auto-save-clarity-and-tools

Conversation

@milla-jovovich

Copy link
Copy Markdown
Collaborator

Summary

Adds a brief [!IMPORTANT] callout at the top of the README pointing users to the urgent
announcement at #1388. Claude Code auto-deletes local JSONL transcripts after 30 days; users without
the auto-save hooks wired are losing transcript data off the rolling window.

Ships 4 small standalone tools at tools/ so users can act today without waiting for a release.

What's in this PR

README.md — 4 lines added. One [!IMPORTANT] callout right after the existing scam alert,
linking to discussion #1388. Nothing else in the README is touched.

tools/backup_claude_jsonls.sh (39 lines) — rsync ~/.claude/projects/ to
~/Documents/Claude_JSONL_Backup/. POSIX bash, set -eu, never writes to ~/.claude/.

tools/render_jsonl.py (71 lines) — convert any JSONL transcript to readable plain text.
Stdlib-only Python 3.9+. Strips tool calls, thinking, system messages.

tools/find_orphan_claude_jsonls.sh (98 lines) — scan iCloud, Dropbox, Google Drive, OneDrive,
Documents, Desktop, Volumes for orphan Claude Code transcripts. Multi-line shape detection (robust
strips "ok so", "oh", "well", "hey", etc.).

tools/save.md — Claude Code slash command for manual /save into MemPalace. Drops into
~/.claude/commands/save.md on the user's machine.

Verification

All 4 tools were TDD-verified by an independent agent against the v3.3.4 source:

  • backup_claude_jsonls.sh: 4 assertions PASS (clean run, idempotent, count match, read-only on
    source)
  • render_jsonl.py: 6 assertions PASS (header shape, separator, tool_use stripped, stdlib only,
    malformed-line handling, empty input)
  • find_orphan_claude_jsonls.sh: 16 assertions PASS (multi-line shape detection, greeting filter,
    iterative leading-filler strip, truncation, case-insensitive, bash 3.2 parse)
  • save.md: 4 assertions PASS (frontmatter shape, body references, mempalace mine command parses
    against v3.3.4 CLI)

The 30-day retention claim is verified verbatim against the official Anthropic docs at
https://docs.claude.com/en/docs/claude-code/data-usage.

What this does NOT do

  • Does not modify the existing "Auto-save hooks" section of the README
  • Does not change any production code (no changes to mempalace/ package)
  • Does not change the existing Stop or PreCompact hook behavior
  • Does not add any new dependencies (POSIX bash + Python stdlib only)

Why now

We launched on April 6 — today is May 6, exactly 30 days. Launch-week JSONLs are at the cliff right
now. Every 24-hour delay = another day of users' transcript data lost off the back end of the
rolling window. The discussion at #1388 covers the full announcement; this PR provides the README
pointer so visitors see it immediately.

Closes/relates to: #1388

bensig and others added 14 commits April 20, 2026 11:46
release: v3.3.3 — sync develop → main for tag cut
Bumps every version source from 3.3.3 to 3.3.4:
- pyproject.toml
- mempalace/version.py (canonical)
- .claude-plugin/plugin.json
- .claude-plugin/marketplace.json
- .codex-plugin/plugin.json
- README.md badge

Dates the CHANGELOG section and adds entries for the bug fixes that
landed this cycle (#1135, #1191, #1230, #1231) plus expands the #1194
entry to credit the lookup-side recovery path from #1197.

Pre-tag verification:
- 1441 passed, 1 skipped (full suite minus benchmarks, all platforms)
- ruff check + format clean
- 44/44 in test_version_consistency + test_readme_claims (6-file sync)
- JPH invariant: pyproject.toml + .claude-plugin/plugin.json both
  reference mempalace-mcp
- Wheel build + fresh-venv install: mempalace --version reports 3.3.4,
  mempalace-mcp --help works (catches the v3.3.2-class regression)
Agent-Logs-Url: https://github.com/MemPalace/mempalace/sessions/01a1089d-da46-4dc8-85e8-d7e50763dd58

Co-authored-by: igorls <4753812+igorls@users.noreply.github.com>
The fix landed this cycle and is documented under 3.3.4. The 3.3.0
Bug Fixes block is shipped history and shouldn't grow new entries
retroactively.
The PR documenting the fix is #1232; referencing it from inside its
own changelog entry is circular.
Three fixes landed on develop after the initial release-prep cut and
were brought in via the develop merge. Document them in the 3.3.4
Bug Fixes section so the release notes reflect what users will
actually receive.

- #1287 - HNSW divergence floor scales with hnsw:sync_threshold
  (resolves a silent-fallback regression introduced by the
  interaction between #1191 and #1227 in this release)
- #1262 - ChromaBackend get_or_create_collection split, fixing the
  stop-hook SIGSEGV class on legacy palaces with mismatched stored
  metadata (#1089)
- #1288 / #1254 - repair --mode max-seq-id heuristic now decodes
  BLOB-typed embeddings.seq_id, restoring the un-poison path added
  in #1135 for palaces where chromadb 1.5.x writes seq_ids natively
The release was originally cut on 2026-04-27 but did not tag that day.
Three additional bug fixes have been folded in since then (#1262,
#1287, #1288) and the actual tag will happen on 2026-04-30. Update
the header date to match.
The same try/except split that #1262 applied at the backend layer
(ChromaBackend.get_collection) was needed at the parallel call site
in mcp_server._get_collection(create=True), which carries the same
metadata payload directly to chromadb's Python client. Both reopen
paths in mempalace now bypass get_or_create_collection on existing
collections, closing the SIGSEGV class for both tool_add_drawer
and tool_diary_write (the Stop hook's path).
Adds a brief [!IMPORTANT] callout at the top of the README pointing
users to the urgent announcement at #1388. Claude Code auto-deletes
local JSONL transcripts after 30 days; users without the auto-save
hooks wired are losing transcript data off the rolling window.

Ships 4 small standalone tools at tools/:
- backup_claude_jsonls.sh — rsync ~/.claude/projects/ to a safe folder
- render_jsonl.py — convert JSONL transcripts to readable text
- find_orphan_claude_jsonls.sh — scan backup locations for orphan
  Claude Code transcripts (multi-line shape detection + topic preview)
- save.md — Claude Code slash command for manual /save into MemPalace

Tools verified by independent agent against v3.3.4 source.
Read-only on user data. POSIX bash + Python stdlib only.
@milla-jovovich

Copy link
Copy Markdown
Collaborator Author

Closing in favor of #1391 — same content, properly based on develop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants