feat(workers): Settings → Workers, composer Runs-on chip, badges, takeover confirm
- lib/workers.tsx: useWorkers (workers SSE), WorkerSelect chip (auto from
the account, amber when it fell back to the lab), WorkerBadge, StatusDot
- Settings → Workers page + pairing form (one string; account picker only
when the login matches no account), install instructions
- ResumeBox: static worker badge; terminal_live 409 → confirm → takeover
- home banner for an offline/refused worker; typed worker run errors
- mock: workers seed (online/offline/unauthorized) + /api/workers handlers
- docs: CLAUDE.md Workers section, GOAL item, README box, worker/README.md
- standalone smoke asserts the runner's /feed + /pair routes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>