Skip to content

v2: Add a consistent incremental Messages archive and search #95

Description

@jmcte

Problem / intent

Messages commands query the live chat.db directly. They have no DB/WAL-consistent snapshot, incremental cursor, local archive, watcher state, or full-text search. OpenClaw's imsgcrawl and imsg already define useful bounded JSON and action surfaces, so this repo should integrate deliberately instead of copying private IMCore behavior.

Acceptance criteria

  • Document and implement the chosen adapter: internal archive or delegated imsgcrawl/imsg JSON integration.
  • Read from a consistent snapshot via v2: Snapshot live SQLite stores consistently before querying #90 and never modify Apple's Messages database.
  • Persist bounded incremental state, source fingerprint, freshness, conversation/message ids, and deletion behavior.
  • Keep safe status/count output separate from sensitive bodies; bodies require explicit opt-in and retention policy.
  • Add bounded conversation/message search with versioned machine output.
  • Keep send/react/action capabilities outside the crawler provider and never require SIP disablement or dylib injection.
  • Add synthetic DB/WAL, cursor, deduplication, group-chat, and redaction tests.

Dependencies

Metadata

Metadata

Assignees

Labels

area:dataData, schema, storage, privacy, or migration surface.area:securitySecurity, auth, secret, permission, or policy surface.autonomy:review-gatedClass 2; autonomous work allowed, review/gate required.kind:featureFeature/product behavior work.lane:hermesHermes macOS/native lane.review:architectureNeeds architecture review.review:securityNeeds security review.risk:securitySecurity-sensitive change.state:needs-reviewPR needs review.

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions