π€ *Repo Assist here β I'm an automated AI assistant for this repository.* ## Activity for May 2026 ## Suggested Actions for Maintainer **Comprehensive list** of all pending actions requiring maintainer attention. * [ ] **Review PR** (repo-assist/fix-issue-5733): `refactor(config): add envutil.HasEnvVar and hasMapKeyVariants helpers` β closes #5733 β [Review](https://github.com/github/gh-aw-mcpg/pulls) * [ ] **Check comment** #5799: Repo Assist verified `discussion_comment_write` missing from `WRITE_OPERATIONS` and `tool_rules.rs` β fix recommended β [View](https://github.com/github/gh-aw-mcpg/issues/5799) * [ ] **Check comment** #5666: Repo Assist verified wasm compilation cache race condition β fix recommended β [View](https://github.com/github/gh-aw-mcpg/issues/5666) * [ ] **Check comment** #5667: Repo Assist verified both heap-allocation improvements in rust-guard β [View](https://github.com/github/gh-aw-mcpg/issues/5667) * [ ] **Check comment** #5519: Repo Assist verified env var consistency fix is safe; LookupEnv presence checks must stay β [View](https://github.com/github/gh-aw-mcpg/issues/5519) * [ ] **Check comment** #5376: Repo Assist assessed semantic function clustering findings (ensureTracingConfig, rate-limit parsers, SessionSuffix, clientAddr) β [View](https://github.com/github/gh-aw-mcpg/issues/5376) * [ ] **Check comment** #5302: Repo Assist verified dead code and scope_token duplication analysis β [View](https://github.com/github/gh-aw-mcpg/issues/5302) * [ ] **Check comment** #5269: Repo Assist reviewed per-tool jq filter implementation approach β [View](https://github.com/github/gh-aw-mcpg/issues/5269) * [ ] **Check comment** #5144: Repo Assist reviewed semantic function clustering analysis β [View](https://github.com/github/gh-aw-mcpg/issues/5144) * [ ] **Check comment** #5071: Repo Assist confirmed session timeout duplication and recommended fix β [View](https://github.com/github/gh-aw-mcpg/issues/5071) * [ ] **Check comment** #5074: Repo Assist verified Cow/reference optimizations in Rust guard β [View](https://github.com/github/gh-aw-mcpg/issues/5074) * [ ] **Check comment** #4988: Repo Assist confirmed nonce eviction duplication finding β [View](https://github.com/github/gh-aw-mcpg/issues/4988) * [ ] **Check comment** #4990: Repo Assist verified all 4 semantic function clustering findings β [View](https://github.com/github/gh-aw-mcpg/issues/4990) * [ ] **Check comment** #4919: Repo Assist verified all 4 semantic function clustering findings β [View](https://github.com/github/gh-aw-mcpg/issues/4919) ## Future Work for Repo Assist - Fix `discussion_comment_write` gap: add to `WRITE_OPERATIONS` + `tool_rules.rs` (#5799) - Fix `ConfigureGlobalCompilationCache` race condition (#5666) β hold lock across read-and-set - Implement `Cow<'_, str>` for `policy_scope_token`/`normalize_scope` + `label_matches_normalized` predicate in `integrity_rank_normalized` (#5739 / #5074) - Move `ensureTracingConfig` from `cmd/root.go` β `cmd/tracing.go` (#5376 Finding 1) - Move `parseRateLimitResetFromText` to `httputil/github_http.go` (#5376 Finding 2 / #5032 Finding 3) - Implement #5270: per-tool jq response filters feature - Move `getSessionTimeout()` to `internal/config/config_env.go` (#5071) - Implement #4990 Finding 3: remove `writeErrorResponse` thin wrapper - Implement #5519: replace `os.Getenv` with `envutil.GetEnvString` and extract env-var name constants ## Guard Filtering Summary No objects were filtered by the guard policy. ## Run History ### 2026-05-16 12:59 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25962531933) - π·οΈ Labelled #5810, #5803, #5777 with `needs triage` - π¬ Commented on #5799: verified `discussion_comment_write` missing from WRITE_OPERATIONS and tool_rules.rs; both gaps confirmed; fix details provided ### 2026-05-15 13:15 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25919732186) - π·οΈ Labelled #5741, #5735, #5718 with `automation`, `needs triage` - π§ Created PR: `refactor(config): add envutil.HasEnvVar and hasMapKeyVariants helpers` β closes #5733 (adds HasEnvVar to envutil; replaces 4Γ os.LookupEnv with envutil.HasEnvVar; collapses 12-line dual-form key check into 2 lines via hasMapKeyVariants) ### 2026-05-14 13:15 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25861986905) - π·οΈ Labelled #5648, #5651, #5668 with `automation`, `needs triage` - π¬ Commented on #5666: verified `ConfigureGlobalCompilationCache` race condition; suggested atomic read-and-set fix - π¬ Commented on #5667: verified both heap-allocation improvements (Vec elimination in `check_file_secrecy`, Cow for `infer_scope_for_baseline`) ### 2026-05-12 13:18 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25736986830) - π§ Created PR: `refactor(rust-guard): extract find_org_in_items helper and simplify repo_id field loop` β closes #5527 (eliminates 12-line duplicated loop body; collapses 2 if-let blocks into a 5-line loop; adds 7 unit tests) - π¬ Commented on #5519: verified env var consistency fix is safe; `os.LookupEnv` presence checks on lines 235β238 should stay; `GetEnvString` equivalent for lines 243β245 ### 2026-05-11 13:35 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25673459949) - π§ Created PR: `perf(rust-guard): add ORDER_LOW_TO_HIGH_PIPED const and direct tests for parse_integrity/scope_string` β closes #5459 (eliminates runtime Vec/String allocation in error path; adds 3 new direct unit tests) ### 2026-05-10 12:59 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25629337591) - π§ Created PR: `refactor(middleware): extract runJqCode helper` β closes #5409 (eliminates ~25 lines of duplicate jq execution code between applyJqSchema and applyToolResponseFilter) - π¬ Commented on #5376: assessed all 4 semantic function clustering findings ### 2026-05-09 12:59 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25601707755) - π§ Created PR: `refactor(config): extract normalizeStringSlice helper` β closes #5357 (48 lines β single 20-line helper) - π¬ Commented on #5340: assessed all 4 semantic function clustering findings ### 2026-05-08 13:02 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25556970837) - π¬ Commented on #5302: verified dead code in `parse_scoped_entry` and `scope_token` duplication β both confirmed - π¬ Commented on #5269: reviewed per-tool jq filter implementation, noted pre-compile strategy and TOML mapping ### 2026-05-06 12:56 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25436543863) - π·οΈ Labelled #5190 with `enhancement`, `needs investigation` - π§ Created PR: `test(config): add tests for config_env.go gateway env var parsers` β 26 tests covering `GetGatewayPortFromEnv`, `GetGatewayDomainFromEnv`, `GetGatewayAPIKeyFromEnv`, `GetGatewayToolTimeoutFromEnv`, `toolTimeoutEnvOrDefault` (all previously untested) ### 2026-05-05 12:44 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25377009793) - π§ Created PR: `test(rust-guard): add unit tests for check_file_secrecy` β closes #5143 (12 new tests, all passing) - π¬ Commented on #5144: reviewed semantic function clustering analysis findings ### 2026-05-04 12:53 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25320023630) - π·οΈ Labelled #5009 with `needs triage` - π·οΈ Labelled #5036 with `needs triage` - π¬ Commented on #5071: confirmed session timeout duplication and recommended fix approach - π¬ Commented on #5074: verified Cow/reference optimization analysis in Rust guard ### 2026-05-03 12:35 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25279282660) - π§ Created PR: `refactor(strutil): move formatResetAt to strutil.FormatResetAt` β addresses #5032 Finding 4 - π§ Created PR: `perf(mcp): eliminate marshal/unmarshal round-trip in ConvertToCallToolResult` - π¬ Commented on #5032: implemented Finding 4, noted status of other findings ### 2026-05-02 12:35 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25251996928) - π§ Created PR: `test(launcher): add tests for clearServerForRestart and getServerConfig` - π¬ Commented on #4988: confirmed nonce eviction loop duplication finding - π¬ Commented on #4990: verified all 4 semantic function clustering findings ### 2026-05-01 12:38 UTC β [Run](https://github.com/github/gh-aw-mcpg/actions/runs/25214503729) - π§ Created PR #4928: `fix(config): add promotion-label and demotion-label fields to AllowOnlyPolicy` β closes #4920 (merged β ) - π¬ Commented on #4920: confirmed compliance regression and linked fix PR - π¬ Commented on #4919: verified all 4 semantic function clustering findings - π Closed April 2026 activity issue; created this May 2026 issue > Generated by [Repo Assist](https://github.com/github/gh-aw-mcpg/actions/runs/25962531933/agentic_workflow) > Generated by [Repo Assist](https://github.com/github/gh-aw-mcpg/actions/runs/25962531933/agentic_workflow) Β· β 1.3M Β· [β·](https://github.com/search?q=repo%3Agithub%2Fgh-aw-mcpg+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw-mcpg%2Frepo-assist%22&type=issues) > > To install this [agentic workflow](https://github.com/githubnext/agentics/blob/851905c06e905bf362a9f6cc54f912e3df747d55/workflows/repo-assist.md), run > ``` > gh aw add githubnext/agentics/workflows/repo-assist.md@851905c06e905bf362a9f6cc54f912e3df747d55 > ``` <!-- gh-aw-agentic-workflow: Repo Assist, engine: copilot, version: 1.0.40, model: claude-sonnet-4.6, id: 25962531933, workflow_id: repo-assist, run: https://github.com/github/gh-aw-mcpg/actions/runs/25962531933 -->
π€ Repo Assist here β I'm an automated AI assistant for this repository.
Activity for May 2026
Suggested Actions for Maintainer
Comprehensive list of all pending actions requiring maintainer attention.
refactor(config): add envutil.HasEnvVar and hasMapKeyVariants helpersβ closes [duplicate-code] Duplicate Code Pattern: Mixed env var access and dual-form key checks in guard_policy_parse.goΒ #5733 β Reviewdiscussion_comment_writemissing fromWRITE_OPERATIONSandtool_rules.rsβ fix recommended β Viewparse_scoped_entry+ eliminatescope_tokenduplicationΒ #5302: Repo Assist verified dead code and scope_token duplication analysis β ViewFuture Work for Repo Assist
discussion_comment_writegap: add toWRITE_OPERATIONS+tool_rules.rs([guard-coverage] Guard coverage gap: 1 write operation from github-mcp-server not classifiedΒ #5799)ConfigureGlobalCompilationCacherace condition ([go-fan] Go Module Review: wazeroΒ #5666) β hold lock across read-and-setCow<'_, str>forpolicy_scope_token/normalize_scope+label_matches_normalizedpredicate inintegrity_rank_normalized([rust-guard] Rust Guard: Eliminate String allocations inpolicy_scope_tokenandintegrity_rank_normalizedhot pathsΒ #5739 / [rust-guard] Rust Guard: Eliminate redundant Value clone in extract_mcp_response + PolicyScopeEntry clone in first_matching_scopeΒ #5074)ensureTracingConfigfromcmd/root.goβcmd/tracing.go([refactor] Semantic Function Clustering AnalysisΒ #5376 Finding 1)parseRateLimitResetFromTexttohttputil/github_http.go([refactor] Semantic Function Clustering AnalysisΒ #5376 Finding 2 / [refactor] Semantic Function Clustering Analysis: Refactoring OpportunitiesΒ #5032 Finding 3)getSessionTimeout()tointernal/config/config_env.go([duplicate-code] Duplicate Code Pattern: Session Timeout Env-Var LiteralΒ #5071)writeErrorResponsethin wrapperos.Getenvwithenvutil.GetEnvStringand extract env-var name constantsGuard Filtering Summary
No objects were filtered by the guard policy.
Run History
2026-05-16 12:59 UTC β Run
needs triagediscussion_comment_writemissing from WRITE_OPERATIONS and tool_rules.rs; both gaps confirmed; fix details provided2026-05-15 13:15 UTC β Run
automation,needs triagerefactor(config): add envutil.HasEnvVar and hasMapKeyVariants helpersβ closes [duplicate-code] Duplicate Code Pattern: Mixed env var access and dual-form key checks in guard_policy_parse.goΒ #5733 (adds HasEnvVar to envutil; replaces 4Γ os.LookupEnv with envutil.HasEnvVar; collapses 12-line dual-form key check into 2 lines via hasMapKeyVariants)2026-05-14 13:15 UTC β Run
automation,needs triageConfigureGlobalCompilationCacherace condition; suggested atomic read-and-set fixcheck_file_secrecy, Cow forinfer_scope_for_baseline)2026-05-12 13:18 UTC β Run
refactor(rust-guard): extract find_org_in_items helper and simplify repo_id field loopβ closes [rust-guard] Rust Guard: Deduplicate identical loop bodies inbackend.rsΒ #5527 (eliminates 12-line duplicated loop body; collapses 2 if-let blocks into a 5-line loop; adds 7 unit tests)os.LookupEnvpresence checks on lines 235β238 should stay;GetEnvStringequivalent for lines 243β2452026-05-11 13:35 UTC β Run
perf(rust-guard): add ORDER_LOW_TO_HIGH_PIPED const and direct tests for parse_integrity/scope_stringβ closes [rust-guard] Rust Guard: Add ORDER_LOW_TO_HIGH_PIPED const + direct tests for parse_integrity / scope_stringΒ #5459 (eliminates runtime Vec/String allocation in error path; adds 3 new direct unit tests)2026-05-10 12:59 UTC β Run
refactor(middleware): extract runJqCode helperβ closes [duplicate-code] Duplicate Code Pattern: jq Filter Execution Logic in jqschema.goΒ #5409 (eliminates ~25 lines of duplicate jq execution code between applyJqSchema and applyToolResponseFilter)2026-05-09 12:59 UTC β Run
refactor(config): extract normalizeStringSlice helperβ closes [duplicate-code] Duplicate Code Pattern: Repeated String Slice Validation & Normalization in guard_policy_validation.goΒ #5357 (48 lines β single 20-line helper)2026-05-08 13:02 UTC β Run
parse_scoped_entry+ eliminatescope_tokenduplicationΒ #5302: verified dead code inparse_scoped_entryandscope_tokenduplication β both confirmed2026-05-06 12:56 UTC β Run
enhancement,needs investigationtest(config): add tests for config_env.go gateway env var parsersβ 26 tests coveringGetGatewayPortFromEnv,GetGatewayDomainFromEnv,GetGatewayAPIKeyFromEnv,GetGatewayToolTimeoutFromEnv,toolTimeoutEnvOrDefault(all previously untested)2026-05-05 12:44 UTC β Run
test(rust-guard): add unit tests for check_file_secrecyβ closes [rust-guard] Rust Guard: Add tests forcheck_file_secrecy+ Arc-wrapPolicyContextΒ #5143 (12 new tests, all passing)2026-05-04 12:53 UTC β Run
needs triageneeds triage2026-05-03 12:35 UTC β Run
refactor(strutil): move formatResetAt to strutil.FormatResetAtβ addresses [refactor] Semantic Function Clustering Analysis: Refactoring OpportunitiesΒ #5032 Finding 4perf(mcp): eliminate marshal/unmarshal round-trip in ConvertToCallToolResult2026-05-02 12:35 UTC β Run
test(launcher): add tests for clearServerForRestart and getServerConfig2026-05-01 12:38 UTC β Run
fix(config): add promotion-label and demotion-label fields to AllowOnlyPolicyβ closes [compliance] Compliance Gap: Go config layer missingpromotion-label/demotion-labelfields added to Rust WASM guard (commit 662a784)Β #4920 (merged β )promotion-label/demotion-labelfields added to Rust WASM guard (commit 662a784)Β #4920: confirmed compliance regression and linked fix PR