Tracker → Desk Review Prep queue — 2026-07-28

Stephaney can now queue Regional Overdue Permits Tracker rows for PPDR intake directly from the spreadsheet view.

Flow: check rows in the new DESK REVIEW column → floating “Send N to Desk Review Prep” bar → rows land in ppdr_staging (source tracker:{username}, batch TRK-<timestamp>) → Desk Review Prep lists them → each deep-links into the pre-filled intake wizard (unchanged). She still walks the full intake: permit upload, parse, photos, pier logs — direct project creation was explicitly rejected (Dustin, 2026-07-28).

Endpoints (routes/tracker.py, cookie/API-key auth):

  • GET /tracker/desk-review-queue — tracker_permit_id → {staging_id, status, unqueueable} for staged/on_hold/converted rows
  • POST /tracker/stage-desk-review — batch insert, per-row dup-skip + errors
  • POST /tracker/unstage-desk-review — uncheck path; tracker-sourced staged rows only → status ‘removed’ (re-queueable)

Design decisions: batch button over instant checkbox; stateful chips (Queued / Hold / ✓ converted) refreshed with the 2-minute data poll; NO eligibility guards at check time; Dustin’s hand-curated staging batches show Queued but cannot be unchecked from the tracker. Tracker-staged rows inherit the intake approval-queue bypass (same as pre-vetted batches) — flagged to Dustin as the one open policy question.

Commits: entirely-api 2705571, entirely-portal a98acea.