Files

16 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Project Knowledge
- `dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --filter GmailControllerTests` still compiles the entire `JobTrackerApi.Tests` project before filtering execution. If unrelated controller tests drift from production signatures, the Gmail slice verification command will fail at compile time even when `GmailControllerTests` itself is correct.
- The correspondence workspace auto-refreshes linked Gmail threads once per `jobId + ExternalThreadId set` using `POST /api/gmail/refresh-linked-threads`; if you need another pull in the same UI session without changing linked threads, use the explicit "Refresh linked threads" action.
- The S02 package workspace persists the application-answer draft inside `JobApplication.Notes` using the marker block `<<<APPLICATION_ANSWER_DRAFT>>> ... <<<END_APPLICATION_ANSWER_DRAFT>>>`; downstream slices should replace or parse that block instead of appending free-form notes.
- `dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --filter JobApplicationsApplicationPackageTests` is now a trustworthy direct verification command in this worktree for package-generation and notes-replacement behavior; prefer it over older isolated-harness guidance when checking S02 regressions.
- `dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --filter JobApplicationsFollowUpDraftTests` is now trustworthy again in this worktree after restoring the missing ASP.NET Core / Identity / xUnit test-project references in `JobTrackerApi.Tests/JobTrackerApi.Tests.csproj`; older task notes that require an isolated Docker harness are stale.
- Running `npm --prefix job-tracker-ui start` alone is not enough for browser UAT in this worktree: the frontend calls `http://localhost:5202/api/...`, so without the backend (or a matching CORS/proxy setup) the UI loads but shows empty-state surfaces with `net::ERR_FAILED`/CORS errors instead of real job data.
- In this CRA frontend, `react-scripts` resolves the app directory from the current working directory. Run UI tests/builds from `job-tracker-ui/` (for example `cd job-tracker-ui && CI=true ./node_modules/.bin/react-scripts ...`) instead of invoking `npm --prefix job-tracker-ui ...` from the repo root, or `react-scripts` may fail looking for a root-level `package.json`.
- The S06 acceptance seed must backdate both `JobApplication.FollowUpAt` and the latest correspondence timestamp past the users `AppliedFollowUpDays` threshold; `RulesEngine` computes `Waiting` follow-up from the most recent activity (`DateApplied`, `ResponseDate`, `FollowUpAt`, `FeedbackRequestedAt`, or last correspondence), so a recent reminder date can suppress the intended `workflowSignal.actionKey = "follow-up"` fixture.
- In this M001 worktree, the local SQLite DB contains `admin@example.com` with the `Admin` role even when the placeholder `Auth:AdminPassword` from `appsettings.Development.json` no longer authenticates. For repeatable localhost acceptance reruns, `scripts/s06-acceptance-run.sh` can mint a dev-only local JWT from the checked-in JWT settings instead of depending on a manual bearer-token export.
- `scripts/s06-preflight.sh` intentionally exits 0 on the auth-limited path where `/api/auth/config` is reachable but `/api/admin/system` returns 401/403. Treat that as a guided partial pass for browser/UAT prep; only unreachable API, malformed JSON, or non-auth admin failures should block the slice.
- In this M001 worktree, the focused CRA regression command `CI=true npm --prefix /home/pi/development/JobTracker/.gsd/worktrees/M001/job-tracker-ui test -- --runInBand --watch=false src/daily-control-loop.test.tsx src/workflow-trust-signals.test.tsx` can fail with `react-scripts: not found` even when `job-tracker-ui/node_modules` already exists from an older install state; rerun `npm --prefix /home/pi/development/JobTracker/.gsd/worktrees/M001/job-tracker-ui install` first, then retry the exact test command.
- In the S07 localhost acceptance pass, opening the follow-up draft tab did not emit a fresh captured network request by itself. To verify the R008 manual-send boundary without clicking the send action, use the live UI evidence (`Copy Draft` and `Send And Log Email` both visible), then confirm `GET /api/jobapplications/3/followup-draft` succeeds from the authenticated browser context and that no `POST /api/jobapplications/3/send-followup` request appears during the observed pass.
- In this GSD worktree alias, running frontend installs from the symlinked path can corrupt `job-tracker-ui/package-lock.json` by writing package keys like `../../../../../../.gsd/projects/.../worktrees/M001/job-tracker-ui/node_modules/...`. That lockfile can still work locally but breaks CI `npm ci` on a different checkout path. Before pushing frontend lockfile changes, verify the lock uses plain `node_modules/...` package keys and test it from a different directory.