QA: wire post-deploy smoke and broadcast recovery E2E #368

Closed
opened 2026-06-12 05:05:54 +00:00 by PlasticDigits · 15 comments
PlasticDigits commented 2026-06-12 05:05:54 +00:00 (Migrated from gitlab.com)

Parent

Gap analysis follow-up from GitLab #361 — bundled validation items H12 (broadcast recovery E2E) and M12 (post-deploy smoke automation).

Current codebase

Post-sign broadcast recovery (H12)

  • Implemented in #359: terraWalletSignTxRaw.ts, terraTxRecoveryPoll.ts, terraBroadcast.ts, terraMsgDeadline.ts.
  • Unit coverage: terraBroadcastRecovery.test.ts, terraBroadcastUi.test.ts.
  • Playbook: skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md.
  • No Playwright E2E covering Keplr vs Simulated Wallet parity for post-sign hung RPC / duplicate-submit guard.

Post-deploy smoke (M12)

  • Script exists: scripts/smoke-pool-swap.sh (LCD pool + optional hybrid_simulation pool-only).
  • Documented in docs/testing.md, docs/deployment-guide.md, docs/runbooks/launch-checklist.md.
  • #86 delivered the script (closed); not wired into scripts/qa/start-qa.sh after deploy.
  • Parent #361 rejected unified MR CI (C4) — scope is QA deploy hook, not GitLab pipeline gate.

Why needed

Wallet-specific edge cases (Keplr extension fee guards via patched cosmes vs Simulated Wallet) need ongoing E2E protection. Pool-only smoke after deploy catches LCD/schema regressions early on QA without full Playwright ladder.

Constraints / guardrails

  • E2E tx project uses 1 worker (shared dev account — #201).
  • Keplr available on Cloud Agent VMs (scripts/setup-browser-cloud-agent.sh); default CI smoke may stay Simulated Wallet — document Keplr manual/optional job.
  • Smoke script stays read-only by default; no mandatory on-chain tx in QA hook unless explicitly extended.
  • Do not add Firefox/WebKit (rejected in #361 triage).

Relevant files

  • frontend-dapp/src/services/terraclassic/terraBroadcast.ts
  • frontend-dapp/src/services/terraclassic/terraTxRecoveryPoll.ts
  • frontend-dapp/src/services/terraclassic/terraWalletSignTxRaw.ts
  • frontend-dapp/src/services/terraclassic/__tests__/terraBroadcastRecovery.test.ts
  • frontend-dapp/e2e/ (new or extended spec)
  • frontend-dapp/playwright.config.ts
  • scripts/smoke-pool-swap.sh
  • scripts/qa/start-qa.sh, scripts/qa/verify-deploy.sh
  • skills/AGENTS_E2E_STRICT_CHAIN.md
  • skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md
  1. E2E (H12): Add e2e/terra-broadcast-recovery.spec.ts (or extend swap spec) for Simulated Wallet post-sign RPC block → expect “Broadcast status unknown” / recovery phase, submit disabled until poll ends. Optional second job doc for Keplr extension with same assertions.
  2. Smoke hook (M12): After successful qa-verify-deploy in start-qa.sh, run smoke-pool-swap.sh with PAIR_ADDR / OFFER_TOKEN from frontend-dapp/.env.local (fail QA bring-up on non-zero exit).
  3. Add make smoke-pool-swap wrapper reading deploy env.
  4. Update scripts/qa/README.md and docs/testing.md.

Acceptance criteria

  • Playwright spec asserts post-sign recovery UX on at least Simulated Wallet swap path.
  • make start-qa runs smoke script after deploy verification (skippable via QA_SKIP_SMOKE=1 for edge cases).
  • Smoke uses deployed pair from env, not hardcoded testnet addresses.
  • Document Keplr parity manual steps or optional E2E flag.

Test plan

Path Command / action
Unit make test-frontend — broadcast recovery tests
E2E tx make setup-cloud-localterra && sg docker -c 'CI=1 make test-e2e-tx' (new spec)
Smoke PAIR_ADDR=... OFFER_TOKEN=... ./scripts/smoke-pool-swap.sh
QA integration make start-qa on QA host — smoke runs after verify

Attack / abuse test plan

  • Recovery poll must not double-broadcast same signed tx on user retry click during recovering phase.
  • Smoke script must not echo secrets; read-only LCD queries only in default mode.

Verification criteria

  • New E2E spec passes on LocalTerra with Simulated Wallet.
  • start-qa logs smoke success; failure blocks QA ready state.
  • QA_SKIP_SMOKE=1 make start-qa still works for indexer-only debugging.
## Parent Gap analysis follow-up from [GitLab #361](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/361) — bundled validation items **H12** (broadcast recovery E2E) and **M12** (post-deploy smoke automation). ## Current codebase ### Post-sign broadcast recovery (H12) - Implemented in [#359](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/work_items/359): `terraWalletSignTxRaw.ts`, `terraTxRecoveryPoll.ts`, `terraBroadcast.ts`, `terraMsgDeadline.ts`. - Unit coverage: `terraBroadcastRecovery.test.ts`, `terraBroadcastUi.test.ts`. - Playbook: `skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md`. - **No Playwright E2E** covering Keplr vs Simulated Wallet parity for post-sign hung RPC / duplicate-submit guard. ### Post-deploy smoke (M12) - Script exists: `scripts/smoke-pool-swap.sh` (LCD `pool` + optional `hybrid_simulation` pool-only). - Documented in `docs/testing.md`, `docs/deployment-guide.md`, `docs/runbooks/launch-checklist.md`. - [#86](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/86) delivered the script (closed); **not wired** into `scripts/qa/start-qa.sh` after deploy. - Parent #361 **rejected** unified MR CI (C4) — scope is QA deploy hook, not GitLab pipeline gate. ## Why needed Wallet-specific edge cases (Keplr extension fee guards via patched cosmes vs Simulated Wallet) need ongoing E2E protection. Pool-only smoke after deploy catches LCD/schema regressions early on QA without full Playwright ladder. ## Constraints / guardrails - E2E tx project uses **1 worker** (shared dev account — [#201](https://gitlab.com/PlasticDigits/cl8y-dex-terraclassic/-/issues/201)). - Keplr available on Cloud Agent VMs (`scripts/setup-browser-cloud-agent.sh`); default CI smoke may stay Simulated Wallet — document Keplr manual/optional job. - Smoke script stays read-only by default; no mandatory on-chain tx in QA hook unless explicitly extended. - Do not add Firefox/WebKit (rejected in #361 triage). ## Relevant files - `frontend-dapp/src/services/terraclassic/terraBroadcast.ts` - `frontend-dapp/src/services/terraclassic/terraTxRecoveryPoll.ts` - `frontend-dapp/src/services/terraclassic/terraWalletSignTxRaw.ts` - `frontend-dapp/src/services/terraclassic/__tests__/terraBroadcastRecovery.test.ts` - `frontend-dapp/e2e/` (new or extended spec) - `frontend-dapp/playwright.config.ts` - `scripts/smoke-pool-swap.sh` - `scripts/qa/start-qa.sh`, `scripts/qa/verify-deploy.sh` - `skills/AGENTS_E2E_STRICT_CHAIN.md` - `skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md` ## Recommended direction 1. **E2E (H12)**: Add `e2e/terra-broadcast-recovery.spec.ts` (or extend swap spec) for Simulated Wallet post-sign RPC block → expect “Broadcast status unknown” / recovery phase, submit disabled until poll ends. Optional second job doc for Keplr extension with same assertions. 2. **Smoke hook (M12)**: After successful `qa-verify-deploy` in `start-qa.sh`, run `smoke-pool-swap.sh` with `PAIR_ADDR` / `OFFER_TOKEN` from `frontend-dapp/.env.local` (fail QA bring-up on non-zero exit). 3. Add `make smoke-pool-swap` wrapper reading deploy env. 4. Update `scripts/qa/README.md` and `docs/testing.md`. ## Acceptance criteria - [ ] Playwright spec asserts post-sign recovery UX on at least Simulated Wallet swap path. - [ ] `make start-qa` runs smoke script after deploy verification (skippable via `QA_SKIP_SMOKE=1` for edge cases). - [ ] Smoke uses deployed pair from env, not hardcoded testnet addresses. - [ ] Document Keplr parity manual steps or optional E2E flag. ## Test plan | Path | Command / action | |------|------------------| | Unit | `make test-frontend` — broadcast recovery tests | | E2E tx | `make setup-cloud-localterra && sg docker -c 'CI=1 make test-e2e-tx'` (new spec) | | Smoke | `PAIR_ADDR=... OFFER_TOKEN=... ./scripts/smoke-pool-swap.sh` | | QA integration | `make start-qa` on QA host — smoke runs after verify | ## Attack / abuse test plan - Recovery poll must not double-broadcast same signed tx on user retry click during `recovering` phase. - Smoke script must not echo secrets; read-only LCD queries only in default mode. ## Verification criteria - New E2E spec passes on LocalTerra with Simulated Wallet. - `start-qa` logs smoke success; failure blocks QA ready state. - `QA_SKIP_SMOKE=1 make start-qa` still works for indexer-only debugging.
PlasticDigits commented 2026-06-12 05:06:04 +00:00 (Migrated from gitlab.com)

mentioned in issue #361

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

mentioned in commit ab877df57f

mentioned in commit ab877df57f5b9cc0ab46171e2392cbf8be3e9840
PlasticDigits commented 2026-06-12 05:46:15 +00:00 (Migrated from gitlab.com)

mentioned in merge request !877

mentioned in merge request !877
ghost1 commented 2026-06-12 05:50:06 +00:00 (Migrated from gitlab.com)

mentioned in commit 517f66daa2

mentioned in commit 517f66daa24f7d49a3686db8cce8b9ad62e0c1fc
ghost1 commented 2026-06-12 05:53:35 +00:00 (Migrated from gitlab.com)

mentioned in commit b626593457

mentioned in commit b6265934579f8761af39041f27109accbdc88f5b
Brouie commented 2026-06-12 06:27:17 +00:00 (Migrated from gitlab.com)

Verified !877 at the source + script layer here (VPS). The #368-specific deliverables are good; there's a merge-hygiene blocker from the branch being stale.

Acceptance criteria — all met:

  • AC1 (E2E recovery): e2e/terra-broadcast-recovery.spec.ts on the Simulated Wallet path asserts the "Broadcast status unknown..." button visible + DISABLED, the terra-broadcast-recovery-status text, and the pending tx resolving — matches the recovery UX. Good.
  • AC2 (smoke hook): start-qa.sh runs smoke-pool-swap after qa-verify-deploy, set -euo pipefail so a non-zero smoke fails the bring-up, and QA_SKIP_SMOKE=1 skips it. make smoke-pool-swap wrapper added.
  • AC3 (env-driven pair): scripts/lib/smoke-deploy-env.sh resolves PAIR_ADDR from .env / qa-host.env / .qa-deploy-stamp (pair_address) / e2e-trade-pair-from-deploy, hard-errors if unresolvable — not hardcoded. RAN it live against the current deploy: read pool reserves, "OK: smoke-pool-swap read-only checks passed", exit 0.
  • AC4 (Keplr parity): AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md documents the manual Keplr steps + optional E2E_KEPLR_BROADCAST_RECOVERY=1 flag (not in default CI). Good.

Merge blocker — !877 needs a rebase before it lands:

  • The branch predates the #359 merge (!867, cd17813) and does NOT contain my !870 tsc fix.
  • It bundles its own EARLIER copies of the #359 impl (terraWalletSignTxRaw.ts is a divergent 51-line version vs main's merged one; terraMsgDeadline.ts / terraTxRecoveryPoll.ts / terraBroadcast.ts likewise). main is 9 commits ahead of the branch and both sides modified these files.
  • Merging as-is conflicts on those files, and if !877's older versions win the merge it reverts the merged #359 evolution + re-breaks tsc (undoing !870).

Suggested: rebase !877 onto current main, drop/reconcile the redundant #359 impl files (already on main via !867), keep only the #368 additions — E2E spec, smoke hook, smoke-deploy-env.sh, make wrapper, docs. After the rebase the build + e2e re-verify and it's clean to merge.

@PlasticDigits flagging the rebase since it touches the just-merged #359 + my open !870.

Verified !877 at the source + script layer here (VPS). The #368-specific deliverables are good; there's a merge-hygiene blocker from the branch being stale. Acceptance criteria — all met: - AC1 (E2E recovery): e2e/terra-broadcast-recovery.spec.ts on the Simulated Wallet path asserts the "Broadcast status unknown..." button visible + DISABLED, the terra-broadcast-recovery-status text, and the pending tx resolving — matches the recovery UX. Good. - AC2 (smoke hook): start-qa.sh runs smoke-pool-swap after qa-verify-deploy, set -euo pipefail so a non-zero smoke fails the bring-up, and QA_SKIP_SMOKE=1 skips it. make smoke-pool-swap wrapper added. - AC3 (env-driven pair): scripts/lib/smoke-deploy-env.sh resolves PAIR_ADDR from .env / qa-host.env / .qa-deploy-stamp (pair_address) / e2e-trade-pair-from-deploy, hard-errors if unresolvable — not hardcoded. RAN it live against the current deploy: read pool reserves, "OK: smoke-pool-swap read-only checks passed", exit 0. - AC4 (Keplr parity): AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md documents the manual Keplr steps + optional E2E_KEPLR_BROADCAST_RECOVERY=1 flag (not in default CI). Good. Merge blocker — !877 needs a rebase before it lands: - The branch predates the #359 merge (!867, cd17813) and does NOT contain my !870 tsc fix. - It bundles its own EARLIER copies of the #359 impl (terraWalletSignTxRaw.ts is a divergent 51-line version vs main's merged one; terraMsgDeadline.ts / terraTxRecoveryPoll.ts / terraBroadcast.ts likewise). main is 9 commits ahead of the branch and both sides modified these files. - Merging as-is conflicts on those files, and if !877's older versions win the merge it reverts the merged #359 evolution + re-breaks tsc (undoing !870). Suggested: rebase !877 onto current main, drop/reconcile the redundant #359 impl files (already on main via !867), keep only the #368 additions — E2E spec, smoke hook, smoke-deploy-env.sh, make wrapper, docs. After the rebase the build + e2e re-verify and it's clean to merge. @PlasticDigits flagging the rebase since it touches the just-merged #359 + my open !870.
PlasticDigits commented 2026-06-12 08:32:51 +00:00 (Migrated from gitlab.com)

mentioned in commit c02f103081

mentioned in commit c02f103081663affe9adfefa9e4f1c153a164f3f
ghost1 commented 2026-06-12 08:36:28 +00:00 (Migrated from gitlab.com)

mentioned in commit 03904029f1

mentioned in commit 03904029f165f8c27941f859a8bb535f5fd8cf4c
PlasticDigits commented 2026-06-12 11:05:06 +00:00 (Migrated from gitlab.com)

mentioned in commit 1f36acb5ad

mentioned in commit 1f36acb5ad484330d17bd945adb58ea761975eb0
PlasticDigits commented 2026-06-12 11:16:53 +00:00 (Migrated from gitlab.com)

mentioned in commit 337f6becc2

mentioned in commit 337f6becc2afb9c8a1e94a2cdceb8b1bed1215f8
PlasticDigits commented 2026-06-12 11:39:24 +00:00 (Migrated from gitlab.com)

mentioned in commit 8c641d165c

mentioned in commit 8c641d165c1ef6ad8380a18a7b28d2bb33297cdf
ghost1 commented 2026-06-12 12:44:31 +00:00 (Migrated from gitlab.com)

mentioned in commit 75c9478f77

mentioned in commit 75c9478f774e822e4122fbd8dd1f31e186a9a922
PlasticDigits commented 2026-06-13 03:05:14 +00:00 (Migrated from gitlab.com)

Verification — #368 (post-merge on main @ 83ae372)

Verified deliverables from !877 on current main after git pull. No repo changes required from this verification pass.

Acceptance criteria

Criterion Result How verified
Playwright spec asserts post-sign recovery UX (Simulated Wallet swap) PASS CI=1 bash scripts/with-node.sh --cwd frontend-dapp -- ./node_modules/.bin/playwright test --project=e2e-tx terra-broadcast-recovery.spec.ts — 1 passed (~1.1m). Asserts terra-broadcast-recovery-status contains "broadcast status unknown", submit button Checking broadcast… disabled during hung broadcast_tx_sync, pending tx resolves.
make start-qa runs smoke after deploy verification PASS scripts/qa/start-qa.sh lines 118–124: smoke phase after qa-verify-deploy, set -euo pipefail fails bring-up on non-zero smoke exit.
QA_SKIP_SMOKE=1 skips smoke PASS Conditional emits [start-qa] QA_SKIP_SMOKE=1 — skipping post-deploy smoke-pool-swap when set.
Smoke uses deployed pair from env PASS make smoke-pool-swap after make setup-cloud-localterra --fresh --skip-build — pair terra146yp… from .qa-deploy-stamp via scripts/lib/smoke-deploy-env.sh; OK: smoke-pool-swap read-only checks passed.
Keplr parity documented PASS skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md § Post-sign broadcast recovery — manual Keplr steps + optional E2E_KEPLR_BROADCAST_RECOVERY=1 (not default CI).

Test plan

Path Result Command / output
Unit (broadcast recovery) PASS make test-frontend — 161 files / 970 tests passed (includes terraBroadcastRecovery.test.ts, terraBroadcastUi.test.ts).
E2E tx (new spec) PASS See AC1 above (LocalTerra fresh deploy + bash scripts/e2e-start-indexer.sh).
Smoke script PASS make smoke-pool-swap — pool query + hybrid_simulation pool-only; exit 0.
QA integration (smoke hook) PASS Code wiring verified in start-qa.sh; full make start-qa end-to-end not re-run on this VM (deploy already up; smoke path exercised via make smoke-pool-swap).

Attack / abuse checks

Check Result Notes
Recovery poll must not double-broadcast on retry during recovering PASS Unit tests poll via pollTxUntilRecoveryDeadline after single broadcastTx attempt; E2E keeps submit disabled until resolution. terraBroadcast.test.ts asserts broadcastTx called once.
Smoke must not echo secrets; read-only LCD by default PASS scripts/smoke-pool-swap.sh — no mnemonic/secret patterns; outputs pool JSON + simulation only.

Environment notes

  • LocalTerra provision: initial make setup-cloud-localterra failed on stale treasury funding; ./scripts/setup-cloud-agent-localterra.sh --fresh --skip-build succeeded.
  • Indexer built (cd indexer && cargo build --release) before bash scripts/e2e-start-indexer.sh.

Closing as verified on main.

## Verification — #368 (post-merge on `main` @ 83ae372) Verified deliverables from !877 on current `main` after `git pull`. No repo changes required from this verification pass. ### Acceptance criteria | Criterion | Result | How verified | |-----------|--------|--------------| | Playwright spec asserts post-sign recovery UX (Simulated Wallet swap) | **PASS** | `CI=1 bash scripts/with-node.sh --cwd frontend-dapp -- ./node_modules/.bin/playwright test --project=e2e-tx terra-broadcast-recovery.spec.ts` — 1 passed (~1.1m). Asserts `terra-broadcast-recovery-status` contains "broadcast status unknown", submit button **Checking broadcast…** disabled during hung `broadcast_tx_sync`, pending tx resolves. | | `make start-qa` runs smoke after deploy verification | **PASS** | `scripts/qa/start-qa.sh` lines 118–124: smoke phase after `qa-verify-deploy`, `set -euo pipefail` fails bring-up on non-zero smoke exit. | | `QA_SKIP_SMOKE=1` skips smoke | **PASS** | Conditional emits `[start-qa] QA_SKIP_SMOKE=1 — skipping post-deploy smoke-pool-swap` when set. | | Smoke uses deployed pair from env | **PASS** | `make smoke-pool-swap` after `make setup-cloud-localterra --fresh --skip-build` — pair `terra146yp…` from `.qa-deploy-stamp` via `scripts/lib/smoke-deploy-env.sh`; `OK: smoke-pool-swap read-only checks passed.` | | Keplr parity documented | **PASS** | `skills/AGENTS_FRONTEND_TX_BROADCAST_TIMEOUT.md` § Post-sign broadcast recovery — manual Keplr steps + optional `E2E_KEPLR_BROADCAST_RECOVERY=1` (not default CI). | ### Test plan | Path | Result | Command / output | |------|--------|------------------| | Unit (broadcast recovery) | **PASS** | `make test-frontend` — 161 files / 970 tests passed (includes `terraBroadcastRecovery.test.ts`, `terraBroadcastUi.test.ts`). | | E2E tx (new spec) | **PASS** | See AC1 above (LocalTerra fresh deploy + `bash scripts/e2e-start-indexer.sh`). | | Smoke script | **PASS** | `make smoke-pool-swap` — pool query + hybrid_simulation pool-only; exit 0. | | QA integration (smoke hook) | **PASS** | Code wiring verified in `start-qa.sh`; full `make start-qa` end-to-end not re-run on this VM (deploy already up; smoke path exercised via `make smoke-pool-swap`). | ### Attack / abuse checks | Check | Result | Notes | |-------|--------|-------| | Recovery poll must not double-broadcast on retry during `recovering` | **PASS** | Unit tests poll via `pollTxUntilRecoveryDeadline` after single `broadcastTx` attempt; E2E keeps submit disabled until resolution. `terraBroadcast.test.ts` asserts `broadcastTx` called once. | | Smoke must not echo secrets; read-only LCD by default | **PASS** | `scripts/smoke-pool-swap.sh` — no mnemonic/secret patterns; outputs pool JSON + simulation only. | ### Environment notes - LocalTerra provision: initial `make setup-cloud-localterra` failed on stale treasury funding; **`./scripts/setup-cloud-agent-localterra.sh --fresh --skip-build`** succeeded. - Indexer built `(cd indexer && cargo build --release)` before `bash scripts/e2e-start-indexer.sh`. Closing as verified on `main`.
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-06-13 03:05:15 +00:00
Brouie commented 2026-06-13 03:07:44 +00:00 (Migrated from gitlab.com)

Follow-up to my earlier note: the merge-hygiene blocker I flagged on !877 is resolved. The branch had main merged into it before landing, so my tsc fix (317ad1c) is still in the ancestry, tsc -b is clean, and the merged #359 broadcast-recovery files weren't reverted. The merge also brought further hardening (duplicate-swap guard, mempool-already-in-cache recovery), which lines up with the "no double-broadcast on retry" abuse item.

ACs on the source/script + smoke layer:

  • E2E spec present: e2e/terra-broadcast-recovery.spec.ts (asserts the Simulated Wallet post-sign recovery UX).
  • start-qa runs smoke after verify-deploy with set -euo pipefail (non-zero smoke fails bring-up), QA_SKIP_SMOKE=1 escape, and a make smoke-pool-swap wrapper.
  • Smoke uses the deployed pair from env: smoke-deploy-env.sh resolves PAIR_ADDR/OFFER_TOKEN (no hardcoded addresses). Ran it against the current deploy — read pool reserves + HybridSimulation pool-only, "smoke-pool-swap read-only checks passed", exit 0.
  • Keplr parity documented with the optional E2E flag (not in default CI).

Left for the browser pass: actually executing the Playwright recovery spec on the harness, and the manual Keplr extension parity run.

Good to close from my side on the smoke + source/script scope. @PlasticDigits

Follow-up to my earlier note: the merge-hygiene blocker I flagged on !877 is resolved. The branch had main merged into it before landing, so my tsc fix (317ad1c) is still in the ancestry, tsc -b is clean, and the merged #359 broadcast-recovery files weren't reverted. The merge also brought further hardening (duplicate-swap guard, mempool-already-in-cache recovery), which lines up with the "no double-broadcast on retry" abuse item. ACs on the source/script + smoke layer: - E2E spec present: e2e/terra-broadcast-recovery.spec.ts (asserts the Simulated Wallet post-sign recovery UX). - start-qa runs smoke after verify-deploy with set -euo pipefail (non-zero smoke fails bring-up), QA_SKIP_SMOKE=1 escape, and a make smoke-pool-swap wrapper. - Smoke uses the deployed pair from env: smoke-deploy-env.sh resolves PAIR_ADDR/OFFER_TOKEN (no hardcoded addresses). Ran it against the current deploy — read pool reserves + HybridSimulation pool-only, "smoke-pool-swap read-only checks passed", exit 0. - Keplr parity documented with the optional E2E flag (not in default CI). Left for the browser pass: actually executing the Playwright recovery spec on the harness, and the manual Keplr extension parity run. Good to close from my side on the smoke + source/script scope. @PlasticDigits
Brouie commented 2026-06-28 22:58:22 +00:00 (Migrated from gitlab.com)

mentioned in issue #337

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