You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Documentation is largely in sync with implementation. Nightly reconciliation found 1 minor issue β a stale file reference in the agent workflow prompt itself.
Problem: The reconciler agent prompt references internal/config/config.go as the canonical source for config struct definitions and validation logic. This file does not exist.
Actual Behavior: The internal/config/ package was refactored into multiple files:
Impact: Future reconciliation runs will fail to find the file when trying to read it, which may cause incomplete or inaccurate reports. Does not affect end users.
Suggested Fix:
Replace internal/config/config.go with internal/config/config_core.go (for core types) and internal/config/config_stdin.go (for JSON stdin types)
Replace internal/config/validation.go references with internal/config/validation_rules.go, validation_server.go, validation_gateway.go
Code Reference:internal/config/ directory
Accurate Sections β
All user-facing documentation verified correct via static analysis:
README.md Docker Quick Start β docker run command, port flags, volume mounts, and env var names all verified correct
README.md Configuration JSON β All fields (type, container, env, gateway.agentId) match StdinServerConfig and StdinGatewayConfig structs
README.md Gateway Configuration table β agent_id/agentId, api_key/apiKey (deprecated), port, payload_dir/payloadDir, trusted_bots/trustedBots all confirmed in GatewayConfig struct
README.md Tracing defaults β Default service name mcp-gateway and sample rate 1.0 match DefaultTracingServiceName and DefaultTracingSampleRate constants in config_tracing.go
CONTRIBUTING.md Go version β Go 1.25.0 or later matches go.mod (go 1.25.0) and Makefile (GO_VERSION=1.25.0)
CONTRIBUTING.md golangci-lint version β v2.8.0 matches GOLANGCI_LINT_VERSION=v2.8.0 in Makefile
CONTRIBUTING.md Make targets β All 17 documented targets (build, test, test-unit, test-integration, test-all, test-race, test-rust, test-serena, test-serena-gateway, test-container-proxy, lint, coverage, test-ci, format, clean, install, agent-finished) confirmed present in Makefile
CONTRIBUTING.md Binary name β awmg matches BINARY_NAME=awmg in Makefile
Environment variables β All env vars used in non-test code (MCP_GATEWAY_TOOL_TIMEOUT, MCP_GATEWAY_SESSION_TIMEOUT, MCP_GATEWAY_SHUTDOWN_TIMEOUT, MCP_GATEWAY_WASM_GUARDS_DIR, MCP_GATEWAY_ALLOWONLY_*, MCP_GATEWAY_API_KEY (deprecated), etc.) are documented in docs/ENVIRONMENT_VARIABLES.md
Variable expansion scope β CONTRIBUTING and config.example.toml correctly state \$\{VAR} expansion is supported in JSON stdin and TOML [gateway.opentelemetry] section only; not in TOML server args/env fields. Confirmed by expandTracingVariables() and ExpandRawJSONVariables() in internal/config/expand.go
Tested Commands
β make --dry-run build β matches go mod tidy && go build -o awmg .
β make --dry-run test β confirmed alias for test-unit
β make --dry-run test-unit β runs go test -v ./internal/...
β make --dry-run test-integration β auto-builds binary, runs go test -v ./test/integration/...
β make --dry-run test-all β builds first, then go test -v ./...
β make --dry-run lint β runs go vet, gofmt check, golangci-lint
β make --dry-run coverage β runs go test -coverprofile
β make --dry-run install β checks Go version, installs golangci-lint, downloads modules
Note:make build was not executed (network restrictions prevent module proxy access in reconciliation sandbox). All verification was performed via static code analysis.
Documentation is largely in sync with implementation. Nightly reconciliation found 1 minor issue β a stale file reference in the agent workflow prompt itself.
Minor Issues π΅
1. Agent Prompt References Non-Existent
config.goLocation:
.github/agentics/nightly-docs-reconciler.md, lines 27, 41, 46, 155, 260Problem: The reconciler agent prompt references
internal/config/config.goas the canonical source for config struct definitions and validation logic. This file does not exist.Actual Behavior: The
internal/config/package was refactored into multiple files:config_core.goβ CoreConfig,GatewayConfig,ServerConfigtypesconfig_stdin.goβ JSON stdin structs and conversionconfig_env.goβ Environment variable helpersconfig_feature.goβ Feature-specific configconfig_tracing.goβ Tracing configvalidation_server.go/validation_gateway.go/validation_rules.goβ Validation logicImpact: Future reconciliation runs will fail to find the file when trying to read it, which may cause incomplete or inaccurate reports. Does not affect end users.
Suggested Fix:
internal/config/config.gowithinternal/config/config_core.go(for core types) andinternal/config/config_stdin.go(for JSON stdin types)internal/config/validation.goreferences withinternal/config/validation_rules.go,validation_server.go,validation_gateway.goCode Reference:
internal/config/directoryAccurate Sections β
All user-facing documentation verified correct via static analysis:
docker runcommand, port flags, volume mounts, and env var names all verified correcttype,container,env,gateway.agentId) matchStdinServerConfigandStdinGatewayConfigstructsagent_id/agentId,api_key/apiKey(deprecated),port,payload_dir/payloadDir,trusted_bots/trustedBotsall confirmed inGatewayConfigstruct(127.0.0.1/redacted) matchesDefaultListenIPv4 = "127.0.0.1"andDefaultListenPort = "3000"ininternal/cmd/root.go`commandfield β Correctly statescommandis NOT supported in JSON stdin;StdinServerConfighas noCommandfield, onlyContainerGITHUB_MCP_SERVER_TOKENβGITHUB_TOKENβGITHUB_PERSONAL_ACCESS_TOKENβGH_TOKENmatchesLookupGitHubToken()ininternal/envutil/github.gomcp-gatewayand sample rate1.0matchDefaultTracingServiceNameandDefaultTracingSampleRateconstants inconfig_tracing.goGo 1.25.0 or latermatchesgo.mod(go 1.25.0) and Makefile (GO_VERSION=1.25.0)v2.8.0matchesGOLANGCI_LINT_VERSION=v2.8.0in Makefilebuild,test,test-unit,test-integration,test-all,test-race,test-rust,test-serena,test-serena-gateway,test-container-proxy,lint,coverage,test-ci,format,clean,install,agent-finished) confirmed present in MakefileawmgmatchesBINARY_NAME=awmgin MakefileMCP_GATEWAY_TOOL_TIMEOUT,MCP_GATEWAY_SESSION_TIMEOUT,MCP_GATEWAY_SHUTDOWN_TIMEOUT,MCP_GATEWAY_WASM_GUARDS_DIR,MCP_GATEWAY_ALLOWONLY_*,MCP_GATEWAY_API_KEY(deprecated), etc.) are documented indocs/ENVIRONMENT_VARIABLES.mdcommand = "docker"requirement,rate_limit_threshold/rate_limit_cooldownTOML-only fields confirmed inServerConfigstruct\$\{VAR}expansion is supported in JSON stdin and TOML[gateway.opentelemetry]section only; not in TOML serverargs/envfields. Confirmed byexpandTracingVariables()andExpandRawJSONVariables()ininternal/config/expand.goTested Commands
make --dry-run buildβ matchesgo mod tidy && go build -o awmg .make --dry-run testβ confirmed alias fortest-unitmake --dry-run test-unitβ runsgo test -v ./internal/...make --dry-run test-integrationβ auto-builds binary, runsgo test -v ./test/integration/...make --dry-run test-allβ builds first, thengo test -v ./...make --dry-run lintβ runsgo vet,gofmtcheck,golangci-lintmake --dry-run coverageβ runsgo test -coverprofilemake --dry-run installβ checks Go version, installs golangci-lint, downloads modulesCode References
internal/config/config_core.gointernal/config/config_stdin.gointernal/config/validation_server.go,validation_gateway.go,validation_rules.gointernal/cmd/flags_core.go,flags_logging.go,flags_difc.go,flags_tls.go,flags_serve.gointernal/envutil/github.gointernal/config/config_env.goWarning
Firewall blocked 2 domains
The following domains were blocked by the firewall during workflow execution:
awmgmcpgproxy.golang.orgSee Network Configuration for more information.