From 3a3d25382db9deadd18f7d38ceb02c0c52266a55 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Tue, 14 Jul 2026 19:57:02 +0200 Subject: [PATCH] fix: atomic free-tier budget reservation (ee ref + sqlx) Co-Authored-By: Claude Opus 4.8 (1M context) --- ...ae65ad4df593cc11dbbd767643fd69dd0bfef.json | 24 +++++++++++++++++++ ...594065744ace99f79b9b65e45c0752b28515f.json | 20 ---------------- ...c4739b904c055b0b5856ca1b6f7a1b4ce43e5.json | 23 ++++++++++++++++++ backend/ee-repo-ref.txt | 2 +- 4 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 backend/.sqlx/query-2546a3ef0d505ad1b116372f24cae65ad4df593cc11dbbd767643fd69dd0bfef.json delete mode 100644 backend/.sqlx/query-4cb51756e06965798eff26207a6594065744ace99f79b9b65e45c0752b28515f.json create mode 100644 backend/.sqlx/query-cc3d790f50165bf0c0299ea3a9fc4739b904c055b0b5856ca1b6f7a1b4ce43e5.json diff --git a/backend/.sqlx/query-2546a3ef0d505ad1b116372f24cae65ad4df593cc11dbbd767643fd69dd0bfef.json b/backend/.sqlx/query-2546a3ef0d505ad1b116372f24cae65ad4df593cc11dbbd767643fd69dd0bfef.json new file mode 100644 index 0000000000..38c44cba64 --- /dev/null +++ b/backend/.sqlx/query-2546a3ef0d505ad1b116372f24cae65ad4df593cc11dbbd767643fd69dd0bfef.json @@ -0,0 +1,24 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO ai_free_token_usage (email, cost_nanos, updated_at)\n VALUES ($1, $2::bigint, now())\n ON CONFLICT (email) DO UPDATE\n SET cost_nanos = ai_free_token_usage.cost_nanos + $2::bigint,\n updated_at = now()\n WHERE ai_free_token_usage.cost_nanos < $3::bigint\n RETURNING cost_nanos", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "cost_nanos", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Varchar", + "Int8", + "Int8" + ] + }, + "nullable": [ + false + ] + }, + "hash": "2546a3ef0d505ad1b116372f24cae65ad4df593cc11dbbd767643fd69dd0bfef" +} diff --git a/backend/.sqlx/query-4cb51756e06965798eff26207a6594065744ace99f79b9b65e45c0752b28515f.json b/backend/.sqlx/query-4cb51756e06965798eff26207a6594065744ace99f79b9b65e45c0752b28515f.json deleted file mode 100644 index 2b90a690ab..0000000000 --- a/backend/.sqlx/query-4cb51756e06965798eff26207a6594065744ace99f79b9b65e45c0752b28515f.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT cost_nanos FROM ai_free_token_daily_usage WHERE day = (now() at time zone 'utc')::date", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "cost_nanos", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [] - }, - "nullable": [ - false - ] - }, - "hash": "4cb51756e06965798eff26207a6594065744ace99f79b9b65e45c0752b28515f" -} diff --git a/backend/.sqlx/query-cc3d790f50165bf0c0299ea3a9fc4739b904c055b0b5856ca1b6f7a1b4ce43e5.json b/backend/.sqlx/query-cc3d790f50165bf0c0299ea3a9fc4739b904c055b0b5856ca1b6f7a1b4ce43e5.json new file mode 100644 index 0000000000..b17f7edf20 --- /dev/null +++ b/backend/.sqlx/query-cc3d790f50165bf0c0299ea3a9fc4739b904c055b0b5856ca1b6f7a1b4ce43e5.json @@ -0,0 +1,23 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO ai_free_token_daily_usage (day, cost_nanos, updated_at)\n VALUES ((now() at time zone 'utc')::date, $1::bigint, now())\n ON CONFLICT (day) DO UPDATE\n SET cost_nanos = ai_free_token_daily_usage.cost_nanos + $1::bigint,\n updated_at = now()\n WHERE ai_free_token_daily_usage.cost_nanos < $2::bigint\n RETURNING cost_nanos", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "cost_nanos", + "type_info": "Int8" + } + ], + "parameters": { + "Left": [ + "Int8", + "Int8" + ] + }, + "nullable": [ + false + ] + }, + "hash": "cc3d790f50165bf0c0299ea3a9fc4739b904c055b0b5856ca1b6f7a1b4ce43e5" +} diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 7a4ff4906d..5ea507eaaf 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -25cbc0a7589fd2acd430e5991e4fdd36dde8c215 \ No newline at end of file +48f5e2ec3b3bb903b7c172a6e7925967a464b331 \ No newline at end of file