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
1. GH_AW_OTLP_ENDPOINTS is missing from user-facing documentation
Location:README.md (Tracing section, ~line 79) and docs/ENVIRONMENT_VARIABLES.md (OpenTelemetry/Tracing Variables section, ends at line 138) Problem: The GH_AW_OTLP_ENDPOINTS environment variable is fully implemented but absent from both README.md and docs/ENVIRONMENT_VARIABLES.md. The only documentation is in AGENTS.md (the internal agent instruction file), which is not user-facing. Actual Behavior:GH_AW_OTLP_ENDPOINTS enables multi-backend OTLP fan-out tracing. It supports two formats:
JSON array with per-endpoint headers: [{"url":"(otel1.example.com/redacted)","headers":"Authorization=Bearer token"}]
When set, spans are exported to ALL listed endpoints (partial-failure tolerant). Takes precedence over OTEL_EXPORTER_OTLP_ENDPOINT. Shared headers from OTEL_EXPORTER_OTLP_HEADERS / config apply to comma-separated entries. Impact: Users who need multi-backend tracing (e.g., sending traces to both an internal observability stack and an external platform) cannot discover this feature. Suggested Fix:
Add GH_AW_OTLP_ENDPOINTS to the Tracing table in README.md under the existing OTel variables.
Add GH_AW_OTLP_ENDPOINTS to docs/ENVIRONMENT_VARIABLES.md in the "OpenTelemetry / Tracing Variables" section. Code Reference:internal/tracing/config_resolver.go:149 (resolveExtraEndpoints), internal/tracing/provider.go (fan-out exporter)
Suggested README.md row to add:
| `GH_AW_OTLP_ENDPOINTS` | Comma-separated OTLP URLs (or JSON array with per-endpoint `headers`) for multi-backend fan-out; all listed endpoints receive every span. Takes precedence over `OTEL_EXPORTER_OTLP_ENDPOINT`. |
Minor Issues 🔵
2. internal/sanitize/ package missing from CONTRIBUTING.md project structure
Location:CONTRIBUTING.md, project structure tree (line ~281) and "Key Directories" section (line ~306) Problem: The internal/sanitize/ package exists in the codebase and is actively used (imported by internal/envutil/github.go for URL and token redaction in logs), but it is not listed in either the project structure diagram or the Key Directories descriptions. Actual Behavior: The package provides SanitizeString(), SanitizeJSON(), TruncateSecret(), and TruncateSecretMap() for redacting sensitive information (API keys, tokens, passwords) from log output. Impact: New contributors are unaware of the sanitize utilities and may implement duplicate redaction logic or accidentally log secrets. Suggested Fix: Add sanitize/ to the project tree and Key Directories in CONTRIBUTING.md:
In the project structure tree, add:
│ ├── sanitize/ # Sensitive data redaction utilities for logging
In the Key Directories section, add:
- **`internal/sanitize/`** - Sensitive data redaction utilities (SanitizeString, SanitizeJSON, TruncateSecret) for safe log output
Summary
Found 2 discrepancies between documentation and implementation during nightly reconciliation check.
Important Issues 🟡
1.
GH_AW_OTLP_ENDPOINTSis missing from user-facing documentationLocation:
README.md(Tracing section, ~line 79) anddocs/ENVIRONMENT_VARIABLES.md(OpenTelemetry/Tracing Variables section, ends at line 138)Problem: The
GH_AW_OTLP_ENDPOINTSenvironment variable is fully implemented but absent from bothREADME.mdanddocs/ENVIRONMENT_VARIABLES.md. The only documentation is inAGENTS.md(the internal agent instruction file), which is not user-facing.Actual Behavior:
GH_AW_OTLP_ENDPOINTSenables multi-backend OTLP fan-out tracing. It supports two formats:"(otel1.example.com/redacted),(otel2.example.com/redacted)"[{"url":"(otel1.example.com/redacted)","headers":"Authorization=Bearer token"}]When set, spans are exported to ALL listed endpoints (partial-failure tolerant). Takes precedence over
OTEL_EXPORTER_OTLP_ENDPOINT. Shared headers fromOTEL_EXPORTER_OTLP_HEADERS/ config apply to comma-separated entries.Impact: Users who need multi-backend tracing (e.g., sending traces to both an internal observability stack and an external platform) cannot discover this feature.
Suggested Fix:
GH_AW_OTLP_ENDPOINTSto the Tracing table inREADME.mdunder the existing OTel variables.GH_AW_OTLP_ENDPOINTStodocs/ENVIRONMENT_VARIABLES.mdin the "OpenTelemetry / Tracing Variables" section.Code Reference:
internal/tracing/config_resolver.go:149(resolveExtraEndpoints),internal/tracing/provider.go(fan-out exporter)Suggested README.md row to add:
Minor Issues 🔵
2.
internal/sanitize/package missing from CONTRIBUTING.md project structureLocation:
CONTRIBUTING.md, project structure tree (line ~281) and "Key Directories" section (line ~306)Problem: The
internal/sanitize/package exists in the codebase and is actively used (imported byinternal/envutil/github.gofor URL and token redaction in logs), but it is not listed in either the project structure diagram or the Key Directories descriptions.Actual Behavior: The package provides
SanitizeString(),SanitizeJSON(),TruncateSecret(), andTruncateSecretMap()for redacting sensitive information (API keys, tokens, passwords) from log output.Impact: New contributors are unaware of the sanitize utilities and may implement duplicate redaction logic or accidentally log secrets.
Suggested Fix: Add
sanitize/to the project tree and Key Directories inCONTRIBUTING.md:In the project structure tree, add:
In the Key Directories section, add:
Code Reference:
internal/sanitize/sanitize.go,internal/envutil/github.go:10(import)Documentation Completeness
Missing Documentation
GH_AW_OTLP_ENDPOINTSis implemented but not documented in user-facing docsinternal/sanitize/package exists but is absent from CONTRIBUTING.md project structureAccurate Sections ✅
mcpServers,gateway.agentId,type,container,envfields all verified againstinternal/config/config_stdin.gorun_containerized.shandflags_core.gogo.modline 3build,test,test-unit,test-integration,test-all,lint,coverage,install,format,clean) verified againstMakefile127.0.0.1:3000) — verified ininternal/cmd/root.go(DefaultListenIPv4 = "127.0.0.1",DefaultListenPort = "3000")GITHUB_MCP_SERVER_TOKEN→GITHUB_TOKEN→GITHUB_PERSONAL_ACCESS_TOKEN→GH_TOKEN) — verified ininternal/envutil/github.go:29GET /healthendpoint — implemented ininternal/server/health.gowith documented JSON shapeGET /reflectendpoint — implemented ininternal/server/handlers.gorun.shdefault port 8000 and routed mode — verified inrun.sh(PORT="${MCP_GATEWAY_PORT:-${PORT:-8000}}",MODE="${MODE:---routed}")--config-stdinauto-added byrun_containerized.sh— verified inrun_containerized.sh:344agent_id,tool_timeout,startup_timeout,keepalive_interval) — verified ininternal/config/config_core.goagentId,toolTimeout,payloadDir,trustedBots) — verified ininternal/config/config_stdin.gocommandnot supported in JSON stdin format — verified;StdinServerConfighas noCommandfield (internal/config/config_stdin.go:109)ENVIRONMENT_VARIABLES.mdverified against codeTested Commands
make build— target exists and is correctly described; blocked only by network restrictions in nightly environmentmake test/make test-unit— aliases verified in Makefile; correctly described as no-build-requiredmake test-integration— verified auto-builds binary when absentmake test-all— verified runsbuilddependency firstmake lint— verified runsgo vet,gofmt,golangci-lintmake coverage— verified producescoverage.outmake install— verified installs golangci-lint and downloads Go modulesmake clean— verified removesawmg,coverage.out,test-result-unit.jsonmake format— verified runsgofmt -w .Recommendations
Immediate Actions:
GH_AW_OTLP_ENDPOINTSto theREADME.mdTracing table and todocs/ENVIRONMENT_VARIABLES.mdinternal/sanitize/to CONTRIBUTING.md project structure tree and Key Directories listNice to Have:
GH_AW_OTLP_ENDPOINTS(currently underdocumented even in AGENTS.md)Code References
internal/tracing/config_resolver.gointernal/sanitize/sanitize.gointernal/envutil/github.gointernal/cmd/flags_core.go,flags_logging.go,flags_tls.go,tracing.gointernal/config/config_core.gointernal/config/config_stdin.goWarning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
proxy.golang.orgSee Network Configuration for more information.