Skip to content

v0.2.0: Perfect Retrieval#69

Merged
imdinu merged 4 commits intomainfrom
v0.2.0
Apr 1, 2026
Merged

v0.2.0: Perfect Retrieval#69
imdinu merged 4 commits intomainfrom
v0.2.0

Conversation

@imdinu
Copy link
Copy Markdown
Owner

@imdinu imdinu commented Mar 31, 2026

Summary

v0.2.0 doubles down on search and retrieval quality before introducing write operations in v0.3.0.

Also includes all v0.1.8 bug fixes (watcher crash, attachment cache leak, search error messages, timeout message).

Test plan

  • 313 unit tests pass (16 new)
  • 31/31 integration tests pass (8 new for v0.2.0 features)
  • CLI commands verified manually (search, read, accounts, integrate)
  • Lint + format clean
  • Update docs (tools.md, configuration.md, search.md, README)
  • Update integration test spec (integration/CLAUDE.md)

Known gaps (pre-merge)

  • Docs not yet updated for new tools/params/CLI commands
  • CLI commands not unit-tested (thin wrappers, underlying functions tested)
  • --read-only flag accepted but not enforced (by design — v0.3.0 adds write tools)

🤖 Generated with Claude Code

imdinu and others added 2 commits March 31, 2026 14:28
… generator

## New Features
- Date-range filtering: before/after params on search() (#9)
- Highlighted search results: **markers** via FTS5 highlight/snippet (#11)
- Split get_attachment into get_email_links + get_email_attachment (#55)
- Dynamic Mail version detection (auto-detect V10/V11/V12) (#57)
- CLI wrappers: search, read, emails, accounts, mailboxes, extract (#61)
- Skill generator: apple-mail-mcp integrate claude (#62)
- --read-only server flag (prep for v0.3.0 write ops) (#63)

## Architecture
- Extended add_account_mailbox_filter() with before/after params
- Fixed search_fts_highlight() bugs: missing filters, row indexing, retry
- Added _resolve_emlx_path() helper for split tools
- JXA fallback raises clear error when date params used without index

## Tests
- 313 unit tests pass (16 new: 5 V10 + 6 date-range + 5 highlight)
- 31/31 integration tests pass (8 new for v0.2.0 features)

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
search(mailbox="INBOX") returned zero results when the index stored
"Inbox" (Exchange) instead of "INBOX" (IMAP). Use LOWER() in SQL
comparisons for both mailbox filter and exclude_mailboxes.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
imdinu and others added 2 commits March 31, 2026 15:56
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
- tools.md: add get_email_links, get_email_attachment, search params
  (before/after/highlight), mark get_attachment deprecated
- search.md: add date-range filtering and highlighted results sections
- configuration.md: add APPLE_MAIL_READ_ONLY, --read-only flag, new
  CLI commands (search, read, emails, accounts, mailboxes, extract,
  integrate claude)
- README.md: update tools table (8 tools), add APPLE_MAIL_READ_ONLY
- CLAUDE.md: update tool count, descriptions, CLI commands, config

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@imdinu imdinu marked this pull request as ready for review April 1, 2026 14:03
@imdinu imdinu self-assigned this Apr 1, 2026
@imdinu imdinu merged commit ef3c5a2 into main Apr 1, 2026
1 check passed
@imdinu imdinu deleted the v0.2.0 branch April 1, 2026 14:09
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.

1 participant