tradeit.gg

Week 19 · 2026

Engineering Operations

May 4 – 10

Highlight of the Week

Inventory API payload slimmed · single canonical lean shape across browse & stored snapshots

What We Shipped

Inventory Data API — Size Reduction (DEV-4923 / 4943)

Every /api/v2/inventory/data response now flows through one canonical lean shape — at the OS query layer and the FE response edge

Field-Level Trim
  • OS-level _source.excludes for fields BE re-fetches authoritatively: instantSellPrice (DB), steamContextId (const), killEater/killEaterType (screenshot), wantedStock
  • Response-edge drops: id (FE infers from assetId/groupId), gameId (mapped from numeric steamAppId), redundant _id
  • Sentinel-default drops: minFloat=0, maxFloat=1, steamAppId=730, tradeLockDay=null, sticker stats=0
  • CDN prefix stripping: imgURL, sticker/charm link, steamInspectLink; trailing empty steamTags trimmed
  • Rename: saleOfferOwnersso (FE-shape only — BE callers read raw OS docs)
5 repos · commits across the parser, backend, FE & admin
Why It Matters
The browse endpoint returns up to 100 group cards + 60 collapsed items per page. Trimming redundant keys, defensive defaults, and CDN prefixes per item compounds — every saved byte rides every page load.
Smaller wire payload · lower egress · faster JSON.parse on the FE event loop
Single canonical shape: stored snapshots (reserved.full_info, sale_offers.full_info) and browse responses converge — FE hydrators no longer branch by source
Ehud (via Claude Code) · May 4–10
Rollout — 3 Staging Cycles, Bugs Caught & Fixed
First iteration's aggressive parser-level field drops broke OS queries for trade-locked items and non-CS2 games — fields were missing at index time, so filters had nothing to match. Recovery: moved drops to query-time _source.excludes so the parser indexes everything; only the response layer is lean. Subsequent fixes: CS2 trade-lock false-positive (defensive steamAppId default), stale tradeLockDay on reserved-item reads (recompute from tradedAt), admin 401 from missing httponly auth merge.
3 staging deploys across 5 repos · final BE deploy May 10

Reliability

System Health

All Systems Healthy

No production incidents. Inventory shape work shipped to staging only — no prod risk this week.

What's Next

Coming Up — Week 20

Promote Inventory Shape to Prod
After 1–2 days of staging soak, cut the prod release for DEV-4923 across all 5 repos. Watch FE error rates and JSON.parse timings for the first 24h.
Measure The Win
Pull average response size for /api/v2/inventory/data pre/post deploy. Stitch into the running infra-savings tally.