Skip to content

Migrate mail-inbox jobs to the driver and add the driver column #5

Description

@jbagsik

Parent

#1

What to build

The switchover: moox/mail-inbox stops talking to Graph and starts talking to the contract. This is the expand step's payoff — after it, the pipeline runs on the driver.

Retype the jobs, service and commands onto the driver contract. Replace the success-boolean settle calls with the outcome enum. Add the additive driver column to the sync-state table with a backfill for existing rows, so no installation has to re-scan its mailbox.

The Graph code stays physically present in moox/mail-inbox for now — deleting it is a later ticket. Keeping both forms alive is what lets this land green.

Every job keeps its progress reporting and its failed() handling; do not move failure handling into listeners or a new job.

Acceptance criteria

  • No job, service or command in moox/mail-inbox references a Graph type
  • Settlement passes an outcome; the success boolean is gone from the package's own call sites
  • Existing sync-state rows remain valid after migration and resume without a re-scan
  • The pipeline runs end to end against the in-memory fake driver: messages persisted, deduplicated, attachments stored, statuses transitioned, follow-on jobs dispatched
  • Deduplication still works on both keys, and stored external identifiers are unchanged by the migration
  • Progress reporting and failed() behaviour are preserved on every job
  • Tests cover the paths this ticket touches and run with no network access
  • README reflects the new configuration; CHANGELOG records the breaking config change

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentSpec is ready for an agent to implement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions