Files
jobtrackingapp/SMART_GMAIL_PROGRESS.md
T

3.4 KiB

Smart Gmail Job Correspondence Integration Progress

Branch

  • feat/gmail-job-correspondence

Status

  • Workstream initialized.
  • Milestones planned: M006-M010.
  • Current focus: M006 / S01 foundation work.

Completed so far

  • Created separate Gmail feature branch and merged the completed checkpoint into main.
  • Captured foundation context in .gsd/milestones/M006/M006-CONTEXT.md.
  • Planned milestones M006-M010 for the Gmail workstream.
  • Planned slice M006/S01.
  • Confirmed existing architecture seams:
    • Gmail OAuth/token flow already exists.
    • Per-job Gmail candidate search/import/thread refresh already exists.
    • Correspondence persistence already stores Gmail thread/message metadata.
    • Current implementation is job-local, not global-inbox/review oriented.
  • Implemented M006/S01 foundation changes:
    • durable Gmail sync-state fields on GmailConnection
    • SQLite/MySQL bootstrap support for new Gmail sync-state columns
    • richer GET /api/gmail/status response
    • per-job correspondence UI now shows sync diagnostics
    • focused backend/frontend Gmail tests added and passing
    • Phase 2 extension seam scaffolded with a no-op enrichment service
    • Phase 1/2 design doc added at docs/gmail-correspondence-phase1.md
  • Started M007 ingestion/storage work:
    • imported correspondence now stores direction, Gmail labels JSON, and attachment metadata JSON
    • Gmail message detail extraction now reads labels and attachment metadata from Gmail payloads
    • focused Gmail backend/frontend tests pass against the richer import contract
  • Added the first cross-job UX surface:
    • new /correspondence inbox API
    • new global correspondence inbox page and nav route
    • focused frontend test for inbox filtering/refresh behavior
  • Current next focus:
    • deterministic Gmail matching logic now extracted into JobTrackerApi/Services/GmailJobMatchingService.cs
    • next step is to build cross-job routing/review behavior on top of that reusable matching seam
    • branch context has been merged into main; continue delivery directly on main
  • Added a first review surface:
    • backend GET /api/gmail/review-candidates
    • frontend /correspondence/review page
    • focused review-page frontend test
  • Review queue is now actionable:
    • backend POST /api/gmail/review-decision
    • frontend actions for link/reject/keep-in-review
    • focused action test and successful frontend build
  • Backend release build for JobTrackerApi is clean again after fixing a duplicated app.Run() tail in Program.cs.
  • Cleaned the new Gmail page tests to use the same React Router future flags as the app, removing warning noise from the inbox/review suites.

Next tasks

  1. Implement M006/S01/T01: refactor Gmail connection foundation and sync-state model.
  2. Implement M006/S01/T02: expose sync-state surfaces in UI without breaking current correspondence workflow.
  3. Implement M006/S01/T03: prepare Phase 2 extension seam/docs.
  4. Verify backend + frontend Gmail focused tests.
  5. Commit and push incremental progress.

Resume notes

  • Previous CV/parsing branch work is separate and already pushed.
  • Local dev SQLite runtime still has missing-table drift in some unrelated surfaces (RuleSettings, Companies, etc.); avoid conflating that with the Gmail feature work.
  • Existing per-job Gmail tests live in JobTrackerApi.Tests/GmailControllerTests.cs and job-tracker-ui/src/correspondence-gmail-import.test.tsx.