Repository navigation
v0.4.0 — adapter parity, restore-from-backup, rotate nudges
Closes the security loop end-to-end and brings every adapter except Copilot up to capability parity for the things that actually matter (scan / redact / export). The single biggest gap from earlier releases — "ConClear's interesting features only work on Claude Code sessions" — is closed.
Added
- Cline scan + redact + export.
scanClineSecrets,redactClineSecrets,exportClineMarkdownwalk the Anthropic-shapedapi_conversation_history.json, scan every text / tool_use / tool_result block, and pretty-print the JSON back when redacting. - Gemini scan + redact + export. Handles string content,
{ text }objects, andparts[]arrays. Redact preserves the file shape. - Cursor scan. Walks every bubble in a composer (text + toolFormerData.rawArgs + result) via the existing read-only SQLite handle. Redact for Cursor is intentionally deferred — rewriting SQLite blobs while Cursor is running is risky and the rotate-the-credential workflow (via the rotate links shipped this release) covers the user need.
- MCP tools
conclear_scan_secrets+conclear_files. Agents can now scan a session for leaked credentials and list files touched, without going through the web UI. Both honestly degrade for adapters that don't support the capability. - Rotate-this-key links. Every Security finding shows a "Rotate at provider X" link next to the redact button. Known mappings: OpenAI / Anthropic, AWS IAM, GitHub tokens, GitHub SSH keys. Bearer / database / webhook / env credentials fall back to a "rotate the credential" label with no link, since the provider is ambiguous.
- Restore-from-backup.
POST /api/backups/:name/restorereads a sidecar metadata file written alongside each backup and copies it back over the original session file. Backups page shows the action that produced the backup (strip / resize / redact) and the original path; legacy backups (pre-0.4) get a disabled Restore button with an explanatory tooltip. - First-run onboarding banner. When no clients are MCP-installed yet, Reclaim shows a one-shot prompt that links to Connect with the bulk-install primed. Dismissable; remembered in localStorage.
- README badges — npm version, monthly downloads, CI status, license.
- CHANGELOG entries for 0.3.0 and 0.3.1 (previously skipped).
Changed
- Shared secret-scanning module (
src/server/adapters/secrets.ts). The pattern table,redactSecret,extractContext,scanText,redactText, andsortFindingsare now one source of truth used by every adapter. The Claude parser still owns its JSONL streaming loop but delegates the matching itself. - Backups now write a
.meta.jsonsidecar containing{ origPath, action, createdAt }. Lets the Backups page surface what each backup is and where it came from, and powers Restore. Sidecars are filtered out of the listing so they don't appear as their own entries. - Capability matrix updated to reflect adapter parity: Cursor / Gemini / Cline gain
scanSecrets; Gemini / Cline gainexportSession.
Tests
- 17 new test cases across Claude (existing), Cline, and Gemini redact pipelines: pattern coverage, line filter, type filter, content-shape preservation, scan-after-redact validation. 38 tests total (was 21 before 0.3.1).
Known limitations
- Cursor redact not implemented. Use the rotate links to roll the credential; delete the session inside Cursor itself if you want the data gone.
- Copilot Chat remains read-only: parser exists but no scan / redact / export. Lower priority — Copilot's data is the smallest of the five and rarely contains pasted credentials in the wild.
- Windsurf still install-only (chats are encrypted protobuf).