feat(market): add Gulf Economies panel with GCC indices, currencies & oil#667
Merged
Conversation
… oil Add a new panel tracking 15 Gulf/GCC financial symbols via Yahoo Finance: - 7 stock indices (TASI, DFMGI, ADX, QSI, Bahrain, Kuwait, MSM) - 6 currencies (SAR, AED, QAR, KWD, BHD, OMR vs USD) - 2 oil benchmarks (WTI, Brent) Server: new ListGulfQuotes RPC with 3-tier caching (in-memory + Redis via cachedFetchJson + stale fallback). Uses fetchYahooQuotesBatch for rate-limit-safe sequential fetching. Frontend: GulfEconomiesPanel with 3 collapsible sections, sparklines, 8s delayed start, 60s polling. Registered in both full and finance variants. Inspired by #641 (credit: @aa5064, commit 684a73c).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Explicitly set 'medium' cache tier for the new Gulf quotes endpoint, matching other market RPCs instead of relying on the implicit default.
Deduplicates the identical function from MarketPanel and GulfEconomiesPanel into a single shared utility.
Panel remains always-on for finance variant. Full variant users can manually enable it via panel settings.
koala73
added a commit
that referenced
this pull request
Mar 1, 2026
… oil (#667) * feat(market): add Gulf Economies panel with GCC indices, currencies & oil Add a new panel tracking 15 Gulf/GCC financial symbols via Yahoo Finance: - 7 stock indices (TASI, DFMGI, ADX, QSI, Bahrain, Kuwait, MSM) - 6 currencies (SAR, AED, QAR, KWD, BHD, OMR vs USD) - 2 oil benchmarks (WTI, Brent) Server: new ListGulfQuotes RPC with 3-tier caching (in-memory + Redis via cachedFetchJson + stale fallback). Uses fetchYahooQuotesBatch for rate-limit-safe sequential fetching. Frontend: GulfEconomiesPanel with 3 collapsible sections, sparklines, 8s delayed start, 60s polling. Registered in both full and finance variants. Inspired by #641 (credit: @aa5064, commit 684a73c). * refactor: hoist MarketServiceClient to module scope, clarify memCache closure * fix(market): register list-gulf-quotes in RPC_CACHE_TIER map Explicitly set 'medium' cache tier for the new Gulf quotes endpoint, matching other market RPCs instead of relying on the implicit default. * refactor: extract shared miniSparkline to @/utils/sparkline Deduplicates the identical function from MarketPanel and GulfEconomiesPanel into a single shared utility. * fix(panels): disable gulf-economies by default on full variant Panel remains always-on for finance variant. Full variant users can manually enable it via panel settings.
koala73
added a commit
to fuleinist/worldmonitor
that referenced
this pull request
Mar 1, 2026
The Gulf Economies panel (PR koala73#667) added this RPC after the feature branch was forked. Bring handler and registration from main.
matthewvecchione1-ops
pushed a commit
to matthewvecchione1-ops/worldmonitor
that referenced
this pull request
Mar 4, 2026
… oil (koala73#667) * feat(market): add Gulf Economies panel with GCC indices, currencies & oil Add a new panel tracking 15 Gulf/GCC financial symbols via Yahoo Finance: - 7 stock indices (TASI, DFMGI, ADX, QSI, Bahrain, Kuwait, MSM) - 6 currencies (SAR, AED, QAR, KWD, BHD, OMR vs USD) - 2 oil benchmarks (WTI, Brent) Server: new ListGulfQuotes RPC with 3-tier caching (in-memory + Redis via cachedFetchJson + stale fallback). Uses fetchYahooQuotesBatch for rate-limit-safe sequential fetching. Frontend: GulfEconomiesPanel with 3 collapsible sections, sparklines, 8s delayed start, 60s polling. Registered in both full and finance variants. Inspired by koala73#641 (credit: @aa5064, commit 684a73c). * refactor: hoist MarketServiceClient to module scope, clarify memCache closure * fix(market): register list-gulf-quotes in RPC_CACHE_TIER map Explicitly set 'medium' cache tier for the new Gulf quotes endpoint, matching other market RPCs instead of relying on the implicit default. * refactor: extract shared miniSparkline to @/utils/sparkline Deduplicates the identical function from MarketPanel and GulfEconomiesPanel into a single shared utility. * fix(panels): disable gulf-economies by default on full variant Panel remains always-on for finance variant. Full variant users can manually enable it via panel settings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new Gulf Economies panel tracking 15 GCC financial symbols via Yahoo Finance:
Architecture
ListGulfQuotesRPC with 3-tier caching (in-memory → Redis viacachedFetchJson→ stale fallback). UsesfetchYahooQuotesBatch()for rate-limit-safe sequential fetching.GulfEconomiesPanelwith 3 sections (Indices / Currencies / Oil), sparklines, 8s delayed start to avoid Yahoo 429, 60s polling interval..market-itemCSS classes — only adds.gulf-section-titlefor section headers.Attribution
Inspired by #641 by @aa5064 (commit 684a73c). The original PR proposed a Gulf Economies tracker but was too diverged to merge (100+ commits from fork history). This reimplements the concept using existing codebase patterns.
Files Changed (10)
server/.../list-gulf-quotes.tsserver/.../handler.tssrc/generated/.../service_server.tssrc/generated/.../service_client.tssrc/components/GulfEconomiesPanel.tssrc/components/index.tssrc/app/panel-layout.tssrc/config/panels.tssrc/locales/en.jsonsrc/styles/main.cssTest plan
npx tsc --noEmitpasses (verified)npx tsc --noEmit -p tsconfig.api.jsonpasses (verified)