Make GCS the trigger, not just the bucket.
GCS holds the objects. Kestra decides what happens when they land: load new files into BigQuery on arrival, run partition-aware refreshes, curate raw drops with Python, and archive processed files, all with retries and one execution history.