Feature: Pair search combobox with relevance + liquidity ranking #314

Closed
opened 2026-06-05 04:08:28 +00:00 by PlasticDigits · 24 comments
PlasticDigits commented 2026-06-05 04:08:28 +00:00 (Migrated from gitlab.com)

Current codebase

Frontend: Trading flows use a dropdown (MenuSelect) listing all pairs:

  • TradePage.tsx — pairInfosToMenuSelectOptions(pairs)
  • LimitOrdersPage.tsx — same
  • ChartsPage.tsx — indexerPairsToMenuSelectOptions with sort controls

Labels from frontend-dapp/src/utils/pairMenuOptions.ts (SYMBOL_A / SYMBOL_B — addr).

Indexer: GET /api/v1/pairs?q= already supports substring search across pair address, token symbols, contract addresses, denoms (indexer/src/db/queries/pairs.rs push_pair_list_filters). Sort options: id, fee, created, symbol, volume_24h — no relevance ranking.

Search does not parse pair symbols like LUNC USTC / token names distinctly; no tiered relevance buckets; no liquidity tie-break within bucket.

Why this is needed

Factory pair count grows in QA/prod. Dropdown scrolling does not scale. Users need fast discovery by:

  1. Pair contract address
  2. CW20 token address
  3. Token symbol
  4. Token name
  5. Pair symbol pair (XXX YYY where XXX/YYY match symbol or name)

Results should rank by match quality (buckets 1–5), then liquidity (24h volume or pool depth) within bucket.

Constraints / guardrails

  • Reuse indexer search where possible — avoid loading all pairs client-side on mobile.
  • Debounce queries (≥300ms); min 2 chars unless exact terra1… address.
  • Max q length stays ≤128 (PAIR_LIST_Q_MAX_LEN).
  • Deep pagination limits unchanged (PAIR_LIST_OFFSET_MAX).
  • Charts page may keep sort dropdown; Trade/Limits need combobox UX (search + select).
  • Accessibility: keyboard nav, aria combobox pattern.
  • Invalid / unknown pair addresses still route to existing notices (InvalidPairLinkNotice).

Relevant files

Area Path
UI TradePage.tsx, LimitOrdersPage.tsx, ChartsPage.tsx
New component e.g. frontend-dapp/src/components/trade/PairSearchSelect.tsx
Labels frontend-dapp/src/utils/pairMenuOptions.ts
Indexer API indexer/src/api/pairs.rs, indexer/src/db/queries/pairs.rs
Tests indexer/tests/api_pairs.rs, frontend-dapp/src/utils/__tests__/pairMenuOptions.test.ts
Types frontend-dapp/src/types/index.ts (IndexerPair)

Indexer

  1. Extend list_pairs_filtered with relevance scoring SQL (CASE tiers):
    • 5 — exact pair address or exact XXX/YYY symbol pair match
    • 4 — exact token contract/denom match
    • 3 — exact token symbol match (either leg)
    • 2 — token name match (either leg)
    • 1 — substring fallback (current ILIKE behavior)
  2. ORDER BY relevance DESC, COALESCE(pv.volume_quote,0) DESC, p.id ASC
  3. Add sort=relevance (default when q present).

Frontend

  1. Replace MenuSelect pair picker with searchable combobox calling /api/v1/pairs?q=&sort=relevance&limit=20.
  2. Factory/LCD fallback when indexer offline (degraded: local filter on cached pairs).
  3. Display liquidity badge in results (reuse pairListBadges.ts if applicable).

Acceptance criteria

  • Trade + Limits use search combobox, not full pair dropdown.
  • All five search modes return sensible top results in manual QA matrix.
  • Within same relevance bucket, higher volume_24h pair ranks first.
  • Empty query shows recent/high-liquidity pairs (define policy).
  • Indexer tests for relevance ordering.

Test plan (all paths)

Query type Example Expected top hit
Pair addr full terra1… pair Exact pair, relevance 5
Token addr CW20 contract Pairs containing token
Symbol LUNC Pairs with LUNC symbol
Name full token name substring Name match tier
Pair symbols LUNC USTC That pair before partials
Typo / low tier lun Substring tier 1
No results zzzzz Empty state copy
Indexer down disconnect Fallback or error

Attack / abuse / hack vectors

Vector Mitigation
SQL injection via q Parameterized queries (existing QueryBuilder)
ReDoS / expensive ILIKE Length cap; index on symbols/addresses
Scrape all pairs via search Rate limit / pagination cap (existing)
Homoglyph token symbols Show contract snippet in results

Verification criteria

  • make test-frontend + indexer api_pairs tests green.
  • Manual matrix on LocalTerra deploy with ≥6 pairs.
  • Lighthouse/a11y spot check on combobox.
## Current codebase **Frontend:** Trading flows use a dropdown (`MenuSelect`) listing all pairs: - `TradePage.tsx` — `pairInfosToMenuSelectOptions(pairs)` - `LimitOrdersPage.tsx` — same - `ChartsPage.tsx` — `indexerPairsToMenuSelectOptions` with sort controls Labels from `frontend-dapp/src/utils/pairMenuOptions.ts` (`SYMBOL_A / SYMBOL_B — addr`). **Indexer:** `GET /api/v1/pairs?q=` already supports substring search across pair address, token symbols, contract addresses, denoms (`indexer/src/db/queries/pairs.rs` `push_pair_list_filters`). Sort options: `id`, `fee`, `created`, `symbol`, `volume_24h` — **no relevance ranking**. Search does **not** parse pair symbols like `LUNC USTC` / token names distinctly; no tiered relevance buckets; no liquidity tie-break within bucket. ## Why this is needed Factory pair count grows in QA/prod. Dropdown scrolling does not scale. Users need fast discovery by: 1. Pair contract address 2. CW20 token address 3. Token symbol 4. Token name 5. Pair symbol pair (`XXX YYY` where XXX/YYY match symbol **or** name) Results should rank by match quality (buckets 1–5), then **liquidity** (24h volume or pool depth) within bucket. ## Constraints / guardrails - Reuse indexer search where possible — avoid loading all pairs client-side on mobile. - Debounce queries (≥300ms); min 2 chars unless exact `terra1…` address. - Max `q` length stays ≤128 (`PAIR_LIST_Q_MAX_LEN`). - Deep pagination limits unchanged (`PAIR_LIST_OFFSET_MAX`). - Charts page may keep sort dropdown; Trade/Limits need combobox UX (search + select). - Accessibility: keyboard nav, aria combobox pattern. - Invalid / unknown pair addresses still route to existing notices (`InvalidPairLinkNotice`). ## Relevant files | Area | Path | |------|------| | UI | `TradePage.tsx`, `LimitOrdersPage.tsx`, `ChartsPage.tsx` | | New component | e.g. `frontend-dapp/src/components/trade/PairSearchSelect.tsx` | | Labels | `frontend-dapp/src/utils/pairMenuOptions.ts` | | Indexer API | `indexer/src/api/pairs.rs`, `indexer/src/db/queries/pairs.rs` | | Tests | `indexer/tests/api_pairs.rs`, `frontend-dapp/src/utils/__tests__/pairMenuOptions.test.ts` | | Types | `frontend-dapp/src/types/index.ts` (`IndexerPair`) | ## Recommended direction ### Indexer 1. Extend `list_pairs_filtered` with relevance scoring SQL (CASE tiers): - **5** — exact pair address or exact `XXX/YYY` symbol pair match - **4** — exact token contract/denom match - **3** — exact token symbol match (either leg) - **2** — token name match (either leg) - **1** — substring fallback (current ILIKE behavior) 2. `ORDER BY relevance DESC, COALESCE(pv.volume_quote,0) DESC, p.id ASC` 3. Add `sort=relevance` (default when `q` present). ### Frontend 1. Replace `MenuSelect` pair picker with searchable combobox calling `/api/v1/pairs?q=&sort=relevance&limit=20`. 2. Factory/LCD fallback when indexer offline (degraded: local filter on cached pairs). 3. Display liquidity badge in results (reuse `pairListBadges.ts` if applicable). ## Acceptance criteria - [ ] Trade + Limits use search combobox, not full pair dropdown. - [ ] All five search modes return sensible top results in manual QA matrix. - [ ] Within same relevance bucket, higher `volume_24h` pair ranks first. - [ ] Empty query shows recent/high-liquidity pairs (define policy). - [ ] Indexer tests for relevance ordering. ## Test plan (all paths) | Query type | Example | Expected top hit | |------------|---------|------------------| | Pair addr | full `terra1…` pair | Exact pair, relevance 5 | | Token addr | CW20 contract | Pairs containing token | | Symbol | `LUNC` | Pairs with LUNC symbol | | Name | full token name substring | Name match tier | | Pair symbols | `LUNC USTC` | That pair before partials | | Typo / low tier | `lun` | Substring tier 1 | | No results | `zzzzz` | Empty state copy | | Indexer down | disconnect | Fallback or error | ## Attack / abuse / hack vectors | Vector | Mitigation | |--------|------------| | SQL injection via `q` | Parameterized queries (existing QueryBuilder) | | ReDoS / expensive ILIKE | Length cap; index on symbols/addresses | | Scrape all pairs via search | Rate limit / pagination cap (existing) | | Homoglyph token symbols | Show contract snippet in results | ## Verification criteria - `make test-frontend` + indexer `api_pairs` tests green. - Manual matrix on LocalTerra deploy with ≥6 pairs. - Lighthouse/a11y spot check on combobox.
ghost1 commented 2026-06-05 10:12:52 +00:00 (Migrated from gitlab.com)

mentioned in commit 23c85e4685

mentioned in commit 23c85e4685896b03659c757add20daf6bb545e5c
ghost1 commented 2026-06-05 10:12:52 +00:00 (Migrated from gitlab.com)

mentioned in commit 5a873ad3d2

mentioned in commit 5a873ad3d2c35639e731b389cc06a91459154675
ghost1 commented 2026-06-05 10:12:52 +00:00 (Migrated from gitlab.com)

mentioned in commit 9a90f96ec1

mentioned in commit 9a90f96ec133b27a2dc30511a858d6ea35fb5607
PlasticDigits commented 2026-06-05 10:13:18 +00:00 (Migrated from gitlab.com)

mentioned in merge request !792

mentioned in merge request !792
PlasticDigits commented 2026-06-05 10:13:29 +00:00 (Migrated from gitlab.com)

Implementation complete in MR !792: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/74

What changed

  • Indexer: sort=relevance with tiered match scoring + 24h volume tie-break; token name and two-token pair symbol filters.
  • Frontend: PairSearchSelect combobox on Trade and Limit Orders (debounced indexer search, factory gate, outage fallback, volume badges).
  • Docs: docs/frontend.md § Pair search combobox invariants.

Verification

Item Command / step Result
Trade + Limits combobox Code + unit tests PASS
Relevance buckets + volume tie-break cargo test --test api_pairs list_pairs_relevance_ordering -- --test-threads=1 PASS
Empty query → high liquidity PairSearchSelect default volume_24h desc PASS
Frontend tests make test-frontend (832 passed) PASS
Frontend lint make lint-frontend (0 errors) PASS
Manual QA matrix (≥6 pairs) LocalTerra deploy SKIP
Lighthouse/a11y combobox Manual SKIP

Issue left open until manual QA matrix and a11y spot check on a LocalTerra deploy with ≥6 pairs.

Implementation complete in MR !792: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/74 ## What changed - **Indexer:** `sort=relevance` with tiered match scoring + 24h volume tie-break; token name and two-token pair symbol filters. - **Frontend:** `PairSearchSelect` combobox on Trade and Limit Orders (debounced indexer search, factory gate, outage fallback, volume badges). - **Docs:** `docs/frontend.md` § Pair search combobox invariants. ## Verification | Item | Command / step | Result | |------|----------------|--------| | Trade + Limits combobox | Code + unit tests | PASS | | Relevance buckets + volume tie-break | `cargo test --test api_pairs list_pairs_relevance_ordering -- --test-threads=1` | PASS | | Empty query → high liquidity | `PairSearchSelect` default `volume_24h desc` | PASS | | Frontend tests | `make test-frontend` (832 passed) | PASS | | Frontend lint | `make lint-frontend` (0 errors) | PASS | | Manual QA matrix (≥6 pairs) | LocalTerra deploy | SKIP | | Lighthouse/a11y combobox | Manual | SKIP | Issue left **open** until manual QA matrix and a11y spot check on a LocalTerra deploy with ≥6 pairs.
PlasticDigits commented 2026-06-05 10:39:16 +00:00 (Migrated from gitlab.com)

mentioned in commit 43c56c4ea5

mentioned in commit 43c56c4ea59d64dfdcf18d2a17017d3e569ed256
PlasticDigits commented 2026-06-05 11:41:59 +00:00 (Migrated from gitlab.com)

Verification — GitLab #314 (agent:verify)

Issue: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/314
Branch verified: main @ c179fa9 (MR !792 merged)
LocalTerra: make setup-cloud-localterra — 50 factory pairs indexed

Acceptance criteria

Criterion Result How verified
Trade + Limits use search combobox (not full dropdown) PASS PairSearchSelect in TradePage.tsx / LimitOrdersPage.tsx; Charts keeps MenuSelect. Playwright e2e/limit-orders.spec.ts — role="combobox", no native <select>.
Five search modes return sensible top results PASS (4/5) Live indexer API matrix on LocalTerra (curl / Python against http://127.0.0.1:3001): pair addr, token addr, symbol, pair symbols (EMBER CORAL), substring (emb) — all top hits sensible. Token name tier: SKIP — deploy QA tokens have empty name in indexer (name='' for all assets); tier-2 not exercisable on this stack.
Same relevance bucket → higher volume_24h first PASS cargo test --test api_pairs list_pairs_relevance_ordering -- --test-threads=1 (LUNC symbol tier orders high-vol pair before low-vol pair). Live deploy: SKIP tie-break observation — all pairs volume_quote_24h = 0 post-deploy.
Empty query → high-liquidity defaults PASS PairSearchSelect uses sort=volume_24h&order=desc when q empty; opening combobox on /limits lists 20 factory pairs sorted by indexer volume.
Indexer tests for relevance ordering PASS cargo test --test api_pairs -- --test-threads=1 — 15/15 including list_pairs_relevance_ordering.

Verification criteria

Check Result Command / evidence
make test-frontend PASS 840 tests, 139 files
make lint-frontend PASS 0 errors (5 pre-existing warnings)
Indexer api_pairs PASS 15/15 integration tests
Manual QA matrix (≥6 pairs) PASS 50 pairs on LocalTerra; API matrix + Playwright limits combobox symbol search (EMBER CORAL selects first option)
Lighthouse / a11y combobox PASS Playwright: #trade-pair-select / #limit-pair have role="combobox", aria-expanded, portaled role="listbox"; keyboard handlers (Arrow/Enter/Escape) in PairSearchSelect.tsx; docs frontend.md § Pair search combobox invariants

Test plan extras

Case Result Notes
No results (zzzzz) PASS /limits with no pair selected → “No pairs match your search”
Indexer down — open dropdown PASS Indexer stopped; opening combobox shows up to 20 factory pairs from local labels
Indexer down — typed search FAIL Indexer stopped; type EMBER in #limit-pair → “No pairs match your search” (0 options). Expected per issue: degraded filterPairsByLocalSearch on cached factory labels. Empty-query fallback works; non-empty query fallback does not. Repro: stop indexer tmux session, make dev, open /limits, click pair combobox, type EMBER.
Trade page no-results while pair selected N/A /trade auto-selects a pair; selected pair remains visible during non-matching search (by design in PairSearchSelect — prepends current selection).

Follow-up

  • Fix degraded-mode typed search when indexer errors (PairSearchSelect.tsx — pairsQuery.isError + non-empty debouncedSearch should populate filterPairsByLocalSearch results; currently returns empty after failed search query).
  • Optional: seed token names on LocalTerra QA deploy to exercise relevance tier 2 in manual matrix.

Verification incomplete due to FAIL above — issue remains open.

## Verification — GitLab #314 (agent:verify) Issue: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/314 Branch verified: `main` @ `c179fa9` (MR !792 merged) LocalTerra: `make setup-cloud-localterra` — **50 factory pairs** indexed ### Acceptance criteria | Criterion | Result | How verified | |-----------|--------|--------------| | Trade + Limits use search combobox (not full dropdown) | **PASS** | `PairSearchSelect` in `TradePage.tsx` / `LimitOrdersPage.tsx`; Charts keeps `MenuSelect`. Playwright `e2e/limit-orders.spec.ts` — `role="combobox"`, no native `<select>`. | | Five search modes return sensible top results | **PASS** (4/5) | Live indexer API matrix on LocalTerra (`curl` / Python against `http://127.0.0.1:3001`): pair addr, token addr, symbol, pair symbols (`EMBER CORAL`), substring (`emb`) — all top hits sensible. **Token name tier: SKIP** — deploy QA tokens have empty `name` in indexer (`name=''` for all assets); tier-2 not exercisable on this stack. | | Same relevance bucket → higher `volume_24h` first | **PASS** | `cargo test --test api_pairs list_pairs_relevance_ordering -- --test-threads=1` (LUNC symbol tier orders high-vol pair before low-vol pair). Live deploy: **SKIP** tie-break observation — all pairs `volume_quote_24h = 0` post-deploy. | | Empty query → high-liquidity defaults | **PASS** | `PairSearchSelect` uses `sort=volume_24h&order=desc` when `q` empty; opening combobox on `/limits` lists 20 factory pairs sorted by indexer volume. | | Indexer tests for relevance ordering | **PASS** | `cargo test --test api_pairs -- --test-threads=1` — 15/15 including `list_pairs_relevance_ordering`. | ### Verification criteria | Check | Result | Command / evidence | |-------|--------|-------------------| | `make test-frontend` | **PASS** | 840 tests, 139 files | | `make lint-frontend` | **PASS** | 0 errors (5 pre-existing warnings) | | Indexer `api_pairs` | **PASS** | 15/15 integration tests | | Manual QA matrix (≥6 pairs) | **PASS** | 50 pairs on LocalTerra; API matrix + Playwright limits combobox symbol search (`EMBER CORAL` selects first option) | | Lighthouse / a11y combobox | **PASS** | Playwright: `#trade-pair-select` / `#limit-pair` have `role="combobox"`, `aria-expanded`, portaled `role="listbox"`; keyboard handlers (Arrow/Enter/Escape) in `PairSearchSelect.tsx`; docs `frontend.md` § Pair search combobox invariants | ### Test plan extras | Case | Result | Notes | |------|--------|-------| | No results (`zzzzz`) | **PASS** | `/limits` with no pair selected → “No pairs match your search” | | Indexer down — open dropdown | **PASS** | Indexer stopped; opening combobox shows up to 20 factory pairs from local labels | | Indexer down — typed search | **FAIL** | Indexer stopped; type `EMBER` in `#limit-pair` → “No pairs match your search” (0 options). Expected per issue: degraded `filterPairsByLocalSearch` on cached factory labels. Empty-query fallback works; **non-empty query fallback does not**. Repro: stop indexer tmux session, `make dev`, open `/limits`, click pair combobox, type `EMBER`. | | Trade page no-results while pair selected | **N/A** | `/trade` auto-selects a pair; selected pair remains visible during non-matching search (by design in `PairSearchSelect` — prepends current selection). | ### Follow-up - **Fix degraded-mode typed search** when indexer errors (`PairSearchSelect.tsx` — `pairsQuery.isError` + non-empty `debouncedSearch` should populate `filterPairsByLocalSearch` results; currently returns empty after failed search query). - Optional: seed token **names** on LocalTerra QA deploy to exercise relevance tier 2 in manual matrix. Verification incomplete due to **FAIL** above — issue remains open.
PlasticDigits commented 2026-06-05 13:44:12 +00:00 (Migrated from gitlab.com)

mentioned in issue #328

mentioned in issue #328
PlasticDigits commented 2026-06-05 13:44:12 +00:00 (Migrated from gitlab.com)

marked as related to #328

marked as related to #328
ghost1 commented 2026-06-05 13:55:14 +00:00 (Migrated from gitlab.com)

mentioned in commit 9e7b280513

mentioned in commit 9e7b280513f48ff181cb53e4743c13a488da7b8d
PlasticDigits commented 2026-06-05 13:55:33 +00:00 (Migrated from gitlab.com)

mentioned in merge request !811

mentioned in merge request !811
PlasticDigits commented 2026-06-05 13:55:37 +00:00 (Migrated from gitlab.com)

Implementation follow-up (#314)

MR !811: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/93

Fixes verification FAIL: indexer stopped + typed pair search on Trade/Limits combobox.

Root cause

Degraded fallback only matched menu label substrings. Factory labels often use shortened contract addresses (symbols live in getTokenDisplaySymbol / registry, not always in the visible label). After the first indexer error, non-empty queries still hit the indexer path and returned empty options.

Fix

  • Latch indexerUnavailable after first getPairs failure; use filterFactoryPairsByLocalSearch (symbols, contracts, pair addr, XXX YYY queries).
  • Unit tests: PairSearchSelect.test.tsx, extended pairSearchQuery.test.ts.

Verification

Item Result
Degraded typed search PASS — PairSearchSelect.test.tsx
make test-frontend PASS — 859 tests
make lint-frontend PASS
Indexer api_pairs SKIP — no Postgres on agent VM
Manual LocalTerra matrix SKIP — post-merge

Issue remains open until MR merges and optional manual degraded search spot-check on LocalTerra.

## Implementation follow-up (#314) MR !811: https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/93 Fixes verification **FAIL**: indexer stopped + typed pair search on Trade/Limits combobox. ### Root cause Degraded fallback only matched menu label substrings. Factory labels often use shortened contract addresses (symbols live in `getTokenDisplaySymbol` / registry, not always in the visible label). After the first indexer error, non-empty queries still hit the indexer path and returned empty options. ### Fix - Latch `indexerUnavailable` after first `getPairs` failure; use `filterFactoryPairsByLocalSearch` (symbols, contracts, pair addr, `XXX YYY` queries). - Unit tests: `PairSearchSelect.test.tsx`, extended `pairSearchQuery.test.ts`. ### Verification | Item | Result | |------|--------| | Degraded typed search | **PASS** — `PairSearchSelect.test.tsx` | | `make test-frontend` | **PASS** — 859 tests | | `make lint-frontend` | **PASS** | | Indexer `api_pairs` | **SKIP** — no Postgres on agent VM | | Manual LocalTerra matrix | **SKIP** — post-merge | Issue remains open until MR merges and optional manual degraded search spot-check on LocalTerra.
ghost1 commented 2026-06-05 13:55:54 +00:00 (Migrated from gitlab.com)

mentioned in commit fd54fb6ce2

mentioned in commit fd54fb6ce27308d55471c0ac66e85f6f3b82eb01
PlasticDigits commented 2026-06-05 13:56:22 +00:00 (Migrated from gitlab.com)

mentioned in merge request !812

mentioned in merge request !812
PlasticDigits commented 2026-06-05 14:20:31 +00:00 (Migrated from gitlab.com)

mentioned in commit 2d1415913c

mentioned in commit 2d1415913c0c329ead664536469510d641f5fcc0
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-06-05 14:20:31 +00:00
PlasticDigits commented 2026-06-06 07:04:20 +00:00 (Migrated from gitlab.com)

mentioned in merge request !825

mentioned in merge request !825
PlasticDigits commented 2026-06-06 07:04:21 +00:00 (Migrated from gitlab.com)

mentioned in issue #301

mentioned in issue #301
PlasticDigits commented 2026-06-08 08:43:13 +00:00 (Migrated from gitlab.com)

mentioned in commit 2c1a08c30f

mentioned in commit 2c1a08c30fbc09567686bce97f66a3b1be55c3bd
PlasticDigits commented 2026-06-08 08:43:13 +00:00 (Migrated from gitlab.com)

mentioned in commit 938706dc65

mentioned in commit 938706dc65223df3ffbe44e59f397bb4092f712a
PlasticDigits commented 2026-06-08 13:42:27 +00:00 (Migrated from gitlab.com)

mentioned in commit 96be3ab6c5

mentioned in commit 96be3ab6c5fd37e60eecaaec69eb081593519fde
PlasticDigits commented 2026-06-08 13:42:28 +00:00 (Migrated from gitlab.com)

mentioned in commit e59f9800fe

mentioned in commit e59f9800fe810b3231c178b7df06844770246b55
PlasticDigits commented 2026-06-08 13:42:31 +00:00 (Migrated from gitlab.com)

mentioned in commit 995674b775

mentioned in commit 995674b7759a81f43f65bf660a8f5ef9223842aa
PlasticDigits commented 2026-06-08 13:42:32 +00:00 (Migrated from gitlab.com)

mentioned in commit 995674b775

mentioned in commit 995674b7759a81f43f65bf660a8f5ef9223842aa
PlasticDigits commented 2026-07-12 11:13:48 +00:00 (Migrated from gitlab.com)

mentioned in issue #481

mentioned in issue #481
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#314
No description provided.