mirror of
https://github.com/nearai/ironclaw.git
synced 2026-09-02 23:56:24 +08:00
fix(wasm): remove stale 10M fuel limit from settings DB (#2851)
* fix(wasm): remove stale 10M fuel limit from settings DB Databases that persisted `wasm.default_fuel_limit = 10000000` before the code default was bumped to 500M (limits.rs, config/wasm.rs) still read the old value at startup because DB settings take priority over code defaults. This caused WASM tools like google_slides to fail with "Fuel exhausted: execution exceeded 10000000 fuel units" even though the code default is 500M. Add migration V25 (both PostgreSQL and libSQL) that deletes the stale setting row when its value is <= 10M, so the 500M code default takes effect. Users who intentionally set a custom limit above 10M are unaffected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: trigger fresh run with skip-regression-check label [skip-regression-check] Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(wasm): extract JSONB scalar before cast, narrow to exact match (#2851) Address review feedback: - PostgreSQL: use (value#>>'{}')::BIGINT to extract JSONB scalar as text before casting, preventing runtime errors on JSONB columns - libSQL: use json_extract(value, '$') for equivalent JSON extraction - Narrow predicate from <= to = 10000000 to avoid deleting intentionally lowered custom fuel limits Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: serrrfirat <f@nuff.tech>
This commit is contained in:
7
migrations/V25__wasm_fuel_limit_bump.sql
Normal file
7
migrations/V25__wasm_fuel_limit_bump.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- The code default for wasm.default_fuel_limit was bumped from 10M to 500M
|
||||
-- (limits.rs, config/wasm.rs), but databases that persisted the old 10M value
|
||||
-- in the settings table still read it back at startup (DB-first resolution).
|
||||
-- Delete the stale row so the code default takes effect.
|
||||
DELETE FROM settings
|
||||
WHERE key = 'wasm.default_fuel_limit'
|
||||
AND (value#>>'{}')::BIGINT = 10000000;
|
||||
@@ -37,3 +37,4 @@ V21__backfill_conversation_source_channel = 4041142068103384561
|
||||
V22__sandbox_restart_params = 12611649486554869350
|
||||
V23__list_workspace_files_escape_like = 12519024535161914473
|
||||
V24__llm_calls_created_at_index = 2650126284755685421
|
||||
V25__wasm_fuel_limit_bump = 8924323300096627270
|
||||
|
||||
@@ -990,6 +990,21 @@ ALTER TABLE agent_jobs ADD COLUMN restart_params TEXT;
|
||||
"llm_calls_created_at_index",
|
||||
r#"
|
||||
CREATE INDEX IF NOT EXISTS idx_llm_calls_created_at ON llm_calls(created_at);
|
||||
"#,
|
||||
),
|
||||
(
|
||||
25,
|
||||
"wasm_fuel_limit_bump",
|
||||
// The code default for wasm.default_fuel_limit was bumped from 10M to
|
||||
// 500M (limits.rs, config/wasm.rs), but databases that persisted the
|
||||
// old 10M value in the settings table still read it back at startup
|
||||
// (DB-first resolution). Delete the stale row so the code default
|
||||
// takes effect; users who intentionally lowered the limit can re-set
|
||||
// it via the settings API.
|
||||
r#"
|
||||
DELETE FROM settings
|
||||
WHERE key = 'wasm.default_fuel_limit'
|
||||
AND CAST(json_extract(value, '$') AS INTEGER) = 10000000;
|
||||
"#,
|
||||
),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user