3.1 KiB
3.1 KiB
title, status, files, verification, observability_surfaces
| title | status | files | verification | observability_surfaces | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T01 summary | done |
|
|
|
Strengthened follow-up draft generation so it now consumes imported thread context and saved application package material instead of relying mostly on job summary text.
What changed
JobTrackerApi/Controllers/JobApplicationsController.cs- expanded
FollowUpDraftDtoto exposecontextSummary,contextSignals,threadSubject, and last-correspondence metadata for the workspace - added helpers to parse the saved application-answer draft from notes, derive reply-style subjects from the latest thread, and assemble follow-up context signals from recruiter/package/thread state
- enriched
GetFollowUpDraft(...)so the AI prompt now includes imported correspondence context, recruiter details, saved tailored CV / cover letter / recruiter message / application-answer material, and thread-stage cues - improved the fallback body so it still reflects saved/thread context when AI output is unavailable
- expanded
JobTrackerApi.Tests/JobApplicationsFollowUpDraftTests.cs- added focused backend proof that follow-up draft generation reflects imported thread and saved package state
Diagnostics
- Call
GET /api/jobapplications/{id}/followup-draftand inspectcontextSummary,contextSignals,threadSubject,lastCorrespondenceFrom, andlastCorrespondenceAtto confirm the draft is grounded in saved package material plus imported correspondence. - Call
POST /api/jobapplications/{id}/send-followuponly after editing the returned draft; this is the authoritative manual-send/log boundary surface for the slice. - Use
GET /api/correspondence/{jobId}after a manual send/log to confirm the outbound follow-up appears back in the job timeline rather than remaining transient UI-only state. - Re-run
dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --filter JobApplicationsFollowUpDraftTestswhen follow-up prompt assembly, DTO shape, or fallback behavior changes.
Verification Evidence
| Check | Command | Exit code | Verdict | Duration |
|---|---|---|---|---|
| Backend build | $HOME/.dotnet/dotnet build JobTrackerApi/JobTrackerApi.csproj |
0 | PASS | 00:00:03 |
| Focused backend follow-up test | $HOME/.dotnet/dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --filter JobApplicationsFollowUpDraftTests |
0 | PASS | 00:00:01 |
Important caveat
- The original task had to fall back to an isolated harness because
JobTrackerApi.Tests.csprojwas missing required framework/package references. During slice closeout, the test project was repaired so the plan-level filtered command now runs directly in this worktree again.