Updated Gap Analysis #411
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#411
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cover ui/ux issues and smart contract issues. First Focus on areas where the system may behave differently than expected foe a user migrating from a cex or dex. Second, focus on reducing information overload as some buttons may be unexcessarilt large or use text when clear unicode could be used, complex warnings may backfire by causing awareness fatigue, and general simplification. Also, check all components, surfaces, and pages for compliance with Cyberminimalist Glass System design pattern, and make sure docs are up to date with that Cyberminimalist Glass System design pattern.
CL8Y DEX Terra Classic — Gap Analysis (#411)
1782392119main@ syncgaps/GAP_1780023683.md,docs/reviews/20260409T030009Z/Executive summary
CL8Y DEX is a hybrid AMM + on-chain FIFO limit book on Terra Classic — materially different from both centralized exchanges (CEX) and pool-only DEXes (Uniswap-class). The stack is technically mature (contracts, indexer, frontend, 31 Playwright specs), but retail UX still reads like an integrator/debug console in several high-traffic surfaces.
Highest-impact gaps for issue #411:
/,/trade,/limits) with no onboarding map.frontend-dapp/src/index.css, but there is no authoritative design spec, no component matrix, and concrete compliance bugs (btn-neoreferenced in TSX with no CSS definition;.glassdefined but unused).min_return; maker fees charged at placement; dust/expiry require separate claim txs; pause blocks cancel/claim.db_orderbook_simfailure blocked integration suite).Bottom line: Pool-only swap is production-ready for informed users. Retail launch needs copy/IA simplification, design-system documentation, and stronger alignment between quotes and hybrid execution — before marketing to CEX/DEX migrants.
Methodology
smartcontracts/,indexer/,frontend-dapp/,docs/,skills/, CI)make test-contracts— passmake test-frontend— 1 failure (cosmesPatch127.test.tspatch SHA)make test-indexer-integration— blocked by lib test failure (api::db_orderbook_sim::tests::zero_reserve_mirror_returns_no_output)GAP_1780023683.mdand frozen review matrices1. CEX/DEX migration — behavioral surprises (Priority 1)
1.1 Critical
tradeDirectionSideLabels.ts, while ticket title may read “Sell TOKEN0” for ask side.frontend-dapp/src/utils/tradeDirectionSideLabels.ts,TradeOrderTicket.tsx,LimitOrderBidAskSideSelector.tsxSwapPage.tsxSettings drawer (~L1049–1216)SwapPage.tsxcomments + warnings; contract L8 invariant (docs/contracts-security-audit.md)1.2 High
/swap,/tradepro workspace,/limitslimit book — peers innavItems.tshumanizeTerraTxError.ts)TradeMarketOrderPanel.tsxhybrid on; “Pattern C” copy;quoteDisclosurestringsNetworkBadge.tsxdisplay-only;WalletModal.tsxlists wallets without Terra Classic guidancedocs/limit-orders.md, “Issue: GitLab #157” inLimitOrderPreSubmitSummary.tsxTradeMarketOrderPanel.tsxmay surface raw(simQuery.error as Error).messagepy-3.5 text-base; trade place/market!text-xs(TradeOrderTicket.tsx,TradeMarketOrderPanel.tsx)1.3 Medium
TradeOrderTicket.tsx,LimitOrdersPage.tsx— CEX shows open orders list with one-click cancelstores/dex.tsdeadlineSeconds: 300never shown in Settings (Uniswap shows this)LimitOrderPreSubmitSummary.tsx— “½ of Y bps effective swap fee”TradeOrderTicket.tsxprice semanticshidden lg:blockTradeOrderTicket.tsxdefaults tolimitnotmarket1.4 Smart contracts — migration surprises
orderbook.rs,pair/contract.rsexecute_swapmin_returnorbelief_pricemax_spread.rs, router omitsbelief_pricemax_spread.rs, router precheckorderbook.rs,limit_placement.rsorderbook.rsLIMIT_ORDER_DUST_FLUSH_THRESHOLDdefault_max_spread()discount_cache.rsmin_returnenforced on net after hook feesexecute_swapL1167–11862. Information overload & simplification (Priority 2)
2.1 Warning fatigue & density
/tradelimit tab + ladder panel + history2.2 Button size, text vs icons
!text-xs/!text-[10px]TradeOrderTicket.tsx,TradeMarketOrderPanel.tsx,LimitOrderLadderPanel.tsx!text-[10px]TradeMarketOrderPanel.tsxaria-labelonlySwapPage.tsxSwapPage.tsxTradeOrderTicket.tsxRecommendation: Use unicode/icon affordances where they reduce text (
⇄swap,⚙settings,↓expand) only when paired with accessible labels; enlarge trade CTAs to match swap hierarchy; collapse advanced panels behind progressive disclosure defaults (off for new users).2.3 Copy to remove from retail paths
LimitOrderPreSubmitSummary.tsxL108)docs/swap-max-spread-ux.md/docs/limit-orders.mdin alert bodies (move to “Learn more” footnotes)3. Cyberminimalist Glass System — compliance & documentation
3.1 Naming & documentation gap — High
Full-text repo search: zero hits for “Cyberminimalist”, “Cyberminimalist Glass System”, or “Glass System” as a product name.
frontend-dapp/src/index.css(~1800 lines),theme-dark.css,theme-light.cssQA_TEMPLATE.md§10docs/frontend.md, agent skillsDESIGN.md, token catalog, component matrix, Figma, “when to useshell-panelvscard-neo”Gap: Issue #411 asks for docs “up to date with Cyberminimalist Glass System” — the name and spec do not exist in-repo. Either codify the external name in a new design doc or align issue terminology with implemented “glass + neo-brutalist” vocabulary.
3.2 Inferred design principles (from code)
backdrop-filter: blur(14–18px), translucent gradients--mint,--cyanare legacy misnomers)data-themeon<html>, not Tailwinddark:3.3 Compliance defects by surface
shell-panel/shell-panel-strongon pagescard-neoviaCard.tsx.glassclassindex.css, nosrc/referencesbtn-neoLimitOrdersPage.tsx,PairNotFoundLinkNotice.tsx,InvalidPairLinkNotice.tsx— no.btn-neorule in CSSprimary/dexblue palettetailwind.config.jsvs warm CSS-var systemtrade-bootstrap.cssWalletModal.tsx; press/success/error widerQA_PASS_2026-03-13.mdstill mentions footer theme toggle; template says header (#170)--focus-ring, axe CI on critical routesshell-panel*3.4 Component audit summary
.app-*,.wallet-*inindex.cssbtn-neoon mode toggleapp-modal-panel)public/bootstrap/trade-bootstrap.css4. Testing & CI gaps
4.1 This run
make test-contractsmake test-frontendcosmesPatch127.test.ts— patch file SHA mismatch for@goblinhunt/cosmes@0.0.71-ghunt.22make test-indexer-integrationdb_orderbook_sim::zero_reserve_mirror_returns_no_output4.2 Coverage holes relevant to #411
skills/AGENTS_TESTING_MULTIHOP_HYBRID.md/traderor/protocolE2Everify-issue-293.shonlytradeDirectionSideLabels5. Security, gas, DRY, readability (abbreviated)
docs/contracts-security-audit.md); fee-on-transfer reserve desync if whitelistedMAX_SCAN_STEPS/max_maker_fillscapsSwapPage.tsxvery large; settings mixed with retailclient.tsmethods unused by pages6. Findings by severity
Critical
High
btn-neobrokenmin_returnrequirement not obvious in UIMedium
.glass; trade-bootstrap off-themeLow
TEST_GAP_MATRIX.md7. Recommended next steps
Immediate (copy & IA — low risk, high impact)
tradeDirectionSideLabels— use CEX-standard “Buy {base}” / “Sell {base}” (or “Buy” / “Sell” with clear base symbol in heading only).TradeMarketOrderPanelerrors viahumanizeUserFacingError.btn-neoinindex.cssor replace withbtn-mutedeverywhere.Short term (design system)
docs/design-system.md(or adopt “Cyberminimalist Glass System” name) — token table, primitives (shell-panel,card-neo,btn-*,tab-neo,input-neo), spacing, when-to-use rules, icon/unicode guidelines.trade-bootstrap.cssandtailwind.config.jswith CSS variables or mark deprecated.QA_PASSfooter drift.Medium term (product & contracts alignment)
db_orderbook_simlib test; add #293 slippage to indexer integration suite.Strategic (CI & E2E)
.github/workflows/test.yml(#234)./trader,/protocol, blacklist with LCD mock.8. Positive patterns (preserve)
SwapPreSubmitSummary,LimitOrderPreSubmitSummary) — aligns with modern DEX anti-phishing UXhumanizeTerraTxError.tswhere wired — clear max spread, pause, blacklist copylimitOrderNonCrossing.ts)Report generated for GitLab issue #411. Full path:
gaps/GAP_1782392119.md.All recommendations approved for creating issues. Ui/ux issue validation criteria must include one or more checkboxes for screenshots.
For recommendation 11, hybrid disclosure: instead of disclosure, make sure that if its a hybrid swap, the quote should also be hybrid. This may require changes to indexer.
mentioned in issue #412
mentioned in issue #413
mentioned in issue #414
mentioned in issue #415
mentioned in issue #416
mentioned in issue #417
mentioned in issue #418
mentioned in issue #419
mentioned in issue #420
mentioned in issue #421
mentioned in issue #422
mentioned in issue #423
Child issues opened from gap analysis (#411)
Triage: Parent comment (2026-06-25) approved all §7 recommendations for issue creation. UI/UX issues include screenshot checkboxes per validation requirement. Recommendation 11 was revised: hybrid quote must match hybrid execution (indexer + frontend) — not a disclosure/acknowledgment UX.
Opened (12 issues, bundled from §7)
btn-neofixdb_orderbook_simtest, #293 integration/trader,/protocol, blacklistSkipped
Dependency notes
docs/design-system.md) should land before or with #416 (token alignment references design doc).mentioned in merge request !937
mentioned in merge request !938
mentioned in merge request !940
mentioned in merge request !943
mentioned in merge request !945