ops: post-merge !474/!475 leftover verify (#694 #695) #698

Closed
opened 2026-08-28 11:07:53 +00:00 by PlasticDigits · 7 comments
PlasticDigits commented 2026-08-28 11:07:53 +00:00 (Migrated from gitlab.com)

Summary

!1193 (#694 API4 per-request caps) and !1192 (#695 production VITE_DEV_MODE reject) are on main. Local AC passed before merge (make verify-issue-694 5/5; make verify-issue-695 7/7 after Makefile help conflict resolution). Close this leftover when Coolify + audit-note + live Swap checks are done.

Do not reopen #694 / #695 unless a merged invariant is wrong (GitLab auto-closed them on merge).

No automerge. Do not wait on GitLab CI (quota is not a product signal).

Merged MRs

MR Issue What landed
!1193 #694 MAX_GT_EVENT_ROWS=5000 → 400 (no truncation); progress + blacklist-check on lcd_heavy_router; 12s GetDiscount cache; blacklist tokens≤16 / pairs≤8 fail-closed; frontend omit-trader + backoff; make verify-issue-694
!1192 #695 Production vite build --mode production rejects VITE_DEV_MODE=true (FE-01); local-only mnemonic escape does not bypass; LocalTerra/Vitest/Playwright keep the flag; make verify-issue-695

Conflict resolution on !1192: Makefile help kept main Cloud Agent / Frontend lists and added verify-issue-695.

Operator leftovers

Coolify indexer (#694)

Redeploy indexer from current main (includes !1193). No new migration for this stack.

# over-cap window should 400 (not a multi-MB JSON)
curl -sS -o /tmp/gt-events.json -w "%{http_code}\n" \
  "https://indexer.dex.cl8y.com/gt/events?fromBlock=H1&toBlock=H2"
# body: event count exceeds 5000 when combined swap+liq > 5000

# progress + trader must not 1:1 LCD GetDiscount (12s cache)
# blacklist oversize
curl -sS -o /dev/null -w "%{http_code}\n" \
  "https://indexer.dex.cl8y.com/api/v1/compliance/blacklist-check?tokens=$(python3 -c 'print(",".join(["terra1x"]*17))')"
# expect 400

Coolify frontend (#695)

Rebuild frontend from current main. Confirm Coolify production env has VITE_DEV_MODE unset. A mistaken true now fails vite build --mode production (desired fail-closed). Staging / LocalTerra may keep the flag.

Live Swap QA (#694 frontend)

  • Progress stays advisory while a slow quote runs.
  • Place / Swap still works.
  • After consecutive progress failures, poll backs off (no quote-math change).

Audit note

Close RE-01 / RE-02 / RE-03 / FE-01 in audits/INTERNAL_GROK46_1787908099.md after prod evidence. Do not treat in-repo verify as prod close.

Local verify (after git pull)

make setup-indexer-postgres   # if indexer/.env missing
make verify-issue-694
make verify-issue-695

Optional runtime proof: make test-frontend (not required to close if Coolify rebuild is green).

Guardrails

  • Do not reopen #694 / #695 for ops/QA.
  • Do not trust X-Forwarded-For / change prod RPS clamp.
  • Do not fail-open blacklist (oversize stays 400, not truncate).
  • Do not change CSP, WalletConnect, clickwrap, or the runtime devWallet.ts gate.
  • Do not commit scripts/tmp-558-* (#558 stays open).
  • Do not wait on GitLab CI quota.

Sanity notes from merge review (non-blocking)

  • GT over-cap tests live in api_gt.rs (not security.rs); verify harness covers them.
  • /gt/events COUNT-then-SELECT is not one transaction (theoretical over-cap race).
  • Trade page does not wire useRouteSolveProgress (Swap only).
  • scripts/qa/README.md has no #695 index row (optional hygiene).
## Summary [!1193](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/475) (#694 API4 per-request caps) and [!1192](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/merge_requests/474) (#695 production `VITE_DEV_MODE` reject) are on `main`. Local AC passed before merge (`make verify-issue-694` 5/5; `make verify-issue-695` 7/7 after Makefile help conflict resolution). **Close this leftover when Coolify + audit-note + live Swap checks are done.** Do **not** reopen [#694](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/694) / [#695](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/695) unless a merged invariant is wrong (GitLab auto-closed them on merge). No automerge. Do not wait on GitLab CI (quota is not a product signal). ## Merged MRs | MR | Issue | What landed | |----|-------|-------------| | !1193 | #694 | `MAX_GT_EVENT_ROWS=5000` → **400** (no truncation); progress + blacklist-check on `lcd_heavy_router`; 12s `GetDiscount` cache; blacklist tokens≤16 / pairs≤8 fail-closed; frontend omit-trader + backoff; `make verify-issue-694` | | !1192 | #695 | Production `vite build --mode production` rejects `VITE_DEV_MODE=true` (FE-01); local-only mnemonic escape does not bypass; LocalTerra/Vitest/Playwright keep the flag; `make verify-issue-695` | Conflict resolution on !1192: Makefile help kept main Cloud Agent / Frontend lists and added `verify-issue-695`. ## Operator leftovers ### Coolify indexer (#694) Redeploy indexer from current `main` (includes !1193). No new migration for this stack. ```bash # over-cap window should 400 (not a multi-MB JSON) curl -sS -o /tmp/gt-events.json -w "%{http_code}\n" \ "https://indexer.dex.cl8y.com/gt/events?fromBlock=H1&toBlock=H2" # body: event count exceeds 5000 when combined swap+liq > 5000 # progress + trader must not 1:1 LCD GetDiscount (12s cache) # blacklist oversize curl -sS -o /dev/null -w "%{http_code}\n" \ "https://indexer.dex.cl8y.com/api/v1/compliance/blacklist-check?tokens=$(python3 -c 'print(",".join(["terra1x"]*17))')" # expect 400 ``` ### Coolify frontend (#695) Rebuild frontend from current `main`. Confirm Coolify production env has **`VITE_DEV_MODE` unset**. A mistaken `true` now fails `vite build --mode production` (desired fail-closed). Staging / LocalTerra may keep the flag. ### Live Swap QA (#694 frontend) - Progress stays advisory while a slow quote runs. - Place / Swap still works. - After consecutive progress failures, poll backs off (no quote-math change). ### Audit note Close RE-01 / RE-02 / RE-03 / FE-01 in `audits/INTERNAL_GROK46_1787908099.md` after prod evidence. Do not treat in-repo verify as prod close. ## Local verify (after `git pull`) ```bash make setup-indexer-postgres # if indexer/.env missing make verify-issue-694 make verify-issue-695 ``` Optional runtime proof: `make test-frontend` (not required to close if Coolify rebuild is green). ## Guardrails - Do not reopen #694 / #695 for ops/QA. - Do not trust `X-Forwarded-For` / change prod RPS clamp. - Do not fail-open blacklist (oversize stays **400**, not truncate). - Do not change CSP, WalletConnect, clickwrap, or the runtime `devWallet.ts` gate. - Do not commit `scripts/tmp-558-*` (#558 stays open). - Do not wait on GitLab CI quota. ## Sanity notes from merge review (non-blocking) - GT over-cap tests live in `api_gt.rs` (not `security.rs`); verify harness covers them. - `/gt/events` COUNT-then-SELECT is not one transaction (theoretical over-cap race). - Trade page does not wire `useRouteSolveProgress` (Swap only). - `scripts/qa/README.md` has no #695 index row (optional hygiene).
PlasticDigits commented 2026-08-28 11:07:53 +00:00 (Migrated from gitlab.com)

marked as related to #694

marked as related to #694
PlasticDigits commented 2026-08-28 11:07:54 +00:00 (Migrated from gitlab.com)

marked as related to #695

marked as related to #695
PlasticDigits commented 2026-08-29 10:04:43 +00:00 (Migrated from gitlab.com)

mentioned in commit 5ca6fc5a47

mentioned in commit 5ca6fc5a47e78bb901e8a945e3cd445b84232482
PlasticDigits commented 2026-08-29 10:05:28 +00:00 (Migrated from gitlab.com)

Landed leftover harness on main (5ca6fc5a). Playbook: skills/AGENTS_POST_MERGE_OPS_698.md. Regression: make verify-issue-698 (aliases make verify-issue-699 / make verify-issue-700).

What ran

  • Children: make verify-issue-694 PASS, make verify-issue-695 PASS (after pinning loadConfigFromFile so LocalTerra .env.local VITE_DEV_MODE=true cannot re-inject into production-allow Vitest).
  • Coolify indexer: blacklist 17 tokens → 400; /gt/events 2000-block window bounded (~6 KiB, not multi-MB); GET /route/solve/progress JSON stage: idle.
  • Coolify frontend: dex.cl8y.com wallet/trade chunks have no Simulated Wallet / VITE_DEV_MODE=true.
  • Audit: RE-01 / RE-02 / RE-03 / FE-01 closed as Closed (prod leftover #698) in audits/INTERNAL_GROK46_1787908099.md.
  • LocalTerra leftover Playwright: e2e/swap.spec.ts 10/10 at 5 workers.

Did not reopen #694 / #695. Did not wait on GitLab CI. Did not change X-Forwarded-For, RPS clamp, blacklist fail-open, CSP, WalletConnect, clickwrap, or devWallet.ts.

Checklist to re-verify

  • make verify-issue-694 / make verify-issue-695
  • Coolify blacklist 17 → 400; /gt/events bounded; progress JSON
  • Production VITE_DEV_MODE unset in the live bundle (no Simulated Wallet chrome)
  • Audit notes closed after prod evidence
  • Local Swap smoke (Place / Swap still works on LocalTerra)
  • Coolify interactive Swap: progress stays advisory on a slow quote; consecutive progress failures back off (no prod wallet in this run)
  • Light-theme / visual walk (Playwright against dex.cl8y.com hit first-visit modal / incomplete paint at 1280)

Leaving open for the Coolify interactive Swap leftover. Close when that walk is recorded.

Landed leftover harness on `main` (`5ca6fc5a`). Playbook: `skills/AGENTS_POST_MERGE_OPS_698.md`. Regression: `make verify-issue-698` (aliases `make verify-issue-699` / `make verify-issue-700`). ## What ran - Children: `make verify-issue-694` PASS, `make verify-issue-695` PASS (after pinning `loadConfigFromFile` so LocalTerra `.env.local` `VITE_DEV_MODE=true` cannot re-inject into production-allow Vitest). - Coolify indexer: blacklist 17 tokens → **400**; `/gt/events` 2000-block window bounded (~6 KiB, not multi-MB); `GET /route/solve/progress` JSON `stage: idle`. - Coolify frontend: `dex.cl8y.com` wallet/trade chunks have **no** Simulated Wallet / `VITE_DEV_MODE=true`. - Audit: RE-01 / RE-02 / RE-03 / FE-01 closed as **Closed (prod leftover #698)** in `audits/INTERNAL_GROK46_1787908099.md`. - LocalTerra leftover Playwright: `e2e/swap.spec.ts` **10/10** at 5 workers. Did **not** reopen #694 / #695. Did not wait on GitLab CI. Did not change X-Forwarded-For, RPS clamp, blacklist fail-open, CSP, WalletConnect, clickwrap, or `devWallet.ts`. ## Checklist to re-verify - [x] `make verify-issue-694` / `make verify-issue-695` - [x] Coolify blacklist 17 → 400; `/gt/events` bounded; progress JSON - [x] Production `VITE_DEV_MODE` unset in the live bundle (no Simulated Wallet chrome) - [x] Audit notes closed after prod evidence - [x] Local Swap smoke (Place / Swap still works on LocalTerra) - [ ] Coolify interactive Swap: progress stays advisory on a slow quote; consecutive progress failures back off (no prod wallet in this run) - [ ] Light-theme `/` visual walk (Playwright against `dex.cl8y.com` hit first-visit modal / incomplete paint at 1280) Leaving **open** for the Coolify interactive Swap leftover. Close when that walk is recorded.
PlasticDigits commented 2026-08-29 10:05:55 +00:00 (Migrated from gitlab.com)

Landed leftover harness on main (5ca6fc5a). Playbook: skills/AGENTS_POST_MERGE_OPS_698.md. Regression: make verify-issue-698 (aliases make verify-issue-699 / make verify-issue-700).

What ran

  • Children: make verify-issue-694 PASS, make verify-issue-695 PASS (after pinning loadConfigFromFile so LocalTerra .env.local VITE_DEV_MODE=true cannot re-inject into production-allow Vitest).
  • Coolify indexer: blacklist 17 tokens → 400; /gt/events 2000-block window bounded (~6 KiB, not multi-MB); GET /route/solve/progress JSON stage: idle.
  • Coolify frontend: dex.cl8y.com wallet/trade chunks have no Simulated Wallet / VITE_DEV_MODE=true.
  • Audit: RE-01 / RE-02 / RE-03 / FE-01 closed as Closed (prod leftover #698) in audits/INTERNAL_GROK46_1787908099.md.
  • LocalTerra leftover Playwright: e2e/swap.spec.ts 10/10 at 5 workers.

Did not reopen #694 / #695. Did not wait on GitLab CI. Did not change X-Forwarded-For, RPS clamp, blacklist fail-open, CSP, WalletConnect, clickwrap, or devWallet.ts.

Checklist to re-verify

  • make verify-issue-694 / make verify-issue-695
  • Coolify blacklist 17 → 400; /gt/events bounded; progress JSON
  • Production VITE_DEV_MODE unset in the live bundle (no Simulated Wallet chrome)
  • Audit notes closed after prod evidence
  • Local Swap smoke (Place / Swap still works on LocalTerra)
  • Coolify interactive Swap: progress stays advisory on a slow quote; consecutive progress failures back off (no prod wallet in this run)
  • Light-theme / visual walk (Playwright against dex.cl8y.com hit first-visit modal / incomplete paint at 1280)

Leaving open for the Coolify interactive Swap leftover. Close when that walk is recorded.

Landed leftover harness on `main` (`5ca6fc5a`). Playbook: `skills/AGENTS_POST_MERGE_OPS_698.md`. Regression: `make verify-issue-698` (aliases `make verify-issue-699` / `make verify-issue-700`). ## What ran - Children: `make verify-issue-694` PASS, `make verify-issue-695` PASS (after pinning `loadConfigFromFile` so LocalTerra `.env.local` `VITE_DEV_MODE=true` cannot re-inject into production-allow Vitest). - Coolify indexer: blacklist 17 tokens → **400**; `/gt/events` 2000-block window bounded (~6 KiB, not multi-MB); `GET /route/solve/progress` JSON `stage: idle`. - Coolify frontend: `dex.cl8y.com` wallet/trade chunks have **no** Simulated Wallet / `VITE_DEV_MODE=true`. - Audit: RE-01 / RE-02 / RE-03 / FE-01 closed as **Closed (prod leftover #698)** in `audits/INTERNAL_GROK46_1787908099.md`. - LocalTerra leftover Playwright: `e2e/swap.spec.ts` **10/10** at 5 workers. Did **not** reopen #694 / #695. Did not wait on GitLab CI. Did not change X-Forwarded-For, RPS clamp, blacklist fail-open, CSP, WalletConnect, clickwrap, or `devWallet.ts`. ## Checklist to re-verify - [x] `make verify-issue-694` / `make verify-issue-695` - [x] Coolify blacklist 17 → 400; `/gt/events` bounded; progress JSON - [x] Production `VITE_DEV_MODE` unset in the live bundle (no Simulated Wallet chrome) - [x] Audit notes closed after prod evidence - [x] Local Swap smoke (Place / Swap still works on LocalTerra) - [ ] Coolify interactive Swap: progress stays advisory on a slow quote; consecutive progress failures back off (no prod wallet in this run) - [ ] Light-theme `/` visual walk (Playwright against `dex.cl8y.com` hit first-visit modal / incomplete paint at 1280) Leaving **open** for the Coolify interactive Swap leftover. Close when that walk is recorded.
PlasticDigits commented 2026-08-29 10:06:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #699

mentioned in issue #699
PlasticDigits commented 2026-08-29 10:09:17 +00:00 (Migrated from gitlab.com)

mentioned in issue #700

mentioned in issue #700
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-29 12:28:06 +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#698
No description provided.