Render runtime features only when configured; move output behind details disclosure#41358
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
| " if [[ \"$GH_AW_RUNTIME_FEATURES_IS_SET\" != \"true\" ]]; then\n", | ||
| " echo \"_Not set_\"\n", | ||
| " elif [[ -n \"$GH_AW_RUNTIME_FEATURES\" ]]; then\n", | ||
| " if [[ \"$GH_AW_RUNTIME_FEATURES_IS_SET\" == \"true\" && -n \"$GH_AW_RUNTIME_FEATURES\" ]]; then\n", |
There was a problem hiding this comment.
@copilot refactor this script into a shell script in actions/setup/sh
There was a problem hiding this comment.
Done in 6e7f837. I moved the runtime-features summary logic into actions/setup/sh/log_runtime_features_summary.sh and updated the activation step to call that script.
There was a problem hiding this comment.
Already done in 6e7f837 — the logic is in actions/setup/sh/log_runtime_features_summary.sh.
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot recompile |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Ran |
There was a problem hiding this comment.
Pull request overview
This PR refines activation step-summary rendering so Runtime features are only written to $GITHUB_STEP_SUMMARY when GH_AW_RUNTIME_FEATURES is both set (as a repo var) and non-empty, and the rendered output is now collapsed by default via <details>/<summary> progressive disclosure.
Changes:
- Switched the activation job’s “Log runtime features” step from an inline heredoc/script to a shared runtime-copied shell script (
log_runtime_features_summary.sh). - Added the shared shell script that conditionally appends a
### Runtime featuressection wrapped in<details>to$GITHUB_STEP_SUMMARY. - Updated Go test expectations and regenerated wasm golden workflow outputs and workflow lockfiles to match the compiler-emitted YAML.
Show a summary per file
File-by-file table
| File | Description |
|---|---|
| actions/setup/sh/log_runtime_features_summary.sh | New shared summary-rendering script; only emits runtime features when set + non-empty and wraps output in <details>. |
| pkg/workflow/compiler_activation_job_builder.go | Updates activation job step to invoke the shared log_runtime_features_summary.sh script instead of inline bash. |
| pkg/workflow/runtime_features_env_test.go | Adjusts test expectations to require calling the shared script (and removes assertions tied to the old inline rendering branches). |
| pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_AllEngines/pi.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_AllEngines/gemini.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_AllEngines/codex.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| pkg/workflow/testdata/TestWasmGolden_AllEngines/claude.golden | Regenerated golden output to reflect the new shared-script invocation for runtime features logging. |
| .github/workflows/workflow-skill-extractor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/workflow-normalizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/workflow-health-manager.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/workflow-generator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/weekly-safe-outputs-spec-review.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/weekly-issue-summary.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/weekly-editors-health-check.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/weekly-blog-post-writer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/visual-regression-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/video-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/update-astro.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/unbloat-docs.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/uk-ai-operational-resilience.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ubuntu-image-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/typist.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/tidy.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/test-workflow.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/test-quality-sentinel.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/test-project-url-default.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/test-dispatcher.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/test-create-pr-error-handling.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/terminal-stylist.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/technical-doc-writer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/super-linter.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/sub-issue-closer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/step-name-alignment.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/static-analysis-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/stale-repo-identifier.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/stale-pr-cleanup.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/spec-librarian.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/spec-extractor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/spec-enforcer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-workflow-call.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-workflow-call-with-inputs.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-update-cross-repo-pr.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-test-tools.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-temporary-id.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-service-ports.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-project.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-pi.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-otel-backends.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-opencode.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-multi-pr.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-gemini.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-crush.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-create-cross-repo-pr.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-copilot.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-copilot-sdk.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-copilot-arm.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-copilot-aoai-entra.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-copilot-aoai-apikey.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-codex.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-claude.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-claude-on-copilot.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-ci.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-call-workflow.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-antigravity.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-agent-scoped-approved.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-agent-public-none.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-agent-public-approved.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-agent-all-none.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/smoke-agent-all-merged.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/slide-deck-maintainer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/skillet.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/sergo.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/semantic-function-refactor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/security-review.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/security-compliance.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/scout.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/schema-feature-coverage.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/schema-consistency-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/safe-output-health.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ruflo-backed-task.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/research.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/repository-quality-improver.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/repo-tree-map.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/repo-audit-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/release.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/refiner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/refactoring-cadence.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/q.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/python-data-charts.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/prompt-clustering-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pr-triage-agent.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pr-sous-chef.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pr-nitpick-reviewer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pr-description-caveman.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pr-code-quality-reviewer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/portfolio-analyst.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/poem-bot.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/plan.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/pdf-summary.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/outcome-collector.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/org-health-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/objective-impact-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/notion-issue-summary.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/necromancer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/metrics-collector.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/mergefest.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/mcp-inspector.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/mattpocock-skills-reviewer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/lockfile-stats.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/linter-miner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/lint-monster.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/layout-spec-maintainer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/jsweep.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/issue-triage-agent.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/issue-monster.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/issue-arborist.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/instructions-janitor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/hourly-ci-cleaner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/hippo-embed.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/grumpy-reviewer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/gpclean.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/go-pattern-detector.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/go-logger.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/go-fan.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/glossary-maintainer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/github-remote-mcp-auth-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/github-mcp-tools-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/github-mcp-structural-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/functional-pragmatist.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/firewall.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/firewall-escape.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/example-workflow-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/example-permissions-warning.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/example-failure-category-filter.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/duplicate-code-detector.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/draft-pr-cleanup.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/docs-noob-tester.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/discussion-task-miner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dictation-prompt.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/developer-docs-consolidator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dev.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dev-hawk.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/designer-drift-audit.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/design-decision-gate.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/deployment-incident-monitor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dependabot-repair.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dependabot-go-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dependabot-burner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/delight.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/deep-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dead-code-remover.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/dataflow-pr-discussion-dataset.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-workflow-updater.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-windows-terminal-integration-builder.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-token-consumption-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-testify-uber-super-expert.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-team-status.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-team-evolution-insights.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-syntax-error-quality.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-spdd-spec-planner.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-skill-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-sentrux-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-semgrep-scan.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-security-red-team.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-security-observability.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-secrets-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-safeoutputs-git-simulator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-safe-outputs-conformance.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-safe-output-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-safe-output-integrator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-repo-chronicle.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-rendering-scripts-verifier.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-reliability-review.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-regulatory.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-performance-summary.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-observability-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-news.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-multi-device-docs-tester.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-model-resolution.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-model-inventory.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-mcp-concurrency-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-max-ai-credits-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-malicious-code-scan.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-issues-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-hippo-learn.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-geo-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-function-namer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-formal-spec-verifier.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-firewall-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-file-diet.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-fact.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-experiment-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-doc-updater.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-doc-healer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-credit-limit-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-compiler-threat-spec-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-compiler-quality.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-community-attribution.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-code-metrics.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-cli-tools-tester.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-cli-performance.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-choice-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-caveman-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-cache-strategy-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-byok-ollama-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-awf-spec-compiler-surfacing.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-aw-cross-repo-compile-check.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-assign-issue-to-user.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-architecture-diagram.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-ambient-context-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-agentrx-trace-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/daily-agent-of-the-day-blog-writer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/craft.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-session-insights.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-pr-prompt-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-pr-nlp-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-pr-merged-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-opt.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-cli-deep-research.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-centralization-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-centralization-drilldown.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/copilot-agent-analysis.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/contribution-check.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/constraint-solving-potd.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/commit-changes-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/codex-github-remote-mcp-test.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/code-simplifier.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/code-scanning-fixer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/cloclo.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/cli-version-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/cli-consistency-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/claude-code-user-docs-review.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ci-doctor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ci-coach.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/chaos-pr-bundle-fuzzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/changeset.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/breaking-change-checker.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/brave.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/bot-detection.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/blog-auditor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/aw-failure-investigator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/avenger.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/auto-triage-issues.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/audit-workflows.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/artifacts-summary.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/architecture-guardian.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/archie.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/approach-validator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/api-consumption-report.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ai-moderator.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/agentic-token-trend-audit.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/agentic-token-optimizer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/agentic-token-audit.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/agent-persona-explorer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/agent-performance-analyzer.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ace-editor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
| .github/workflows/ab-testing-advisor.lock.yml | Updates runtime-features logging step to call the shared summary script. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 263/263 changed files
- Comments generated: 0
|
✅ PR Code Quality Reviewer completed the code quality review. |
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅ |
|
✅ Test Quality Sentinel completed test quality analysis. Analysis already completed for PR #41358 in this workflow run (28147799570). Comment and APPROVE review (100/100) were successfully submitted in the earlier invocation. Both add_comment and submit_pull_request_review limits are exhausted. |
🧪 Test Quality Sentinel Report✅ Test Quality Score: 100/100 — Excellent
📊 Metrics & Test Classification (1 test analyzed)
Go: 1 ( Verdict
References: §28147799570
|
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /tdd and /zoom-out — requesting changes on test coverage gaps before merging.
📋 Key Themes & Highlights
Key Themes
- Missing shell script test (
/tdd):log_runtime_features_summary.shhas no_test.shcompanion, inconsistent with the rest ofactions/setup/sh/. This is the main ask — the extraction is most valuable when the script is independently testable. - Weakened Go test (
/tdd):runtime_features_env_test.golost its$GITHUB_STEP_SUMMARYbehavioral assertion; the replacement only checks the script filename string. GITHUB_STEP_SUMMARYnot guarded underset -u(/zoom-out): Makes the script harder to run outside GitHub Actions (e.g. in a local test). Using${GITHUB_STEP_SUMMARY:-/dev/null}would fix this.- Heading level downgrade (
/zoom-out):## Runtime features→### Runtime featuresis a visible UX change not mentioned in the PR description.
Positive Highlights
- ✅ Clean extraction of 14-line inline shell to a reusable, named script — the right direction for maintainability.
- ✅ Progressive disclosure with
<details>/<summary>is a good UX improvement for noisy step summaries. - ✅ Silent suppression of empty/unset values keeps step summaries clean.
- ✅
set -euo pipefail+set +o histexpandsafety flags are present and consistent with the rest of the setup scripts. - ✅ Golden files and Go tests updated to match the new compiler output.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · 112.6 AIC · ⌖ 10.1 AIC · ⊞ 6.5K
| @@ -0,0 +1,18 @@ | |||
| #!/usr/bin/env bash | |||
There was a problem hiding this comment.
[/tdd] No companion test script — the repo has a clear *_test.sh pattern for every shell script (e.g. sanitize_path_test.sh, validate_prompt_placeholders_test.sh). Extracting logic to an external script is most valuable when the script is independently testable.
💡 Suggested test coverage
Create actions/setup/sh/log_runtime_features_summary_test.sh with at least these cases:
#!/usr/bin/env bash
set +o histexpand
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SCRIPT="${SCRIPT_DIR}/log_runtime_features_summary.sh"
SUMMARY_FILE="$(mktemp)"
trap 'rm -f "$SUMMARY_FILE"' EXIT
# Case 1: IS_SET=false -> no output written
export GH_AW_RUNTIME_FEATURES_IS_SET=false GH_AW_RUNTIME_FEATURES="" GITHUB_STEP_SUMMARY="$SUMMARY_FILE"
bash "$SCRIPT"
[[ ! -s "$SUMMARY_FILE" ]] && echo '✓ suppressed when not set' || { echo '✗ unexpectedly wrote'; exit 1; }
# Case 2: IS_SET=true, non-empty -> writes heading + details block
> "$SUMMARY_FILE"
export GH_AW_RUNTIME_FEATURES_IS_SET=true GH_AW_RUNTIME_FEATURES="feature1=on"
bash "$SCRIPT"
grep -q '### Runtime features' "$SUMMARY_FILE" && echo '✓ wrote heading' || { echo '✗ missing heading'; exit 1; }
grep -q '<details>' "$SUMMARY_FILE" && echo '✓ wrapped in details' || { echo '✗ missing details'; exit 1; }
# Case 3: IS_SET=true, empty -> no output written
> "$SUMMARY_FILE"
export GH_AW_RUNTIME_FEATURES=""
bash "$SCRIPT"
[[ ! -s "$SUMMARY_FILE" ]] && echo '✓ suppressed empty value' || { echo '✗ unexpectedly wrote for empty'; exit 1; }
echo 'All tests passed'There was a problem hiding this comment.
Added log_runtime_features_summary_test.sh covering all three code paths plus the unset-IS_SET case.
| } | ||
| if !strings.Contains(steps, "$GITHUB_STEP_SUMMARY") { | ||
| t.Fatal("expected runtime feature summary step to write to GITHUB_STEP_SUMMARY") | ||
| if !strings.Contains(steps, "log_runtime_features_summary.sh") { |
There was a problem hiding this comment.
[/tdd] The test was strengthened for the script filename but lost its behavioral assertion. Previously the test verified that the step would write to $GITHUB_STEP_SUMMARY; now it only checks that a script name appears in the step configuration string. If the script is renamed or the redirect target changes, this test won't catch it.
💡 Suggestion
Consider keeping the $GITHUB_STEP_SUMMARY assertion (it validates the step's purpose, not its implementation), or move the behavioral coverage to a companion _test.sh file that exercises the script directly:
// Verify the step still references the summary output path so its purpose is clear
if !strings.Contains(steps, "GITHUB_STEP_SUMMARY") {
t.Fatal("expected runtime feature summary step to write to GITHUB_STEP_SUMMARY")
}The filename check (log_runtime_features_summary.sh) is a good implementation-detail guard; the summary-write check is a separate behavioral guard — both are useful.
There was a problem hiding this comment.
Restored the behavioral assertion — the Go test now reads the shell script and verifies it contains GITHUB_STEP_SUMMARY, catching any accidental removal of the redirect.
| echo '```' | ||
| echo | ||
| echo "</details>" | ||
| } >> "$GITHUB_STEP_SUMMARY" |
There was a problem hiding this comment.
[/zoom-out] GITHUB_STEP_SUMMARY is referenced without a guard, but set -euo pipefail is active. If this script is ever exercised outside a GitHub Actions runner (e.g. in a local shell test), the -u flag will raise an "unbound variable" error as soon as the outer if condition evaluates to true — making test runs non-trivial to set up.
💡 Suggestion
Other scripts in this directory (e.g. append_agent_step_summary.sh) don't use set -u, so they avoid this pitfall. For a testable script, consider either:
- Using
${GITHUB_STEP_SUMMARY:-/dev/null}as a safe default:
} >> "${GITHUB_STEP_SUMMARY:-/dev/null}"- Or adding an early guard:
[[ -z "${GITHUB_STEP_SUMMARY:-}" ]] && exit 0This is also necessary for the _test.sh companion script to be portable without injecting a real file path.
There was a problem hiding this comment.
Fixed — changed to "${GITHUB_STEP_SUMMARY:-/dev/null}" so the script is safe to run in test environments where the variable is unset.
|
|
||
| if [[ "${GH_AW_RUNTIME_FEATURES_IS_SET:-}" == "true" && -n "${GH_AW_RUNTIME_FEATURES:-}" ]]; then | ||
| { | ||
| echo "### Runtime features" |
There was a problem hiding this comment.
[/zoom-out] Heading level changed from ## Runtime features (h2) to ### Runtime features (h3). This is a visible UX change — worth a brief mention in the PR description (or confirming it was intentional). If anything parses or anchors to ## Runtime features in downstream tooling or documentation, it would silently break.
There was a problem hiding this comment.
The h3 heading is intentional — the step summary section is nested under a per-job run header, so ### is the correct level for a sub-section. No downstream tooling anchors to this heading.
| set +o histexpand | ||
| set -euo pipefail | ||
|
|
||
| if [[ "${GH_AW_RUNTIME_FEATURES_IS_SET:-}" == "true" && -n "${GH_AW_RUNTIME_FEATURES:-}" ]]; then |
There was a problem hiding this comment.
[/zoom-out] Both halves of the && condition use the :- default form to tolerate unset variables, which is correct for the outer guard. The interesting design note: GH_AW_RUNTIME_FEATURES_IS_SET is a step-level env var computed from the vars context (contains(toJSON(vars), ...)), while GH_AW_RUNTIME_FEATURES comes from the job-level env. When IS_SET=true but the value is empty, the silent suppression is intentional per the PR description — but this means a variable that exists in vars as an empty string produces no step summary output with no diagnostic. Consider a brief code comment explaining this trade-off for future readers.
There was a problem hiding this comment.
Added a comment to the script explaining the silent-suppression trade-off for an empty-string value.
There was a problem hiding this comment.
🔎 Code quality review by PR Code Quality Reviewer · 107.6 AIC · ⌖ 6.83 AIC · ⊞ 5.2K
| set +o histexpand | ||
| set -euo pipefail | ||
|
|
||
| if [[ "${GH_AW_RUNTIME_FEATURES_IS_SET:-}" == "true" && -n "${GH_AW_RUNTIME_FEATURES:-}" ]]; then |
There was a problem hiding this comment.
Missing shell test file: the script has no log_runtime_features_summary_test.sh, leaving its behavior unverified by any automated test.
💡 Details
Every other non-trivial script in actions/setup/sh/ that handles conditional logic has a companion _test.sh (e.g., audit_pre_agent_workspace_test.sh, check_cache_memory_git_integrity_test.sh, validate_gatewayed_server_test.sh). This script's three code paths — (a) IS_SET=false → no output, (b) IS_SET=true + empty value → no output, (c) IS_SET=true + non-empty → write <details> block — have no automated coverage. A future edit could silently break the summary without any test failing.
Suggested: add log_runtime_features_summary_test.sh covering at minimum the suppression case (no output when IS_SET is false) and the write case (GITHUB_STEP_SUMMARY receives the expected heading + <details> wrapper when IS_SET is true and the value is non-empty).
There was a problem hiding this comment.
Added log_runtime_features_summary_test.sh with four test cases covering all code paths.
| } | ||
| if !strings.Contains(steps, "$GITHUB_STEP_SUMMARY") { | ||
| t.Fatal("expected runtime feature summary step to write to GITHUB_STEP_SUMMARY") | ||
| if !strings.Contains(steps, "log_runtime_features_summary.sh") { |
There was a problem hiding this comment.
Weakened test assertions: two meaningful behavioral checks were removed without replacement, reducing regression safety for the script's core contract.
💡 Details
Removed assertions:
strings.Contains(steps, "_Empty string_")— verified that the step handled the IS_SET=true + empty-value edge case distinctlystrings.Contains(steps, "$GITHUB_STEP_SUMMARY")— verified that the step actually writes to the summary
The replacement assertion (log_runtime_features_summary.sh is present) only checks the plumbing, not behavior. Now if someone edits the shell script to silently skip writing to GITHUB_STEP_SUMMARY, or accidentally removes the >> "$GITHUB_STEP_SUMMARY" redirection, no Go test will catch it.
Because the logic moved to a shell script (which also lacks a _test.sh), the net coverage of the critical write-to-summary path is now zero in automated tests.
There was a problem hiding this comment.
Restored as a script-level check: the Go test reads log_runtime_features_summary.sh and asserts it contains GITHUB_STEP_SUMMARY, so a future edit that removes the redirect will fail the test suite.
|
@copilot review all comments and address unresolved review feedback.
|
|
Please summarize the remaining blockers and the next smallest step to get this PR mergeable.
|
|
@copilot review all comments and address unresolved review feedback.
|
This comment has been minimized.
This comment has been minimized.
|
Hey Checklist looks solid: the PR is focused on one thing, the compiler change is aligned with golden outputs and tests, and the PR description clearly explains the what and why. This looks ready for review. ✅
|
|
``
|
|
``
|
|
@copilot run pr-finisher skill and fix https://github.com/github/gh-aw/actions/runs/28147799559/job/83360091309?pr=41358 |
|
``
|
…ns, fix unbound variable Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Addressed all open review threads:
The |
| @@ -299,20 +299,7 @@ jobs: | |||
| - name: Log runtime features | |||
| env: | |||
| GH_AW_RUNTIME_FEATURES_IS_SET: ${{ contains(toJSON(vars), '"GH_AW_RUNTIME_FEATURES":') }} | |||
There was a problem hiding this comment.
@copilot set this expression as a "if" field so that the step is skipped entierly.
There was a problem hiding this comment.
Done. The contains(toJSON(vars), '"GH_AW_RUNTIME_FEATURES":') expression is now an if: field on the step, so the step is skipped entirely when the var isn't configured. The GH_AW_RUNTIME_FEATURES_IS_SET env var and corresponding check in the shell script have been removed. Golden files and lock files regenerated.
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
The activation step summary currently prints a
Runtime featuressection even when no runtime features are configured (Not set). This updates summary rendering to suppress empty/unset output and only surface configured runtime features via progressive disclosure.Summary rendering behavior
$GITHUB_STEP_SUMMARYonly whenGH_AW_RUNTIME_FEATURESis both defined and non-empty._Not set_/_Empty string_output paths are removed from the summary.Progressive disclosure format
### Runtime features.<details>/<summary>so verbose values are collapsed by default.Compiler/test fixture alignment