chore: unify config/ naming — test.yaml fixture + drop -dev from gateway/worker, add operator template#621
Merged
Merged
Conversation
e8a13a7 to
47a7d07
Compare
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
Contributor
There was a problem hiding this comment.
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.yamltoconfig/test.yaml, addingconfig/test.example.yamland 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) |
…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
This was referenced Jun 23, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes
config/clear and internally consistent, without removing anything. Two commits:1. Rename the test fixture to
config/test.yamlThe test suite loaded its config via
testutil.DefaultConfigPath, which pointed atconfig/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 hittestConfig is nil - gateway-dev.yaml config must be loadedwith no obvious cause).testutil.DefaultConfigPath→test.yaml; panic messages updated.config/test.example.yamltemplate..github/scripts/generate-test-config.shnow generatesconfig/test.yaml.2. Unify the local-dev config naming (drop
-dev, add operator template)The three role configs were named inconsistently —
gateway-dev.yamlandworker-<chain>-dev.yamlcarried a-devsuffix, butoperator-<chain>.yamldid not. Now all three local-dev configs share one scheme:(Production counterparts stay
<role>[-<chain>]-railway.yamlinavs-infra.)gateway-dev.example.yaml→gateway.example.yamlandworker-{sepolia,base-sepolia}-dev.example.yaml→worker-*.example.yaml.config/operator-sepolia.example.yamlso all three roles have an in-repo template (operator previously had none).gateway-devmake target →gateway; updated all--configpaths in the Makefile, scripts, docs, and the integration test.config/README.mdaround the uniform<role>[-<chain>].yamlscheme.Notes
go build ./...andgo vet(incl. theintegrationtag) are clean.🤖 Generated with Claude Code
https://claude.ai/code/session_01QWr2N3kZQZ1miN66TNPwqU