Skip to content

refactor(infra): remove kathy and tidy monorepo docker workflow#7893

Merged
paulbalaji merged 7 commits intomainfrom
pbio/monorepo-workflow-tidy
Jan 29, 2026
Merged

refactor(infra): remove kathy and tidy monorepo docker workflow#7893
paulbalaji merged 7 commits intomainfrom
pbio/monorepo-workflow-tidy

Conversation

@paulbalaji
Copy link
Collaborator

@paulbalaji paulbalaji commented Jan 26, 2026

Summary

Removes Kathy k8s deployment infrastructure and the helloworld production service. Tidies up the monorepo Docker workflow.

Changes

Monorepo Docker Workflow

  • Removed PR commenting (noisy, replaced with job summary)
  • Removed GitHub App token generation step
  • Removed pull-requests: write permission
  • Added workflow summary showing image tags

Kathy K8s Removal

  • Deleted helm/helloworld-kathy/ helm chart
  • Deleted KathyHelmManager class and deploy-kathy.ts script
  • Removed kathy docker tags from docker.ts

Helloworld Production Service Removal

  • Deleted scripts/helloworld/kathy.ts and utils.ts
  • Deleted config/environments/*/helloworld.ts configs
  • Deleted config/environments/*/helloworld/ address/verification JSONs
  • Deleted config/kathy.json addresses
  • Deleted src/config/helloworld/types.ts
  • Removed Role.Kathy and kathy funding configs
  • Removed @hyperlane-xyz/helloworld dependency from infra
  • Removed HelloWorld deployer/checker from deploy/check scripts
  • Removed Modules.HELLO_WORLD from agent-utils

What's Kept (Rust E2E)

  • scripts/send-test-messages.ts - Rust e2e uses this via pnpm kathy

Context

Kathy was a production service that sent test messages between chains. It was deployed to k8s but is no longer used. The Rust e2e tests use a separate script (send-test-messages.ts) that doesn't depend on any of the removed helloworld infrastructure.

checkWarpDeploy is now the only remaining user of the monorepo Docker image in k8s deployments.

Test plan

  • pnpm -C typescript/infra build passes
  • TypeScript type check passes
  • Rust e2e can still run via pnpm kathy (uses send-test-messages.ts)

Stacked on: #7721

Summary by CodeRabbit

  • Removals

    • Removed HelloWorld test configs, static deployment data, deployment scripts, and related utilities.
    • Removed the Kathy agent, Helm chart, Kathy-specific configuration, keys, funding settings, and the Kathy role from public surfaces.
  • Chores

    • Simplified Docker CI: narrowed triggers to Docker-relevant changes, removed PR-comment steps, added runtime auth/registry login, environment variable initialization, platform selection, and streamlined build/push summary.

✏️ Tip: You can customize this high-level summary in your review settings.

@github-project-automation github-project-automation bot moved this to In Review in Hyperlane Tasks Jan 26, 2026
@paulbalaji paulbalaji marked this pull request as draft January 26, 2026 13:41
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from ce02f85 to b22b03b Compare January 26, 2026 14:10
@paulbalaji paulbalaji marked this pull request as ready for review January 27, 2026 15:23
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from b22b03b to 47a3e31 Compare January 27, 2026 15:34
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch from 491ee77 to 45ed7c4 Compare January 27, 2026 15:34
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from 47a3e31 to f31af2e Compare January 27, 2026 15:39
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch from 45ed7c4 to 1de7f87 Compare January 27, 2026 15:39
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from f31af2e to d10289c Compare January 27, 2026 15:45
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch 3 times, most recently from 8408efc to 5f12aae Compare January 27, 2026 16:05
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from d10289c to 5874d63 Compare January 27, 2026 16:05
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch from 5f12aae to f65320b Compare January 27, 2026 16:07
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch 3 times, most recently from a4da1a1 to 43dbfcd Compare January 27, 2026 16:12
@paulbalaji paulbalaji requested a review from tkporter January 27, 2026 16:14
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch from f65320b to 992f37b Compare January 27, 2026 16:22
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch 2 times, most recently from 455037a to e3c1e15 Compare January 27, 2026 16:28
@paulbalaji paulbalaji force-pushed the pbio/keyfunder-infra-migration branch from 542cd49 to 6d88f89 Compare January 28, 2026 16:05
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from e3c1e15 to 9d49a21 Compare January 28, 2026 16:08
@paulbalaji paulbalaji requested review from ltyu and xeno097 January 28, 2026 17:59
@paulbalaji
Copy link
Collaborator Author

will deal with conflicts once #7721 is merged

Base automatically changed from pbio/keyfunder-infra-migration to main January 28, 2026 18:40
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from 085649d to 29862e4 Compare January 28, 2026 18:42
@paulbalaji paulbalaji changed the title refactor(infra): remove kathy k8s deployment and tidy monorepo docker workflow refactor(infra): remove kathy and tidy monorepo docker workflow Jan 28, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

📝 Walkthrough

Walkthrough

This PR removes the Kathy agent and HelloWorld subsystem: deletes Kathy role, configs, Helm chart, deployment scripts, HelloWorld types/utilities, JSON data, adjusts funding/role logic, and narrows the monorepo Docker workflow triggers and steps.

Changes

Cohort / File(s) Summary
CI/CD & Docker Workflow
.github/workflows/monorepo-docker.yml
Narrowed Docker workflow triggers; removed GitHub App token & PR-commenting; added Depot CLI/GCR auth, registry/foundry version reads, platform input, and depot build/push steps.
Docker tags config
typescript/infra/config/docker.ts
Removed kathy: string from BaseDockerTags; deleted Kathy entries in mainnet/testnet tag objects; checkWarpDeploy set to 'main'.
HelloWorld env configs (deleted)
typescript/infra/config/environments/...
Removed HelloWorld config exports and mappings for mainnet3/testnet4 and top-level environments.
HelloWorld JSON data (deleted)
typescript/infra/config/environments/*/helloworld/*
Removed address and verification JSON files across mainnet3 and testnet4 (hyperlane and rc).
Environment indexes
typescript/infra/config/environments/mainnet3/index.ts, typescript/infra/config/environments/testnet4/index.ts
Removed helloWorld import/property from exported environment objects.
Agent configs
typescript/infra/config/environments/mainnet3/agent.ts, .../testnet4/agent.ts
Removed HelloWorld references and metric contexts; dropped Role.Kathy from ReleaseCandidate rolesWithKeys.
Funding configs & types
typescript/infra/config/environments/*/funding.ts, typescript/infra/src/config/funding.ts
Removed Kathy from contextsAndRolesToFund; deleted desiredKathyBalancePerChain from KeyFunderConfig and environment funding.
Helm chart - helloworld-kathy (deleted)
typescript/infra/helm/helloworld-kathy/...
Entire Helm chart removed: Chart.yaml, _helpers.tpl, templates (pod/statefulset/external-secret), and values.yaml.
HelloWorld scripts & utils (deleted)
typescript/infra/scripts/helloworld/*
Deleted Kathy deploy script, Kathy agent loop, and HelloWorld utilities (app builders/getters).
Agent & deploy scripts
typescript/infra/scripts/agent-utils.ts, typescript/infra/scripts/check/check-utils.ts, typescript/infra/scripts/deploy.ts
Removed HELLO_WORLD module enum and HelloWorld branches (checker, deployer).
Roles & key management
typescript/infra/src/roles.ts, typescript/infra/src/agents/key-utils.ts, typescript/infra/src/funding/key-funder.ts, typescript/infra/src/utils/utils.ts, typescript/infra/src/utils/rpcUrls.ts
Removed Role.Kathy, Kathy key/address helpers, Kathy persistence, Kathy handling in cronjob selection, and narrowed assertFundableRole to exclude Kathy.
Type definitions & environment surface
typescript/infra/src/config/environment.ts, typescript/infra/src/config/helloworld/types.ts
Removed HelloWorldConfig from EnvironmentConfig; deleted HelloWorld Kathy/run types and HelloWorldConfig type definitions.
Package & deps
typescript/infra/package.json, typescript/infra/config/kathy.json
Removed @hyperlane-xyz/helloworld dependency and deploy-helloworld script; deleted kathy.json.
Docs & tests
typescript/keyfunder/README.md, typescript/keyfunder/src/config/types.test.ts
Updated docs and tests to remove or replace hyperlane-kathy references with hyperlane-rebalancer.
Misc tests/comments
typescript/infra/scripts/agents/deploy-agents.ts, typescript/infra/src/agents/keys.ts
Minor comment/JSDoc cleanup removing Kathy examples.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • ltyu
  • Mo-Hussain
  • antigremlin
  • tkporter

Poem

A marsh of files once full o' fuss and fray,
Kathy packs her charts and quietly slips away.
HelloWorld folds, configs trimmed neat,
The repo breathes easy — fewer bits to sweep.
Code walks on, simpler, with a softer sway.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.14% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the PR's main objective: removing Kathy infrastructure and tidying the Docker workflow.
Description check ✅ Passed The description thoroughly covers all key changes, provides context, and includes a test plan. It goes well beyond template requirements.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pbio/monorepo-workflow-tidy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.github/workflows/monorepo-docker.yml:
- Around line 9-15: The workflow's PR path filter omits build-input files so
changes to .registryrc and solidity/.foundryrc won't trigger the Docker build;
update the paths list in the monorepo-docker.yml workflow by adding
'.registryrc' and 'solidity/.foundryrc' alongside the existing entries (e.g.,
the list that currently contains 'Dockerfile', 'docker-entrypoint.sh',
'.dockerignore', '.github/workflows/monorepo-docker.yml', 'pnpm-lock.yaml') so
PRs touching those files will run the workflow.
🧹 Nitpick comments (2)
typescript/infra/src/agents/key-utils.ts (1)

503-503: Type the relayer variable to avoid implicit any.

let relayer; falls back to any, which dodges type safety. A simple annotation keeps it honest and matches the rest of the infra typing discipline.

♻️ Suggested tweak
-  let relayer;
+  let relayer: Address | undefined;
.github/workflows/monorepo-docker.yml (1)

76-78: Pin Depot action to a commit SHA for supply-chain safety.

Using a floating tag like @v1 can drift. Pinning to a specific commit keeps builds deterministic and safer.

🔐 Safer pinning pattern
-      - name: Set up Depot CLI
-        uses: depot/setup-action@v1
+      - name: Set up Depot CLI
+        uses: depot/setup-action@<COMMIT_SHA>

@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from bcd5793 to b73ca41 Compare January 29, 2026 11:37
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@typescript/infra/src/agents/key-utils.ts`:
- Around line 502-505: The variable relayer is declared without a type causing a
noImplicitAny error; update its declaration to include an explicit type (for
example: let relayer: Relayer | undefined; or if a concrete Relayer type doesn't
exist yet use let relayer: unknown | undefined and narrow it later) so the
compiler knows its type when used in the loop that iterates over keys; ensure
you import or define the Relayer type if you choose the former and adjust
subsequent code to handle the possibly undefined value.

paulbalaji and others added 7 commits January 29, 2026 14:28
… workflow

- Remove PR commenting from monorepo-docker workflow, add job summary instead
- Reduce PR triggers to only essential paths (Dockerfile, pnpm-lock.yaml, workflow file)
- Delete helm/helloworld-kathy/ helm chart (k8s deployment dead)
- Delete KathyHelmManager and deploy-kathy script
- Remove kathy docker tags from docker.ts
- Remove docker config from helloworld kathy configs (keep e2e test config)
- Remove KathyHelmManager usage from rpcUrls.ts

Kathy k8s deployment infrastructure is no longer used. Only e2e test code remains.
checkWarpDeploy is now the only k8s user of the monorepo image.
- Remove PR commenting step from monorepo-docker workflow (job summary only)
- Add key-funder and ts-relayer to docker-image-comment emoji mapping

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove helloworld/kathy production service infrastructure that was
previously deployed to k8s. Rust e2e tests continue to work via
`pnpm kathy` which runs send-test-messages.ts (not the removed
production kathy.ts).

Removed:
- scripts/helloworld/ - production kathy service
- config/environments/*/helloworld.ts - helloworld configs
- config/environments/*/helloworld/ - verification JSONs
- config/kathy.json - kathy wallet addresses
- src/config/helloworld/types.ts - HelloWorldConfig types
- Role.Kathy and related funding configs
- HelloWorld deployer and checker from deploy/check scripts
- @hyperlane-xyz/helloworld dependency from infra

Kept:
- scripts/send-test-messages.ts - used by Rust e2e via `pnpm kathy`

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@paulbalaji paulbalaji force-pushed the pbio/monorepo-workflow-tidy branch from ea828ed to 7d2f9b9 Compare January 29, 2026 14:28
@hyper-gonk
Copy link
Contributor

hyper-gonk bot commented Jan 29, 2026

⚙️ Node Service Docker Images Built Successfully

Service Tag
🔑 key-funder 7d2f9b9-20260129-142913
🔍 offchain-lookup-server 7d2f9b9-20260129-142913
♻️ rebalancer 7d2f9b9-20260129-142913
🚀 ts-relayer 7d2f9b9-20260129-142913
🕵️ warp-monitor 7d2f9b9-20260129-142913
Full image paths
gcr.io/abacus-labs-dev/hyperlane-key-funder:7d2f9b9-20260129-142913
gcr.io/abacus-labs-dev/hyperlane-offchain-lookup-server:7d2f9b9-20260129-142913
gcr.io/abacus-labs-dev/hyperlane-rebalancer:7d2f9b9-20260129-142913
gcr.io/abacus-labs-dev/hyperlane-ts-relayer:7d2f9b9-20260129-142913
gcr.io/abacus-labs-dev/hyperlane-warp-monitor:7d2f9b9-20260129-142913

@paulbalaji paulbalaji added this pull request to the merge queue Jan 29, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 29, 2026
@paulbalaji paulbalaji added this pull request to the merge queue Jan 29, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 29, 2026
@paulbalaji paulbalaji added this pull request to the merge queue Jan 29, 2026
Merged via the queue into main with commit 3f0a5bb Jan 29, 2026
112 checks passed
@paulbalaji paulbalaji deleted the pbio/monorepo-workflow-tidy branch January 29, 2026 19:32
@github-project-automation github-project-automation bot moved this from In Review to Done in Hyperlane Tasks Jan 29, 2026
@codecov
Copy link

codecov bot commented Jan 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.02%. Comparing base (eaaf2af) to head (7d2f9b9).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7893   +/-   ##
=======================================
  Coverage   77.02%   77.02%           
=======================================
  Files         117      117           
  Lines        2651     2651           
  Branches      244      244           
=======================================
  Hits         2042     2042           
  Misses        593      593           
  Partials       16       16           
Components Coverage Δ
core 87.80% <ø> (ø)
hooks 71.86% <ø> (ø)
isms 81.10% <ø> (ø)
token 86.67% <ø> (ø)
middlewares 84.98% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants