From a49c7a49f1e151e2bd8f647f6585c33924b8c79f Mon Sep 17 00:00:00 2001 From: JinBoatus1 Date: Mon, 10 Aug 2026 22:54:04 -0400 Subject: [PATCH 1/2] chore(leaderboard): temporarily hide Daily Leaderboard UI Park the tab and pause the nightly refresh schedule until model curves deploy reliably; keep backend and workflow_dispatch. Co-authored-by: Cursor --- .github/workflows/daily-leaderboard.yml | 12 +++++++++--- .../tests/test_frontend_daily_leaderboard.py | 15 +++++++++++++++ dashboard/frontend/app.html | 16 ++++++++++++---- dashboard/frontend/app.js | 16 +++++++++++++++- 4 files changed, 51 insertions(+), 8 deletions(-) diff --git a/.github/workflows/daily-leaderboard.yml b/.github/workflows/daily-leaderboard.yml index 7020bca4..82a3a003 100644 --- a/.github/workflows/daily-leaderboard.yml +++ b/.github/workflows/daily-leaderboard.yml @@ -8,11 +8,17 @@ name: Daily Leaderboard refresh # # Requires repository secret LEADERBOARD_DAILY_REFRESH_SECRET matching # the value configured on the Render service. +# +# UI is temporarily hidden (Daily Leaderboard subtab parked). The nightly +# schedule is paused until model curves deploy reliably — keep +# workflow_dispatch so operators can still trigger a refresh by hand. +# To re-enable: restore the `schedule:` block below and un-hide the subtab +# in dashboard/frontend/app.html (+ the navigateToPage redirect in app.js). on: - schedule: - # 22:30 UTC Mon–Fri ≈ 18:30 EDT / 17:30 EST — after the 16:00 ET cash close. - - cron: "30 22 * * 1-5" + # schedule: + # # 22:30 UTC Mon–Fri ≈ 18:30 EDT / 17:30 EST — after the 16:00 ET cash close. + # - cron: "30 22 * * 1-5" workflow_dispatch: inputs: deploy_models: diff --git a/dashboard/backend/tests/test_frontend_daily_leaderboard.py b/dashboard/backend/tests/test_frontend_daily_leaderboard.py index c43300a2..8ac3c3b1 100644 --- a/dashboard/backend/tests/test_frontend_daily_leaderboard.py +++ b/dashboard/backend/tests/test_frontend_daily_leaderboard.py @@ -90,3 +90,18 @@ def test_leaderboard_cache_buster_bumped(): match = re.search(r"js/leaderboard\.js\?v=(\d+)", _APP_HTML) assert match, "leaderboard.js must be loaded with a ?v= cache buster" assert int(match.group(1)) >= 19 + + +def test_daily_leaderboard_subtab_is_parked(): + """UI is hidden until daily model deploys are reliable; backend stays. + + Re-enable by removing ``hidden`` from the subtab (and About card), restoring + ``NAV_VIEW_MAP['daily']`` → ``competitionTab: 'daily'``, dropping the + navigateToPage redirect in app.js, and turning the workflow schedule back on. + """ + assert re.search( + r'data-competition-tab="daily"[^>]*\bhidden\b', + _APP_HTML, + ), "Daily Leaderboard subtab must stay hidden while the board is parked" + assert "competitionTab: 'leaderboard'" in _APP_HTML + assert re.search(r"\bdaily\s*:\s*\{[^}]*competitionTab:\s*'leaderboard'", _APP_HTML) diff --git a/dashboard/frontend/app.html b/dashboard/frontend/app.html index b7fc283e..5633b975 100644 --- a/dashboard/frontend/app.html +++ b/dashboard/frontend/app.html @@ -36,7 +36,9 @@ playground: { page: 'playground', playgroundTab: 'agents' }, 'my-algo': { page: 'playground', playgroundTab: 'agents' }, contest: { page: 'competition', competitionTab: 'leaderboard' }, - daily: { page: 'competition', competitionTab: 'daily' }, + // Daily Leaderboard UI is temporarily retired (backend/cron kept). + // ?view=daily deep links fall through to the contest board. + daily: { page: 'competition', competitionTab: 'leaderboard' }, competition: { page: 'competition', competitionTab: 'leaderboard' }, leaderboard: { page: 'competition', competitionTab: 'leaderboard' }, participants: { page: 'competition', competitionTab: 'participants' }, @@ -51,6 +53,10 @@ if (saved && saved.page === 'playground' && saved.playgroundTab === 'marketplace') { return { page: 'community' }; } + // Daily Leaderboard tab is hidden until the deploy pipeline is fixed. + if (saved && saved.page === 'competition' && saved.competitionTab === 'daily') { + return { page: 'competition', competitionTab: 'leaderboard' }; + } return saved; } window.migrateSavedNavState = migrateSavedNavState; @@ -1416,7 +1422,8 @@

Stop Loss / Take Profit

-
+ + @@ -1752,7 +1760,7 @@ - +