PR #9964 states that its hard daily-audio ceiling is enforced for fresh Sync and that plan-aware soft caps protect paid unlimited tiers. On current main, is_daily_audio_ceiling_exceeded is imported and called only by the V1 route (backend/routers/sync.py:579); POST /v2/sync-local-files has no equivalent pre-admission check. Its worker also calls check_soft_caps(uid, speech_totals=...) without the subscription plan (backend/utils/sync/pipeline.py:1789-1790), unlike V1. This leaves the primary asynchronous Sync path outside the intended anti-abuse ceiling and applies default caps to unlimited users. Repair production behavior with regression coverage; do not simulate either policy only inside a hermetic test harness.
PR #9964 states that its hard daily-audio ceiling is enforced for fresh Sync and that plan-aware soft caps protect paid unlimited tiers. On current main,
is_daily_audio_ceiling_exceededis imported and called only by the V1 route (backend/routers/sync.py:579);POST /v2/sync-local-fileshas no equivalent pre-admission check. Its worker also callscheck_soft_caps(uid, speech_totals=...)without the subscription plan (backend/utils/sync/pipeline.py:1789-1790), unlike V1. This leaves the primary asynchronous Sync path outside the intended anti-abuse ceiling and applies default caps to unlimited users. Repair production behavior with regression coverage; do not simulate either policy only inside a hermetic test harness.