| name | warp-deploy-nexus |
| description | Add a new warp route to the Nexus UI whitelist. Checks out the nexus branch of hyperlane-warp-ui-template, adds the warp route ID to warpRouteWhitelist.ts, and opens a PR targeting the nexus branch. |
Warp Deploy — Nexus Whitelist
You are adding a warp route to the Nexus UI whitelist.
Input
The user provides:
- One or more warp route IDs (e.g.
SOL/igra) and/or Linear ticket URL(s)
If Linear ticket URL(s) are provided, fetch each ticket to extract the warp route ID. If neither is provided, ask for them now.
When multiple routes are provided, add all of them in a single PR (Steps 3–5 cover all routes at once).
Step 1: Confirm the warp route ID(s)
Show the user the warp route IDs you'll add, then end your message with this marker (this MUST be the very last thing in your message):
[CONFIRM: Add warp route IDs <ids> to Nexus whitelist]
Note: [CONFIRM: ...] is a Haggis-specific harness primitive — Haggis renders it as an inline approve/reject button. In other Claude Code contexts it is just text.
Step 2: Prepare the branch
The hyperlane-warp-ui-template repo is at the same level as hyperlane-monorepo:
REPO_PATH="$(pwd)/../hyperlane-warp-ui-template"
- Ensure the repo is clean and up to date on the
nexus branch:
cd "$REPO_PATH"
git fetch origin
git checkout nexus
git pull origin nexus
- Create a new branch from
nexus. For a single route use feat/<warp-route-id-slugified> (lowercase, / → -). For multiple routes use a descriptive slug like feat/add-<token>-igra-routes:
git checkout -b feat/<slug>
Step 3: Add to whitelist
The whitelist file is at:
$REPO_PATH/src/consts/warpRouteWhitelist.ts
Read the file and add the warp route ID to the warpRouteWhitelist array. Insert it in alphabetical order by token symbol, then by chain string. Preserve existing formatting (single quotes, trailing comma on each entry).
Example — adding SOL/igra to an existing list:
export const warpRouteWhitelist: Array<string> | null = [
'SOL/igra',
'USDC/mainnet-cctp-v2-fast',
];
Step 3b: Verify the edit compiles
Before committing, run the repo's TypeScript type-check to catch any syntax slip (trailing comma, mis-quoted string, etc.) that would ship a broken Nexus build:
cd "$REPO_PATH"
pnpm typecheck
(The typecheck script is defined in package.json as tsc.)
If pnpm typecheck reports any error from src/consts/warpRouteWhitelist.ts, stop — surface the error, do not commit. The most common cause is a stray comma or a non-string array entry; re-read the file, fix, and re-run until clean.
Step 4: Commit and push
cd "$REPO_PATH"
git add src/consts/warpRouteWhitelist.ts
git commit -m "feat: add <WARP_ROUTE_ID(s)> to Nexus whitelist"
git push origin <branch-name>
For multiple routes, list them all in the commit message: feat: add USDS, WETH, USDT igra routes to Nexus whitelist.
Step 5: Open a PR
Target branch is nexus (not main).
For a single route:
gh pr create \
--base nexus \
--title "feat: add <WARP_ROUTE_ID> to Nexus whitelist" \
--body "$(cat <<'EOF'
Adds `<WARP_ROUTE_ID>` to the Nexus UI warp route whitelist.
| Field | Value |
| ----- | ----- |
| **Linear** | [<TICKET_ID>](<LINEAR_URL>) |
| **Warp route** | `<WARP_ROUTE_ID>` |
EOF
)"
For multiple routes, list each route ID in the body. Combine all Linear ticket links in one row (comma-separated):
gh pr create \
--base nexus \
--title "feat: add <token> igra warp routes to Nexus whitelist" \
--body "$(cat <<'EOF'
Adds the following warp routes to the Nexus UI whitelist:
| Field | Value |
| ----- | ----- |
| **Linear** | [<TICKET_ID_1>](<LINEAR_URL_1>) · [<TICKET_ID_2>](<LINEAR_URL_2>) · [<TICKET_ID_3>](<LINEAR_URL_3>) |
- `<WARP_ROUTE_ID_1>`
- `<WARP_ROUTE_ID_2>`
- `<WARP_ROUTE_ID_3>`
EOF
)"
Show the user the PR URL when done.