3.4 KiB
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/statusresponse - 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
- durable Gmail sync-state fields on
- 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
/correspondenceinbox API - new global correspondence inbox page and nav route
- focused frontend test for inbox filtering/refresh behavior
- new
- 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 onmain
- deterministic Gmail matching logic now extracted into
- Added a first review surface:
- backend
GET /api/gmail/review-candidates - frontend
/correspondence/reviewpage - focused review-page frontend test
- backend
- 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
- Backend release build for
JobTrackerApiis clean again after fixing a duplicatedapp.Run()tail inProgram.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
- Implement M006/S01/T01: refactor Gmail connection foundation and sync-state model.
- Implement M006/S01/T02: expose sync-state surfaces in UI without breaking current correspondence workflow.
- Implement M006/S01/T03: prepare Phase 2 extension seam/docs.
- Verify backend + frontend Gmail focused tests.
- 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.csandjob-tracker-ui/src/correspondence-gmail-import.test.tsx.