feat(crewing): resolve self-contained deferred follow-ups (flagged) #88
No reviewers
Labels
No labels
bug
claude-failed
claude-pr
claude-queue
claude-working
epic
feature
interactive
portal
triaged
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: shad0w/pelagia-portal#88
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/crewing-followups"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Crewing — self-contained deferred follow-ups
Clears the deferrals tracked across earlier phases that were genuinely self-contained. Stacks on #74 (appraisal); base
feat/crewing-appraisal. BehindNEXT_PUBLIC_CREWING_ENABLED.What's in
lib/crew-login.tsmaybeCreateSiteStaffLogincreates a passwordlessSITE_STAFFUser(sharing theCRW-employee no.) when agrantsLoginrank is onboarded (onboardCandidate) or placed (placeCrew) and the crew member has an email. No-op for non-login ranks / no email / existing user.User.siteIdadded; the Crew directory filters aSITE_STAFFuser with a home site to crew whose active assignment is at that site (graceful when unset). The link is set at login creation (thesiteId= the assignment's site).PpeIssue/NextOfKingainedverificationStatus+verifiedById;verifyPpe/verifyNextOfKin(verify_site_records— MPO) + queue sections in/crewing/verification.Tests & docs
crewing-followups.test.ts(6) — login created/skipped by rank + email (andsiteIdset), PPE/NoK verify + reject-reason + already-decided guard + permission gating.type-checkclean; full unit (245) + integration (211) green (verified withRESEND_API_KEYunset, mimicking CI).CLAUDE.mdupdated.Part of Epic D (#78), Epic E (#79), Epic F (#80), Epic I (#83).
Still deferred (not self-contained)
🤖 Generated with Claude Code
5f7a64d2d5todf3b4bdc97