Skip to content

chore: unify config/ naming — test.yaml fixture + drop -dev from gateway/worker, add operator template#621

Merged
chrisli30 merged 8 commits into
stagingfrom
claude/eager-lamport-ew7yr6
Jun 23, 2026
Merged

chore: unify config/ naming — test.yaml fixture + drop -dev from gateway/worker, add operator template#621
chrisli30 merged 8 commits into
stagingfrom
claude/eager-lamport-ew7yr6

Conversation

@chrisli30

@chrisli30 chrisli30 commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

Makes config/ clear and internally consistent, without removing anything. Two commits:

1. Rename the test fixture to config/test.yaml

The test suite loaded its config via testutil.DefaultConfigPath, which pointed at config/gateway-dev.yaml — the same name as the gateway server config. That overloading made it unclear that running tests needs a config file at all (contributors on #620 hit testConfig is nil - gateway-dev.yaml config must be loaded with no obvious cause).

  • testutil.DefaultConfigPathtest.yaml; panic messages updated.
  • New config/test.example.yaml template.
  • .github/scripts/generate-test-config.sh now generates config/test.yaml.
  • Test files that loaded the fixture by name updated.
  • README gains a "Test configuration" section.

2. Unify the local-dev config naming (drop -dev, add operator template)

The three role configs were named inconsistently — gateway-dev.yaml and worker-<chain>-dev.yaml carried a -dev suffix, but operator-<chain>.yaml did not. Now all three local-dev configs share one scheme:

gateway.yaml
worker-<chain>.yaml
operator-<chain>.yaml

(Production counterparts stay <role>[-<chain>]-railway.yaml in avs-infra.)

  • Renamed gateway-dev.example.yamlgateway.example.yaml and worker-{sepolia,base-sepolia}-dev.example.yamlworker-*.example.yaml.
  • Added config/operator-sepolia.example.yaml so all three roles have an in-repo template (operator previously had none).
  • Renamed the gateway-dev make target → gateway; updated all --config paths in the Makefile, scripts, docs, and the integration test.
  • Rewrote config/README.md around the uniform <role>[-<chain>].yaml scheme.

Notes

  • No code behavior change — config file/target names and the test-fixture path only. go build ./... and go vet (incl. the integration tag) are clean.
  • All three components' local-dev configs are preserved; nothing was deleted.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU

@chrisli30 chrisli30 changed the title test: rename the Go test fixture config to config/test.yaml chore: focus config/ on local testing — rename test fixture to test.yaml, remove in-repo gateway/worker/operator run configs Jun 23, 2026
@chrisli30 chrisli30 force-pushed the claude/eager-lamport-ew7yr6 branch from e8a13a7 to 47a7d07 Compare June 23, 2026 04:37
@chrisli30 chrisli30 changed the title chore: focus config/ on local testing — rename test fixture to test.yaml, remove in-repo gateway/worker/operator run configs chore: unify config/ naming — test.yaml fixture + drop -dev from gateway/worker, add operator template Jun 23, 2026
The test suite loads its config via testutil.DefaultConfigPath, which
pointed at config/gateway-dev.yaml — the same name as the local gateway
*server* config. That overloading made it unclear that running tests
needs a config file at all (and that no gateway/operator process is
involved). Contributors hit "testConfig is nil - gateway-dev.yaml config
must be loaded" with no obvious cause.

Split the test fixture out under its own name:

- testutil.DefaultConfigPath -> test.yaml; panic messages updated.
- New config/test.example.yaml template (gitignore already keeps
  *.example.yaml and ignores config/*.yaml, so config/test.yaml needs no
  gitignore change).
- CI generate-test-config.sh now produces config/test.yaml from
  test.example.yaml.
- Test files that loaded the fixture by name updated to config/test.yaml.
- The gateway server config stays config/gateway-dev.yaml.

Docs: add a "Test configuration" section to README (two test tiers, the
copy step, and that simulation tests need no running server), refresh
config/README.md and the stale CLAUDE.md config reference.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU
…uide

The README had two '## Testing' sections covering the same ground. Merge
them into a single canonical section a contributor can follow end-to-end:
configure (config/test.yaml + OWNER_EOA from env/.env) → security notice →
run (standard + gotestfmt output). Drop the stale SEPOLIA_RPC/
SEPOLIA_BUNDLER_RPC env block, which belongs to the debug scripts
documented under 'Testing Bundler Connectivity', not the test suite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU
Centralize the local-testing instructions in the development guide so
contributors have a single source to follow. The full Testing section
(config/test.yaml fixture, OWNER_EOA, security notes, standard + gotestfmt
runs) now lives in docs/Development.md; the README keeps a short pointer.
Also drop a stray leftover '=======' merge marker and fix a ```base typo
during the move.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU
Follow through on the -dev naming drop: the helper script now matches
`make gateway` and config/gateway.yaml. Also drop -dev from the default
tmux session name and the tee'd log filenames (gateway.log, operator.log,
worker-*.log) for internal consistency. No external callers; *.log is
already gitignored blanket, so log renames are safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR standardizes configuration naming under config/ by introducing a dedicated Go test fixture (config/test.yaml) and aligning local-dev role config names to a uniform <role>[-<chain>].yaml scheme (dropping -dev). It updates scripts, Make targets, CI config generation, and documentation to reflect the new naming conventions.

Changes:

  • Switch the test suite’s default config fixture from config/gateway-dev.yaml to config/test.yaml, adding config/test.example.yaml and updating test references and docs.
  • Rename local-dev gateway/worker config naming to drop -dev (e.g., gateway.yaml, worker-<chain>.yaml) and add an in-repo operator template (config/operator-sepolia.example.yaml).
  • Update Makefile targets, helper scripts, CI setup action/script, and documentation to match the unified naming.

Reviewed changes

Copilot reviewed 22 out of 23 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/start-gateway.sh Updates tmux startup script to use new gateway/worker config names and log names.
README.md Replaces detailed testing/config text with a pointer to docs/Development.md#testing.
Makefile Renames gateway-dev target to gateway and updates config paths/log naming across dev targets.
integration_test/activation_deactivation_sync_test.go Updates integration test config path comment/reference (but currently still uses DefaultConfigPath).
docs/Development.md Updates local-dev instructions (gateway.yaml, make gateway) and adds a detailed “Testing” section describing config/test.yaml.
docs/ARCHITECTURE.md Updates documented local-dev gateway config name to gateway.yaml.
core/testutil/utils.go Changes testutil.DefaultConfigPath to test.yaml and updates related panic messages/comments.
core/taskengine/wallet_chain_id_test.go Updates comments referencing the old test fixture name.
core/taskengine/vm_runner_rest_sendgrid_integration_test.go Updates comments/error text to reference test.yaml fixture.
core/taskengine/userops_withdraw_test.go Updates fallback config path/skip messages to ../../config/test.yaml.
core/taskengine/userops_withdraw_all_test.go Updates fallback config path/skip messages to ../../config/test.yaml.
core/taskengine/token_metadata_engine_test.go Updates comments to reference test.yaml fixture.
core/taskengine/summarizer_format_integration_test.go Updates fixture lookup paths/messages from gateway-dev.yaml to test.yaml.
config/worker-sepolia.example.yaml Updates copy/edit instructions to new worker naming (worker-sepolia.yaml).
config/worker-base-sepolia.example.yaml Updates copy/edit instructions to new worker naming (worker-base-sepolia.yaml).
config/test.example.yaml Adds a dedicated checked-in template for the config/test.yaml Go test fixture.
config/README.md Rewrites config directory documentation around unified naming + test fixture.
config/operator-sepolia.example.yaml Adds a checked-in Sepolia operator config template.
config/gateway.example.yaml Updates copy/edit instructions and server_name to match gateway.yaml.
CLAUDE.md Updates referenced config files to config/gateway.yaml and config/test.yaml.
.gitignore Keeps ignoring all config/*.yaml but updates explanatory comments (one comment still references worker-*-dev.yaml).
.github/scripts/generate-test-config.sh Changes CI fixture generation to produce config/test.yaml from config/test.example.yaml.
.github/actions/setup-test-config/action.yml Updates action description/step name to reflect generating config/test.yaml.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 28 to 30
// Load aggregator config from YAML
aggCfgPath := testutil.GetConfigPath(testutil.DefaultConfigPath) // config/gateway-dev.yaml
aggCfgPath := testutil.GetConfigPath(testutil.DefaultConfigPath) // config/gateway.yaml
aggCfg, err := config.NewConfig(aggCfgPath)
claude added 2 commits June 23, 2026 06:08
…egration test

This integration test drives a real aggregator and historically loaded the
gateway server config via testutil.DefaultConfigPath (then gateway-dev.yaml).
Repointing DefaultConfigPath at the test fixture (test.yaml) silently
redirected it to the fixture instead of the gateway config. Load
config/gateway.yaml explicitly — mirroring the operator config load just
below — so the test keeps using the aggregator config, and fix the now-wrong
inline comment. Caught by Copilot review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU
Comment example still used the pre-rename worker-*-dev.yaml; align it with
the unified worker-*.yaml / operator-*.yaml naming. Noted in Copilot review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants