fix: costs timeframes and surface limit reset settings#3709
fix: costs timeframes and surface limit reset settings#3709joeyorlando merged 4 commits intomainfrom
Conversation
|
Claude finished @joeyorlando's task in 3m 56s —— View job PR Review: fix: cost statistics custom timeframe
Overall this is a clean, focused fix. The root cause (costs page downgrading every Core fix — looks correct
Initializing Small observations / nits
Tests
Minor test suggestion: you could extend the costs test to also assert that when the URL has no VerdictThe fix is targeted, the regression test is exactly what's needed to prevent future reintroduction, and the supporting UI changes (bounded scrollable tables, limits-page hint) are each independently reasonable. Nothing blocking from my side. --- • Branch: codex/fix-costs-date-range |
🤖 I have created a release *beep* *boop* --- ## [1.2.10](platform-v1.2.9...platform-v1.2.10) (2026-04-11) ### Features * make posthog analytics configurable ([#3707](#3707)) ([7ae9101](7ae9101)) ### Bug Fixes * `/llm/costs` table scrolling ([#3722](#3722)) ([6a42ba8](6a42ba8)) * apply MCP OAuth lifetime for gateway slugs ([#3711](#3711)) ([362aaec](362aaec)) * Bedrock tool name encoding ([#3706](#3706)) ([0e2c2d1](0e2c2d1)) * costs timeframes and surface limit reset settings ([#3709](#3709)) ([6e4154b](6e4154b)) * jira oauth discovery overrides ([#3721](#3721)) ([2c4cf8f](2c4cf8f)) * OIDC discovery trusted origins for IdP registration ([#3714](#3714)) ([adb5f5e](adb5f5e)) * preserve shared chat agents on fork ([#3715](#3715)) ([252edfc](252edfc)) * reranker model dropdown labels ([#3704](#3704)) ([ebd1c8a](ebd1c8a)) * session logs loading state ([#3712](#3712)) ([ffba126](ffba126)) ### Miscellaneous Chores * **ci:** add ID-JAG MCP e2e test ([#3702](#3702)) ([1a5078a](1a5078a)) * **deps:** bump next from 16.1.7 to 16.2.3 in /platform/frontend ([#3708](#3708)) ([d47967c](d47967c)) * use neutral token prefixes with legacy support ([#3719](#3719)) ([db5929c](db5929c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: archestra-ci[bot] <222894074+archestra-ci[bot]@users.noreply.github.com> Co-authored-by: Joey Orlando <joey@archestra.ai>
Summary
/llm/costsso custom timeframes are sent to the statistics API instead of falling back to all-time data./llm/limitsthat shows the active reset cadence and links to LLM settings.Root Cause
The costs page converted every
custom:*timeframe toallbefore invoking the statistics queries, so future custom ranges continued showing all-time data instead of an empty range. Separately, the limit reset cadence lived only under LLM settings, which made it easy to miss when working from the limits page.User Impact
/llm/costsnow drive the charts and summaries correctly, including future ranges./llm/limits.Validation
pnpm installpnpm --filter @frontend test -- 'src/app/llm/(costs)/costs/page.test.tsx' --runpnpm --filter @frontend test -- 'src/app/llm/(costs)/limits/page.test.tsx' --runpnpm --filter @frontend type-checkpnpm exec biome check 'frontend/src/app/llm/(costs)/costs/page.tsx' 'frontend/src/app/llm/(costs)/costs/page.test.tsx'pnpm exec biome check 'frontend/src/app/llm/(costs)/limits/page.tsx' 'frontend/src/app/llm/(costs)/limits/page.test.tsx'