Skip to content

Implements FloatDB Gateway for Rank Fetching#387

Merged
Step7750 merged 14 commits intomasterfrom
feat/rank-gateway-service
Apr 15, 2026
Merged

Implements FloatDB Gateway for Rank Fetching#387
Step7750 merged 14 commits intomasterfrom
feat/rank-gateway-service

Conversation

@Step7750
Copy link
Copy Markdown
Collaborator

@Step7750 Step7750 commented Apr 13, 2026

Overview

Switches to using the gateway.floatdb.com service to lookup ranks for items. There's been a decent chunk of optimization to reduce needless calls, such as using a threshold blob to determine whether an item qualifies for a rank.

Changes

  • Pre-filters rank lookups with a locally cached threshold copy
  • Eagerly fetches ranks when possible to reduce the amount of total calls to the gateway
    • Note: This only applies when visiting a Steam profile inventory, notably excluding the trade inventory page
    • Batches rank lookups within 100ms debouncing periods to similarly prevent many calls
  • Refactors implementation of the float fetcher service since it doesn't need a queue model anymore
    • Fixes previous issues with deduplicating in flight requests and returning cached items
  • Switches to primarily use a new FetchInspectInfoBatch bridge method since the overhead of sending 100+ messages to the service worker to check ranks would exceed the rank batcher debounce interval.

Ref CSF-1165


Note

Medium Risk
Introduces new networked rank-check and threshold-fetch flows plus request batching/deduping, which could affect item metadata/rank display correctness and increase reliance on the new gateway endpoints.

Overview
Switches rank lookups to the FloatDB Gateway (environment.floatdb_gateway_url) and adds client-side rank-check batching plus local threshold caching to reduce unnecessary rank requests.

Refactors float/inspect fetching to require asset_id and to batch bridge calls via a new FETCH_INSPECT_INFO_BATCH handler; FloatFetcher now microtask-batches, de-dupes in-flight requests, and caches results by asset.

Adds eager prefetching of floats/ranks when inventory asset properties load, and updates market/inventory components to pass asset_id (removing the previous list-price-based fetch path).

Reviewed by Cursor Bugbot for commit 8204d10. Bugbot is set up for automated code reviews on this repo. Configure here.

Step7750 added 6 commits April 8, 2026 17:51
Prevents duplicate in-flight or cached requests from re-requesting ranks. Refactors the float fetcher service for performance.
there is no meaningful downside since pages are added incrementally as you paginate
Comment thread src/lib/page_scripts/inventory.ts
Comment thread src/lib/page_scripts/inventory.ts Outdated
Copy link
Copy Markdown
Collaborator

@GODrums GODrums left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥇

Comment thread src/lib/bridge/handlers/fetch_inspect_info.ts Outdated
Comment thread src/lib/storage/keys.ts Outdated
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d5562e7. Configure here.

Comment thread src/lib/page_scripts/inventory.ts
Comment thread src/lib/services/rank_batcher.ts
@Step7750 Step7750 merged commit a19c3f3 into master Apr 15, 2026
3 checks passed
@Step7750 Step7750 deleted the feat/rank-gateway-service branch April 15, 2026 06:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants