Skip to content

v2: Build resumable per-provider local archives #93

Description

@jmcte

Problem / intent

The current watch cache serializes four whole command payloads. It is useful polling proof, but it is not an incremental crawler: there are no source cursors, fingerprints, tombstones, migrations, retention rules, or provider freshness contracts.

Acceptance criteria

  • Define a versioned archive contract shared by providers while keeping domain schemas separate.
  • Persist provider cursor/source fingerprint, last attempt, last success, freshness, item counts, and structured failure state.
  • Support idempotent upsert and explicit deletion/tombstone handling.
  • Use private local storage with documented permissions, retention, backup, and redacted logging behavior.
  • Expose bounded sync and status APIs without embedding JSON payloads inside JSON strings.
  • Prove restart/resume, migration, partial failure, and retention with synthetic tests.
  • Do not archive high-sensitivity bodies or media unless a later provider issue explicitly opts in.

Dependencies

Metadata

Metadata

Assignees

Labels

area:dataData, schema, storage, privacy, or migration 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:highHigh-risk change; validation required.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