ui: tighten dashboard copy and fix layout issues
This commit is contained in:
@@ -93,7 +93,10 @@ components/
|
||||
│ └── SystemControl.tsx Sys1/sys2 toggle widgets, Auto-Trade switch
|
||||
├── dashboard/
|
||||
│ ├── PostCards.tsx Trump post cards
|
||||
│ ├── SignalMonitor.tsx Live signal stream (WS-driven)
|
||||
│ ├── SignalMonitor.tsx Breakout Monitor (ETH/LINK 5m, WS-driven).
|
||||
│ │ UNMOUNTED 2026-06-12 — backend scanner is
|
||||
│ │ disabled and its 5-min poll job unscheduled.
|
||||
│ │ Kept for revival; see Open known issues.
|
||||
│ └── ChartPanel.tsx Price chart panel
|
||||
├── btc/MacroPanel.tsx ★ 8-indicator Macro Vibes layout (4 sections,
|
||||
│ composite needle, threshold chips, peak-trail viz)
|
||||
@@ -259,13 +262,53 @@ Tokens in `app/[locale]/globals.css`:
|
||||
- ~~**L5 ws:// mixed-content block** (FIXED 2026-06-01):~~ `wsContext.tsx` now
|
||||
auto-upgrades to `wss://` when served over HTTPS, instead of hard-coding `ws://`.
|
||||
|
||||
- ~~**Data-consistency / UI sweep** (FIXED 2026-06-09):~~
|
||||
- **Overview headline counts** (`DashboardClient`) now come from server-side
|
||||
`/posts-paged` totals (`getPostsPage(1,1,...)` for global / truth / macro),
|
||||
not the 80-post first-paint slice. The local slice is only a pre-load
|
||||
fallback. Without this a 1108-post feed showed "80 tracked / —".
|
||||
- **"Live" chip downgrades to "Delayed"** when `/api/health/deep` reports
|
||||
`is_leader === false` (follower process runs no background tasks → data is
|
||||
frozen). Keyed ONLY on is_leader, not `status:degraded`, to avoid flapping
|
||||
on transient single-feed staleness.
|
||||
- **KOL pages default to a 30d window** (was 7d) everywhere — `kol/page.tsx`
|
||||
SSR, `KolPageClient` `kolDays`, and the Overview KOL-intel card. KOL
|
||||
ingestion is daily/sparse so 7d was frequently empty (7d=0 / 30d=196).
|
||||
- **KOL divergence "Xd ago"** uses `post_at`, not `created_at` (a backfill
|
||||
set created_at≈now and made old events look fresh).
|
||||
- **Macro tone** is derived from the backend `regime_label`, not a
|
||||
re-thresholded score (±15 on the client vs ±20 on the server disagreed).
|
||||
- **Trump page header count** follows the active signal filter.
|
||||
- **Source labels**: `blog` (KOL), `sma_reclaim`/`rsi_reversal`/`breakout`
|
||||
(TradeTable + PostCards), `adopted` (TradeTable) registered — no more raw
|
||||
technical strings.
|
||||
- **TradeTable** resets source/asset filters that don't apply to the new
|
||||
wallet's trade set (clamp effect), so a stuck filter + vanished breakdown
|
||||
card can't hide the new history.
|
||||
- **OpenPositions** has an in-page "Unlock positions" button (signs
|
||||
`view_user`) — no forced detour to Settings.
|
||||
- **BotConfigPanel**: overnight schedules (22:00–02:00) are allowed (backend
|
||||
already supports wrap-around); readiness reports NOT-ready for a Macro-only
|
||||
wallet with no Telegram bound (since `/adopt` needs Telegram).
|
||||
- **Cross-page selection**: clicking a Recent-signals row clears
|
||||
`selectedDayPosts` so the single-post detail actually shows.
|
||||
|
||||
**Open / deferred (need interface change or DB migration):**
|
||||
- **C3** Signed READ endpoints (`allow_replay=True`) put `ts`/`sig` in URL → access logs. Fix requires changing read endpoints to POST body (interface change + frontend update).
|
||||
- **H4** KEK derived with single SHA-256, no salt/KDF. Fix requires re-encrypting all HL API keys (DB migration).
|
||||
- **M1** Adopted (sys2) positions incorrectly counted against sys1 daily budget.
|
||||
- **M5** `GET /telegram/{wallet}/status` is unauthenticated — exposes `chat_id`/`tg_username`.
|
||||
- **M7** Rate limit bypassable via spoofed XFF — infrastructure-level fix (nginx/Cloudflare).
|
||||
- **M9** SWR cache only notifies the first caller on background refresh — others get stale data.
|
||||
- ~~**M9**~~ **FIXED 2026-06-12**: `lib/cache.ts` keeps a per-key `subscribers`
|
||||
list — every caller that hits a stale key during an in-flight revalidation
|
||||
registers its `onUpdate`, and ALL are notified when the fetch resolves
|
||||
(previously only the caller that started the revalidation got fresh data).
|
||||
- ~~**Funding Reversal tab Breakout Monitor**~~ **RESOLVED 2026-06-12 (removed)**:
|
||||
`SignalMonitor` unmounted from the Funding tab — the backend scanner has been
|
||||
disabled for months (`funding_signal._enabled=False`, operator-only toggle) so
|
||||
the panel only ever showed "Paused / No signals yet". The backend's 5-min poll
|
||||
job was also unscheduled (`backend/app/main.py`); the `/signal/*` API routes
|
||||
remain. To revive: re-add the `add_job()` AND remount `SignalMonitor` in
|
||||
`MacroVibesPageClient`.
|
||||
|
||||
## How to verify changes locally
|
||||
|
||||
|
||||
Reference in New Issue
Block a user