From d52beede0f1cbb85bcbef93ef5507b790fdfc9a9 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 7 May 2026 05:41:33 +0000 Subject: [PATCH] docs(ui): update migration roadmap status --- docs/UI_UX_PLATFORM_CORE_MIGRATION_ROADMAP.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/UI_UX_PLATFORM_CORE_MIGRATION_ROADMAP.md b/docs/UI_UX_PLATFORM_CORE_MIGRATION_ROADMAP.md index 4c42bce..e5e278c 100644 --- a/docs/UI_UX_PLATFORM_CORE_MIGRATION_ROADMAP.md +++ b/docs/UI_UX_PLATFORM_CORE_MIGRATION_ROADMAP.md @@ -82,7 +82,7 @@ Note: common platform had a pre-existing local modification in `packages/ui/src/ | [x] | 9. Advanced product-specific surfaces | product | Migrated Visual Strategy Builder controls to adapter Select/Input/Button/IconButton primitives while keeping dnd-kit composition and strategy rule logic product-owned. | Passed: `pnpm --filter @bytelyst/trading-web exec vitest run src/components/strategy/VisualRuleBuilder.dom.test.tsx`; `pnpm --filter @bytelyst/trading-web typecheck`; `pnpm run audit:ui`; `git diff --check`. | `bb4efc2b0d5f8e2ebbd7487b5731e0e6446ec4fb` | Audit raw controls reduced from 17 to 13. Charts, rule semantics, and strategy execution remain product-owned. | | [x] | 10. Audit tooling hardening | product | Replaced brittle `rg`-based shell counting with a portable Python audit that excludes approved UI/test surfaces and reports non-zero raw controls reliably. | Passed: `pnpm run audit:ui`; `pnpm --filter @bytelyst/trading-web typecheck`; `git diff --check`. | `9ea72f7` | Audit now reports 0 direct `@bytelyst/ui` imports outside the adapter and no false-zero dependency on local `rg`. | | [x] | 11. Remaining raw-control migration | product | Migrated remaining production raw controls in portfolio, screener, simple trade plan, chat, settings, and entries surfaces to adapter primitives while preserving trading workflow behavior. | Passed: `pnpm --filter @bytelyst/trading-web exec vitest run src/tabs/SettingsTab.dom.test.tsx src/tabs/EntriesTab.dom.test.tsx`; `pnpm --filter @bytelyst/trading-web typecheck`; `pnpm run audit:ui`; `git diff --check`. | `324e34d`, `7f5f125` | Audit raw interactive controls outside approved primitives reduced to 0. `EntriesTab.tsx` line endings were normalized to satisfy `git diff --check`. | -| [~] | 12. Legacy global cleanup and strict audit | product | Removed unused global `.badge` CSS, removed legacy `SymbolCard` badge selectors, preserved adapter `Badge`/`ProductStatusBadge` usage, tightened legacy-class audit so product token names such as `--bl-surface-card` are not false positives, tokenized reset-password auth surface colors, eliminated hardcoded color literals from `App.css` and `AlertFeed.css`, tokenized `SettingsTab` role/status colors, added shared surface/text aliases to migrate `Login`, `ProductAccessibilityGate`, `LivePulseTicker`, and `AdminTab` off raw hex/rgba operational surface colors, typed the remaining simple form/chat/positions visual-builder change handlers so trivial implicit-`any` errors no longer block `tsc`, reconciled `web/src/components/ui/Primitives.tsx` to the actual linked `@bytelyst/ui` export surface while keeping product-only variants and control sizing local to the adapter, converted `OverviewTab` status/warning/consumer-card color debt onto existing theme variables and `color-mix(...)` surfaces, migrated `SymbolCard.css` surface/status styling from raw hex/rgba values onto shared theme variables, moved `TradeProfileManager` rule/summary/status palette literals onto shared CSS variables and `color-mix(...)` accents, tokenized `HomeView` shell/error/earnings status plus `Header`/`RightPanel`/`Sidebar` shell status literals, migrated shared `PriceChart` shell, tooltip, axis, empty-state, and up/down color usage onto shared theme variables, converted the remaining `HomeView` indicator-chart literals onto existing info/warning/emphasis/border tokens so the landing analytics no longer depends on raw hex palette values, migrated `BacktestResultsDashboard` grid/tick/reference/series chart colors to the shared attention/success/warning/text/border tokens, tokenized `CodeStrategyEditor` trade-log header plus buy/sell and P&L accents onto shared quiet/success/danger tokens, and migrated `VisualRuleBuilder` drag shadow/handles/labels plus BUY/SELL chip surfaces onto the shared card/text/success/danger token palette. | Passed: `pnpm run audit:ui`; `pnpm --filter @bytelyst/trading-web typecheck`; `pnpm --filter @bytelyst/trading-web lint`; `pnpm --filter @bytelyst/trading-web build`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/Login.dom.test.tsx src/App.dom.test.tsx src/components/ComponentsSmoke.test.ts src/tabs/SettingsTab.dom.test.tsx src/tabs/EntriesTab.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/tabs/OverviewTab.dom.test.tsx src/tabs/OverviewTab.test.ts src/App.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/ComponentsSmoke.test.ts src/tabs/TabSuite.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/TradeProfileManager.test.ts src/components/TradeProfileManager.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/views/HomeView.dom.test.tsx src/components/layout/Header.dom.test.tsx src/components/layout/AppShell.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/PriceChart.dom.test.tsx src/components/ComponentsSmoke.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/ComponentsSmoke.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/strategy/CodeStrategyEditor.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/strategy/VisualRuleBuilder.dom.test.tsx`; `git diff --check`; `BYTELYST_PACKAGE_SOURCE=common-plat pnpm install -r --no-frozen-lockfile --offline`; `pnpm --filter @bytelyst/ui build` (in `/opt/bytelyst/learning_ai_common_plat`). Earlier passed in this phase: `pnpm --filter @bytelyst/trading-web test`; `pnpm --filter @bytelyst/trading-web exec vitest run src/components/ResetPassword.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/App.dom.test.tsx src/views/HomeView.dom.test.tsx src/components/AlertFeed.dom.test.tsx src/components/ComponentsSmoke.test.ts src/tabs/OverviewTab.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/tabs/SettingsTab.dom.test.tsx`. | `5f38ada`, `e4c4c60`, `6091f24`, `8f707e0`, `7375ad6`, `eef63cb`, `35fbe87`, `a230679`, `902523d`, `931a3cd`, `4802f02`, `1b9efca`, `de040ea`, `9a0dfe6`, `b5f55e5`, `90ba1d5` | Audit now reports 0 raw production controls, 0 legacy global surface classes, 0 direct common-UI imports outside the adapter, and 161 hardcoded color literals. The adapter/common-package API divergence blocker is resolved for the current common-platform checkout by narrowing the product adapter to the real shared export surface and owning product-only variants locally. Strict audit remains deferred until the remaining literal clusters are tokenized or explicitly allowlisted. | +| [~] | 12. Legacy global cleanup and strict audit | product | Removed unused global `.badge` CSS, removed legacy `SymbolCard` badge selectors, preserved adapter `Badge`/`ProductStatusBadge` usage, tightened legacy-class audit so product token names such as `--bl-surface-card` are not false positives, tokenized reset-password auth surface colors, eliminated hardcoded color literals from `App.css` and `AlertFeed.css`, tokenized `SettingsTab` role/status colors, added shared surface/text aliases to migrate `Login`, `ProductAccessibilityGate`, `LivePulseTicker`, and `AdminTab` off raw hex/rgba operational surface colors, typed the remaining simple form/chat/positions visual-builder change handlers so trivial implicit-`any` errors no longer block `tsc`, reconciled `web/src/components/ui/Primitives.tsx` to the actual linked `@bytelyst/ui` export surface while keeping product-only variants and control sizing local to the adapter, converted `OverviewTab` status/warning/consumer-card color debt onto existing theme variables and `color-mix(...)` surfaces, migrated `SymbolCard.css` surface/status styling from raw hex/rgba values onto shared theme variables, moved `TradeProfileManager` rule/summary/status palette literals onto shared CSS variables and `color-mix(...)` accents, tokenized `HomeView` shell/error/earnings status plus `Header`/`RightPanel`/`Sidebar` shell status literals, migrated shared `PriceChart` shell, tooltip, axis, empty-state, and up/down color usage onto shared theme variables, converted the remaining `HomeView` indicator-chart literals onto existing info/warning/emphasis/border tokens so the landing analytics no longer depends on raw hex palette values, migrated `BacktestResultsDashboard` grid/tick/reference/series chart colors to the shared attention/success/warning/text/border tokens, tokenized `CodeStrategyEditor` trade-log header plus buy/sell and P&L accents onto shared quiet/success/danger tokens, migrated `VisualRuleBuilder` drag shadow/handles/labels plus BUY/SELL chip surfaces onto the shared card/text/success/danger token palette, and tokenized `BacktestTab` disabled/access messaging plus `ScreenerView` percentage gain/loss coloring onto shared danger/faint/success tokens. | Passed: `pnpm run audit:ui`; `pnpm --filter @bytelyst/trading-web typecheck`; `pnpm --filter @bytelyst/trading-web lint`; `pnpm --filter @bytelyst/trading-web build`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/Login.dom.test.tsx src/App.dom.test.tsx src/components/ComponentsSmoke.test.ts src/tabs/SettingsTab.dom.test.tsx src/tabs/EntriesTab.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/tabs/OverviewTab.dom.test.tsx src/tabs/OverviewTab.test.ts src/App.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/ComponentsSmoke.test.ts src/tabs/TabSuite.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/TradeProfileManager.test.ts src/components/TradeProfileManager.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/views/HomeView.dom.test.tsx src/components/layout/Header.dom.test.tsx src/components/layout/AppShell.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/PriceChart.dom.test.tsx src/components/ComponentsSmoke.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/ComponentsSmoke.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/strategy/CodeStrategyEditor.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/components/strategy/VisualRuleBuilder.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/views/ScreenerView.dom.test.tsx src/components/ComponentsSmoke.test.ts`; `git diff --check`; `BYTELYST_PACKAGE_SOURCE=common-plat pnpm install -r --no-frozen-lockfile --offline`; `pnpm --filter @bytelyst/ui build` (in `/opt/bytelyst/learning_ai_common_plat`). Earlier passed in this phase: `pnpm --filter @bytelyst/trading-web test`; `pnpm --filter @bytelyst/trading-web exec vitest run src/components/ResetPassword.dom.test.tsx`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/App.dom.test.tsx src/views/HomeView.dom.test.tsx src/components/AlertFeed.dom.test.tsx src/components/ComponentsSmoke.test.ts src/tabs/OverviewTab.test.ts`; `TMPDIR="$PWD/.tmp/vitest" pnpm --filter @bytelyst/trading-web exec vitest run src/tabs/SettingsTab.dom.test.tsx`. | `5f38ada`, `e4c4c60`, `6091f24`, `8f707e0`, `7375ad6`, `eef63cb`, `35fbe87`, `a230679`, `902523d`, `931a3cd`, `4802f02`, `1b9efca`, `de040ea`, `9a0dfe6`, `b5f55e5`, `90ba1d5`, `8d84c3b` | Audit now reports 0 raw production controls, 0 legacy global surface classes, 0 direct common-UI imports outside the adapter, and 157 hardcoded color literals. The adapter/common-package API divergence blocker is resolved for the current common-platform checkout by narrowing the product adapter to the real shared export surface and owning product-only variants locally. Strict audit remains deferred until the remaining literal clusters are tokenized or explicitly allowlisted. | ## Remaining Work @@ -110,8 +110,8 @@ git pull --rebase origin main Then read this file end-to-end and continue phase 12 from the current baseline: - **Current phase**: 12. Legacy global cleanup and strict audit. -- **Current audit baseline**: 0 direct `@bytelyst/ui` imports outside the adapter, 0 raw production controls outside approved primitives, 0 legacy global surface classes, and 161 hardcoded color literals. -- **Next focus**: continue burning down the broader residual tab/view literals such as `tabs/BacktestTab.tsx`, `views/ScreenerView.tsx`, `tabs/HistoryTab.tsx`, `tabs/MarketplaceTab.tsx`, and the older `MyStrategies`/`Config`/`Positions` surfaces while explicitly preserving legitimate trading/chart semantic colors through tokenization or allowlisting. +- **Current audit baseline**: 0 direct `@bytelyst/ui` imports outside the adapter, 0 raw production controls outside approved primitives, 0 legacy global surface classes, and 157 hardcoded color literals. +- **Next focus**: continue burning down the broader residual tab/view literals such as `tabs/HistoryTab.tsx`, `tabs/MarketplaceTab.tsx`, and the older `MyStrategies`/`Config`/`Positions` surfaces while explicitly preserving legitimate trading/chart semantic colors through tokenization or allowlisting. - **Verification after each slice**: run `pnpm run audit:ui`, targeted DOM tests for touched files, `pnpm --filter @bytelyst/trading-web typecheck`, and `git diff --check`; add `pnpm --filter @bytelyst/trading-web lint`, targeted Vitest slices, and `pnpm --filter @bytelyst/trading-web build` before major commits or adapter-related changes. - **Roadmap update requirement**: after every implementation commit, update the roadmap row/checkboxes with the new status, final audit counts, exact verification commands, commit hash, and any deferrals or environment blockers. - **Commit/push rule**: keep commits small and scoped, push each completed slice, then update this document in a follow-up docs commit so the next agent can resume without reconstructing context.