v0.4.2 — crash audit fixes + README sync
Bug fixes (audit follow-up to v0.4.1)
Three latent crash / safety risks surfaced by an audit after the v0.4.1 JSON-rendering fix:
- iOS docs-dir force-unwrap removed.
AISource.urlno longer crashes the app ifFileManager.default.urls(for: .documentDirectory, …)ever returns an empty array (sandbox / provisioning corner case). - Drag-and-drop bounds. The Finder drag-and-drop handler now reaches the first file through
guard let firstFile = supportedFiles.firstinstead ofsupportedFiles[0], so a future refactor of the!isEmptyguard cannot regress into an index-OOB. - URL-scheme path validation.
aimemoryreader://open?path=…now requires an absolute path and rejects any..segments before reachingFileManager.fileExists. Closes a latent path-traversal risk from external callers.
No user-facing behavior changes — the app still opens the same files, but a few crash classes can no longer trip it.
Documentation
- README + README_CN expanded. The "Supported AI Sources" table was OpenClaw-only; it now lists all 8 auto-detected sources (Claude Code, Codex, Gemini, Cursor, Continue, GitHub Copilot, Aider, OpenClaw) in sidebar order.
- Download link no longer hard-codes a version (was
0.4.0in v0.4.1's README — nowAIMemoryReader-vX.Y.Z-universal.zip). - ⌘1 shortcut label updated to reflect Claude Code as the first detected source.
Install
Download AIMemoryReader-v0.4.2-universal.zip below, unzip, move AI Memory Reader.app to /Applications/.
If macOS blocks the app on first launch ("unidentified developer"):
- Right-click → Open → confirm in the dialog, OR
- Terminal:
xattr -dr com.apple.quarantine \"/Applications/AI Memory Reader.app\"
Local-signed only (no Apple Developer Program signature yet).
Companion
Templates / hooks / slash commands for Claude Code: Memory Pack on Ko-fi ($3)