Full deep visual inspection: pro hybrid trading interface (CEX-migrant workflows) #116

Closed
opened 2026-04-24 12:25:01 +00:00 by PlasticDigits · 11 comments
PlasticDigits commented 2026-04-24 12:25:01 +00:00 (Migrated from gitlab.com)

Full deep visual inspection — Pro hybrid trading interface

Purpose

Perform a full, deep visual inspection of every element of the pro hybrid trading interface. This is not a code review: focus on what traders see and do, including layout, typography, states, feedback, and on-chain flows (inputs, previews, signing, confirmation, errors).

Assume a trader migrating from a centralized exchange (CEX) who expects familiar workflows (connect, fund, discover, analyze, place/manage risk, monitor fills, withdraw mentally to self-custody). Map those expectations to this DEX UI and verify each surface visually and behaviorally.

How to use this checklist

  • Work top to bottom by workflow tier, then component tier, then inspection tier.
  • For each leaf item, record: pass / fail / N/A, screenshot or clip, browser + viewport, wallet + network, and notes (copy-paste of wrong numbers, missing labels, etc.).
  • Prefer realistic amounts and edge values (dust, max, decimals, long token symbols) where safe.

Tier 1 — Workflows (CEX-migrant mental model)

W1 — Arrive, orient, and trust the surface

Components to inspect

  • C1 — Global chrome: app header, nav, network indicator, wallet chip, settings entry, help/docs links, branding, version/build hint if shown.
  • C2 — Layout shell: pro hybrid grid, panels, resize/collapse, scroll regions, sticky headers, empty states.
  • C3 — Legal / risk surfacing: disclaimers, beta tags, “not financial advice,” geo or access notices if any.

Per-component inspection (repeat for C1–C3)

  • Display: hierarchy, contrast, truncation, iconography, alignment, z-index/stacking, dark/light consistency, responsive breakpoints.
  • Interactivity: hover/focus/active, keyboard focus order, tooltips, disabled vs enabled affordances, panel toggles.
  • Updates: live network/wallet changes, reconnection, account switch, stale data indicators.
  • Trader use: “Do I know where I am, what chain I’m on, and what this app will do with my keys?” — clarity of custody model in the UI.

W2 — Connect wallet and establish session (CEX: “log in”)

Components

  • C1 — Connect CTA: primary connect button, modal/drawer launcher, wallet list.
  • C2 — Wallet selection UX: installed vs not installed, wrong network prompt, “switch network” flows.
  • C3 — Connected state: address display, copy, explorer link, disconnect, switch wallet.

Per-component

  • Display: masked address formatting, checksum display if any, chain name vs chain id, icons.
  • Interactivity: connect cancel, back, retry, external wallet pop-up coordination (visual readiness: spinners, disabled double-submit).
  • Updates: after approve/reject in extension, UI sync; session persistence across refresh.
  • Trader use: explicit steps until “ready to trade”; no ambiguous half-connected UI.

W3 — Fund / approve / capacity (CEX: “deposit & buying power”)

Components

  • C1 — Native + token balances shown in hybrid UI (header, sidebar, pair strip, modal).
  • C2 — Allowance / approval UX if applicable to hybrid flow (buttons, labels, amounts).
  • C3 — Max / half / percentage quick fills on inputs.
  • C4 — Insufficient balance / insufficient fee messaging and placement.

Per-component

  • Display: decimals, grouping, symbol vs denom, small balances, zero balance, loading skeletons vs spinners.
  • Interactivity: clicking max, editing manually, clearing field, paste handling.
  • Updates: post-tx balance refresh, polling vs websocket indicators, race when switching tokens.
  • Trader use: trader can answer “How much can I spend?” and “What will this cost in fees?” before signing.

Components

  • C1 — Pair selector / search: favorites, recents, filters, sorting.
  • C2 — Pair metadata strip: tick size, min notional, fee tier hints, pool/pair addresses if exposed.
  • C3 — URL routing / deep link: changing pair updates URL and shareability (visual confirmation).

Per-component

  • Display: long pair names, wrapped tokens, duplicate tickers, “unknown token” fallbacks.
  • Interactivity: keyboard search, clear, hover previews, mobile sheet if any.
  • Updates: list refresh, new pools appearing, delisted/hidden pairs.
  • Trader use: trader finds intended market without misclicking a sound-alike asset.

W5 — Read price, liquidity, and microstructure (CEX: “tape & book”)

Components

  • C1 — Mid / last / mark (whatever hybrid shows): labels, sources, staleness.
  • C2 — Order book / depth / ladder (if present in hybrid): bids/asks, aggregation, spread.
  • C3 — Recent trades / tape: time, side coloring, size, price.
  • C4 — Pool / route summary if AMM-centric elements surface in hybrid view.

Per-component

  • Display: precision alignment, color semantics for buy/sell, flash updates, empty book.
  • Interactivity: row hover, click-to-fill (if any), aggregation stepper.
  • Updates: high-frequency updates without layout thrash; scroll position stability.
  • Trader use: trader can infer execution quality and urgency from visuals alone.

W6 — Charting and context (CEX: “TradingView tab”)

Components

  • C1 — Chart embed / timeframe controls if present.
  • C2 — Overlays: volume, indicators menu, fullscreen.
  • C3 — Crosshair / price axis readability, overlap with order panels.

Per-component

  • Display: loading, error, “no data for this pair,” watermarking.
  • Interactivity: pan/zoom, reset, indicator toggles, conflicts with page scroll.
  • Updates: pair switch rebinds chart; no stale symbol on axis.
  • Trader use: chart supports pre-trade context without hiding order controls.

W7 — Prepare and place an order (CEX: “order form”)

Components

  • C1 — Order type selector: market/limit/hybrid-specific types, disabled types with rationale.
  • C2 — Side selector: buy/sell visual distinction, accidental click mitigation.
  • C3 — Price input: tick enforcement, steppers, % offset from mid buttons if any.
  • C4 — Size input: base vs quote toggle, USD/notional estimate if shown.
  • C5 — Time in force / expiry / reduce-only / post-only (if applicable): labels and defaults.
  • C6 — Slippage / price impact / min received panel: defaults, presets, custom.
  • C7 — Route preview (multi-hop): hops, fees per hop, total, warnings.
  • C8 — Submit CTA: label changes by side, disabled reasons tooltips.

Per-component

  • Display: all numbers labeled (which token, which leg), warnings highlighted, “you will receive” vs “you will sell.”
  • Interactivity: tab order through fields, validation inline vs on submit, scientific notation edge cases.
  • Updates: when book/price moves, dependent fields (impact, min out) update; debounce visible.
  • Trader use: dry run — trader can complete the mental checklist “type, side, size, worst case, fee” before wallet pop-up.

W8 — Confirm, sign, and observe transaction lifecycle (CEX: “confirm order” → “open orders”)

Components

  • C1 — Pre-sign summary modal/page: human-readable recap, links to explorers for contracts.
  • C2 — Wallet prompt coordination: loading between “submit” and extension; cancel path.
  • C3 — Pending / broadcasting state: tx hash link, copy, “speed up” n/a messaging.
  • C4 — Success state: confetti optional; clear “done” and next actions.
  • C5 — Failure / revert state: parse errors, codes, user-actionable fixes (gas, allowance, slippage).
  • C6 — Partial fill / multi-msg flows if hybrid sends multiple messages sequentially.

Per-component

  • Display: timers, block height, gas/fee estimates in native denom where shown.
  • Interactivity: dismiss, retry, “view on explorer,” keep modal open vs navigate.
  • Updates: transition pending → success without orphan spinners; idempotency on double-click.
  • Trader use: trader never doubts whether funds moved or an order is live.

W9 — Monitor open orders, history, and positions (CEX: “orders & history”)

Components

  • C1 — Open orders table: columns, sorting, filters, pagination/infinite scroll.
  • C2 — Order row actions: cancel one, cancel all, edit (if any).
  • C3 — Order history / fills: timestamps, fees paid, tx links.
  • C4 — LP / hybrid position widgets if shown: PnL, IL hints, share of pool.
  • C5 — Empty and error rows: skeleton vs message.

Per-component

  • Display: column alignment, fixed header, horizontal scroll on small screens.
  • Interactivity: confirm cancel modals, bulk actions, row expansion.
  • Updates: live cancel removes row; websocket vs manual refresh label.
  • Trader use: trader reconciles UI state with explorer/wallet activity.

W10 — Adjust risk, settings, and preferences (CEX: “settings & defaults”)

Components

  • C1 — Slippage defaults, C2 — Expert mode toggles, C3 — MEV / routing options if surfaced.
  • C4 — Locale / number format if selectable.
  • C5 — Theme / density if selectable.

Per-component

  • Display: persisted values after refresh; reset to defaults control.
  • Interactivity: invalid custom slippage blocked with clear reason.
  • Updates: settings apply to new order form without stale cache in another tab (if testable).
  • Trader use: defaults match conservative safety for new users.

W11 — Errors, edge cases, and resilience (CEX: “platform never lies”)

Components

  • C1 — Toasts / banners / inline errors: stacking, duplication, dismissal.
  • C2 — Rate limit / RPC errors: retry UX.
  • C3 — Contract query failures: partial UI degradation vs full-page error.
  • C4 — Wrong network deep link: landing experience.

Per-component

  • Display: error copy not dev-only; correlation id if any.
  • Interactivity: retry restores without full reload requirement.
  • Updates: recovery after RPC flaps.
  • Trader use: trader knows what broke and what to do next.

W12 — Accessibility, keyboard, and inclusive design

Components

  • C1 — Focus rings on all interactive hybrid controls.
  • C2 — Screen reader labels on icon-only trading buttons.
  • C3 — Motion / reduced motion respect if implemented.

Per-component

  • Display: color-blind-safe side encoding not relying on red/green alone.
  • Interactivity: keyboard submit/cancel where applicable.
  • Updates: live region announcements for tx status if implemented.
  • Trader use: usable without mouse for critical path (connect → trade → confirm) where feasible.

W13 — Performance and “feel” (CEX: “snappy UI”)

Components

  • C1 — Initial load / code-split boundaries in hybrid route.
  • C2 — Interaction latency on pair switch, book updates, chart.
  • C3 — Memory / jank on long session with live feed.

Per-component

  • Display: perceived performance (skeletons vs blank flash).
  • Interactivity: input lag, dropped keystrokes in amount fields under load.
  • Updates: backlog of events does not freeze UI.
  • Trader use: acceptable for fast markets subjective note with evidence (clip).

Cross-cutting matrices (apply within every workflow above)

For each major screen region (order card, book, tape, balances, tx modals, tables), explicitly verify:

Dimension Examples
Display Labels, units, precision, alignment, truncation tooltips, empty/zero, loading, error, success, dark/light.
Interactivity Hover/focus/disabled, double-submit guards, modals trap focus, scroll lock, mobile gestures.
Updates Live data, staleness, refresh buttons, optimistic UI vs confirmed chain state, multi-tab.
Trader use (inputs + tx) Paste, max, decimals, scientific notation, wallet reject, out of gas, wrong chain, allowance path, explorer links, copy buttons, “what did I just sign?” clarity.

Deliverables for assignee

  1. Matrix spreadsheet or structured doc mirroring this hierarchy with pass/fail/N/A.
  2. Artifact pack: screenshots or screen recordings per failure; note environment.
  3. Executive summary: top 10 UX risks for CEX migrants (clarity, trust, irreversible actions).
  4. Retest list: quick checklist for fixes.

Scope note

In scope: all pro hybrid trading UI surfaces (including modals, drawers, toasts, and wallet-adjacent UI triggered from that mode).
Out of scope unless shared: unrelated marketing pages, admin-only tools — still file cross-links if broken from hybrid.


Acceptance criteria

  • Every Tier 1 workflow above has been exercised at least once end-to-end on a realistic pair with realistic balances (testnet or mainnet as appropriate).
  • Every Tier 2 component under exercised workflows has notes for display / interactivity / updates / trader use.
  • Assignee completes deliverables and attaches artifacts to this issue.
# Full deep visual inspection — Pro hybrid trading interface ## Purpose Perform a **full, deep visual inspection** of every element of the **pro hybrid trading** interface. This is not a code review: focus on **what traders see and do**, including layout, typography, states, feedback, and on-chain flows (inputs, previews, signing, confirmation, errors). Assume a **trader migrating from a centralized exchange (CEX)** who expects familiar workflows (connect, fund, discover, analyze, place/manage risk, monitor fills, withdraw mentally to self-custody). Map those expectations to this DEX UI and verify each surface **visually** and **behaviorally**. ## How to use this checklist - Work **top to bottom** by workflow tier, then component tier, then inspection tier. - For each leaf item, record: **pass / fail / N/A**, **screenshot or clip**, **browser + viewport**, **wallet + network**, and **notes** (copy-paste of wrong numbers, missing labels, etc.). - Prefer **realistic amounts** and **edge values** (dust, max, decimals, long token symbols) where safe. --- ## Tier 1 — Workflows (CEX-migrant mental model) ### W1 — Arrive, orient, and trust the surface **Components to inspect** - **C1 — Global chrome**: app header, nav, network indicator, wallet chip, settings entry, help/docs links, branding, version/build hint if shown. - **C2 — Layout shell**: pro hybrid grid, panels, resize/collapse, scroll regions, sticky headers, empty states. - **C3 — Legal / risk surfacing**: disclaimers, beta tags, “not financial advice,” geo or access notices if any. **Per-component inspection (repeat for C1–C3)** - **Display**: hierarchy, contrast, truncation, iconography, alignment, z-index/stacking, dark/light consistency, responsive breakpoints. - **Interactivity**: hover/focus/active, keyboard focus order, tooltips, disabled vs enabled affordances, panel toggles. - **Updates**: live network/wallet changes, reconnection, account switch, stale data indicators. - **Trader use**: “Do I know where I am, what chain I’m on, and what this app will do with my keys?” — clarity of custody model in the UI. --- ### W2 — Connect wallet and establish session (CEX: “log in”) **Components** - **C1 — Connect CTA**: primary connect button, modal/drawer launcher, wallet list. - **C2 — Wallet selection UX**: installed vs not installed, wrong network prompt, “switch network” flows. - **C3 — Connected state**: address display, copy, explorer link, disconnect, switch wallet. **Per-component** - **Display**: masked address formatting, checksum display if any, chain name vs chain id, icons. - **Interactivity**: connect cancel, back, retry, external wallet pop-up coordination (visual readiness: spinners, disabled double-submit). - **Updates**: after approve/reject in extension, UI sync; session persistence across refresh. - **Trader use**: explicit steps until “ready to trade”; no ambiguous half-connected UI. --- ### W3 — Fund / approve / capacity (CEX: “deposit & buying power”) **Components** - **C1 — Native + token balances** shown in hybrid UI (header, sidebar, pair strip, modal). - **C2 — Allowance / approval UX** if applicable to hybrid flow (buttons, labels, amounts). - **C3 — Max / half / percentage quick fills** on inputs. - **C4 — Insufficient balance / insufficient fee** messaging and placement. **Per-component** - **Display**: decimals, grouping, symbol vs denom, small balances, zero balance, loading skeletons vs spinners. - **Interactivity**: clicking max, editing manually, clearing field, paste handling. - **Updates**: post-tx balance refresh, polling vs websocket indicators, race when switching tokens. - **Trader use**: trader can answer “How much can I spend?” and “What will this cost in fees?” before signing. --- ### W4 — Discover markets and select a pair (CEX: “markets list & search”) **Components** - **C1 — Pair selector / search**: favorites, recents, filters, sorting. - **C2 — Pair metadata strip**: tick size, min notional, fee tier hints, pool/pair addresses if exposed. - **C3 — URL routing / deep link**: changing pair updates URL and shareability (visual confirmation). **Per-component** - **Display**: long pair names, wrapped tokens, duplicate tickers, “unknown token” fallbacks. - **Interactivity**: keyboard search, clear, hover previews, mobile sheet if any. - **Updates**: list refresh, new pools appearing, delisted/hidden pairs. - **Trader use**: trader finds intended market without misclicking a sound-alike asset. --- ### W5 — Read price, liquidity, and microstructure (CEX: “tape & book”) **Components** - **C1 — Mid / last / mark** (whatever hybrid shows): labels, sources, staleness. - **C2 — Order book / depth / ladder** (if present in hybrid): bids/asks, aggregation, spread. - **C3 — Recent trades / tape**: time, side coloring, size, price. - **C4 — Pool / route summary** if AMM-centric elements surface in hybrid view. **Per-component** - **Display**: precision alignment, color semantics for buy/sell, flash updates, empty book. - **Interactivity**: row hover, click-to-fill (if any), aggregation stepper. - **Updates**: high-frequency updates without layout thrash; scroll position stability. - **Trader use**: trader can infer execution quality and urgency from visuals alone. --- ### W6 — Charting and context (CEX: “TradingView tab”) **Components** - **C1 — Chart embed / timeframe controls** if present. - **C2 — Overlays**: volume, indicators menu, fullscreen. - **C3 — Crosshair / price axis** readability, overlap with order panels. **Per-component** - **Display**: loading, error, “no data for this pair,” watermarking. - **Interactivity**: pan/zoom, reset, indicator toggles, conflicts with page scroll. - **Updates**: pair switch rebinds chart; no stale symbol on axis. - **Trader use**: chart supports pre-trade context without hiding order controls. --- ### W7 — Prepare and place an order (CEX: “order form”) **Components** - **C1 — Order type selector**: market/limit/hybrid-specific types, disabled types with rationale. - **C2 — Side selector**: buy/sell visual distinction, accidental click mitigation. - **C3 — Price input**: tick enforcement, steppers, % offset from mid buttons if any. - **C4 — Size input**: base vs quote toggle, USD/notional estimate if shown. - **C5 — Time in force / expiry / reduce-only / post-only** (if applicable): labels and defaults. - **C6 — Slippage / price impact / min received** panel: defaults, presets, custom. - **C7 — Route preview** (multi-hop): hops, fees per hop, total, warnings. - **C8 — Submit CTA**: label changes by side, disabled reasons tooltips. **Per-component** - **Display**: all numbers labeled (which token, which leg), warnings highlighted, “you will receive” vs “you will sell.” - **Interactivity**: tab order through fields, validation inline vs on submit, scientific notation edge cases. - **Updates**: when book/price moves, dependent fields (impact, min out) update; debounce visible. - **Trader use**: dry run — trader can complete the mental checklist “type, side, size, worst case, fee” before wallet pop-up. --- ### W8 — Confirm, sign, and observe transaction lifecycle (CEX: “confirm order” → “open orders”) **Components** - **C1 — Pre-sign summary modal/page**: human-readable recap, links to explorers for contracts. - **C2 — Wallet prompt coordination**: loading between “submit” and extension; cancel path. - **C3 — Pending / broadcasting state**: tx hash link, copy, “speed up” n/a messaging. - **C4 — Success state**: confetti optional; clear “done” and next actions. - **C5 — Failure / revert state**: parse errors, codes, user-actionable fixes (gas, allowance, slippage). - **C6 — Partial fill / multi-msg** flows if hybrid sends multiple messages sequentially. **Per-component** - **Display**: timers, block height, gas/fee estimates in native denom where shown. - **Interactivity**: dismiss, retry, “view on explorer,” keep modal open vs navigate. - **Updates**: transition pending → success without orphan spinners; idempotency on double-click. - **Trader use**: trader never doubts whether funds moved or an order is live. --- ### W9 — Monitor open orders, history, and positions (CEX: “orders & history”) **Components** - **C1 — Open orders table**: columns, sorting, filters, pagination/infinite scroll. - **C2 — Order row actions**: cancel one, cancel all, edit (if any). - **C3 — Order history / fills**: timestamps, fees paid, tx links. - **C4 — LP / hybrid position widgets** if shown: PnL, IL hints, share of pool. - **C5 — Empty and error rows**: skeleton vs message. **Per-component** - **Display**: column alignment, fixed header, horizontal scroll on small screens. - **Interactivity**: confirm cancel modals, bulk actions, row expansion. - **Updates**: live cancel removes row; websocket vs manual refresh label. - **Trader use**: trader reconciles UI state with explorer/wallet activity. --- ### W10 — Adjust risk, settings, and preferences (CEX: “settings & defaults”) **Components** - **C1 — Slippage defaults**, **C2 — Expert mode** toggles, **C3 — MEV / routing options** if surfaced. - **C4 — Locale / number format** if selectable. - **C5 — Theme / density** if selectable. **Per-component** - **Display**: persisted values after refresh; reset to defaults control. - **Interactivity**: invalid custom slippage blocked with clear reason. - **Updates**: settings apply to new order form without stale cache in another tab (if testable). - **Trader use**: defaults match conservative safety for new users. --- ### W11 — Errors, edge cases, and resilience (CEX: “platform never lies”) **Components** - **C1 — Toasts / banners / inline errors**: stacking, duplication, dismissal. - **C2 — Rate limit / RPC errors**: retry UX. - **C3 — Contract query failures**: partial UI degradation vs full-page error. - **C4 — Wrong network deep link**: landing experience. **Per-component** - **Display**: error copy not dev-only; correlation id if any. - **Interactivity**: retry restores without full reload requirement. - **Updates**: recovery after RPC flaps. - **Trader use**: trader knows **what broke** and **what to do next**. --- ### W12 — Accessibility, keyboard, and inclusive design **Components** - **C1 — Focus rings** on all interactive hybrid controls. - **C2 — Screen reader labels** on icon-only trading buttons. - **C3 — Motion / reduced motion** respect if implemented. **Per-component** - **Display**: color-blind-safe side encoding not relying on red/green alone. - **Interactivity**: keyboard submit/cancel where applicable. - **Updates**: live region announcements for tx status if implemented. - **Trader use**: usable without mouse for critical path (connect → trade → confirm) where feasible. --- ### W13 — Performance and “feel” (CEX: “snappy UI”) **Components** - **C1 — Initial load / code-split boundaries** in hybrid route. - **C2 — Interaction latency** on pair switch, book updates, chart. - **C3 — Memory / jank** on long session with live feed. **Per-component** - **Display**: perceived performance (skeletons vs blank flash). - **Interactivity**: input lag, dropped keystrokes in amount fields under load. - **Updates**: backlog of events does not freeze UI. - **Trader use**: acceptable for fast markets subjective note with evidence (clip). --- ## Cross-cutting matrices (apply within every workflow above) For **each major screen region** (order card, book, tape, balances, tx modals, tables), explicitly verify: | Dimension | Examples | |-----------|----------| | **Display** | Labels, units, precision, alignment, truncation tooltips, empty/zero, loading, error, success, dark/light. | | **Interactivity** | Hover/focus/disabled, double-submit guards, modals trap focus, scroll lock, mobile gestures. | | **Updates** | Live data, staleness, refresh buttons, optimistic UI vs confirmed chain state, multi-tab. | | **Trader use (inputs + tx)** | Paste, max, decimals, scientific notation, wallet reject, out of gas, wrong chain, allowance path, explorer links, copy buttons, “what did I just sign?” clarity. | --- ## Deliverables for assignee 1. **Matrix spreadsheet or structured doc** mirroring this hierarchy with pass/fail/N/A. 2. **Artifact pack**: screenshots or screen recordings per failure; note environment. 3. **Executive summary**: top 10 UX risks for CEX migrants (clarity, trust, irreversible actions). 4. **Retest list**: quick checklist for fixes. --- ## Scope note **In scope**: all **pro hybrid trading** UI surfaces (including modals, drawers, toasts, and wallet-adjacent UI triggered from that mode). **Out of scope unless shared**: unrelated marketing pages, admin-only tools — still file cross-links if broken from hybrid. --- ## Acceptance criteria - Every **Tier 1 workflow** above has been exercised at least once end-to-end on a **realistic pair** with **realistic balances** (testnet or mainnet as appropriate). - Every **Tier 2 component** under exercised workflows has notes for **display / interactivity / updates / trader use**. - **Assignee** completes deliverables and attaches artifacts to this issue.
PlasticDigits commented 2026-04-24 12:25:02 +00:00 (Migrated from gitlab.com)

assigned to @Brouie

assigned to @Brouie
PlasticDigits commented 2026-05-04 03:56:49 +00:00 (Migrated from gitlab.com)

Local QA onboarding — infrastructure + starting visual inspection (issue checklist)

This note is for a new QA engineer doing human-controlled, visual verification of the pro hybrid trading surfaces described in this issue. It assumes you are developing from a single laptop with Docker (not the remote QA-server + SSH tunnel flow in scripts/qa/README.md, unless your lead assigns that).

Repository: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic


1. One-time prerequisites

Install and verify:

Tool Notes
git Clone with HTTPS or SSH.
Node.js 24 Repo has .nvmrc → nvm install / nvm use at repo root.
npm ≥ 11 Required by frontend-dapp/package.json engines.
Docker + Compose v2 LocalTerra and Postgres run in containers.
Rust (stable) Needed to run the indexer with cargo run from indexer/.
curl Used by Makefile health waits and sanity checks.

Optional but useful:

  • wasm32-unknown-unknown — only if you build contracts with plain cargo (not required for the recommended make deploy-local path, which uses the optimizer via Docker).
  • Station browser extension — primary wallet for realistic signing UX during visual QA (docs/qa-onboarding.md wallet matrix).

Configure hooks once per clone:

git config core.hooksPath .githooks

2. Clone and install frontend dependencies

git clone https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic.git
cd cl8y-dex-terraclassic
nvm use    # Node 24
cd frontend-dapp && npm ci && cd ..

3. Bring up LocalTerra + Postgres

From the repository root:

make start
# equivalent: docker compose up -d

Wait until the chain and DB are reachable (optional but reliable):

make wait-healthy

Sanity check anytime:

make status

Ports (defaults): LocalTerra LCD http://localhost:1317, Tendermint RPC http://localhost:26657; Postgres on localhost:5432 (see root docker-compose.yml if your environment differs).


4. Build optimized WASM and deploy all contracts (writes env files)

Still from repo root:

make deploy-local

This runs make build-optimized (CosmWasm workspace optimizer in Docker) and then scripts/deploy-dex-local.sh, which:

  • Waits for LocalTerra, uploads/instantiates Factory, Router, Pair templates, Fee Discount, Treasury, wrap-mapper, test CW20s, pairs, liquidity, and seed swaps.
  • Writes frontend-dapp/.env.local (LCD/RPC + contract addresses for local).
  • Writes indexer/.env (Postgres URL, factory address, API port).

If the script complains that WASM is stale, run make build-optimized and repeat make deploy-local.


5. Run the indexer (second terminal)

Indexer consumes chain events and serves HTTP APIs (charts, pairs API, hybrid routing context). From repo root:

make indexer-dev
# equivalent: cd indexer && cargo run

Expect API base http://localhost:3001 by default (health endpoint documented in indexer; make status checks /health when using QA scripts).

Charts / long-interval candles: a fresh local chain has little history. If you need populated weekly/monthly-style candles for Tier W6, after deploy + at least one indexer migration pass you can run synthetic seeding — see docs/qa-onboarding.md (cd indexer && cargo run -- seed-qa, optional --weeks, --clean).


6. Run the frontend dev server (third terminal)

cd frontend-dapp
nvm use
VITE_NETWORK=local npm run dev

Open the URL Vite prints (typically http://localhost:5173).

Ensure frontend-dapp/.env.local exists from step 4 so LCD/RPC and contract addresses match the chain you deployed.


7. Wallets — how to sign like a real user

A. Station (recommended for this issue)
Add or select a local Terra Classic network pointing at your machine:

  • Chain ID: localterra
  • LCD: http://localhost:1317
  • RPC: http://localhost:26657

Fund the address you control from genesis test1 if needed (operators often use docker exec + terrad tx bank send patterns documented alongside scripts/deploy-dex-local.sh).

B. Simulated dev wallet (optional, no extension)
Documented in docs/frontend.md (VITE_DEV_MODE, VITE_DEV_MNEMONIC). For LocalTerra, the mnemonic must match TEST_MNEMONIC in docker/init-chain.sh; deploy-dex-local.sh also aligns frontend-dapp/.env.development. Use only for local QA — never commit real seeds.


8. Bot swarm (optional — activity for book / tape / hybrid stress)

Only after LocalTerra is up and deploy finished successfully.

From repo root, in a dedicated terminal (runs until you stop it):

make swarm-local

Equivalent entrypoints: ./scripts/localnet-trading-swarm.sh or python3 scripts/bots/swarm.py.

Safety / expectations:

  • Refuses non-local chains (localterra guard).
  • Default bot mnemonic is generated at startup unless you set SWARM_BOT_MNEMONIC (do not commit secrets).
  • For dry validation without txs: ./scripts/localnet-trading-swarm.sh -- --dry-run
  • Heavier multi-process mode (25 workers): make swarm-launch — stop with make swarm-stop.

Keep swarm traffic local — never point it at public RPCs.


9. One-shot alternative: make dev-full

For convenience, make dev-full chains start, health wait, optimized build, deploy, then starts indexer (background) and the Vite dev server. Use separate terminals instead if you want clearer logs and independent restarts during long visual sessions.


10. Where to perform this issue’s visual inspection

Routing is defined in frontend-dapp/src/App.tsx:

  • Pro-style hybrid trading UI: /trade and /trade/:pairAddr → TradePage.
  • Supporting areas for Tier W5–W9 (limits, history, trader profile): /limits, /trader, /charts, classic swap at / if you compare behaviors.

Start at /trade, pick a realistic pair with liquidity from deploy (factory pairs exist after deploy-local). Deep links should update when you change pair selection — confirm visually per checklist W4.


11. How to begin human-controlled verification against this issue’s tiers

  1. Environment log — Record browser + version, viewport presets you use (desktop / narrow / mobile), wallet mode (Station vs simulated), VITE_NETWORK=local, and whether indexer + swarm were running.
  2. Baseline pass without swarm — Walk Tier W1 → W4 (chrome, connect, balances, pair discovery) with only your wallet so layouts are not masked by flood traffic.
  3. Enable swarm (optional) — Re-run W5–W7 (book, tape, execution previews) while bots place volume; watch for layout thrash, stale labels, and RPC/indexer degradation (W11, W13).
  4. Exercise signing paths — Tier W8 requires real approve/reject cycles in Station: pending → success and failure strings, explorer links, multi-message hybrid flows.
  5. Orders & history — Tier W9 against /limits and any hybrid-specific tables on /trade; cancel / refresh behavior should match expectations in the issue matrices.
  6. Accessibility & performance spot checks — Tiers W12–W13 are subjective; capture clips if something feels broken under load.
  7. Deliverables — Follow the issue body: structured pass/fail/N/A matrix, artifact pack, executive summary, retest list.

Reference templates (repo): QA_TEMPLATE.md, docs/qa-templates/, and docs/qa-onboarding.md for generic swap/pool flows that overlap hybrid workflows.


12. Resetting local state

make stop          # stop containers
make reset         # stop and delete volumes — full chain/DB wipe

Then repeat from §3 onward.


13. Remote QA server workflow (FYI)

If your team uses a shared machine instead of laptop-local Docker, see scripts/qa/README.md: make start-qa, make qa-tunnel-help, copy frontend-dapp/.env.local, run Vite locally. That path is equivalent after tunneling; the steps above stay valid once URLs resolve to your forwarded ports.

## Local QA onboarding — infrastructure + starting visual inspection (issue checklist) This note is for a **new QA engineer** doing **human-controlled, visual** verification of the **pro hybrid trading** surfaces described in this issue. It assumes you are developing from a **single laptop** with Docker (not the remote QA-server + SSH tunnel flow in `scripts/qa/README.md`, unless your lead assigns that). Repository: `https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic` --- ### 1. One-time prerequisites Install and verify: | Tool | Notes | |------|--------| | **git** | Clone with HTTPS or SSH. | | **Node.js 24** | Repo has `.nvmrc` → `nvm install` / `nvm use` at repo root. | | **npm ≥ 11** | Required by `frontend-dapp/package.json` engines. | | **Docker + Compose v2** | LocalTerra and Postgres run in containers. | | **Rust (stable)** | Needed to run the indexer with `cargo run` from `indexer/`. | | **curl** | Used by Makefile health waits and sanity checks. | Optional but useful: - **`wasm32-unknown-unknown`** — only if you build contracts with plain `cargo` (not required for the recommended `make deploy-local` path, which uses the optimizer via Docker). - **Station** browser extension — primary wallet for realistic signing UX during visual QA (`docs/qa-onboarding.md` wallet matrix). Configure hooks once per clone: ```bash git config core.hooksPath .githooks ``` --- ### 2. Clone and install frontend dependencies ```bash git clone https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic.git cd cl8y-dex-terraclassic nvm use # Node 24 cd frontend-dapp && npm ci && cd .. ``` --- ### 3. Bring up LocalTerra + Postgres From the **repository root**: ```bash make start # equivalent: docker compose up -d ``` Wait until the chain and DB are reachable (optional but reliable): ```bash make wait-healthy ``` Sanity check anytime: ```bash make status ``` **Ports (defaults):** LocalTerra LCD `http://localhost:1317`, Tendermint RPC `http://localhost:26657`; Postgres on `localhost:5432` (see root `docker-compose.yml` if your environment differs). --- ### 4. Build optimized WASM and deploy all contracts (writes env files) Still from repo root: ```bash make deploy-local ``` This runs `make build-optimized` (CosmWasm workspace optimizer in Docker) and then **`scripts/deploy-dex-local.sh`**, which: - Waits for LocalTerra, uploads/instantiates Factory, Router, Pair templates, Fee Discount, Treasury, wrap-mapper, test CW20s, pairs, liquidity, and seed swaps. - Writes **`frontend-dapp/.env.local`** (LCD/RPC + contract addresses for local). - Writes **`indexer/.env`** (Postgres URL, factory address, API port). If the script complains that WASM is stale, run `make build-optimized` and repeat `make deploy-local`. --- ### 5. Run the indexer (second terminal) Indexer consumes chain events and serves HTTP APIs (charts, pairs API, hybrid routing context). From repo root: ```bash make indexer-dev # equivalent: cd indexer && cargo run ``` Expect API base **`http://localhost:3001`** by default (health endpoint documented in indexer; `make status` checks `/health` when using QA scripts). **Charts / long-interval candles:** a fresh local chain has little history. If you need populated weekly/monthly-style candles for Tier W6, after deploy + at least one indexer migration pass you can run synthetic seeding — see **`docs/qa-onboarding.md`** (`cd indexer && cargo run -- seed-qa`, optional `--weeks`, `--clean`). --- ### 6. Run the frontend dev server (third terminal) ```bash cd frontend-dapp nvm use VITE_NETWORK=local npm run dev ``` Open the URL Vite prints (typically **`http://localhost:5173`**). Ensure **`frontend-dapp/.env.local`** exists from step 4 so LCD/RPC and contract addresses match the chain you deployed. --- ### 7. Wallets — how to sign like a real user **A. Station (recommended for this issue)** Add or select a **local** Terra Classic network pointing at your machine: - Chain ID: **`localterra`** - LCD: **`http://localhost:1317`** - RPC: **`http://localhost:26657`** Fund the address you control from genesis **`test1`** if needed (operators often use `docker exec` + `terrad tx bank send` patterns documented alongside `scripts/deploy-dex-local.sh`). **B. Simulated dev wallet (optional, no extension)** Documented in **`docs/frontend.md`** (`VITE_DEV_MODE`, `VITE_DEV_MNEMONIC`). For LocalTerra, the mnemonic must match **`TEST_MNEMONIC`** in **`docker/init-chain.sh`**; **`deploy-dex-local.sh`** also aligns **`frontend-dapp/.env.development`**. Use only for local QA — never commit real seeds. --- ### 8. Bot swarm (optional — activity for book / tape / hybrid stress) **Only after** LocalTerra is up **and** deploy finished successfully. From repo root, in a **dedicated terminal** (runs until you stop it): ```bash make swarm-local ``` Equivalent entrypoints: `./scripts/localnet-trading-swarm.sh` or `python3 scripts/bots/swarm.py`. Safety / expectations: - Refuses non-local chains (`localterra` guard). - Default bot mnemonic is generated at startup unless you set **`SWARM_BOT_MNEMONIC`** (do not commit secrets). - For dry validation without txs: `./scripts/localnet-trading-swarm.sh -- --dry-run` - Heavier multi-process mode (25 workers): `make swarm-launch` — stop with `make swarm-stop`. Keep swarm traffic **local** — never point it at public RPCs. --- ### 9. One-shot alternative: `make dev-full` For convenience, **`make dev-full`** chains `start`, health wait, optimized build, deploy, then starts indexer (background) and the Vite dev server. Use separate terminals instead if you want clearer logs and independent restarts during long visual sessions. --- ### 10. Where to perform **this issue’s** visual inspection Routing is defined in **`frontend-dapp/src/App.tsx`**: - **Pro-style hybrid trading UI:** **`/trade`** and **`/trade/:pairAddr`** → `TradePage`. - Supporting areas for Tier W5–W9 (limits, history, trader profile): **`/limits`**, **`/trader`**, **`/charts`**, classic swap at **`/`** if you compare behaviors. Start at **`/trade`**, pick a **realistic pair** with liquidity from deploy (factory pairs exist after `deploy-local`). Deep links should update when you change pair selection — confirm visually per checklist **W4**. --- ### 11. How to begin **human-controlled** verification against this issue’s tiers 1. **Environment log** — Record browser + version, viewport presets you use (desktop / narrow / mobile), wallet mode (Station vs simulated), `VITE_NETWORK=local`, and whether indexer + swarm were running. 2. **Baseline pass without swarm** — Walk Tier **W1 → W4** (chrome, connect, balances, pair discovery) with only your wallet so layouts are not masked by flood traffic. 3. **Enable swarm** (optional) — Re-run **W5–W7** (book, tape, execution previews) while bots place volume; watch for layout thrash, stale labels, and RPC/indexer degradation (**W11**, **W13**). 4. **Exercise signing paths** — Tier **W8** requires real approve/reject cycles in Station: pending → success and failure strings, explorer links, multi-message hybrid flows. 5. **Orders & history** — Tier **W9** against **`/limits`** and any hybrid-specific tables on **`/trade`**; cancel / refresh behavior should match expectations in the issue matrices. 6. **Accessibility & performance spot checks** — Tiers **W12–W13** are subjective; capture clips if something feels broken under load. 7. **Deliverables** — Follow the issue body: structured pass/fail/N/A matrix, artifact pack, executive summary, retest list. Reference templates (repo): **`QA_TEMPLATE.md`**, **`docs/qa-templates/`**, and **`docs/qa-onboarding.md`** for generic swap/pool flows that overlap hybrid workflows. --- ### 12. Resetting local state ```bash make stop # stop containers make reset # stop and delete volumes — full chain/DB wipe ``` Then repeat from **§3** onward. --- ### 13. Remote QA server workflow (FYI) If your team uses a shared machine instead of laptop-local Docker, see **`scripts/qa/README.md`**: `make start-qa`, `make qa-tunnel-help`, copy **`frontend-dapp/.env.local`**, run Vite locally. That path is equivalent after tunneling; the steps above stay valid once URLs resolve to your forwarded ports.
PlasticDigits commented 2026-05-04 03:57:48 +00:00 (Migrated from gitlab.com)

assigned to @totdking and unassigned @Brouie

assigned to @totdking and unassigned @Brouie
PlasticDigits commented 2026-05-04 03:57:53 +00:00 (Migrated from gitlab.com)

@totdking You’re assigned on this issue; the local QA onboarding note in this thread is intended for you to follow.

@totdking You’re assigned on this issue; the local QA onboarding note in this thread is intended for you to follow.
Brouie commented 2026-05-05 23:55:33 +00:00 (Migrated from gitlab.com)

mentioned in issue #133

mentioned in issue #133
PlasticDigits commented 2026-05-06 09:24:55 +00:00 (Migrated from gitlab.com)

@totdking Once you've completed the checklist, please mark each item as PASS/FAIL/SKIP, and for SKIPS the reason, for FAILS the issue number opened.

@totdking Once you've completed the checklist, please mark each item as PASS/FAIL/SKIP, and for SKIPS the reason, for FAILS the issue number opened.
totdking commented 2026-05-06 15:45:27 +00:00 (Migrated from gitlab.com)

mentioned in issue #138

mentioned in issue #138
totdking commented 2026-05-06 16:19:14 +00:00 (Migrated from gitlab.com)

Tier 1

W1 - Arrive, orient, and trust the surface

  • C1 - Global chrome: FAIL: #137 (swap, pool, limits, trade, charts) when in focus is not changed and no notable difference is noticed

    • swap page here

      image.png{width="900" height="439"}

    • pool page

      image.png{width="900" height="454"}

  • C2 - Layout shell: FAIL #136 (nav bar of more & local) crash into each other on reduced layout size

    image.png{width="900" height="545"}

  • C3 - Legal / risk surfacing: FAIL #138


W2 - Connect Wallet and Establish Session (CEX: "log in")

  • C1 Connect CTA: PASS
  • C2 Wallet selection UX: FAIL #139 - no wallet distinction in the installed and non-installed
  • C3 Connected state: FAIL #140 - Connected wallet chip missing standard elements no balance display, no copy address, no explorer link, no switch wallet

W3 - Fund / Approve / Capacity (CEX: "deposit & buying power")

W4 - Discover Markets and Select a Pair (CEX: "markets list & search")

W5 - Read Price, Liquidity, and Microstructure (CEX: "tape & book")

  • C1 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (Price: A prominent last price or mid price number should be displayed outside the chart — e.g. above or beside the chart panel — so the trader can read the current price at a glance without interpreting the chart axis. Full validation of price accuracy requires testnet; the missing label is flagged on local.)
  • C2 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (Order book scope: The order book panel should carry a label or tooltip clarifying that it reflects limit orders only — e.g. "Shows open limit orders — pool liquidity not included." Without this, a trader seeing an empty or thin book alongside an active tape has no way to know the two surfaces reflect different order types. Only manual limit orders carried out reflect in order book column.)
  • C3 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (Tape column labels: Column headers should use trader-familiar terminology. OFFER and RETURN are not standard CEX terms — SIZE / VALUE or AMOUNT IN / AMOUNT OUT would be immediately readable. DIRECTION could be SIDE or PAIR.)
  • C4 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149(HYBRID tag: The HYBRID label on every trade row should have a tooltip or inline explanation e.g. "Executed via hybrid AMM + limit order routing" — so a trader knows what kind of fill they are looking at.)

W6 - Charting and Context (CEX: "TradingView tab")

W7 - Prepare and Place an Order (CEX: "order form")

W8 - Confirm, Sign, and Observe Transaction Lifecycle (CEX: "confirm order → open orders")

W9 - Monitor Open Orders, History, and Positions (CEX: "orders & history")

W10 - Adjust Risk, Settings, and Preferences (CEX: "settings & defaults")

W11 - Errors, Edge Cases, and Resilience (CEX: "platform never lies")

W12 - Accessibility, Keyboard, and Inclusive Design

W13 - Performance and "Feel" (CEX: "snappy UI")

cc: @PlasticDigits finished with the dex checklist.

# Tier 1 ## W1 - Arrive, orient, and trust the surface * C1 - Global chrome: FAIL: #137 (swap, pool, limits, trade, charts) when in focus is not changed and no notable difference is noticed * swap page here ![image.png](/uploads/cb32ad5c75fc0d346eb849ad74367ff2/image.png){width="900" height="439"} * pool page ![image.png](/uploads/3ff32a2237e5718b88753d1d19d61836/image.png){width="900" height="454"} * C2 - Layout shell: FAIL #136 (nav bar of more & local) crash into each other on reduced layout size ![image.png](/uploads/86b1e2062730667dc040aff9eba20bcf/image.png){width="900" height="545"} * C3 - Legal / risk surfacing: FAIL #138 --- ## W2 - Connect Wallet and Establish Session _(CEX: "log in")_ - **C1** Connect CTA: PASS - **C2** Wallet selection UX: FAIL #139 - no wallet distinction in the installed and non-installed - **C3** Connected state: FAIL #140 - Connected wallet chip missing standard elements no balance display, no copy address, no explorer link, no switch wallet ## W3 - **Fund / Approve / Capacity _(CEX: "deposit & buying power")_** * C1 - fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/140#note_3324102066 * C2 - PASS * C3 - PASS * C4 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/147 ## W4 - **Discover Markets and Select a Pair _(CEX: "markets list & search")_** * C1 - PASS * C2 - Fail (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/148, also https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/129: the trade & limit pages both show the same thing / functionality) * C3 - PASS ## W5 - Read Price, Liquidity, and Microstructure _(CEX: "tape & book")_ * C1 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (**Price:** A prominent last price or mid price number should be displayed outside the chart — e.g. above or beside the chart panel — so the trader can read the current price at a glance without interpreting the chart axis. Full validation of price accuracy requires testnet; the missing label is flagged on local.) * C2 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (**Order book scope:** The order book panel should carry a label or tooltip clarifying that it reflects limit orders only — e.g. _"Shows open limit orders — pool liquidity not included."_ Without this, a trader seeing an empty or thin book alongside an active tape has no way to know the two surfaces reflect different order types. Only manual limit orders carried out reflect in order book column.) * C3 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149 (**Tape column labels:** Column headers should use trader-familiar terminology. `OFFER` and `RETURN` are not standard CEX terms — `SIZE` / `VALUE` or `AMOUNT IN` / `AMOUNT OUT` would be immediately readable. `DIRECTION` could be `SIDE` or `PAIR`.) * C4 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/149(HYBRID tag: The `HYBRID` label on every trade row should have a tooltip or inline explanation e.g. _"Executed via hybrid AMM + limit order routing"_ — so a trader knows what kind of fill they are looking at.) ## W6 - Charting and Context _(CEX: "TradingView tab")_ * C1 - Fail https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/148 (Price chart timeframe switching freeze after several changes i.e. toggling to several) * C2 - FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/150 (chart missing standard tools native to cex trading) * C3 - FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/151 (-ve price on chart) ## W7 - Prepare and Place an Order _(CEX: "order form")_ - **C1 - FAIL: (** https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/152: No order type selector on `/trade` — only limit order form present, no market order type or disabled-type rationale) ~"blocker:limit-orders" - **C2 - FAIL: (** #153 :Bid/Ask side selector sluggish — radio switch does not respond immediately on click) - **C3 - FAIL: (** https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/154) - **C4 - FAIL: (** https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/155) - **C5 - FAIL: (** https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/156) - **C6 - FAIL: (** https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/157) - **C7 - N/A: (Limit orders are placed via a direct CW20 send to the order book contract. There is no AMM routing at placement time, so no route preview panel is expected or applicable.)** - **C8 - FAIl : (** #153 **,** #152 , #156 **)** ## W8 - Confirm, Sign, and Observe Transaction Lifecycle _(CEX: "confirm order → open orders")_ * C1 - PASS * C2 - PASS * C3 - PASS * C4 - FAIL(https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/161) * C5 - PASS * C6 - PASS ## W9 - Monitor Open Orders, History, and Positions _(CEX: "orders & history")_ * C1 - PASS * C2 - FAIL( https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/162: UX BUG GAP) * C3 - FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/163) * C4 - PASS * C5 - FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/164, https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/165, https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/166) ## W10 - Adjust Risk, Settings, and Preferences _(CEX: "settings & defaults")_ - **C1** — PASS - **C2** — PASS - **C3** — FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/168 - **C4** — FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/169 - **C5** — FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/170 ## W11 - Errors, Edge Cases, and Resilience _(CEX: "platform never lies")_ - **C1** — FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/169 - **C2** — FAIL https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/171 - **C3** — FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/172, https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/173,https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/174) - **C4** — FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/175, https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/176, https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/177) ## W12 - Accessibility, Keyboard, and Inclusive Design - **C1** — PASS - **C2** — FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/178) - **C3** — N/A (untestable (not available in OS settings), i don't have `reduced motion` in my macos settings) ## W13 - Performance and "Feel" _(CEX: "snappy UI")_ * C1 - FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/179) * C2 - FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/180) * C3 - FAIL (https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/181) cc: @PlasticDigits finished with the dex checklist.
totdking commented 2026-05-07 12:26:01 +00:00 (Migrated from gitlab.com)

mentioned in issue #140

mentioned in issue #140
PlasticDigits commented 2026-05-11 09:04:11 +00:00 (Migrated from gitlab.com)

@totdking When back, please continue with W7 to W13

@totdking When back, please continue with W7 to W13
PlasticDigits commented 2026-05-22 05:47:05 +00:00 (Migrated from gitlab.com)

@totdking Excellent, please proceed with verifying fixes on issues.

@totdking Excellent, please proceed with verifying fixes on issues.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-05-27 02:36:45 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#116
No description provided.