pelagia-portal/App/app
Hardik df950c7253 feat(crewing): ex-hand recognition (B3)
- AC1: addCandidate recognizes a returning hand re-entered as a fresh candidate
  — matched to their existing EX_HAND pool record by email (preferred) or exact
  name — and reuses that row instead of creating a duplicate, preserving tour
  history/documents/bank. Audited CANDIDATE_UPDATED { exHandRecognized: true }.
- AC2: the Candidates list sorts ex-hands above new candidates by default
  (stable, preserving createdAt order within each group).
- AC3: the candidate detail "Returning crew" callout now renders the matched
  member's actual tour history (ExperienceRecord) and documents on file.

candidates.test.ts covers email/name recognition, the no-match path, and the
ex-hand-first page ordering.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:49:43 +05:30
..
(auth)/login fix(auth): display OAuth errors on the login page 2026-05-28 23:15:27 +05:30
(portal) feat(crewing): ex-hand recognition (B3) 2026-06-22 23:49:43 +05:30
actions chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
api feat(crewing): EPFO/UAN assisted verification (GstService pattern, flagged) 2026-06-22 22:43:24 +05:30
globals.css chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30
layout.tsx feat(app): env-gated banner (EnvBanner) for non-prod environments 2026-06-19 11:56:34 +05:30
page.tsx chore: restructure repo — flatten App/pelagia-portal to App, rename Prototype→Wireframe and Spec→Design 2026-05-18 23:18:58 +05:30