71 lines
3.2 KiB
Markdown
71 lines
3.2 KiB
Markdown
# Navigation Visibility & Tab Access Control
|
|
|
|
> Added: 2026-02-20
|
|
|
|
## Design Philosophy
|
|
|
|
The Bytelyst dashboard follows a **"Contextual Depth"** navigation model:
|
|
|
|
- **Consumer-facing tabs** are simple, action-oriented, and confidence-building.
|
|
- **Technical/operational tabs** are restricted to admins — they contain raw signal data, rule pass/fail states, and engine internals that are misleading without deep engine knowledge.
|
|
|
|
### Core Principle
|
|
> A rule failing (❌) is **normal and correct** — it's the filtering system working. But visually, ❌ icons look like errors. Customers without context interpret "fail" as "broken." This generates anxiety and unnecessary support tickets.
|
|
|
|
---
|
|
|
|
## Tab Visibility Matrix
|
|
|
|
| Tab | All Users | Admin Only | Rationale |
|
|
|:---|:---:|:---:|:---|
|
|
| Overview | ✅ | | High-level portfolio summary |
|
|
| My Strategies | ✅ | | Core user experience |
|
|
| ✨ Marketplace | ✅ | | Strategy discovery & adoption |
|
|
| 💎 Plans | ✅ | | Subscription conversion |
|
|
| 🛠️ Build Strategy | ✅ | | Guided self-service wizard |
|
|
| Trade History | ✅ | | User accountability & records |
|
|
| Positions & Orders | ✅ | | Current state awareness |
|
|
| Settings | ✅ | | Basic bot configuration |
|
|
| **Signals** | | ✅ | Raw technical rule/indicator data — misleading without engine knowledge |
|
|
| **Entries** | | ✅ | Internal watchlist/position engine state |
|
|
| **🛡️ Strategy Clusters** | | ✅ | Advanced multi-profile management |
|
|
| **⚙️ Admin Panel** | | ✅ | System operations & health |
|
|
|
|
---
|
|
|
|
## Why Signals and Entries Are Admin-Only
|
|
|
|
### Signals Tab
|
|
Shows raw per-symbol rule evaluation output:
|
|
- `TrendBiasRule`: EMA50 vs EMA200 comparison
|
|
- `SessionRule`: Active trading session detection
|
|
- `MomentumRule`: RSI state
|
|
- `AIAnalysisRule`: Confidence scores
|
|
- Rule pass/fail counts per profile
|
|
|
|
**Consumer risk**: A customer sees "❌ TrendBiasRule Failed" and assumes the bot is broken, when in reality the bot is correctly waiting for a confirmed trend before entering. This contradiction between correct-behavior and perceived-failure creates support tickets and churn.
|
|
|
|
### Entries Tab
|
|
Shows raw internal watchlist and position engine state — data structures that have no direct user-actionable interpretation without understanding the execution pipeline.
|
|
|
|
---
|
|
|
|
## Consumer UX Strategy
|
|
|
|
Instead of exposing raw signals, consumers receive intelligence through curated, translated layers:
|
|
|
|
| Raw Technical Data | Consumer-Friendly Equivalent |
|
|
|:---|:---|
|
|
| `TrendBiasRule: ❌ No 4H trend` | "Bot is waiting for a confirmed market direction" |
|
|
| `SessionRule: ❌ TOK/SYD session` | "Bot is active only during London & New York hours" |
|
|
| `RSI: 57.73` | Not shown — irrelevant to consumer |
|
|
| `minRulePassRatio: 0.9` | "⚖️ Balanced Mode — requires 90% signal agreement" |
|
|
|
|
This translation is handled by `src/lib/StrategyExplanationService.ts` and surfaced in the **Diagnostic Intelligence** section of each strategy card.
|
|
|
|
---
|
|
|
|
## Implementation
|
|
|
|
**File**: `src/App.tsx` — tab visibility is controlled by `profile?.role === 'admin'` guard on each sensitive tab button in the `<nav>` element.
|