TEFactory Control RoomISOLATED PREVIEWS
← All jobs

JOB D64A2E79 · REVISION 0

Show Candidate Email in Profile.

phantomtiger04@gmail.com

failed

REQUEST

Hi. In the candidate detail drawer, display the candidate’s email address beneath their title and company. Make it a clickable mailto: link and add an automated test for it. Do not change the database schema or migrate any data.

1. User-visible behavior

- In the candidate detail drawer, show the candidate’s email beneath the title/company line.
- Render it as a clickable link with `href="mailto:<candidate email>"`.

2. Frontend changes

- Update the drawer markup in `components/recruiting-app.tsx`.
- Add a styled email link beneath the existing title/company text.
- Preserve the existing candidate editing and recruiting workflows.

3. Backend and Convex changes

- None required. Candidate email already flows through:
  - Convex schema and candidate mutations
  - Dashboard query
  - API validation
  - Shared `Candidate` type
  - Demo data fallback

4. Migration assessment

- No stored-data change is needed, so no app-version bump, migration entry, or `.factory/schema.transition.ts` file should be added.
- Existing records already contain email addresses; no transient widened schema, backup/stash, forward transform, rollback, reapply, or row-count/invariant migration work is required.
- The existing factory migration contract should remain unchanged and continue validating its current data lifecycle if invoked by the preview harness.

5. Tests and browser verification

- Extend `e2e/factory-preview.spec.ts` after opening an existing candidate drawer.
- Assert the email is visible and the link has the expected `mailto:` href, e.g. Ava Chen’s email.
- Run the repository contract commands: typecheck, unit tests, build, and Playwright/browser verification.

6. Risks or questions

- No material safety blockers identified. The request is isolated to presentation and can be implemented safely in an isolated preview without schema or data migration.
Run stopped safely

$ bun scripts/factory/migrate.ts run 292 | throw forwardErrorData( 293 | respJSON.errorData, 294 | new ConvexError(respJSON.errorMessage) 295 | ); 296 | } 297 | throw new Error(respJSON.errorMessage); ^ error: [Request ID: 92272fa7f5a42bda] Server Error Uncaught Error: Invalid migration run id at hopKey (../convex/migrations.ts:150:28) at handler (../convex/migrations.ts:15:14) at mutationInner (/vercel/sandbox/target/node_modules/convex/dist/esm/browser/http_client.js:297:19) at async processMutationQueue (/vercel/sandbox/target/node_modules/convex/dist/esm/browser/http_client.js:310:35) Bun v1.3.11 (Linux x64) error: script "factory:migrate" exited with code 1

TIMELINE

received

Request received

planning

Read-only planning run queued

awaiting approval

Plan sent; waiting for email approval

provisioning

Approved by email; provisioning queued

implementing

Isolated backend cloned; Codex implementation started

migrating

Running idempotent migration and validation

implementing

Repair pass 1 started

migrating

Running idempotent migration and validation

implementing

Repair pass 2 started

migrating

Running idempotent migration and validation

failed

Implementation failed