-- The USD-rate admin page no longer collects a per-cut "Hourly (USD)"
-- fallback value (resolveRateForCutoff() now reads ONLY
-- invoice_profiles.hourly_rate_usd for the hourly rate, no fallback
-- chain through rate_history.hourly_usd or invoice_settings.hourly_rate_usd).
-- New rate_history rows are inserted without hourly_usd, so the
-- historical `not null` constraint has to go — existing rows keep
-- their legacy value untouched, they're just no longer read by
-- invoice generation.
alter table public.rate_history
  alter column hourly_usd drop not null;
