ops: post-merge deploy and manual QA for #547 / #548 / #550 #552

Closed
opened 2026-08-17 13:49:46 +00:00 by PlasticDigits · 5 comments
PlasticDigits commented 2026-08-17 13:49:46 +00:00 (Migrated from gitlab.com)

Summary

!1076 (#548), !1077 (#547), and !1078 (#550) are merged to main. Remaining work is production/LocalTerra deploy + manual QA, plus a few optional test gaps. The MRs auto-closed the implementation issues.

Conflict resolution on !1078 kept #548 P522-Q catalog volume_usd, nullable 24h USD, and pair-leg token_count. vFDUSD is a Protocol oracle ticker only — not used for DEX volume.

Deploy (blocker for Charts/Protocol USD)

  1. Deploy indexer so both migrations apply in order:
    • 20260817120000_backfill_swap_volume_usd_catalog.sql (#548 catalog backfill + 24h rollup refresh)
    • 20260818120000_global_stats_windows_and_census.sql (#550 7d/30d / active pairs / unique traders)
  2. After the census columns exist, run refresh_global_stats (indexer restart or wait ~5 min aggregator). Do not re-run a 24h-only INSERT into global_stats_24h (would leave 7d/30d at 0).
  3. Confirm GET /api/v1/overview:
    • total_volume_24h_usd is a positive string when catalog-priced 24h swaps exist, JSON null when trades exist but unpriced, "0" when idle
    • token_count = unique pair legs
    • additive #550 fields present (total_volume_7d_usd, tokens_added_30d, active_pairs_24h, …)
  4. Confirm GET /api/v1/oracle/price catalog includes vfdusd; /price/vfdusd is CEX FDUSD (not $1); /price/fdusd is 400.

Manual QA (from closed issues)

#548 Charts overview

  • /charts shows one 24h Volume (USD) box; no raw 10,000,000T
  • Value matches overview JSON (allow ~5 min rollup + 60s cache)
  • USTC / USD uses $ + price formatter, not compact T
  • Pair-search USD badges remain #544 (out of scope here)

#547 Pool table

  • /pool is search + add + table (no protocol README / Router-known)
  • UST1/cUSTC, UST1/USTR, cLUNC/UST1 lead the default list when indexed; gems last
  • Share a Charts URL from a row; open in a new tab
  • Light + dark: caret sits next to header text

#550 Protocol

  • Stats card above one oracle card; USTC / LUNC / vFDUSD chips
  • Production/LocalTerra: USTC ~0.00x, LUNC ~0.0000x, vFDUSD ~1.00 (not 100× swapped)
  • Protocol 24h USD vs Charts 24h Volume (USD) within rollup lag
  • Light + dark eyeball of stats + ticker chips

Optional test follow-ups (not deploy-blocking)

  • #548 C9: unit test that the Charts overview strip hides when overview+pairs fail
  • Charts H2 RTL: mock getPair so React Query does not log undefined for indexer-pair-one
  • #550 P6: Protocol light+dark e2e (or document design-tokens-visual as sufficient)
  • #550 O4: RTL Enter/Space on oracle tabs
  • #547 A8: RTL that getPool / getPairFeeConfig are not called before Manage expand

Out of scope

  • #544 pair-search / picker USD badges
  • Closing this issue before the deploy checklist above is done on the environment that serves dex.cl8y.com (or a documented LocalTerra equivalent)
## Summary !1076 (#548), !1077 (#547), and !1078 (#550) are merged to `main`. Remaining work is **production/LocalTerra deploy + manual QA**, plus a few optional test gaps. The MRs auto-closed the implementation issues. Conflict resolution on !1078 kept **#548 P522-Q catalog `volume_usd`**, nullable 24h USD, and **pair-leg `token_count`**. vFDUSD is a Protocol oracle ticker only — not used for DEX volume. ## Deploy (blocker for Charts/Protocol USD) 1. Deploy indexer so both migrations apply in order: - `20260817120000_backfill_swap_volume_usd_catalog.sql` (#548 catalog backfill + 24h rollup refresh) - `20260818120000_global_stats_windows_and_census.sql` (#550 7d/30d / active pairs / unique traders) 2. After the census columns exist, run `refresh_global_stats` (indexer restart or wait ~5 min aggregator). Do **not** re-run a 24h-only `INSERT` into `global_stats_24h` (would leave 7d/30d at 0). 3. Confirm `GET /api/v1/overview`: - `total_volume_24h_usd` is a positive string when catalog-priced 24h swaps exist, JSON `null` when trades exist but unpriced, `"0"` when idle - `token_count` = unique pair legs - additive #550 fields present (`total_volume_7d_usd`, `tokens_added_30d`, `active_pairs_24h`, …) 4. Confirm `GET /api/v1/oracle/price` catalog includes `vfdusd`; `/price/vfdusd` is CEX FDUSD (not `$1`); `/price/fdusd` is 400. ## Manual QA (from closed issues) ### #548 Charts overview - `/charts` shows **one** 24h Volume (USD) box; no raw `10,000,000T` - Value matches overview JSON (allow ~5 min rollup + 60s cache) - USTC / USD uses `$` + price formatter, not compact `T` - Pair-search USD badges remain #544 (out of scope here) ### #547 Pool table - `/pool` is search + add + table (no protocol README / Router-known) - UST1/cUSTC, UST1/USTR, cLUNC/UST1 lead the default list when indexed; gems last - Share a Charts URL from a row; open in a new tab - Light + dark: caret sits next to header text ### #550 Protocol - Stats card above one oracle card; USTC / LUNC / vFDUSD chips - Production/LocalTerra: USTC ~0.00x, LUNC ~0.0000x, vFDUSD ~1.00 (not 100× swapped) - Protocol 24h USD vs Charts 24h Volume (USD) within rollup lag - Light + dark eyeball of stats + ticker chips ## Optional test follow-ups (not deploy-blocking) - #548 **C9**: unit test that the Charts overview strip hides when overview+pairs fail - Charts **H2** RTL: mock `getPair` so React Query does not log `undefined` for `indexer-pair-one` - #550 **P6**: Protocol light+dark e2e (or document `design-tokens-visual` as sufficient) - #550 **O4**: RTL Enter/Space on oracle tabs - #547 **A8**: RTL that `getPool` / `getPairFeeConfig` are not called before Manage expand ## Out of scope - #544 pair-search / picker USD badges - Closing this issue before the deploy checklist above is done on the environment that serves dex.cl8y.com (or a documented LocalTerra equivalent)
PlasticDigits commented 2026-08-17 13:49:47 +00:00 (Migrated from gitlab.com)

marked as related to #547

marked as related to #547
PlasticDigits commented 2026-08-17 13:49:47 +00:00 (Migrated from gitlab.com)

marked as related to #548

marked as related to #548
PlasticDigits commented 2026-08-17 13:49:48 +00:00 (Migrated from gitlab.com)

marked as related to #550

marked as related to #550
PlasticDigits commented 2026-08-17 14:58:03 +00:00 (Migrated from gitlab.com)

marked as related to #553

marked as related to #553
PlasticDigits commented 2026-08-17 14:58:33 +00:00 (Migrated from gitlab.com)

Production QA 2026-08-17 (indexer + frontend on dex.cl8y.com / indexer.dex.cl8y.com).

Deploy checklist: done. Overview has priced total_volume_24h_usd ($711), pair-leg token_count 12, #550 7d/30d/census fields, oracle catalog vfdusd ($0.998, not $1); /price/fdusd is 400.

Manual QA: /charts one 24h Volume (USD) box; /pool table with UST1/cUSTC → UST1/USTR → cLUNC/UST1 then gems + Charts links; /protocol global stats above one USTC/LUNC/vFDUSD oracle card.

#547 / #548 / #550 were already closed by merge. Follow-up: trader leaderboard still formatNums raw volume as 10,000,000T → #553.

Optional RTL/e2e gaps listed in the description stay non-blocking.

Production QA 2026-08-17 (indexer + frontend on dex.cl8y.com / indexer.dex.cl8y.com). **Deploy checklist:** done. Overview has priced `total_volume_24h_usd` (~$711), pair-leg `token_count` 12, #550 7d/30d/census fields, oracle catalog `vfdusd` (~$0.998, not `$1`); `/price/fdusd` is 400. **Manual QA:** `/charts` one 24h Volume (USD) box; `/pool` table with UST1/cUSTC → UST1/USTR → cLUNC/UST1 then gems + Charts links; `/protocol` global stats above one USTC/LUNC/vFDUSD oracle card. #547 / #548 / #550 were already closed by merge. Follow-up: trader leaderboard still `formatNum`s raw volume as `10,000,000T` → #553. Optional RTL/e2e gaps listed in the description stay non-blocking.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-17 14:58:35 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#552
No description provided.