From 69842fe337c5d5dc104184e86bd88f15c41dd55e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 14:11:17 +0000 Subject: [PATCH 1/7] Initial plan From dd4ef11b7626607bafd6c10c089ed63e44e709ae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 14:24:46 +0000 Subject: [PATCH 2/7] Add allowed-labels support to update-discussion safe output - Updated UpdateDiscussionsConfig struct to include Labels and AllowedLabels fields - Updated parseUpdateDiscussionsConfig to parse labels and allowed-labels - Updated generateSafeOutputsConfig to include allowed_labels in update_discussion config - Updated JSON schema to support labels and allowed-labels fields - Updated agent-output.json schema to include labels field in update_discussion type - Implemented label update logic in update_discussion.cjs using GraphQL mutations - Schema changes embedded in binary via make build - All workflows recompiled successfully Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/ai-moderator.lock.yml | 2 +- .github/workflows/archie.lock.yml | 2 +- .github/workflows/artifacts-summary.lock.yml | 2 +- .github/workflows/audit-workflows.lock.yml | 2 +- .github/workflows/blog-auditor.lock.yml | 2 +- .github/workflows/brave.lock.yml | 2 +- .../breaking-change-checker.lock.yml | 2 +- .github/workflows/campaign-generator.lock.yml | 2 +- .github/workflows/changeset.lock.yml | 2 +- .github/workflows/ci-coach.lock.yml | 2 +- .github/workflows/ci-doctor.lock.yml | 2 +- .../cli-consistency-checker.lock.yml | 2 +- .../workflows/cli-version-checker.lock.yml | 2 +- .github/workflows/cloclo.lock.yml | 2 +- .../workflows/close-old-discussions.lock.yml | 2 +- .../commit-changes-analyzer.lock.yml | 2 +- .../workflows/copilot-agent-analysis.lock.yml | 2 +- .../copilot-pr-merged-report.lock.yml | 2 +- .../copilot-pr-nlp-analysis.lock.yml | 2 +- .../copilot-pr-prompt-analysis.lock.yml | 2 +- .../copilot-session-insights.lock.yml | 2 +- .github/workflows/craft.lock.yml | 2 +- .../daily-assign-issue-to-user.lock.yml | 2 +- .github/workflows/daily-code-metrics.lock.yml | 2 +- .../daily-copilot-token-report.lock.yml | 2 +- .github/workflows/daily-doc-updater.lock.yml | 2 +- .github/workflows/daily-fact.lock.yml | 2 +- .github/workflows/daily-file-diet.lock.yml | 2 +- .../workflows/daily-firewall-report.lock.yml | 2 +- .../workflows/daily-issues-report.lock.yml | 2 +- .../daily-malicious-code-scan.lock.yml | 2 +- .../daily-multi-device-docs-tester.lock.yml | 2 +- .github/workflows/daily-news.lock.yml | 2 +- .../daily-performance-summary.lock.yml | 2 +- .../workflows/daily-repo-chronicle.lock.yml | 2 +- .github/workflows/daily-team-status.lock.yml | 2 +- .../workflows/daily-workflow-updater.lock.yml | 2 +- .github/workflows/deep-report.lock.yml | 2 +- .../workflows/dependabot-go-checker.lock.yml | 2 +- .github/workflows/dev-hawk.lock.yml | 2 +- .github/workflows/dev.lock.yml | 153 ++++++++++++---- .../developer-docs-consolidator.lock.yml | 2 +- .github/workflows/dictation-prompt.lock.yml | 2 +- .github/workflows/docs-noob-tester.lock.yml | 2 +- .../duplicate-code-detector.lock.yml | 2 +- .../example-permissions-warning.lock.yml | 2 +- .../example-workflow-analyzer.lock.yml | 2 +- .github/workflows/firewall-escape.lock.yml | 2 +- .github/workflows/firewall.lock.yml | 2 +- .../github-mcp-structural-analysis.lock.yml | 2 +- .../github-mcp-tools-report.lock.yml | 2 +- .../workflows/glossary-maintainer.lock.yml | 2 +- .github/workflows/go-fan.lock.yml | 2 +- ...ze-reduction-project64.campaign.g.lock.yml | 2 +- ...go-file-size-reduction.campaign.g.lock.yml | 2 +- .github/workflows/go-logger.lock.yml | 2 +- .../workflows/go-pattern-detector.lock.yml | 2 +- .github/workflows/grumpy-reviewer.lock.yml | 2 +- .github/workflows/hourly-ci-cleaner.lock.yml | 2 +- .../workflows/human-ai-collaboration.lock.yml | 2 +- .github/workflows/incident-response.lock.yml | 2 +- .../workflows/instructions-janitor.lock.yml | 2 +- .github/workflows/intelligence.lock.yml | 2 +- .github/workflows/issue-arborist.lock.yml | 2 +- .github/workflows/issue-classifier.lock.yml | 2 +- .github/workflows/issue-monster.lock.yml | 2 +- .github/workflows/issue-triage-agent.lock.yml | 2 +- .github/workflows/jsweep.lock.yml | 2 +- .../workflows/layout-spec-maintainer.lock.yml | 2 +- .github/workflows/lockfile-stats.lock.yml | 2 +- .github/workflows/mcp-inspector.lock.yml | 2 +- .github/workflows/mergefest.lock.yml | 2 +- .../workflows/notion-issue-summary.lock.yml | 2 +- .github/workflows/org-health-report.lock.yml | 2 +- .github/workflows/org-wide-rollout.lock.yml | 2 +- .github/workflows/pdf-summary.lock.yml | 2 +- .github/workflows/plan.lock.yml | 2 +- .github/workflows/poem-bot.lock.yml | 2 +- .github/workflows/portfolio-analyst.lock.yml | 2 +- .../workflows/pr-nitpick-reviewer.lock.yml | 2 +- .../prompt-clustering-analysis.lock.yml | 2 +- .github/workflows/python-data-charts.lock.yml | 2 +- .github/workflows/q.lock.yml | 2 +- .github/workflows/release.lock.yml | 2 +- .github/workflows/repo-tree-map.lock.yml | 2 +- .../repository-quality-improver.lock.yml | 2 +- .github/workflows/research.lock.yml | 2 +- .github/workflows/safe-output-health.lock.yml | 2 +- .../schema-consistency-checker.lock.yml | 2 +- .github/workflows/scout.lock.yml | 2 +- .../workflows/security-compliance.lock.yml | 2 +- .github/workflows/security-fix-pr.lock.yml | 2 +- .../semantic-function-refactor.lock.yml | 2 +- .../workflows/slide-deck-maintainer.lock.yml | 2 +- .github/workflows/smoke-claude.lock.yml | 2 +- .../workflows/smoke-codex-firewall.lock.yml | 2 +- .github/workflows/smoke-codex.lock.yml | 2 +- .../smoke-copilot-no-firewall.lock.yml | 2 +- .../smoke-copilot-playwright.lock.yml | 2 +- .../smoke-copilot-safe-inputs.lock.yml | 2 +- .github/workflows/smoke-copilot.lock.yml | 2 +- .github/workflows/smoke-detector.lock.yml | 2 +- .../smoke-srt-custom-config.lock.yml | 2 +- .github/workflows/smoke-srt.lock.yml | 2 +- .github/workflows/spec-kit-execute.lock.yml | 2 +- .github/workflows/spec-kit-executor.lock.yml | 2 +- .github/workflows/speckit-dispatcher.lock.yml | 2 +- .../workflows/stale-repo-identifier.lock.yml | 2 +- .../workflows/static-analysis-report.lock.yml | 2 +- .github/workflows/sub-issue-closer.lock.yml | 2 +- .github/workflows/super-linter.lock.yml | 2 +- .../workflows/technical-doc-writer.lock.yml | 2 +- .github/workflows/tidy.lock.yml | 2 +- .github/workflows/typist.lock.yml | 2 +- .github/workflows/unbloat-docs.lock.yml | 2 +- .github/workflows/video-analyzer.lock.yml | 2 +- .../workflows/weekly-issue-summary.lock.yml | 2 +- pkg/parser/schemas/main_workflow_schema.json | 11 ++ pkg/workflow/js/update_discussion.cjs | 172 ++++++++++++++---- pkg/workflow/safe_outputs_config.go | 3 + pkg/workflow/update_discussion.go | 17 +- schemas/agent-output.json | 9 +- 122 files changed, 401 insertions(+), 196 deletions(-) diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index f08906bea3d..bba63253f78 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -1915,7 +1915,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "AI Moderator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index fe08658a803..c202e025cab 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -2592,7 +2592,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Archie", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index e69fbf873ee..177219859de 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1849,7 +1849,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Artifacts Summary", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 0d9df2d2ecc..0aaff0147a8 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -2035,7 +2035,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Agentic Workflow Audit Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 17544692471..985e1d34dc7 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1952,7 +1952,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Blog Auditor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index b90f2370882..524b4dc3409 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -2584,7 +2584,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Brave Web Search Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index 3ac1d4e2db9..ff550998aba 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1867,7 +1867,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Breaking Change Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/campaign-generator.lock.yml b/.github/workflows/campaign-generator.lock.yml index 89c43e8a903..84eb94c749e 100644 --- a/.github/workflows/campaign-generator.lock.yml +++ b/.github/workflows/campaign-generator.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Campaign Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 75a800642d1..761f493c0c9 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -2624,7 +2624,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Changeset Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 20ede3e4cab..2dbe08e8f5d 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1914,7 +1914,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "CI Optimization Coach", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index ab007599ddf..21ecfeb7a75 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1944,7 +1944,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "CI Failure Doctor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index b54ea7127a8..a71563c74d9 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1877,7 +1877,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "CLI Consistency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 0d529ca44c9..bee07123c3b 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1974,7 +1974,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "CLI Version Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 9811fa46a40..8f4b82e8e22 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -2824,7 +2824,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "/cloclo", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index cb6e006b9d1..74ca431abbb 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -1863,7 +1863,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Close Outdated Discussions", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index 14dbb6550e4..c1f1f050918 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Commit Changes Analyzer", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index cce132bb5eb..168f0109177 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1962,7 +1962,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Copilot Agent PR Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index b1b5b7ee8c7..d662ba5129d 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -3202,7 +3202,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Copilot PR Merged Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 77ea88c410a..55ba19a3e52 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Copilot PR Conversation NLP Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index bb70b5ded92..695091d0e15 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Copilot PR Prompt Pattern Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 46d5335f80e..5de4c96a4a6 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -2017,7 +2017,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Copilot Session Insights", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index 03454464221..70866da0ec5 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -2614,7 +2614,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Workflow Craft Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index f51246eeb26..57a8114d966 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -1877,7 +1877,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Auto-Assign Issue", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 4e4005020b7..b14099dd2ca 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1975,7 +1975,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Code Metrics and Trend Tracking Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 0efd5d7f2b9..27d593b8cf8 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1924,7 +1924,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Copilot Token Consumption Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 1ecee536074..a227867e8c6 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Documentation Updater", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 6c08748232b..58b24d3718d 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1807,7 +1807,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Fact About gh-aw", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index eb81c629a63..e57644e37b4 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1992,7 +1992,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily File Diet", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index d52a0efb98d..b2c2520978a 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1974,7 +1974,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Firewall Logs Collector and Reporter", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 7de10d0cdd7..28addc7e227 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1966,7 +1966,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Issues Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 7fb54242eb1..fd76a0e433f 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1886,7 +1886,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Malicious Code Scan Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index 4e3ca596038..b0b444d35e6 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -2006,7 +2006,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Multi-Device Docs Tester", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 38d342b20e5..0f19122336d 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily News", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index cc29a1ebb9a..e5a74ad9db1 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -3647,7 +3647,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Project Performance Summary Generator (Using Safe Inputs)", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 9204c3e57ec..36b9d1b4097 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1921,7 +1921,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "The Daily Repository Chronicle", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 2a04cd6d51e..56d95352480 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1858,7 +1858,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Team Status", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 9aac2fce224..e49340b0b9c 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -1855,7 +1855,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Daily Workflow Updater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index b14694157a4..9abd3047df2 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1935,7 +1935,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "DeepReport - Intelligence Gathering Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index ddd3f01e729..fb6ec954cbf 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1916,7 +1916,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Dependabot Dependency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index bdb6358dcce..117dc2ffbf7 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1866,7 +1866,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Dev Hawk", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index da03d25158e..313c8ebfda9 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -3221,7 +3221,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Dev", experimental: false, supports_tools_allowlist: true, @@ -8789,7 +8789,7 @@ jobs: includeOperation: false, }); async function executeDiscussionUpdate(github, context, discussionNumber, updateData) { - const { _operation, _rawBody, ...fieldsToUpdate } = updateData; + const { _operation, _rawBody, labels, ...fieldsToUpdate } = updateData; const getDiscussionQuery = ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { @@ -8798,6 +8798,12 @@ jobs: title body url + labels(first: 100) { + nodes { + id + name + } + } } } } @@ -8810,9 +8816,11 @@ jobs: if (!queryResult?.repository?.discussion) { throw new Error(`Discussion #${discussionNumber} not found`); } - const discussionId = queryResult.repository.discussion.id; - if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined) { - throw new Error("At least one field (title or body) must be provided for update"); + const discussion = queryResult.repository.discussion; + const discussionId = discussion.id; + const currentLabels = discussion.labels?.nodes || []; + if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && labels === undefined) { + throw new Error("At least one field (title, body, or labels) must be provided for update"); } if (fieldsToUpdate.body !== undefined) { const workflowName = process.env.GH_AW_WORKFLOW_NAME || "Workflow"; @@ -8827,46 +8835,115 @@ jobs: const footer = generateFooterWithMessages(workflowName, runUrl, workflowSource, workflowSourceURL, triggeringIssueNumber, triggeringPRNumber, triggeringDiscussionNumber); fieldsToUpdate.body = fieldsToUpdate.body + footer; } - const mutationFields = []; - if (fieldsToUpdate.title !== undefined) { - mutationFields.push("title: $title"); + if (fieldsToUpdate.title !== undefined || fieldsToUpdate.body !== undefined) { + const mutationFields = []; + if (fieldsToUpdate.title !== undefined) { + mutationFields.push("title: $title"); + } + if (fieldsToUpdate.body !== undefined) { + mutationFields.push("body: $body"); + } + const updateDiscussionMutation = ` + mutation($discussionId: ID!${fieldsToUpdate.title !== undefined ? ", $title: String!" : ""}${fieldsToUpdate.body !== undefined ? ", $body: String!" : ""}) { + updateDiscussion(input: { + discussionId: $discussionId + ${mutationFields.join("\n ")} + }) { + discussion { + id + number + title + body + url + } + } + } + `; + const variables = { + discussionId: discussionId, + }; + if (fieldsToUpdate.title !== undefined) { + variables.title = fieldsToUpdate.title; + } + if (fieldsToUpdate.body !== undefined) { + variables.body = fieldsToUpdate.body; + } + const mutationResult = await github.graphql(updateDiscussionMutation, variables); + if (!mutationResult?.updateDiscussion?.discussion) { + throw new Error("Failed to update discussion"); + } } - if (fieldsToUpdate.body !== undefined) { - mutationFields.push("body: $body"); - } - const updateDiscussionMutation = ` - mutation($discussionId: ID!${fieldsToUpdate.title !== undefined ? ", $title: String!" : ""}${fieldsToUpdate.body !== undefined ? ", $body: String!" : ""}) { - updateDiscussion(input: { - discussionId: $discussionId - ${mutationFields.join("\n ")} - }) { - discussion { + if (labels !== undefined && Array.isArray(labels)) { + const repoQuery = ` + query($owner: String!, $repo: String!) { + repository(owner: $owner, name: $repo) { id - number - title - body - url + labels(first: 100) { + nodes { + id + name + } + } } } + `; + const repoResult = await github.graphql(repoQuery, { + owner: context.repo.owner, + repo: context.repo.repo, + }); + if (!repoResult?.repository) { + throw new Error(`Repository ${context.repo.owner}/${context.repo.repo} not found`); + } + const repoLabels = repoResult.repository.labels?.nodes || []; + const labelIds = labels.map(labelName => { + const label = repoLabels.find(l => l.name === labelName); + if (!label) { + throw new Error(`Label "${labelName}" not found in repository`); + } + return label.id; + }); + if (currentLabels.length > 0) { + const removeLabelsMutation = ` + mutation($labelableId: ID!, $labelIds: [ID!]!) { + removeLabelsFromLabelable(input: { + labelableId: $labelableId + labelIds: $labelIds + }) { + clientMutationId + } + } + `; + await github.graphql(removeLabelsMutation, { + labelableId: discussionId, + labelIds: currentLabels.map(l => l.id), + }); + } + if (labelIds.length > 0) { + const addLabelsMutation = ` + mutation($labelableId: ID!, $labelIds: [ID!]!) { + addLabelsToLabelable(input: { + labelableId: $labelableId + labelIds: $labelIds + }) { + clientMutationId + } + } + `; + await github.graphql(addLabelsMutation, { + labelableId: discussionId, + labelIds: labelIds, + }); } - `; - const variables = { - discussionId: discussionId, - }; - if (fieldsToUpdate.title !== undefined) { - variables.title = fieldsToUpdate.title; - } - if (fieldsToUpdate.body !== undefined) { - variables.body = fieldsToUpdate.body; - } - const mutationResult = await github.graphql(updateDiscussionMutation, variables); - if (!mutationResult?.updateDiscussion?.discussion) { - throw new Error("Failed to update discussion"); } - const discussion = mutationResult.updateDiscussion.discussion; + const finalQueryResult = await github.graphql(getDiscussionQuery, { + owner: context.repo.owner, + repo: context.repo.repo, + number: discussionNumber, + }); + const updatedDiscussion = finalQueryResult.repository.discussion; return { - ...discussion, - html_url: discussion.url, + ...updatedDiscussion, + html_url: updatedDiscussion.url, }; } const getSummaryLine = createGetSummaryLine({ diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 5652c5977d9..5aa8d297fcf 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -2039,7 +2039,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Developer Documentation Consolidator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index ca0d146a475..eb7c2552d04 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -1858,7 +1858,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Dictation Prompt Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index a7d252b655b..89a99ff7215 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -1884,7 +1884,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Documentation Noob Tester", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index f1557e6ed6d..bdcf0947a76 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1868,7 +1868,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Duplicate Code Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 6c40bc3eb78..1e2c733e8a6 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -324,7 +324,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Example: Properly Provisioned Permissions", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index ea22468e3e3..9eb5db51b23 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -1957,7 +1957,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Weekly Workflow Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 4ba473e9236..89cf6ff3c79 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -364,7 +364,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Firewall Escape", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 7b9c9a6f50d..bce560b66cf 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -337,7 +337,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Firewall Test Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index aeebf72c18c..2c4f8f9ca93 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -2009,7 +2009,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "GitHub MCP Structural Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index 58d2dc00ad3..d5f782b6ba7 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1977,7 +1977,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "GitHub MCP Remote Server Tools Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 0798678322c..df27b7aa73c 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1893,7 +1893,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Glossary Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 620f49ca499..e4cf057365c 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1975,7 +1975,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Go Fan", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml index 387abd03ddd..beb6382132c 100644 --- a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml @@ -1909,7 +1909,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Go File Size Reduction Campaign (Project 64)", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml index 956bb222c18..95389182569 100644 --- a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml @@ -1909,7 +1909,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Go File Size Reduction Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index adee5145418..fda7d7eefd0 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1972,7 +1972,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Go Logger Enhancement", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index d1d1baf0e73..d03dfd8843b 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -1969,7 +1969,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Go Pattern Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 1bbab1c40b4..77196f70204 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -2655,7 +2655,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Grumpy Code Reviewer 🔥", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 039e041f4aa..ce84465fca0 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1886,7 +1886,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Hourly CI Cleaner", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/human-ai-collaboration.lock.yml b/.github/workflows/human-ai-collaboration.lock.yml index 6d0513285a9..414128721dc 100644 --- a/.github/workflows/human-ai-collaboration.lock.yml +++ b/.github/workflows/human-ai-collaboration.lock.yml @@ -1896,7 +1896,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Human-AI Collaboration Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/incident-response.lock.yml b/.github/workflows/incident-response.lock.yml index fcbcab68150..eae70f1acab 100644 --- a/.github/workflows/incident-response.lock.yml +++ b/.github/workflows/incident-response.lock.yml @@ -2047,7 +2047,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Campaign - Incident Response", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 2d539795676..4608fa9465f 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Instructions Janitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/intelligence.lock.yml b/.github/workflows/intelligence.lock.yml index 1a04494ed9f..93c8b3a7184 100644 --- a/.github/workflows/intelligence.lock.yml +++ b/.github/workflows/intelligence.lock.yml @@ -1979,7 +1979,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Campaign Intelligence System", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 884a7034a06..4580880b7ee 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -1948,7 +1948,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Issue Arborist", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-classifier.lock.yml b/.github/workflows/issue-classifier.lock.yml index 70c60e774e0..23aa286d747 100644 --- a/.github/workflows/issue-classifier.lock.yml +++ b/.github/workflows/issue-classifier.lock.yml @@ -2504,7 +2504,7 @@ jobs: model: process.env. || "", version: "", agent_version: "", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Issue Classifier", experimental: false, supports_tools_allowlist: false, diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index ddf89a77e5d..aa05aa5d22e 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Issue Monster", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index a9c5552f632..7c790db230a 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -1822,7 +1822,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Issue Triage Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index f6931e737a6..edf2f4c9faf 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -1890,7 +1890,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "jsweep - JavaScript Unbloater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 954abbdfaef..752d657b7e3 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -1860,7 +1860,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Layout Specification Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 902f163d620..3e03f86aef0 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -1950,7 +1950,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Lockfile Statistics Analysis Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index 01fbe540e37..07568da0601 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -2144,7 +2144,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "MCP Inspector Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index bfa471183db..bb08344716f 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -2251,7 +2251,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Mergefest", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 8810b5d1844..536a70dc776 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -1821,7 +1821,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Issue Summary to Notion", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index cbeb2ac0a05..e600cd1834d 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -1925,7 +1925,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Organization Health Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-wide-rollout.lock.yml b/.github/workflows/org-wide-rollout.lock.yml index 64b62ac68a9..02de6dce701 100644 --- a/.github/workflows/org-wide-rollout.lock.yml +++ b/.github/workflows/org-wide-rollout.lock.yml @@ -2054,7 +2054,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Campaign - Org-Wide Rollout", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 0dccbec27a4..fce6a49d03c 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -2612,7 +2612,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Resource Summarizer Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 7d63e06c6bd..80c09424088 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -2659,7 +2659,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Plan Command", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 2c7b2221e4e..b4680b1baf2 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -3118,7 +3118,7 @@ jobs: model: "gpt-5", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Poem Bot - A Creative Agentic Workflow", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index 27dbc40e8a4..542bca68a54 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -1954,7 +1954,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Automated Portfolio Analyst", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index 9225844a434..69a6ba38e35 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -2411,7 +2411,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "PR Nitpick Reviewer 🔍", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 6ef526c2a5d..54f823dab02 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -2027,7 +2027,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Copilot Agent Prompt Clustering Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 3db29e80fd2..88417e60e05 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1942,7 +1942,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Python Data Visualization Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 61e6709719b..80cf11bf154 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -2722,7 +2722,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Q", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 84e5306cab3..20dd4c6a7fe 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1859,7 +1859,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Release", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index cb2fefeadde..d9e0afb6685 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -1849,7 +1849,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Repository Tree Map Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index a228c251fb1..1c9f655ce6e 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -1880,7 +1880,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Repository Quality Improvement Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index 1042fbe492d..bb3ab4091b6 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -1865,7 +1865,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Basic Research Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 93c93ed9579..260992b2f43 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1979,7 +1979,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Safe Output Health Monitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index ea41ac5a25a..1760550f232 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -1914,7 +1914,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Schema Consistency Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 2c36285bada..174a634a777 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -2765,7 +2765,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Scout", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index b85da8eaa82..fd551463c40 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -1901,7 +1901,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Security Compliance Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index c8807f65336..a374b12db81 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -1964,7 +1964,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Security Fix PR", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 03bdbfc3717..d0fa51e1556 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -1994,7 +1994,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Semantic Function Refactoring", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index d6d0dfe29c0..ed9560cfdca 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1895,7 +1895,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Slide Deck Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index f4de73b63e8..8583e56c677 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -2500,7 +2500,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Claude", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex-firewall.lock.yml b/.github/workflows/smoke-codex-firewall.lock.yml index 16bef11ef1b..9dd69926505 100644 --- a/.github/workflows/smoke-codex-firewall.lock.yml +++ b/.github/workflows/smoke-codex-firewall.lock.yml @@ -2358,7 +2358,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Codex Firewall", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 1a92502b928..31972050842 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -2415,7 +2415,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Codex", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index 05a8dcc4310..1f54b9b5124 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -3704,7 +3704,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Copilot No Firewall", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index 9fca0e5ae08..d8c3955e010 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -3803,7 +3803,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Copilot Playwright", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-safe-inputs.lock.yml b/.github/workflows/smoke-copilot-safe-inputs.lock.yml index 9b296b3ad15..649064889d0 100644 --- a/.github/workflows/smoke-copilot-safe-inputs.lock.yml +++ b/.github/workflows/smoke-copilot-safe-inputs.lock.yml @@ -3653,7 +3653,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Copilot Safe Inputs", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 658932f4be3..9cfbea6672a 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -2368,7 +2368,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Copilot", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 9b4253bc3db..588246d6426 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -2458,7 +2458,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke Detector - Smoke Test Failure Investigator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt-custom-config.lock.yml b/.github/workflows/smoke-srt-custom-config.lock.yml index 291a3f57cf3..96636082c5f 100644 --- a/.github/workflows/smoke-srt-custom-config.lock.yml +++ b/.github/workflows/smoke-srt-custom-config.lock.yml @@ -332,7 +332,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke SRT Custom Config", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt.lock.yml b/.github/workflows/smoke-srt.lock.yml index 0532bd95ea4..3b4e3d2f12b 100644 --- a/.github/workflows/smoke-srt.lock.yml +++ b/.github/workflows/smoke-srt.lock.yml @@ -1804,7 +1804,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Smoke SRT", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-execute.lock.yml b/.github/workflows/spec-kit-execute.lock.yml index 87770f0bfff..547b5bc7fe0 100644 --- a/.github/workflows/spec-kit-execute.lock.yml +++ b/.github/workflows/spec-kit-execute.lock.yml @@ -1861,7 +1861,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Spec-Kit Execute", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index 67d6bf58d77..9e59df4026c 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -1899,7 +1899,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Spec Kit Executor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/speckit-dispatcher.lock.yml b/.github/workflows/speckit-dispatcher.lock.yml index 5ae74baedc4..bf226b8baf7 100644 --- a/.github/workflows/speckit-dispatcher.lock.yml +++ b/.github/workflows/speckit-dispatcher.lock.yml @@ -2703,7 +2703,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Spec-Kit Command Dispatcher", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 724404f190e..540f7bb363f 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1991,7 +1991,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Stale Repository Identifier", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index f35f00b58db..8b15dca8455 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1972,7 +1972,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Static Analysis Report", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 94eb0503e37..0c702db5c2e 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -1887,7 +1887,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Sub-Issue Closer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index e9d73f7f552..0655f9924b5 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -1893,7 +1893,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Super Linter Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index 52895c309a8..d905b6efcd1 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1962,7 +1962,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Technical Doc Writer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index a8edceae467..763f2ed7f27 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -2334,7 +2334,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Tidy", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 39dd33800f2..bad744fc151 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -1959,7 +1959,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Typist - Go Type Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 957e4e541af..9284e427130 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -2475,7 +2475,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Documentation Unbloat", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 37f9993ded8..689448de0e2 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -1880,7 +1880,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Video Analysis Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index efd86587152..cf8e287ed54 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "03fc035", + cli_version: "842229a33-dirty", workflow_name: "Weekly Issue Summary", experimental: false, supports_tools_allowlist: true, diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json index 242abcbb833..d2f5ac0670e 100644 --- a/pkg/parser/schemas/main_workflow_schema.json +++ b/pkg/parser/schemas/main_workflow_schema.json @@ -3369,6 +3369,17 @@ "type": "null", "description": "Allow updating discussion body - presence of key indicates field can be updated" }, + "labels": { + "type": "null", + "description": "Allow updating discussion labels - presence of key indicates field can be updated" + }, + "allowed-labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional list of allowed labels. If omitted, any labels are allowed (including creating new ones)." + }, "max": { "type": "integer", "description": "Maximum number of discussions to update (default: 1)", diff --git a/pkg/workflow/js/update_discussion.cjs b/pkg/workflow/js/update_discussion.cjs index c8432e9f94f..deedbad7c77 100644 --- a/pkg/workflow/js/update_discussion.cjs +++ b/pkg/workflow/js/update_discussion.cjs @@ -24,7 +24,7 @@ const renderStagedItem = createRenderStagedItem({ */ async function executeDiscussionUpdate(github, context, discussionNumber, updateData) { // Remove internal fields used for operation handling - const { _operation, _rawBody, ...fieldsToUpdate } = updateData; + const { _operation, _rawBody, labels, ...fieldsToUpdate } = updateData; // First, fetch the discussion node ID using its number const getDiscussionQuery = ` @@ -35,6 +35,12 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update title body url + labels(first: 100) { + nodes { + id + name + } + } } } } @@ -50,11 +56,13 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update throw new Error(`Discussion #${discussionNumber} not found`); } - const discussionId = queryResult.repository.discussion.id; + const discussion = queryResult.repository.discussion; + const discussionId = discussion.id; + const currentLabels = discussion.labels?.nodes || []; // Ensure at least one field is being updated - if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined) { - throw new Error("At least one field (title or body) must be provided for update"); + if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && labels === undefined) { + throw new Error("At least one field (title, body, or labels) must be provided for update"); } // Add footer to body if body is being updated @@ -76,56 +84,142 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update fieldsToUpdate.body = fieldsToUpdate.body + footer; } - // Build the update mutation dynamically based on which fields are being updated - const mutationFields = []; - if (fieldsToUpdate.title !== undefined) { - mutationFields.push("title: $title"); - } - if (fieldsToUpdate.body !== undefined) { - mutationFields.push("body: $body"); - } + // Update title and/or body if needed + if (fieldsToUpdate.title !== undefined || fieldsToUpdate.body !== undefined) { + // Build the update mutation dynamically based on which fields are being updated + const mutationFields = []; + if (fieldsToUpdate.title !== undefined) { + mutationFields.push("title: $title"); + } + if (fieldsToUpdate.body !== undefined) { + mutationFields.push("body: $body"); + } - const updateDiscussionMutation = ` - mutation($discussionId: ID!${fieldsToUpdate.title !== undefined ? ", $title: String!" : ""}${fieldsToUpdate.body !== undefined ? ", $body: String!" : ""}) { - updateDiscussion(input: { - discussionId: $discussionId - ${mutationFields.join("\n ")} - }) { - discussion { - id - number - title - body - url + const updateDiscussionMutation = ` + mutation($discussionId: ID!${fieldsToUpdate.title !== undefined ? ", $title: String!" : ""}${fieldsToUpdate.body !== undefined ? ", $body: String!" : ""}) { + updateDiscussion(input: { + discussionId: $discussionId + ${mutationFields.join("\n ")} + }) { + discussion { + id + number + title + body + url + } } } + `; + + const variables = { + discussionId: discussionId, + }; + + if (fieldsToUpdate.title !== undefined) { + variables.title = fieldsToUpdate.title; } - `; - const variables = { - discussionId: discussionId, - }; + if (fieldsToUpdate.body !== undefined) { + variables.body = fieldsToUpdate.body; + } - if (fieldsToUpdate.title !== undefined) { - variables.title = fieldsToUpdate.title; - } + const mutationResult = await github.graphql(updateDiscussionMutation, variables); - if (fieldsToUpdate.body !== undefined) { - variables.body = fieldsToUpdate.body; + if (!mutationResult?.updateDiscussion?.discussion) { + throw new Error("Failed to update discussion"); + } } - const mutationResult = await github.graphql(updateDiscussionMutation, variables); + // Update labels if provided + if (labels !== undefined && Array.isArray(labels)) { + // Get the repository ID to look up label IDs + const repoQuery = ` + query($owner: String!, $repo: String!) { + repository(owner: $owner, name: $repo) { + id + labels(first: 100) { + nodes { + id + name + } + } + } + } + `; + + const repoResult = await github.graphql(repoQuery, { + owner: context.repo.owner, + repo: context.repo.repo, + }); + + if (!repoResult?.repository) { + throw new Error(`Repository ${context.repo.owner}/${context.repo.repo} not found`); + } + + const repoLabels = repoResult.repository.labels?.nodes || []; + + // Map label names to IDs + const labelIds = labels.map(labelName => { + const label = repoLabels.find(l => l.name === labelName); + if (!label) { + throw new Error(`Label "${labelName}" not found in repository`); + } + return label.id; + }); + + // Remove all current labels + if (currentLabels.length > 0) { + const removeLabelsMutation = ` + mutation($labelableId: ID!, $labelIds: [ID!]!) { + removeLabelsFromLabelable(input: { + labelableId: $labelableId + labelIds: $labelIds + }) { + clientMutationId + } + } + `; + + await github.graphql(removeLabelsMutation, { + labelableId: discussionId, + labelIds: currentLabels.map(l => l.id), + }); + } + + // Add new labels + if (labelIds.length > 0) { + const addLabelsMutation = ` + mutation($labelableId: ID!, $labelIds: [ID!]!) { + addLabelsToLabelable(input: { + labelableId: $labelableId + labelIds: $labelIds + }) { + clientMutationId + } + } + `; - if (!mutationResult?.updateDiscussion?.discussion) { - throw new Error("Failed to update discussion"); + await github.graphql(addLabelsMutation, { + labelableId: discussionId, + labelIds: labelIds, + }); + } } - const discussion = mutationResult.updateDiscussion.discussion; + // Fetch the updated discussion to return + const finalQueryResult = await github.graphql(getDiscussionQuery, { + owner: context.repo.owner, + repo: context.repo.repo, + number: discussionNumber, + }); + + const updatedDiscussion = finalQueryResult.repository.discussion; // Return with html_url (which the GraphQL returns as 'url') return { - ...discussion, - html_url: discussion.url, + ...updatedDiscussion, + html_url: updatedDiscussion.url, }; } diff --git a/pkg/workflow/safe_outputs_config.go b/pkg/workflow/safe_outputs_config.go index f73d478bd5c..3e05640523d 100644 --- a/pkg/workflow/safe_outputs_config.go +++ b/pkg/workflow/safe_outputs_config.go @@ -861,6 +861,9 @@ func generateSafeOutputsConfig(data *WorkflowData) string { maxValue = data.SafeOutputs.UpdateDiscussions.Max } updateDiscussionConfig["max"] = maxValue + if len(data.SafeOutputs.UpdateDiscussions.AllowedLabels) > 0 { + updateDiscussionConfig["allowed_labels"] = data.SafeOutputs.UpdateDiscussions.AllowedLabels + } safeOutputsConfig["update_discussion"] = updateDiscussionConfig } if data.SafeOutputs.UpdatePullRequests != nil { diff --git a/pkg/workflow/update_discussion.go b/pkg/workflow/update_discussion.go index 926bcd65ebf..fde900ead9b 100644 --- a/pkg/workflow/update_discussion.go +++ b/pkg/workflow/update_discussion.go @@ -9,8 +9,10 @@ var updateDiscussionLog = logger.New("workflow:update_discussion") // UpdateDiscussionsConfig holds configuration for updating GitHub discussions from agent output type UpdateDiscussionsConfig struct { UpdateEntityConfig `yaml:",inline"` - Title *bool `yaml:"title,omitempty"` // Allow updating discussion title - presence indicates field can be updated - Body *bool `yaml:"body,omitempty"` // Allow updating discussion body - presence indicates field can be updated + Title *bool `yaml:"title,omitempty"` // Allow updating discussion title - presence indicates field can be updated + Body *bool `yaml:"body,omitempty"` // Allow updating discussion body - presence indicates field can be updated + Labels *bool `yaml:"labels,omitempty"` // Allow updating discussion labels - presence indicates field can be updated + AllowedLabels []string `yaml:"allowed-labels,omitempty"` // Optional list of allowed labels. If omitted, any labels are allowed (including creating new ones). } // parseUpdateDiscussionsConfig handles update-discussion configuration @@ -47,6 +49,17 @@ func (c *Compiler) parseUpdateDiscussionsConfig(outputMap map[string]any) *Updat if _, exists := configMap["body"]; exists { updateDiscussionsConfig.Body = new(bool) } + + // Parse labels - presence of the key (even if nil/empty) indicates field can be updated + if _, exists := configMap["labels"]; exists { + updateDiscussionsConfig.Labels = new(bool) + } + + // Parse allowed-labels using shared helper + updateDiscussionsConfig.AllowedLabels = parseAllowedLabelsFromConfig(configMap) + if len(updateDiscussionsConfig.AllowedLabels) > 0 { + updateDiscussionLog.Printf("Allowed labels configured: %v", updateDiscussionsConfig.AllowedLabels) + } } } diff --git a/schemas/agent-output.json b/schemas/agent-output.json index f4a9df676c6..0dc62831291 100644 --- a/schemas/agent-output.json +++ b/schemas/agent-output.json @@ -330,7 +330,7 @@ }, "UpdateDiscussionOutput": { "title": "Update Discussion Output", - "description": "Output for updating an existing GitHub discussion's title and/or body. Note: The JavaScript validation ensures at least one of title or body is provided.", + "description": "Output for updating an existing GitHub discussion's title, body, and/or labels. Note: The JavaScript validation ensures at least one of title, body, or labels is provided.", "type": "object", "properties": { "type": { @@ -344,6 +344,13 @@ "type": "string", "description": "New discussion body to replace the existing content" }, + "labels": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of label names to set on the discussion (replaces existing labels)" + }, "discussion_number": { "oneOf": [ {"type": "number"}, From 3b610937fb17e9288e2ebb72a7f2bdf63cbfc9ab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 14:45:26 +0000 Subject: [PATCH 3/7] Add tests and fix label update implementation in update-discussion - Added Go tests for update-discussion configuration parsing with labels - Added JavaScript tests for discussion label updates - Fixed update_discussion.cjs to only query labels when needed - Updated update_runner.cjs to support labels parameter - Added canUpdateLabels to buildUpdateData function - Fixed existing tests to account for additional final query - All unit tests and JavaScript tests now pass Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/ai-moderator.lock.yml | 2 +- .github/workflows/archie.lock.yml | 2 +- .github/workflows/artifacts-summary.lock.yml | 2 +- .github/workflows/audit-workflows.lock.yml | 2 +- .github/workflows/blog-auditor.lock.yml | 2 +- .github/workflows/brave.lock.yml | 2 +- .../breaking-change-checker.lock.yml | 2 +- .github/workflows/campaign-generator.lock.yml | 2 +- .github/workflows/changeset.lock.yml | 2 +- .github/workflows/ci-coach.lock.yml | 2 +- .github/workflows/ci-doctor.lock.yml | 2 +- .../cli-consistency-checker.lock.yml | 2 +- .../workflows/cli-version-checker.lock.yml | 2 +- .github/workflows/cloclo.lock.yml | 2 +- .../workflows/close-old-discussions.lock.yml | 2 +- .../commit-changes-analyzer.lock.yml | 2 +- .../workflows/copilot-agent-analysis.lock.yml | 2 +- .../copilot-pr-merged-report.lock.yml | 2 +- .../copilot-pr-nlp-analysis.lock.yml | 2 +- .../copilot-pr-prompt-analysis.lock.yml | 2 +- .../copilot-session-insights.lock.yml | 2 +- .github/workflows/craft.lock.yml | 2 +- .../daily-assign-issue-to-user.lock.yml | 2 +- .github/workflows/daily-code-metrics.lock.yml | 2 +- .../daily-copilot-token-report.lock.yml | 2 +- .github/workflows/daily-doc-updater.lock.yml | 2 +- .github/workflows/daily-fact.lock.yml | 2 +- .github/workflows/daily-file-diet.lock.yml | 2 +- .../workflows/daily-firewall-report.lock.yml | 2 +- .../workflows/daily-issues-report.lock.yml | 2 +- .../daily-malicious-code-scan.lock.yml | 2 +- .../daily-multi-device-docs-tester.lock.yml | 2 +- .github/workflows/daily-news.lock.yml | 2 +- .../daily-performance-summary.lock.yml | 2 +- .../workflows/daily-repo-chronicle.lock.yml | 2 +- .../workflows/daily-workflow-updater.lock.yml | 2 +- .github/workflows/deep-report.lock.yml | 2 +- .../workflows/dependabot-go-checker.lock.yml | 2 +- .github/workflows/dev-hawk.lock.yml | 2 +- .github/workflows/dev.lock.yml | 2 +- .../developer-docs-consolidator.lock.yml | 2 +- .github/workflows/dictation-prompt.lock.yml | 2 +- .github/workflows/docs-noob-tester.lock.yml | 2 +- .../duplicate-code-detector.lock.yml | 2 +- .../example-permissions-warning.lock.yml | 2 +- .../example-workflow-analyzer.lock.yml | 2 +- .github/workflows/firewall-escape.lock.yml | 2 +- .github/workflows/firewall.lock.yml | 2 +- .../github-mcp-structural-analysis.lock.yml | 2 +- .../github-mcp-tools-report.lock.yml | 2 +- .../workflows/glossary-maintainer.lock.yml | 2 +- .github/workflows/go-fan.lock.yml | 2 +- ...ze-reduction-project64.campaign.g.lock.yml | 2 +- ...go-file-size-reduction.campaign.g.lock.yml | 2 +- .github/workflows/go-logger.lock.yml | 2 +- .../workflows/go-pattern-detector.lock.yml | 2 +- .github/workflows/grumpy-reviewer.lock.yml | 2 +- .github/workflows/hourly-ci-cleaner.lock.yml | 2 +- .../workflows/human-ai-collaboration.lock.yml | 2 +- .github/workflows/incident-response.lock.yml | 2 +- .../workflows/instructions-janitor.lock.yml | 2 +- .github/workflows/intelligence.lock.yml | 2 +- .github/workflows/issue-arborist.lock.yml | 2 +- .github/workflows/issue-classifier.lock.yml | 2 +- .github/workflows/issue-monster.lock.yml | 2 +- .github/workflows/issue-triage-agent.lock.yml | 2 +- .github/workflows/jsweep.lock.yml | 2 +- .../workflows/layout-spec-maintainer.lock.yml | 2 +- .github/workflows/lockfile-stats.lock.yml | 2 +- .github/workflows/mcp-inspector.lock.yml | 2 +- .github/workflows/mergefest.lock.yml | 2 +- .../workflows/notion-issue-summary.lock.yml | 2 +- .github/workflows/org-health-report.lock.yml | 2 +- .github/workflows/org-wide-rollout.lock.yml | 2 +- .github/workflows/pdf-summary.lock.yml | 2 +- .github/workflows/plan.lock.yml | 2 +- .github/workflows/poem-bot.lock.yml | 2 +- .github/workflows/portfolio-analyst.lock.yml | 2 +- .../workflows/pr-nitpick-reviewer.lock.yml | 2 +- .../prompt-clustering-analysis.lock.yml | 2 +- .github/workflows/python-data-charts.lock.yml | 2 +- .github/workflows/q.lock.yml | 2 +- .github/workflows/release.lock.yml | 2 +- .github/workflows/repo-tree-map.lock.yml | 2 +- .../repository-quality-improver.lock.yml | 2 +- .github/workflows/research.lock.yml | 2 +- .github/workflows/safe-output-health.lock.yml | 2 +- .../schema-consistency-checker.lock.yml | 2 +- .github/workflows/scout.lock.yml | 2 +- .../workflows/security-compliance.lock.yml | 2 +- .github/workflows/security-fix-pr.lock.yml | 2 +- .../semantic-function-refactor.lock.yml | 2 +- .../workflows/slide-deck-maintainer.lock.yml | 2 +- .github/workflows/smoke-claude.lock.yml | 2 +- .../workflows/smoke-codex-firewall.lock.yml | 2 +- .github/workflows/smoke-codex.lock.yml | 2 +- .../smoke-copilot-no-firewall.lock.yml | 2 +- .../smoke-copilot-playwright.lock.yml | 2 +- .../smoke-copilot-safe-inputs.lock.yml | 2 +- .github/workflows/smoke-copilot.lock.yml | 2 +- .github/workflows/smoke-detector.lock.yml | 2 +- .../smoke-srt-custom-config.lock.yml | 2 +- .github/workflows/smoke-srt.lock.yml | 2 +- .github/workflows/spec-kit-execute.lock.yml | 2 +- .github/workflows/spec-kit-executor.lock.yml | 2 +- .github/workflows/speckit-dispatcher.lock.yml | 2 +- .../workflows/stale-repo-identifier.lock.yml | 2 +- .../workflows/static-analysis-report.lock.yml | 2 +- .github/workflows/sub-issue-closer.lock.yml | 2 +- .github/workflows/super-linter.lock.yml | 2 +- .../workflows/technical-doc-writer.lock.yml | 2 +- .github/workflows/tidy.lock.yml | 2 +- .github/workflows/typist.lock.yml | 2 +- .github/workflows/unbloat-docs.lock.yml | 2 +- .github/workflows/video-analyzer.lock.yml | 2 +- .../workflows/weekly-issue-summary.lock.yml | 2 +- pkg/workflow/js/update_discussion.cjs | 56 +++- pkg/workflow/js/update_discussion.test.cjs | 221 +++++++++++++- pkg/workflow/js/update_runner.cjs | 20 +- pkg/workflow/update_discussion_test.go | 285 ++++++++++++++++++ 120 files changed, 684 insertions(+), 130 deletions(-) create mode 100644 pkg/workflow/update_discussion_test.go diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index bba63253f78..9070f507f8f 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -1915,7 +1915,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "AI Moderator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index c202e025cab..680148c7824 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -2592,7 +2592,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Archie", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index 177219859de..d5910638d3b 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1849,7 +1849,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Artifacts Summary", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index 0aaff0147a8..de610e91cb2 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -2035,7 +2035,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Agentic Workflow Audit Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index 985e1d34dc7..fae03022946 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1952,7 +1952,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Blog Auditor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index 524b4dc3409..bc61e8c57dc 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -2584,7 +2584,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Brave Web Search Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index ff550998aba..f840612c005 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1867,7 +1867,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Breaking Change Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/campaign-generator.lock.yml b/.github/workflows/campaign-generator.lock.yml index 84eb94c749e..55844a43656 100644 --- a/.github/workflows/campaign-generator.lock.yml +++ b/.github/workflows/campaign-generator.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "test", workflow_name: "Campaign Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 761f493c0c9..0620b1ba0b0 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -2624,7 +2624,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Changeset Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 2dbe08e8f5d..75d2dd4c969 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1914,7 +1914,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "CI Optimization Coach", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 21ecfeb7a75..6d7d7486f16 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1944,7 +1944,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "CI Failure Doctor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index a71563c74d9..c6e4b416d4a 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1877,7 +1877,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "CLI Consistency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index bee07123c3b..857dc901a4e 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1974,7 +1974,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "CLI Version Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index 8f4b82e8e22..f33f026aaeb 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -2824,7 +2824,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "/cloclo", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index 74ca431abbb..a6ded670167 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -1863,7 +1863,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Close Outdated Discussions", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index c1f1f050918..df1fc8d0c9c 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Commit Changes Analyzer", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 168f0109177..2efbdd501f9 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1962,7 +1962,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Copilot Agent PR Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index d662ba5129d..d184d045498 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -3202,7 +3202,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Copilot PR Merged Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 55ba19a3e52..7e05480dd76 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1937,7 +1937,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Copilot PR Conversation NLP Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index 695091d0e15..ef3279cc9e3 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Copilot PR Prompt Pattern Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 5de4c96a4a6..816fc72e95a 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -2017,7 +2017,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Copilot Session Insights", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index 70866da0ec5..d7eaad73172 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -2614,7 +2614,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Workflow Craft Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 57a8114d966..5507bb92f00 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -1877,7 +1877,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Auto-Assign Issue", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index b14099dd2ca..951526f502b 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1975,7 +1975,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Code Metrics and Trend Tracking Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 27d593b8cf8..4d4f02ed05d 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1924,7 +1924,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Copilot Token Consumption Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index a227867e8c6..5367f668d4e 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Documentation Updater", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 58b24d3718d..9c7dd9bc4fb 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1807,7 +1807,7 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Fact About gh-aw", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index e57644e37b4..052660dcdd0 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1992,7 +1992,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily File Diet", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index b2c2520978a..2b1fcfc5668 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1974,7 +1974,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Firewall Logs Collector and Reporter", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index 28addc7e227..bf561ad8f72 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1966,7 +1966,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Issues Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index fd76a0e433f..082650e4079 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1886,7 +1886,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Malicious Code Scan Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index b0b444d35e6..c8fd0295139 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -2006,7 +2006,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Multi-Device Docs Tester", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 0f19122336d..091b8fa7e0d 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily News", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index e5a74ad9db1..b12ae1c89d6 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -3647,7 +3647,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Project Performance Summary Generator (Using Safe Inputs)", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 36b9d1b4097..0f3e757a10a 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1921,7 +1921,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "The Daily Repository Chronicle", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index e49340b0b9c..881598aee45 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -1855,7 +1855,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Daily Workflow Updater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index 9abd3047df2..a5924a986b5 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1935,7 +1935,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "DeepReport - Intelligence Gathering Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index fb6ec954cbf..276ebdb62f3 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1916,7 +1916,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Dependabot Dependency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index 117dc2ffbf7..a13153ccac2 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1866,7 +1866,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Dev Hawk", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index 313c8ebfda9..ec82c32807a 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -3221,7 +3221,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Dev", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 5aa8d297fcf..67570962009 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -2039,7 +2039,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Developer Documentation Consolidator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index eb7c2552d04..8a1f314003e 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -1858,7 +1858,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Dictation Prompt Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index 89a99ff7215..10b23b872d4 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -1884,7 +1884,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Documentation Noob Tester", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index bdcf0947a76..8b0bd0a18d3 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1868,7 +1868,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Duplicate Code Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 1e2c733e8a6..5c670a1c8f6 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -324,7 +324,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Example: Properly Provisioned Permissions", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index 9eb5db51b23..a24e5865b91 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -1957,7 +1957,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Weekly Workflow Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index 89cf6ff3c79..fc96aade2e5 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -364,7 +364,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Firewall Escape", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index bce560b66cf..92c29f221cf 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -337,7 +337,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Firewall Test Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 2c4f8f9ca93..72ea112aafa 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -2009,7 +2009,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "GitHub MCP Structural Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index d5f782b6ba7..e0f7922132a 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1977,7 +1977,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "GitHub MCP Remote Server Tools Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index df27b7aa73c..25b3a0dabfd 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1893,7 +1893,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Glossary Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index e4cf057365c..840bc495edf 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1975,7 +1975,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Go Fan", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml index beb6382132c..03d92c75711 100644 --- a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml @@ -1909,7 +1909,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Go File Size Reduction Campaign (Project 64)", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml index 95389182569..b6623151d19 100644 --- a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml @@ -1909,7 +1909,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Go File Size Reduction Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index fda7d7eefd0..0c8370db4bc 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1972,7 +1972,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Go Logger Enhancement", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index d03dfd8843b..2209a809d29 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -1969,7 +1969,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Go Pattern Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 77196f70204..24f1f673c42 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -2655,7 +2655,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Grumpy Code Reviewer 🔥", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index ce84465fca0..3333f8ce553 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1886,7 +1886,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Hourly CI Cleaner", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/human-ai-collaboration.lock.yml b/.github/workflows/human-ai-collaboration.lock.yml index 414128721dc..d21f04a206d 100644 --- a/.github/workflows/human-ai-collaboration.lock.yml +++ b/.github/workflows/human-ai-collaboration.lock.yml @@ -1896,7 +1896,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Human-AI Collaboration Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/incident-response.lock.yml b/.github/workflows/incident-response.lock.yml index eae70f1acab..8f60d3786ed 100644 --- a/.github/workflows/incident-response.lock.yml +++ b/.github/workflows/incident-response.lock.yml @@ -2047,7 +2047,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Campaign - Incident Response", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index 4608fa9465f..c7706d54c4b 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -1956,7 +1956,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Instructions Janitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/intelligence.lock.yml b/.github/workflows/intelligence.lock.yml index 93c8b3a7184..3ecbba5aae0 100644 --- a/.github/workflows/intelligence.lock.yml +++ b/.github/workflows/intelligence.lock.yml @@ -1979,7 +1979,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Campaign Intelligence System", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 4580880b7ee..64e52d47a8a 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -1948,7 +1948,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Issue Arborist", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-classifier.lock.yml b/.github/workflows/issue-classifier.lock.yml index 23aa286d747..3fd89a23cc6 100644 --- a/.github/workflows/issue-classifier.lock.yml +++ b/.github/workflows/issue-classifier.lock.yml @@ -2504,7 +2504,7 @@ jobs: model: process.env. || "", version: "", agent_version: "", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Issue Classifier", experimental: false, supports_tools_allowlist: false, diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index aa05aa5d22e..5e257ec5eb8 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Issue Monster", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index 7c790db230a..d74e154e9d7 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -1822,7 +1822,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Issue Triage Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index edf2f4c9faf..73d7417b801 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -1890,7 +1890,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "jsweep - JavaScript Unbloater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index 752d657b7e3..b6bdbc5b2be 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -1860,7 +1860,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Layout Specification Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 3e03f86aef0..9374ea07796 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -1950,7 +1950,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Lockfile Statistics Analysis Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index 07568da0601..d57e76d8827 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -2144,7 +2144,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "MCP Inspector Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index bb08344716f..9b9ef1ada42 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -2251,7 +2251,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Mergefest", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index 536a70dc776..e95090271df 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -1821,7 +1821,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Issue Summary to Notion", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index e600cd1834d..2fe39cc69dc 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -1925,7 +1925,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Organization Health Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-wide-rollout.lock.yml b/.github/workflows/org-wide-rollout.lock.yml index 02de6dce701..3236d56ee87 100644 --- a/.github/workflows/org-wide-rollout.lock.yml +++ b/.github/workflows/org-wide-rollout.lock.yml @@ -2054,7 +2054,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Campaign - Org-Wide Rollout", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index fce6a49d03c..55637aa96eb 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -2612,7 +2612,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Resource Summarizer Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index 80c09424088..f8e6811fb4a 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -2659,7 +2659,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Plan Command", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index b4680b1baf2..32bb3223d6d 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -3118,7 +3118,7 @@ jobs: model: "gpt-5", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Poem Bot - A Creative Agentic Workflow", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index 542bca68a54..bdc6e483246 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -1954,7 +1954,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Automated Portfolio Analyst", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index 69a6ba38e35..11da557af42 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -2411,7 +2411,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "PR Nitpick Reviewer 🔍", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 54f823dab02..08025d4dd62 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -2027,7 +2027,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Copilot Agent Prompt Clustering Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 88417e60e05..44ca6bf30ca 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1942,7 +1942,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Python Data Visualization Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 80cf11bf154..2e05275d3a0 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -2722,7 +2722,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Q", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index 20dd4c6a7fe..c9905aa53a0 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1859,7 +1859,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Release", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index d9e0afb6685..7a3b5ce4fcf 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -1849,7 +1849,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Repository Tree Map Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 1c9f655ce6e..607f13857a2 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -1880,7 +1880,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Repository Quality Improvement Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index bb3ab4091b6..c3648e0f264 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -1865,7 +1865,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Basic Research Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index 260992b2f43..a723d3adb1c 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1979,7 +1979,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Safe Output Health Monitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index 1760550f232..dd205944e81 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -1914,7 +1914,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Schema Consistency Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 174a634a777..2ae4d24d3d1 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -2765,7 +2765,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Scout", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index fd551463c40..cfeba6ec454 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -1901,7 +1901,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Security Compliance Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index a374b12db81..51cf8bb736d 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -1964,7 +1964,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Security Fix PR", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index d0fa51e1556..749ad494b5f 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -1994,7 +1994,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Semantic Function Refactoring", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index ed9560cfdca..b066ffb5da3 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1895,7 +1895,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Slide Deck Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 8583e56c677..45a4a5b92a0 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -2500,7 +2500,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Claude", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex-firewall.lock.yml b/.github/workflows/smoke-codex-firewall.lock.yml index 9dd69926505..130d2af5fa5 100644 --- a/.github/workflows/smoke-codex-firewall.lock.yml +++ b/.github/workflows/smoke-codex-firewall.lock.yml @@ -2358,7 +2358,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Codex Firewall", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 31972050842..50da403f2b0 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -2415,7 +2415,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Codex", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index 1f54b9b5124..08dbdb16d6b 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -3704,7 +3704,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Copilot No Firewall", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index d8c3955e010..a709880ba90 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -3803,7 +3803,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Copilot Playwright", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-safe-inputs.lock.yml b/.github/workflows/smoke-copilot-safe-inputs.lock.yml index 649064889d0..f6b39761715 100644 --- a/.github/workflows/smoke-copilot-safe-inputs.lock.yml +++ b/.github/workflows/smoke-copilot-safe-inputs.lock.yml @@ -3653,7 +3653,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Copilot Safe Inputs", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index 9cfbea6672a..f9c4f80e284 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -2368,7 +2368,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Copilot", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 588246d6426..4d5fcda386c 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -2458,7 +2458,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke Detector - Smoke Test Failure Investigator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt-custom-config.lock.yml b/.github/workflows/smoke-srt-custom-config.lock.yml index 96636082c5f..7681456e10b 100644 --- a/.github/workflows/smoke-srt-custom-config.lock.yml +++ b/.github/workflows/smoke-srt-custom-config.lock.yml @@ -332,7 +332,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke SRT Custom Config", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt.lock.yml b/.github/workflows/smoke-srt.lock.yml index 3b4e3d2f12b..f7534b55af9 100644 --- a/.github/workflows/smoke-srt.lock.yml +++ b/.github/workflows/smoke-srt.lock.yml @@ -1804,7 +1804,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Smoke SRT", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-execute.lock.yml b/.github/workflows/spec-kit-execute.lock.yml index 547b5bc7fe0..58fa13d97ab 100644 --- a/.github/workflows/spec-kit-execute.lock.yml +++ b/.github/workflows/spec-kit-execute.lock.yml @@ -1861,7 +1861,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Spec-Kit Execute", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index 9e59df4026c..e111f3d42d5 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -1899,7 +1899,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Spec Kit Executor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/speckit-dispatcher.lock.yml b/.github/workflows/speckit-dispatcher.lock.yml index bf226b8baf7..82a3b86a631 100644 --- a/.github/workflows/speckit-dispatcher.lock.yml +++ b/.github/workflows/speckit-dispatcher.lock.yml @@ -2703,7 +2703,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Spec-Kit Command Dispatcher", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index 540f7bb363f..da5076f1182 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1991,7 +1991,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Stale Repository Identifier", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 8b15dca8455..9c7c49a069f 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1972,7 +1972,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Static Analysis Report", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 0c702db5c2e..3c683363397 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -1887,7 +1887,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Sub-Issue Closer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 0655f9924b5..031aafaf384 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -1893,7 +1893,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Super Linter Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index d905b6efcd1..f92f6c18653 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1962,7 +1962,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Technical Doc Writer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index 763f2ed7f27..d7781149e3c 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -2334,7 +2334,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Tidy", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index bad744fc151..43e6e2c6d69 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -1959,7 +1959,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Typist - Go Type Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index 9284e427130..f4415e5a7cd 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -2475,7 +2475,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Documentation Unbloat", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 689448de0e2..5a3a47e1447 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -1880,7 +1880,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Video Analysis Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index cf8e287ed54..28a25fd1d39 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -1876,7 +1876,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", + cli_version: "dev", workflow_name: "Weekly Issue Summary", experimental: false, supports_tools_allowlist: true, diff --git a/pkg/workflow/js/update_discussion.cjs b/pkg/workflow/js/update_discussion.cjs index deedbad7c77..4fc8035711d 100644 --- a/pkg/workflow/js/update_discussion.cjs +++ b/pkg/workflow/js/update_discussion.cjs @@ -26,8 +26,11 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update // Remove internal fields used for operation handling const { _operation, _rawBody, labels, ...fieldsToUpdate } = updateData; + // Check if labels should be updated based on environment variable + const shouldUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true" && labels !== undefined; + // First, fetch the discussion node ID using its number - const getDiscussionQuery = ` + const getDiscussionQuery = shouldUpdateLabels ? ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { @@ -44,6 +47,17 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } } } + ` : ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + } + } + } `; const queryResult = await github.graphql(getDiscussionQuery, { @@ -58,10 +72,10 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update const discussion = queryResult.repository.discussion; const discussionId = discussion.id; - const currentLabels = discussion.labels?.nodes || []; + const currentLabels = shouldUpdateLabels ? (discussion.labels?.nodes || []) : []; // Ensure at least one field is being updated - if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && labels === undefined) { + if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && !shouldUpdateLabels) { throw new Error("At least one field (title, body, or labels) must be provided for update"); } @@ -131,8 +145,8 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } } - // Update labels if provided - if (labels !== undefined && Array.isArray(labels)) { + // Update labels if provided and enabled + if (shouldUpdateLabels && Array.isArray(labels)) { // Get the repository ID to look up label IDs const repoQuery = ` query($owner: String!, $repo: String!) { @@ -208,7 +222,37 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } // Fetch the updated discussion to return - const finalQueryResult = await github.graphql(getDiscussionQuery, { + const finalQuery = shouldUpdateLabels ? ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + labels(first: 100) { + nodes { + id + name + } + } + } + } + } + ` : ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + } + } + } + `; + + const finalQueryResult = await github.graphql(finalQuery, { owner: context.repo.owner, repo: context.repo.repo, number: discussionNumber, diff --git a/pkg/workflow/js/update_discussion.test.cjs b/pkg/workflow/js/update_discussion.test.cjs index 518469fac05..eec35fd82bb 100644 --- a/pkg/workflow/js/update_discussion.test.cjs +++ b/pkg/workflow/js/update_discussion.test.cjs @@ -63,9 +63,11 @@ describe("update_discussion.cjs", () => { delete process.env.GH_AW_AGENT_OUTPUT; delete process.env.GH_AW_UPDATE_TITLE; delete process.env.GH_AW_UPDATE_BODY; + delete process.env.GH_AW_UPDATE_LABELS; delete process.env.GH_AW_UPDATE_TARGET; process.env.GH_AW_UPDATE_TITLE = "false"; process.env.GH_AW_UPDATE_BODY = "false"; + process.env.GH_AW_UPDATE_LABELS = "false"; const scriptPath = path.join(__dirname, "update_discussion.cjs"); updateDiscussionScript = fs.readFileSync(scriptPath, "utf8"); @@ -134,9 +136,19 @@ describe("update_discussion.cjs", () => { }, }); + // Mock the final query to get updated discussion + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + title: "Updated discussion title", + }, + }, + }); + await eval(`(async () => { ${updateDiscussionScript} })()`); - expect(mockGithub.graphql).toHaveBeenCalledTimes(2); + expect(mockGithub.graphql).toHaveBeenCalledTimes(3); expect(mockCore.setOutput).toHaveBeenCalledWith("discussion_number", 123); expect(mockCore.setOutput).toHaveBeenCalledWith("discussion_url", mockDiscussion.url); expect(mockCore.summary.addRaw).toHaveBeenCalled(); @@ -175,9 +187,19 @@ describe("update_discussion.cjs", () => { }, }); + // Mock the final query + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + body: "New discussion body content", + }, + }, + }); + await eval(`(async () => { ${updateDiscussionScript} })()`); - expect(mockGithub.graphql).toHaveBeenCalledTimes(2); + expect(mockGithub.graphql).toHaveBeenCalledTimes(3); expect(mockCore.setOutput).toHaveBeenCalledWith("discussion_number", 123); }); @@ -221,9 +243,20 @@ describe("update_discussion.cjs", () => { }, }); + // Mock the final query + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + title: "New title", + body: "New body content", + }, + }, + }); + await eval(`(async () => { ${updateDiscussionScript} })()`); - expect(mockGithub.graphql).toHaveBeenCalledTimes(2); + expect(mockGithub.graphql).toHaveBeenCalledTimes(3); }); it('should handle explicit discussion number with target "*"', async () => { @@ -265,9 +298,19 @@ describe("update_discussion.cjs", () => { }, }); + // Mock the final query + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + title: "Updated title", + }, + }, + }); + await eval(`(async () => { ${updateDiscussionScript} })()`); - expect(mockGithub.graphql).toHaveBeenCalledTimes(2); + expect(mockGithub.graphql).toHaveBeenCalledTimes(3); // Should use the explicit discussion number 456 expect(mockGithub.graphql).toHaveBeenNthCalledWith( 1, @@ -333,11 +376,179 @@ describe("update_discussion.cjs", () => { }); }); + // Mock the final query + mockGithub.graphql.mockImplementationOnce(() => { + return Promise.resolve({ + repository: { + discussion: { + ...mockDiscussion, + body: capturedBody, + }, + }, + }); + }); + await eval(`(async () => { ${updateDiscussionScript} })()`); - expect(mockGithub.graphql).toHaveBeenCalledTimes(2); + expect(mockGithub.graphql).toHaveBeenCalledTimes(3); // Verify the custom footer was used expect(capturedBody).toContain("Custom footer by"); expect(capturedBody).toContain("Custom Workflow"); }); + + it("should update discussion labels successfully", async () => { + setAgentOutput({ + items: [{ type: "update_discussion", labels: ["bug", "enhancement"] }], + }); + process.env.GH_AW_UPDATE_LABELS = "true"; + global.context.eventName = "discussion"; + + const mockDiscussion = { + id: "D_kwDOABCD123", + number: 123, + title: "Test Discussion", + body: "Test body", + url: "https://github.com/testowner/testrepo/discussions/123", + labels: { + nodes: [ + { id: "L_kwDOABCD001", name: "old-label" }, + ], + }, + }; + + const mockLabels = [ + { id: "L_kwDOABCD002", name: "bug" }, + { id: "L_kwDOABCD003", name: "enhancement" }, + ]; + + // Mock the first query to get discussion with labels + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: mockDiscussion, + }, + }); + + // Mock the repository labels query + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + id: "R_kwDOABCD", + labels: { + nodes: mockLabels, + }, + }, + }); + + // Mock remove labels mutation + mockGithub.graphql.mockResolvedValueOnce({ + removeLabelsFromLabelable: { + clientMutationId: null, + }, + }); + + // Mock add labels mutation + mockGithub.graphql.mockResolvedValueOnce({ + addLabelsToLabelable: { + clientMutationId: null, + }, + }); + + // Mock the final query to get updated discussion + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + labels: { + nodes: mockLabels, + }, + }, + }, + }); + + await eval(`(async () => { ${updateDiscussionScript} })()`); + + expect(mockGithub.graphql).toHaveBeenCalledTimes(5); + expect(mockCore.setOutput).toHaveBeenCalledWith("discussion_number", 123); + expect(mockCore.setOutput).toHaveBeenCalledWith("discussion_url", mockDiscussion.url); + }); + + it("should update both title and labels successfully", async () => { + setAgentOutput({ + items: [ + { + type: "update_discussion", + title: "New title", + labels: ["question"], + }, + ], + }); + process.env.GH_AW_UPDATE_TITLE = "true"; + process.env.GH_AW_UPDATE_LABELS = "true"; + global.context.eventName = "discussion"; + + const mockDiscussion = { + id: "D_kwDOABCD123", + number: 123, + title: "Old title", + body: "Old body", + url: "https://github.com/testowner/testrepo/discussions/123", + labels: { + nodes: [], + }, + }; + + const mockLabels = [ + { id: "L_kwDOABCD004", name: "question" }, + ]; + + // Mock the first query to get discussion + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: mockDiscussion, + }, + }); + + // Mock the title update mutation + mockGithub.graphql.mockResolvedValueOnce({ + updateDiscussion: { + discussion: { + ...mockDiscussion, + title: "New title", + }, + }, + }); + + // Mock the repository labels query + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + id: "R_kwDOABCD", + labels: { + nodes: mockLabels, + }, + }, + }); + + // Mock add labels mutation (no need to remove since there are no existing labels) + mockGithub.graphql.mockResolvedValueOnce({ + addLabelsToLabelable: { + clientMutationId: null, + }, + }); + + // Mock the final query to get updated discussion + mockGithub.graphql.mockResolvedValueOnce({ + repository: { + discussion: { + ...mockDiscussion, + title: "New title", + labels: { + nodes: mockLabels, + }, + }, + }, + }); + + await eval(`(async () => { ${updateDiscussionScript} })()`); + + expect(mockGithub.graphql).toHaveBeenCalledTimes(5); + }); }); diff --git a/pkg/workflow/js/update_runner.cjs b/pkg/workflow/js/update_runner.cjs index ba20cfa0100..b055b9f2bc2 100644 --- a/pkg/workflow/js/update_runner.cjs +++ b/pkg/workflow/js/update_runner.cjs @@ -82,11 +82,12 @@ function resolveTargetNumber(params) { * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -136,6 +137,17 @@ function buildUpdateData(params) { } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -180,12 +192,13 @@ async function runUpdateWorkflow(config) { const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -229,6 +242,7 @@ async function runUpdateWorkflow(config) { canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); diff --git a/pkg/workflow/update_discussion_test.go b/pkg/workflow/update_discussion_test.go new file mode 100644 index 00000000000..f18e3b08e6c --- /dev/null +++ b/pkg/workflow/update_discussion_test.go @@ -0,0 +1,285 @@ +package workflow + +import ( + "os" + "path/filepath" + "testing" + + "github.com/githubnext/gh-aw/pkg/testutil" +) + +func TestUpdateDiscussionConfigParsing(t *testing.T) { + // Create temporary directory for test files + tmpDir := testutil.TempDir(t, "output-update-discussion-test") + + // Test case with basic update-discussion configuration + testContent := `--- +on: + discussion: + types: [created] +permissions: + contents: read + discussions: write +engine: claude +strict: false +safe-outputs: + update-discussion: +--- + +# Test Update Discussion Configuration + +This workflow tests the update-discussion configuration parsing. +` + + testFile := filepath.Join(tmpDir, "test-update-discussion.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler(false, "", "test") + + // Parse the workflow data + workflowData, err := compiler.ParseWorkflowFile(testFile) + if err != nil { + t.Fatalf("Unexpected error parsing workflow with update-discussion config: %v", err) + } + + // Verify output configuration is parsed correctly + if workflowData.SafeOutputs == nil { + t.Fatal("Expected output configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions == nil { + t.Fatal("Expected update-discussion configuration to be parsed") + } + + // Check defaults + if workflowData.SafeOutputs.UpdateDiscussions.Max != 1 { + t.Fatalf("Expected max to be 1, got %d", workflowData.SafeOutputs.UpdateDiscussions.Max) + } + + if workflowData.SafeOutputs.UpdateDiscussions.Target != "" { + t.Fatalf("Expected target to be empty (default), got '%s'", workflowData.SafeOutputs.UpdateDiscussions.Target) + } + + if workflowData.SafeOutputs.UpdateDiscussions.Title != nil { + t.Fatal("Expected title to be nil by default (not updatable)") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Body != nil { + t.Fatal("Expected body to be nil by default (not updatable)") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Labels != nil { + t.Fatal("Expected labels to be nil by default (not updatable)") + } + + if len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels) != 0 { + t.Fatal("Expected allowed-labels to be empty by default") + } +} + +func TestUpdateDiscussionConfigWithAllOptions(t *testing.T) { + // Create temporary directory for test files + tmpDir := testutil.TempDir(t, "output-update-discussion-all-test") + + // Test case with all options configured + testContent := `--- +on: + discussion: + types: [created] +permissions: + contents: read + discussions: write +engine: claude +strict: false +safe-outputs: + update-discussion: + max: 3 + target: "*" + title: + body: + labels: + allowed-labels: [bug, enhancement, documentation] +--- + +# Test Update Discussion Full Configuration + +This workflow tests the update-discussion configuration with all options. +` + + testFile := filepath.Join(tmpDir, "test-update-discussion-full.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler(false, "", "test") + + // Parse the workflow data + workflowData, err := compiler.ParseWorkflowFile(testFile) + if err != nil { + t.Fatalf("Unexpected error parsing workflow with full update-discussion config: %v", err) + } + + // Verify output configuration is parsed correctly + if workflowData.SafeOutputs == nil { + t.Fatal("Expected output configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions == nil { + t.Fatal("Expected update-discussion configuration to be parsed") + } + + // Check all options + if workflowData.SafeOutputs.UpdateDiscussions.Max != 3 { + t.Fatalf("Expected max to be 3, got %d", workflowData.SafeOutputs.UpdateDiscussions.Max) + } + + if workflowData.SafeOutputs.UpdateDiscussions.Target != "*" { + t.Fatalf("Expected target to be '*', got '%s'", workflowData.SafeOutputs.UpdateDiscussions.Target) + } + + if workflowData.SafeOutputs.UpdateDiscussions.Title == nil { + t.Fatal("Expected title to be non-nil (updatable)") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Body == nil { + t.Fatal("Expected body to be non-nil (updatable)") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Labels == nil { + t.Fatal("Expected labels to be non-nil (updatable)") + } + + // Check allowed-labels + expectedAllowedLabels := []string{"bug", "enhancement", "documentation"} + if len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels) != len(expectedAllowedLabels) { + t.Fatalf("Expected %d allowed-labels, got %d", len(expectedAllowedLabels), len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels)) + } + + for i, expected := range expectedAllowedLabels { + if workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i] != expected { + t.Fatalf("Expected allowed-label[%d] to be '%s', got '%s'", i, expected, workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i]) + } + } +} + +func TestUpdateDiscussionConfigTargetParsing(t *testing.T) { + // Create temporary directory for test files + tmpDir := testutil.TempDir(t, "output-update-discussion-target-test") + + // Test case with specific target number + testContent := `--- +on: + discussion: + types: [created] +permissions: + contents: read + discussions: write +engine: claude +strict: false +safe-outputs: + update-discussion: + target: "123" + title: +--- + +# Test Update Discussion Target Configuration + +This workflow tests the update-discussion target configuration parsing. +` + + testFile := filepath.Join(tmpDir, "test-update-discussion-target.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler(false, "", "test") + + // Parse the workflow data + workflowData, err := compiler.ParseWorkflowFile(testFile) + if err != nil { + t.Fatalf("Unexpected error parsing workflow with target update-discussion config: %v", err) + } + + // Verify output configuration is parsed correctly + if workflowData.SafeOutputs == nil { + t.Fatal("Expected output configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions == nil { + t.Fatal("Expected update-discussion configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Target != "123" { + t.Fatalf("Expected target to be '123', got '%s'", workflowData.SafeOutputs.UpdateDiscussions.Target) + } + + if workflowData.SafeOutputs.UpdateDiscussions.Title == nil { + t.Fatal("Expected title to be non-nil (updatable)") + } +} + +func TestUpdateDiscussionConfigLabelsOnly(t *testing.T) { + // Create temporary directory for test files + tmpDir := testutil.TempDir(t, "output-update-discussion-labels-test") + + // Test case with only labels configuration + testContent := `--- +on: + discussion: + types: [created] +permissions: + contents: read + discussions: write +engine: claude +strict: false +safe-outputs: + update-discussion: + labels: + allowed-labels: [question, idea] +--- + +# Test Update Discussion Labels Configuration + +This workflow tests the update-discussion labels configuration. +` + + testFile := filepath.Join(tmpDir, "test-update-discussion-labels.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler(false, "", "test") + + // Parse the workflow data + workflowData, err := compiler.ParseWorkflowFile(testFile) + if err != nil { + t.Fatalf("Unexpected error parsing workflow with labels update-discussion config: %v", err) + } + + // Verify output configuration is parsed correctly + if workflowData.SafeOutputs == nil { + t.Fatal("Expected output configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions == nil { + t.Fatal("Expected update-discussion configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions.Labels == nil { + t.Fatal("Expected labels to be non-nil (updatable)") + } + + // Check allowed-labels + expectedAllowedLabels := []string{"question", "idea"} + if len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels) != len(expectedAllowedLabels) { + t.Fatalf("Expected %d allowed-labels, got %d", len(expectedAllowedLabels), len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels)) + } + + for i, expected := range expectedAllowedLabels { + if workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i] != expected { + t.Fatalf("Expected allowed-label[%d] to be '%s', got '%s'", i, expected, workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i]) + } + } +} From 11a91992446067df64b9c01b7d8d6add94e1c1bf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 15:00:50 +0000 Subject: [PATCH 4/7] Run make fmt and merge main to resolve conflicts - Fixed JavaScript formatting issues in update_discussion files - Merged origin/main to bring in latest changes - Resolved merge conflicts by recompiling all workflows - All linting checks now pass Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- .github/workflows/ai-moderator.lock.yml | 1 - .github/workflows/archie.lock.yml | 1 - .github/workflows/artifacts-summary.lock.yml | 1 - .github/workflows/audit-workflows.lock.yml | 1 - .github/workflows/blog-auditor.lock.yml | 1 - .github/workflows/brave.lock.yml | 1 - .../breaking-change-checker.lock.yml | 1 - .github/workflows/campaign-generator.lock.yml | 25 ++++-- .github/workflows/changeset.lock.yml | 25 ++++-- .github/workflows/ci-coach.lock.yml | 1 - .github/workflows/ci-doctor.lock.yml | 1 - .../cli-consistency-checker.lock.yml | 1 - .../workflows/cli-version-checker.lock.yml | 1 - .github/workflows/cloclo.lock.yml | 1 - .../workflows/close-old-discussions.lock.yml | 1 - .../commit-changes-analyzer.lock.yml | 1 - .../workflows/copilot-agent-analysis.lock.yml | 1 - .../copilot-pr-merged-report.lock.yml | 1 - .../copilot-pr-nlp-analysis.lock.yml | 1 - .../copilot-pr-prompt-analysis.lock.yml | 1 - .../copilot-session-insights.lock.yml | 1 - .github/workflows/craft.lock.yml | 1 - .../daily-assign-issue-to-user.lock.yml | 1 - .github/workflows/daily-code-metrics.lock.yml | 1 - .../daily-copilot-token-report.lock.yml | 1 - .github/workflows/daily-doc-updater.lock.yml | 1 - .github/workflows/daily-fact.lock.yml | 1 - .github/workflows/daily-file-diet.lock.yml | 1 - .../workflows/daily-firewall-report.lock.yml | 1 - .../workflows/daily-issues-report.lock.yml | 1 - .../daily-malicious-code-scan.lock.yml | 1 - .../daily-multi-device-docs-tester.lock.yml | 1 - .github/workflows/daily-news.lock.yml | 1 - .../daily-performance-summary.lock.yml | 1 - .../workflows/daily-repo-chronicle.lock.yml | 1 - .github/workflows/daily-team-status.lock.yml | 1 - .../workflows/daily-workflow-updater.lock.yml | 1 - .github/workflows/deep-report.lock.yml | 1 - .../workflows/dependabot-go-checker.lock.yml | 1 - .github/workflows/dev-hawk.lock.yml | 1 - .github/workflows/dev.lock.yml | 80 ++++++++++++++++--- .../developer-docs-consolidator.lock.yml | 1 - .github/workflows/dictation-prompt.lock.yml | 1 - .github/workflows/docs-noob-tester.lock.yml | 1 - .../duplicate-code-detector.lock.yml | 1 - .../example-permissions-warning.lock.yml | 1 - .../example-workflow-analyzer.lock.yml | 1 - .github/workflows/firewall-escape.lock.yml | 1 - .github/workflows/firewall.lock.yml | 1 - .../github-mcp-structural-analysis.lock.yml | 1 - .../github-mcp-tools-report.lock.yml | 1 - .../workflows/glossary-maintainer.lock.yml | 1 - .github/workflows/go-fan.lock.yml | 1 - ...ze-reduction-project64.campaign.g.lock.yml | 1 - ...go-file-size-reduction.campaign.g.lock.yml | 1 - .github/workflows/go-logger.lock.yml | 1 - .../workflows/go-pattern-detector.lock.yml | 1 - .github/workflows/grumpy-reviewer.lock.yml | 1 - .github/workflows/hourly-ci-cleaner.lock.yml | 1 - .../workflows/human-ai-collaboration.lock.yml | 1 - .github/workflows/incident-response.lock.yml | 1 - .../workflows/instructions-janitor.lock.yml | 1 - .github/workflows/intelligence.lock.yml | 1 - .github/workflows/issue-arborist.lock.yml | 1 - .github/workflows/issue-classifier.lock.yml | 1 - .github/workflows/issue-monster.lock.yml | 1 - .github/workflows/issue-triage-agent.lock.yml | 1 - .github/workflows/jsweep.lock.yml | 1 - .../workflows/layout-spec-maintainer.lock.yml | 1 - .github/workflows/lockfile-stats.lock.yml | 1 - .github/workflows/mcp-inspector.lock.yml | 1 - .github/workflows/mergefest.lock.yml | 1 - .../workflows/notion-issue-summary.lock.yml | 1 - .github/workflows/org-health-report.lock.yml | 1 - .github/workflows/org-wide-rollout.lock.yml | 1 - .github/workflows/pdf-summary.lock.yml | 1 - .github/workflows/plan.lock.yml | 1 - .github/workflows/poem-bot.lock.yml | 25 ++++-- .github/workflows/portfolio-analyst.lock.yml | 1 - .../workflows/pr-nitpick-reviewer.lock.yml | 1 - .../prompt-clustering-analysis.lock.yml | 1 - .github/workflows/python-data-charts.lock.yml | 1 - .github/workflows/q.lock.yml | 1 - .github/workflows/release.lock.yml | 1 - .github/workflows/repo-tree-map.lock.yml | 1 - .../repository-quality-improver.lock.yml | 1 - .github/workflows/research.lock.yml | 1 - .github/workflows/safe-output-health.lock.yml | 1 - .../schema-consistency-checker.lock.yml | 1 - .github/workflows/scout.lock.yml | 1 - .../workflows/security-compliance.lock.yml | 1 - .github/workflows/security-fix-pr.lock.yml | 1 - .../semantic-function-refactor.lock.yml | 1 - .../workflows/slide-deck-maintainer.lock.yml | 1 - .github/workflows/smoke-claude.lock.yml | 1 - .../workflows/smoke-codex-firewall.lock.yml | 1 - .github/workflows/smoke-codex.lock.yml | 1 - .../smoke-copilot-no-firewall.lock.yml | 1 - .../smoke-copilot-playwright.lock.yml | 1 - .../smoke-copilot-safe-inputs.lock.yml | 1 - .github/workflows/smoke-copilot.lock.yml | 1 - .github/workflows/smoke-detector.lock.yml | 1 - .../smoke-srt-custom-config.lock.yml | 1 - .github/workflows/smoke-srt.lock.yml | 1 - .github/workflows/spec-kit-execute.lock.yml | 1 - .github/workflows/spec-kit-executor.lock.yml | 1 - .github/workflows/speckit-dispatcher.lock.yml | 1 - .../workflows/stale-repo-identifier.lock.yml | 1 - .../workflows/static-analysis-report.lock.yml | 1 - .github/workflows/sub-issue-closer.lock.yml | 25 ++++-- .github/workflows/super-linter.lock.yml | 1 - .../workflows/technical-doc-writer.lock.yml | 1 - .github/workflows/tidy.lock.yml | 1 - .github/workflows/typist.lock.yml | 1 - .github/workflows/unbloat-docs.lock.yml | 1 - .github/workflows/video-analyzer.lock.yml | 1 - .../workflows/weekly-issue-summary.lock.yml | 1 - Makefile | 28 ++++++- docs/src/content/docs/setup/cli.md | 46 +++++------ pkg/workflow/compiler_yaml.go | 3 - pkg/workflow/js/update_discussion.cjs | 16 ++-- pkg/workflow/js/update_discussion.test.cjs | 8 +- 122 files changed, 206 insertions(+), 187 deletions(-) diff --git a/.github/workflows/ai-moderator.lock.yml b/.github/workflows/ai-moderator.lock.yml index 9070f507f8f..262e7b7e165 100644 --- a/.github/workflows/ai-moderator.lock.yml +++ b/.github/workflows/ai-moderator.lock.yml @@ -1915,7 +1915,6 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "AI Moderator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/archie.lock.yml b/.github/workflows/archie.lock.yml index 680148c7824..ecb19826136 100644 --- a/.github/workflows/archie.lock.yml +++ b/.github/workflows/archie.lock.yml @@ -2592,7 +2592,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Archie", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/artifacts-summary.lock.yml b/.github/workflows/artifacts-summary.lock.yml index d5910638d3b..ff879da5af2 100644 --- a/.github/workflows/artifacts-summary.lock.yml +++ b/.github/workflows/artifacts-summary.lock.yml @@ -1849,7 +1849,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Artifacts Summary", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/audit-workflows.lock.yml b/.github/workflows/audit-workflows.lock.yml index de610e91cb2..7fb51ca7d25 100644 --- a/.github/workflows/audit-workflows.lock.yml +++ b/.github/workflows/audit-workflows.lock.yml @@ -2035,7 +2035,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Agentic Workflow Audit Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/blog-auditor.lock.yml b/.github/workflows/blog-auditor.lock.yml index fae03022946..991ef5ef659 100644 --- a/.github/workflows/blog-auditor.lock.yml +++ b/.github/workflows/blog-auditor.lock.yml @@ -1952,7 +1952,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Blog Auditor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/brave.lock.yml b/.github/workflows/brave.lock.yml index bc61e8c57dc..607d233ab14 100644 --- a/.github/workflows/brave.lock.yml +++ b/.github/workflows/brave.lock.yml @@ -2584,7 +2584,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Brave Web Search Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/breaking-change-checker.lock.yml b/.github/workflows/breaking-change-checker.lock.yml index f840612c005..ee60630e421 100644 --- a/.github/workflows/breaking-change-checker.lock.yml +++ b/.github/workflows/breaking-change-checker.lock.yml @@ -1867,7 +1867,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Breaking Change Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/campaign-generator.lock.yml b/.github/workflows/campaign-generator.lock.yml index 55844a43656..9e17f015198 100644 --- a/.github/workflows/campaign-generator.lock.yml +++ b/.github/workflows/campaign-generator.lock.yml @@ -1937,7 +1937,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "test", workflow_name: "Campaign Generator", experimental: false, supports_tools_allowlist: true, @@ -7523,7 +7522,7 @@ jobs: }; EOF_4d21ccbd - cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_006d32d7' + cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_60283df2' // @ts-check /// @@ -7608,11 +7607,12 @@ jobs: * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -7662,6 +7662,17 @@ jobs: } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -7706,12 +7717,13 @@ jobs: const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -7755,6 +7767,7 @@ jobs: canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); @@ -7876,7 +7889,7 @@ jobs: createGetSummaryLine, }; - EOF_006d32d7 + EOF_60283df2 - name: Assign To Agent id: assign_to_agent if: ((!cancelled()) && (needs.agent.result != 'skipped')) && (contains(needs.agent.outputs.output_types, 'assign_to_agent')) diff --git a/.github/workflows/changeset.lock.yml b/.github/workflows/changeset.lock.yml index 0620b1ba0b0..5778d0a4d89 100644 --- a/.github/workflows/changeset.lock.yml +++ b/.github/workflows/changeset.lock.yml @@ -2624,7 +2624,6 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Changeset Generator", experimental: true, supports_tools_allowlist: true, @@ -8270,7 +8269,7 @@ jobs: }; EOF_d0693c3b - cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_006d32d7' + cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_60283df2' // @ts-check /// @@ -8355,11 +8354,12 @@ jobs: * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -8409,6 +8409,17 @@ jobs: } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -8453,12 +8464,13 @@ jobs: const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -8502,6 +8514,7 @@ jobs: canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); @@ -8623,7 +8636,7 @@ jobs: createGetSummaryLine, }; - EOF_006d32d7 + EOF_60283df2 - name: Update Pull Request id: update_pull_request if: ((!cancelled()) && (needs.agent.result != 'skipped')) && (contains(needs.agent.outputs.output_types, 'update_pull_request')) diff --git a/.github/workflows/ci-coach.lock.yml b/.github/workflows/ci-coach.lock.yml index 75d2dd4c969..b403448f9f2 100644 --- a/.github/workflows/ci-coach.lock.yml +++ b/.github/workflows/ci-coach.lock.yml @@ -1914,7 +1914,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "CI Optimization Coach", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/ci-doctor.lock.yml b/.github/workflows/ci-doctor.lock.yml index 6d7d7486f16..f6b9d0fb045 100644 --- a/.github/workflows/ci-doctor.lock.yml +++ b/.github/workflows/ci-doctor.lock.yml @@ -1944,7 +1944,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "CI Failure Doctor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-consistency-checker.lock.yml b/.github/workflows/cli-consistency-checker.lock.yml index c6e4b416d4a..cbd06ece31d 100644 --- a/.github/workflows/cli-consistency-checker.lock.yml +++ b/.github/workflows/cli-consistency-checker.lock.yml @@ -1877,7 +1877,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "CLI Consistency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/cli-version-checker.lock.yml b/.github/workflows/cli-version-checker.lock.yml index 857dc901a4e..d9c5047f930 100644 --- a/.github/workflows/cli-version-checker.lock.yml +++ b/.github/workflows/cli-version-checker.lock.yml @@ -1974,7 +1974,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "CLI Version Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/cloclo.lock.yml b/.github/workflows/cloclo.lock.yml index f33f026aaeb..c11476691b0 100644 --- a/.github/workflows/cloclo.lock.yml +++ b/.github/workflows/cloclo.lock.yml @@ -2824,7 +2824,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "/cloclo", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/close-old-discussions.lock.yml b/.github/workflows/close-old-discussions.lock.yml index a6ded670167..64f1e25f20f 100644 --- a/.github/workflows/close-old-discussions.lock.yml +++ b/.github/workflows/close-old-discussions.lock.yml @@ -1863,7 +1863,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Close Outdated Discussions", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/commit-changes-analyzer.lock.yml b/.github/workflows/commit-changes-analyzer.lock.yml index df1fc8d0c9c..9355290ae11 100644 --- a/.github/workflows/commit-changes-analyzer.lock.yml +++ b/.github/workflows/commit-changes-analyzer.lock.yml @@ -1937,7 +1937,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Commit Changes Analyzer", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 2efbdd501f9..9b2e573fa41 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -1962,7 +1962,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Copilot Agent PR Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml index d184d045498..4e11ef378d5 100644 --- a/.github/workflows/copilot-pr-merged-report.lock.yml +++ b/.github/workflows/copilot-pr-merged-report.lock.yml @@ -3202,7 +3202,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily Copilot PR Merged Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml index 7e05480dd76..a76cb9a9545 100644 --- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml +++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml @@ -1937,7 +1937,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Copilot PR Conversation NLP Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml index ef3279cc9e3..a4b6e82b91d 100644 --- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml +++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml @@ -1876,7 +1876,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Copilot PR Prompt Pattern Analysis", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index 816fc72e95a..10ce4c42a21 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -2017,7 +2017,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Copilot Session Insights", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/craft.lock.yml b/.github/workflows/craft.lock.yml index d7eaad73172..42664caa854 100644 --- a/.github/workflows/craft.lock.yml +++ b/.github/workflows/craft.lock.yml @@ -2614,7 +2614,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Workflow Craft Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-assign-issue-to-user.lock.yml b/.github/workflows/daily-assign-issue-to-user.lock.yml index 5507bb92f00..7eb18dfacc2 100644 --- a/.github/workflows/daily-assign-issue-to-user.lock.yml +++ b/.github/workflows/daily-assign-issue-to-user.lock.yml @@ -1877,7 +1877,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Auto-Assign Issue", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml index 951526f502b..bc66c83c493 100644 --- a/.github/workflows/daily-code-metrics.lock.yml +++ b/.github/workflows/daily-code-metrics.lock.yml @@ -1975,7 +1975,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Daily Code Metrics and Trend Tracking Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-copilot-token-report.lock.yml b/.github/workflows/daily-copilot-token-report.lock.yml index 4d4f02ed05d..6e8bf8fb53b 100644 --- a/.github/workflows/daily-copilot-token-report.lock.yml +++ b/.github/workflows/daily-copilot-token-report.lock.yml @@ -1924,7 +1924,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily Copilot Token Consumption Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-doc-updater.lock.yml b/.github/workflows/daily-doc-updater.lock.yml index 5367f668d4e..653acb4c5bd 100644 --- a/.github/workflows/daily-doc-updater.lock.yml +++ b/.github/workflows/daily-doc-updater.lock.yml @@ -1956,7 +1956,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Daily Documentation Updater", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-fact.lock.yml b/.github/workflows/daily-fact.lock.yml index 9c7dd9bc4fb..e9a535891e2 100644 --- a/.github/workflows/daily-fact.lock.yml +++ b/.github/workflows/daily-fact.lock.yml @@ -1807,7 +1807,6 @@ jobs: model: "gpt-5-mini", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Daily Fact About gh-aw", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-file-diet.lock.yml b/.github/workflows/daily-file-diet.lock.yml index 052660dcdd0..773ac66c935 100644 --- a/.github/workflows/daily-file-diet.lock.yml +++ b/.github/workflows/daily-file-diet.lock.yml @@ -1992,7 +1992,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily File Diet", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-firewall-report.lock.yml b/.github/workflows/daily-firewall-report.lock.yml index 2b1fcfc5668..6121ba1b192 100644 --- a/.github/workflows/daily-firewall-report.lock.yml +++ b/.github/workflows/daily-firewall-report.lock.yml @@ -1974,7 +1974,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily Firewall Logs Collector and Reporter", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-issues-report.lock.yml b/.github/workflows/daily-issues-report.lock.yml index bf561ad8f72..6214ff9e5dc 100644 --- a/.github/workflows/daily-issues-report.lock.yml +++ b/.github/workflows/daily-issues-report.lock.yml @@ -1966,7 +1966,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Daily Issues Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-malicious-code-scan.lock.yml b/.github/workflows/daily-malicious-code-scan.lock.yml index 082650e4079..f7279ab4913 100644 --- a/.github/workflows/daily-malicious-code-scan.lock.yml +++ b/.github/workflows/daily-malicious-code-scan.lock.yml @@ -1886,7 +1886,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily Malicious Code Scan Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-multi-device-docs-tester.lock.yml b/.github/workflows/daily-multi-device-docs-tester.lock.yml index c8fd0295139..a9de7840a82 100644 --- a/.github/workflows/daily-multi-device-docs-tester.lock.yml +++ b/.github/workflows/daily-multi-device-docs-tester.lock.yml @@ -2006,7 +2006,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Multi-Device Docs Tester", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-news.lock.yml b/.github/workflows/daily-news.lock.yml index 091b8fa7e0d..57d1b76ffa2 100644 --- a/.github/workflows/daily-news.lock.yml +++ b/.github/workflows/daily-news.lock.yml @@ -1956,7 +1956,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily News", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-performance-summary.lock.yml b/.github/workflows/daily-performance-summary.lock.yml index b12ae1c89d6..e19d3a049b9 100644 --- a/.github/workflows/daily-performance-summary.lock.yml +++ b/.github/workflows/daily-performance-summary.lock.yml @@ -3647,7 +3647,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Daily Project Performance Summary Generator (Using Safe Inputs)", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-repo-chronicle.lock.yml b/.github/workflows/daily-repo-chronicle.lock.yml index 0f3e757a10a..1e6f51f2c0e 100644 --- a/.github/workflows/daily-repo-chronicle.lock.yml +++ b/.github/workflows/daily-repo-chronicle.lock.yml @@ -1921,7 +1921,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "The Daily Repository Chronicle", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index 56d95352480..c5be529de0f 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1858,7 +1858,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "842229a33-dirty", workflow_name: "Daily Team Status", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/daily-workflow-updater.lock.yml b/.github/workflows/daily-workflow-updater.lock.yml index 881598aee45..ad0d3ed6bdb 100644 --- a/.github/workflows/daily-workflow-updater.lock.yml +++ b/.github/workflows/daily-workflow-updater.lock.yml @@ -1855,7 +1855,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Daily Workflow Updater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/deep-report.lock.yml b/.github/workflows/deep-report.lock.yml index a5924a986b5..5f01ba386b1 100644 --- a/.github/workflows/deep-report.lock.yml +++ b/.github/workflows/deep-report.lock.yml @@ -1935,7 +1935,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "DeepReport - Intelligence Gathering Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dependabot-go-checker.lock.yml b/.github/workflows/dependabot-go-checker.lock.yml index 276ebdb62f3..a7957bb738b 100644 --- a/.github/workflows/dependabot-go-checker.lock.yml +++ b/.github/workflows/dependabot-go-checker.lock.yml @@ -1916,7 +1916,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Dependabot Dependency Checker", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev-hawk.lock.yml b/.github/workflows/dev-hawk.lock.yml index a13153ccac2..b291e15f0e5 100644 --- a/.github/workflows/dev-hawk.lock.yml +++ b/.github/workflows/dev-hawk.lock.yml @@ -1866,7 +1866,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Dev Hawk", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/dev.lock.yml b/.github/workflows/dev.lock.yml index ec82c32807a..db50ba0729a 100644 --- a/.github/workflows/dev.lock.yml +++ b/.github/workflows/dev.lock.yml @@ -3221,7 +3221,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Dev", experimental: false, supports_tools_allowlist: true, @@ -8405,7 +8404,7 @@ jobs: }; EOF_4d21ccbd - cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_006d32d7' + cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_60283df2' // @ts-check /// @@ -8490,11 +8489,12 @@ jobs: * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -8544,6 +8544,17 @@ jobs: } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -8588,12 +8599,13 @@ jobs: const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -8637,6 +8649,7 @@ jobs: canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); @@ -8758,7 +8771,7 @@ jobs: createGetSummaryLine, }; - EOF_006d32d7 + EOF_60283df2 - name: Update Discussion id: update_discussion if: ((!cancelled()) && (needs.agent.result != 'skipped')) && (contains(needs.agent.outputs.output_types, 'update_discussion')) @@ -8790,7 +8803,9 @@ jobs: }); async function executeDiscussionUpdate(github, context, discussionNumber, updateData) { const { _operation, _rawBody, labels, ...fieldsToUpdate } = updateData; - const getDiscussionQuery = ` + const shouldUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true" && labels !== undefined; + const getDiscussionQuery = shouldUpdateLabels + ? ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { @@ -8807,6 +8822,18 @@ jobs: } } } + ` + : ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + } + } + } `; const queryResult = await github.graphql(getDiscussionQuery, { owner: context.repo.owner, @@ -8818,8 +8845,8 @@ jobs: } const discussion = queryResult.repository.discussion; const discussionId = discussion.id; - const currentLabels = discussion.labels?.nodes || []; - if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && labels === undefined) { + const currentLabels = shouldUpdateLabels ? discussion.labels?.nodes || [] : []; + if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && !shouldUpdateLabels) { throw new Error("At least one field (title, body, or labels) must be provided for update"); } if (fieldsToUpdate.body !== undefined) { @@ -8873,7 +8900,7 @@ jobs: throw new Error("Failed to update discussion"); } } - if (labels !== undefined && Array.isArray(labels)) { + if (shouldUpdateLabels && Array.isArray(labels)) { const repoQuery = ` query($owner: String!, $repo: String!) { repository(owner: $owner, name: $repo) { @@ -8935,7 +8962,38 @@ jobs: }); } } - const finalQueryResult = await github.graphql(getDiscussionQuery, { + const finalQuery = shouldUpdateLabels + ? ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + labels(first: 100) { + nodes { + id + name + } + } + } + } + } + ` + : ` + query($owner: String!, $repo: String!, $number: Int!) { + repository(owner: $owner, name: $repo) { + discussion(number: $number) { + id + title + body + url + } + } + } + `; + const finalQueryResult = await github.graphql(finalQuery, { owner: context.repo.owner, repo: context.repo.repo, number: discussionNumber, diff --git a/.github/workflows/developer-docs-consolidator.lock.yml b/.github/workflows/developer-docs-consolidator.lock.yml index 67570962009..9c166dde791 100644 --- a/.github/workflows/developer-docs-consolidator.lock.yml +++ b/.github/workflows/developer-docs-consolidator.lock.yml @@ -2039,7 +2039,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Developer Documentation Consolidator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/dictation-prompt.lock.yml b/.github/workflows/dictation-prompt.lock.yml index 8a1f314003e..30a816100c3 100644 --- a/.github/workflows/dictation-prompt.lock.yml +++ b/.github/workflows/dictation-prompt.lock.yml @@ -1858,7 +1858,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Dictation Prompt Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/docs-noob-tester.lock.yml b/.github/workflows/docs-noob-tester.lock.yml index 10b23b872d4..f6154d8f4e8 100644 --- a/.github/workflows/docs-noob-tester.lock.yml +++ b/.github/workflows/docs-noob-tester.lock.yml @@ -1884,7 +1884,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Documentation Noob Tester", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/duplicate-code-detector.lock.yml b/.github/workflows/duplicate-code-detector.lock.yml index 8b0bd0a18d3..e1b97264ac8 100644 --- a/.github/workflows/duplicate-code-detector.lock.yml +++ b/.github/workflows/duplicate-code-detector.lock.yml @@ -1868,7 +1868,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Duplicate Code Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/example-permissions-warning.lock.yml b/.github/workflows/example-permissions-warning.lock.yml index 5c670a1c8f6..2edefd8115d 100644 --- a/.github/workflows/example-permissions-warning.lock.yml +++ b/.github/workflows/example-permissions-warning.lock.yml @@ -324,7 +324,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Example: Properly Provisioned Permissions", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/example-workflow-analyzer.lock.yml b/.github/workflows/example-workflow-analyzer.lock.yml index a24e5865b91..b25971a5a47 100644 --- a/.github/workflows/example-workflow-analyzer.lock.yml +++ b/.github/workflows/example-workflow-analyzer.lock.yml @@ -1957,7 +1957,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Weekly Workflow Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall-escape.lock.yml b/.github/workflows/firewall-escape.lock.yml index fc96aade2e5..24140c3ec24 100644 --- a/.github/workflows/firewall-escape.lock.yml +++ b/.github/workflows/firewall-escape.lock.yml @@ -364,7 +364,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Firewall Escape", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/firewall.lock.yml b/.github/workflows/firewall.lock.yml index 92c29f221cf..a32b501c8f4 100644 --- a/.github/workflows/firewall.lock.yml +++ b/.github/workflows/firewall.lock.yml @@ -337,7 +337,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Firewall Test Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-structural-analysis.lock.yml b/.github/workflows/github-mcp-structural-analysis.lock.yml index 72ea112aafa..5d8af8fb622 100644 --- a/.github/workflows/github-mcp-structural-analysis.lock.yml +++ b/.github/workflows/github-mcp-structural-analysis.lock.yml @@ -2009,7 +2009,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "GitHub MCP Structural Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/github-mcp-tools-report.lock.yml b/.github/workflows/github-mcp-tools-report.lock.yml index e0f7922132a..8a420c0f45a 100644 --- a/.github/workflows/github-mcp-tools-report.lock.yml +++ b/.github/workflows/github-mcp-tools-report.lock.yml @@ -1977,7 +1977,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "GitHub MCP Remote Server Tools Report Generator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/glossary-maintainer.lock.yml b/.github/workflows/glossary-maintainer.lock.yml index 25b3a0dabfd..fca7bf23f63 100644 --- a/.github/workflows/glossary-maintainer.lock.yml +++ b/.github/workflows/glossary-maintainer.lock.yml @@ -1893,7 +1893,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Glossary Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-fan.lock.yml b/.github/workflows/go-fan.lock.yml index 840bc495edf..20f7b4a6205 100644 --- a/.github/workflows/go-fan.lock.yml +++ b/.github/workflows/go-fan.lock.yml @@ -1975,7 +1975,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Go Fan", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml index 03d92c75711..14acf2aa13d 100644 --- a/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction-project64.campaign.g.lock.yml @@ -1909,7 +1909,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Go File Size Reduction Campaign (Project 64)", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml index b6623151d19..2642301f8fc 100644 --- a/.github/workflows/go-file-size-reduction.campaign.g.lock.yml +++ b/.github/workflows/go-file-size-reduction.campaign.g.lock.yml @@ -1909,7 +1909,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Go File Size Reduction Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/go-logger.lock.yml b/.github/workflows/go-logger.lock.yml index 0c8370db4bc..5106c2e850a 100644 --- a/.github/workflows/go-logger.lock.yml +++ b/.github/workflows/go-logger.lock.yml @@ -1972,7 +1972,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Go Logger Enhancement", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/go-pattern-detector.lock.yml b/.github/workflows/go-pattern-detector.lock.yml index 2209a809d29..1170dfd5d92 100644 --- a/.github/workflows/go-pattern-detector.lock.yml +++ b/.github/workflows/go-pattern-detector.lock.yml @@ -1969,7 +1969,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Go Pattern Detector", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/grumpy-reviewer.lock.yml b/.github/workflows/grumpy-reviewer.lock.yml index 24f1f673c42..10d300cfdc5 100644 --- a/.github/workflows/grumpy-reviewer.lock.yml +++ b/.github/workflows/grumpy-reviewer.lock.yml @@ -2655,7 +2655,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Grumpy Code Reviewer 🔥", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/hourly-ci-cleaner.lock.yml b/.github/workflows/hourly-ci-cleaner.lock.yml index 3333f8ce553..e76ca9ecfd4 100644 --- a/.github/workflows/hourly-ci-cleaner.lock.yml +++ b/.github/workflows/hourly-ci-cleaner.lock.yml @@ -1886,7 +1886,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Hourly CI Cleaner", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/human-ai-collaboration.lock.yml b/.github/workflows/human-ai-collaboration.lock.yml index d21f04a206d..0c633634692 100644 --- a/.github/workflows/human-ai-collaboration.lock.yml +++ b/.github/workflows/human-ai-collaboration.lock.yml @@ -1896,7 +1896,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Human-AI Collaboration Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/incident-response.lock.yml b/.github/workflows/incident-response.lock.yml index 8f60d3786ed..44d7bee0719 100644 --- a/.github/workflows/incident-response.lock.yml +++ b/.github/workflows/incident-response.lock.yml @@ -2047,7 +2047,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Campaign - Incident Response", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/instructions-janitor.lock.yml b/.github/workflows/instructions-janitor.lock.yml index c7706d54c4b..19ce06f23b2 100644 --- a/.github/workflows/instructions-janitor.lock.yml +++ b/.github/workflows/instructions-janitor.lock.yml @@ -1956,7 +1956,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Instructions Janitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/intelligence.lock.yml b/.github/workflows/intelligence.lock.yml index 3ecbba5aae0..2289db83e0b 100644 --- a/.github/workflows/intelligence.lock.yml +++ b/.github/workflows/intelligence.lock.yml @@ -1979,7 +1979,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Campaign Intelligence System", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-arborist.lock.yml b/.github/workflows/issue-arborist.lock.yml index 64e52d47a8a..e09bf97bca1 100644 --- a/.github/workflows/issue-arborist.lock.yml +++ b/.github/workflows/issue-arborist.lock.yml @@ -1948,7 +1948,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Issue Arborist", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-classifier.lock.yml b/.github/workflows/issue-classifier.lock.yml index 3fd89a23cc6..b1691fb00d7 100644 --- a/.github/workflows/issue-classifier.lock.yml +++ b/.github/workflows/issue-classifier.lock.yml @@ -2504,7 +2504,6 @@ jobs: model: process.env. || "", version: "", agent_version: "", - cli_version: "dev", workflow_name: "Issue Classifier", experimental: false, supports_tools_allowlist: false, diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index 5e257ec5eb8..b706e9acbc5 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -1876,7 +1876,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Issue Monster", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/issue-triage-agent.lock.yml b/.github/workflows/issue-triage-agent.lock.yml index d74e154e9d7..38b89f85c08 100644 --- a/.github/workflows/issue-triage-agent.lock.yml +++ b/.github/workflows/issue-triage-agent.lock.yml @@ -1822,7 +1822,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Issue Triage Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/jsweep.lock.yml b/.github/workflows/jsweep.lock.yml index 73d7417b801..8271a988edd 100644 --- a/.github/workflows/jsweep.lock.yml +++ b/.github/workflows/jsweep.lock.yml @@ -1890,7 +1890,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "jsweep - JavaScript Unbloater", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/layout-spec-maintainer.lock.yml b/.github/workflows/layout-spec-maintainer.lock.yml index b6bdbc5b2be..c9257a281cf 100644 --- a/.github/workflows/layout-spec-maintainer.lock.yml +++ b/.github/workflows/layout-spec-maintainer.lock.yml @@ -1860,7 +1860,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Layout Specification Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/lockfile-stats.lock.yml b/.github/workflows/lockfile-stats.lock.yml index 9374ea07796..00e6cd5d2da 100644 --- a/.github/workflows/lockfile-stats.lock.yml +++ b/.github/workflows/lockfile-stats.lock.yml @@ -1950,7 +1950,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Lockfile Statistics Analysis Agent", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/mcp-inspector.lock.yml b/.github/workflows/mcp-inspector.lock.yml index d57e76d8827..a24d1d79a64 100644 --- a/.github/workflows/mcp-inspector.lock.yml +++ b/.github/workflows/mcp-inspector.lock.yml @@ -2144,7 +2144,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "MCP Inspector Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/mergefest.lock.yml b/.github/workflows/mergefest.lock.yml index 9b9ef1ada42..115aa3b78cf 100644 --- a/.github/workflows/mergefest.lock.yml +++ b/.github/workflows/mergefest.lock.yml @@ -2251,7 +2251,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Mergefest", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/notion-issue-summary.lock.yml b/.github/workflows/notion-issue-summary.lock.yml index e95090271df..d0ec91acd84 100644 --- a/.github/workflows/notion-issue-summary.lock.yml +++ b/.github/workflows/notion-issue-summary.lock.yml @@ -1821,7 +1821,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Issue Summary to Notion", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-health-report.lock.yml b/.github/workflows/org-health-report.lock.yml index 2fe39cc69dc..8c01729ed2e 100644 --- a/.github/workflows/org-health-report.lock.yml +++ b/.github/workflows/org-health-report.lock.yml @@ -1925,7 +1925,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Organization Health Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/org-wide-rollout.lock.yml b/.github/workflows/org-wide-rollout.lock.yml index 3236d56ee87..1a1bfb0f583 100644 --- a/.github/workflows/org-wide-rollout.lock.yml +++ b/.github/workflows/org-wide-rollout.lock.yml @@ -2054,7 +2054,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Campaign - Org-Wide Rollout", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pdf-summary.lock.yml b/.github/workflows/pdf-summary.lock.yml index 55637aa96eb..bc56d8afd66 100644 --- a/.github/workflows/pdf-summary.lock.yml +++ b/.github/workflows/pdf-summary.lock.yml @@ -2612,7 +2612,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Resource Summarizer Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/plan.lock.yml b/.github/workflows/plan.lock.yml index f8e6811fb4a..122df6d6325 100644 --- a/.github/workflows/plan.lock.yml +++ b/.github/workflows/plan.lock.yml @@ -2659,7 +2659,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Plan Command", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index 32bb3223d6d..2b6a7a4af85 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -3118,7 +3118,6 @@ jobs: model: "gpt-5", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Poem Bot - A Creative Agentic Workflow", experimental: false, supports_tools_allowlist: true, @@ -10634,7 +10633,7 @@ jobs: }; EOF_4d21ccbd - cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_006d32d7' + cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_60283df2' // @ts-check /// @@ -10719,11 +10718,12 @@ jobs: * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -10773,6 +10773,17 @@ jobs: } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -10817,12 +10828,13 @@ jobs: const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -10866,6 +10878,7 @@ jobs: canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); @@ -10987,7 +11000,7 @@ jobs: createGetSummaryLine, }; - EOF_006d32d7 + EOF_60283df2 - name: Create Issue id: create_issue if: ((!cancelled()) && (needs.agent.result != 'skipped')) && (contains(needs.agent.outputs.output_types, 'create_issue')) diff --git a/.github/workflows/portfolio-analyst.lock.yml b/.github/workflows/portfolio-analyst.lock.yml index bdc6e483246..7210e9c56d1 100644 --- a/.github/workflows/portfolio-analyst.lock.yml +++ b/.github/workflows/portfolio-analyst.lock.yml @@ -1954,7 +1954,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Automated Portfolio Analyst", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/pr-nitpick-reviewer.lock.yml b/.github/workflows/pr-nitpick-reviewer.lock.yml index 11da557af42..e06d79500ae 100644 --- a/.github/workflows/pr-nitpick-reviewer.lock.yml +++ b/.github/workflows/pr-nitpick-reviewer.lock.yml @@ -2411,7 +2411,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "PR Nitpick Reviewer 🔍", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index 08025d4dd62..c33c75f6b9b 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -2027,7 +2027,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Copilot Agent Prompt Clustering Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/python-data-charts.lock.yml b/.github/workflows/python-data-charts.lock.yml index 44ca6bf30ca..256139dcfa6 100644 --- a/.github/workflows/python-data-charts.lock.yml +++ b/.github/workflows/python-data-charts.lock.yml @@ -1942,7 +1942,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Python Data Visualization Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/q.lock.yml b/.github/workflows/q.lock.yml index 2e05275d3a0..2844f90ced8 100644 --- a/.github/workflows/q.lock.yml +++ b/.github/workflows/q.lock.yml @@ -2722,7 +2722,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Q", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/release.lock.yml b/.github/workflows/release.lock.yml index c9905aa53a0..56fe9373b4a 100644 --- a/.github/workflows/release.lock.yml +++ b/.github/workflows/release.lock.yml @@ -1859,7 +1859,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Release", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repo-tree-map.lock.yml b/.github/workflows/repo-tree-map.lock.yml index 7a3b5ce4fcf..513e49f1cc7 100644 --- a/.github/workflows/repo-tree-map.lock.yml +++ b/.github/workflows/repo-tree-map.lock.yml @@ -1849,7 +1849,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Repository Tree Map Generator", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/repository-quality-improver.lock.yml b/.github/workflows/repository-quality-improver.lock.yml index 607f13857a2..7eadc2aa083 100644 --- a/.github/workflows/repository-quality-improver.lock.yml +++ b/.github/workflows/repository-quality-improver.lock.yml @@ -1880,7 +1880,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Repository Quality Improvement Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/research.lock.yml b/.github/workflows/research.lock.yml index c3648e0f264..39bfc9f86ab 100644 --- a/.github/workflows/research.lock.yml +++ b/.github/workflows/research.lock.yml @@ -1865,7 +1865,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Basic Research Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/safe-output-health.lock.yml b/.github/workflows/safe-output-health.lock.yml index a723d3adb1c..ab7e43a2828 100644 --- a/.github/workflows/safe-output-health.lock.yml +++ b/.github/workflows/safe-output-health.lock.yml @@ -1979,7 +1979,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Safe Output Health Monitor", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/schema-consistency-checker.lock.yml b/.github/workflows/schema-consistency-checker.lock.yml index dd205944e81..1e965d694e5 100644 --- a/.github/workflows/schema-consistency-checker.lock.yml +++ b/.github/workflows/schema-consistency-checker.lock.yml @@ -1914,7 +1914,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Schema Consistency Checker", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/scout.lock.yml b/.github/workflows/scout.lock.yml index 2ae4d24d3d1..204620cb0ff 100644 --- a/.github/workflows/scout.lock.yml +++ b/.github/workflows/scout.lock.yml @@ -2765,7 +2765,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Scout", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/security-compliance.lock.yml b/.github/workflows/security-compliance.lock.yml index cfeba6ec454..db7770900a5 100644 --- a/.github/workflows/security-compliance.lock.yml +++ b/.github/workflows/security-compliance.lock.yml @@ -1901,7 +1901,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Security Compliance Campaign", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/security-fix-pr.lock.yml b/.github/workflows/security-fix-pr.lock.yml index 51cf8bb736d..2291277fb25 100644 --- a/.github/workflows/security-fix-pr.lock.yml +++ b/.github/workflows/security-fix-pr.lock.yml @@ -1964,7 +1964,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Security Fix PR", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/semantic-function-refactor.lock.yml b/.github/workflows/semantic-function-refactor.lock.yml index 749ad494b5f..ee42ce6d0a5 100644 --- a/.github/workflows/semantic-function-refactor.lock.yml +++ b/.github/workflows/semantic-function-refactor.lock.yml @@ -1994,7 +1994,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Semantic Function Refactoring", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/slide-deck-maintainer.lock.yml b/.github/workflows/slide-deck-maintainer.lock.yml index b066ffb5da3..c89f026a960 100644 --- a/.github/workflows/slide-deck-maintainer.lock.yml +++ b/.github/workflows/slide-deck-maintainer.lock.yml @@ -1895,7 +1895,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Slide Deck Maintainer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-claude.lock.yml b/.github/workflows/smoke-claude.lock.yml index 45a4a5b92a0..d20b0fd8c90 100644 --- a/.github/workflows/smoke-claude.lock.yml +++ b/.github/workflows/smoke-claude.lock.yml @@ -2500,7 +2500,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Smoke Claude", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex-firewall.lock.yml b/.github/workflows/smoke-codex-firewall.lock.yml index 130d2af5fa5..2531adc4354 100644 --- a/.github/workflows/smoke-codex-firewall.lock.yml +++ b/.github/workflows/smoke-codex-firewall.lock.yml @@ -2358,7 +2358,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Smoke Codex Firewall", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-codex.lock.yml b/.github/workflows/smoke-codex.lock.yml index 50da403f2b0..f9669dea743 100644 --- a/.github/workflows/smoke-codex.lock.yml +++ b/.github/workflows/smoke-codex.lock.yml @@ -2415,7 +2415,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CODEX || "", version: "", agent_version: "0.73.0", - cli_version: "dev", workflow_name: "Smoke Codex", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-no-firewall.lock.yml b/.github/workflows/smoke-copilot-no-firewall.lock.yml index 08dbdb16d6b..1644fc0c8c8 100644 --- a/.github/workflows/smoke-copilot-no-firewall.lock.yml +++ b/.github/workflows/smoke-copilot-no-firewall.lock.yml @@ -3704,7 +3704,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke Copilot No Firewall", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-playwright.lock.yml b/.github/workflows/smoke-copilot-playwright.lock.yml index a709880ba90..c4ce1e244bf 100644 --- a/.github/workflows/smoke-copilot-playwright.lock.yml +++ b/.github/workflows/smoke-copilot-playwright.lock.yml @@ -3803,7 +3803,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke Copilot Playwright", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot-safe-inputs.lock.yml b/.github/workflows/smoke-copilot-safe-inputs.lock.yml index f6b39761715..a520f7a5d30 100644 --- a/.github/workflows/smoke-copilot-safe-inputs.lock.yml +++ b/.github/workflows/smoke-copilot-safe-inputs.lock.yml @@ -3653,7 +3653,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke Copilot Safe Inputs", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-copilot.lock.yml b/.github/workflows/smoke-copilot.lock.yml index f9c4f80e284..1c36dbe319e 100644 --- a/.github/workflows/smoke-copilot.lock.yml +++ b/.github/workflows/smoke-copilot.lock.yml @@ -2368,7 +2368,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke Copilot", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-detector.lock.yml b/.github/workflows/smoke-detector.lock.yml index 4d5fcda386c..b4aba6d543e 100644 --- a/.github/workflows/smoke-detector.lock.yml +++ b/.github/workflows/smoke-detector.lock.yml @@ -2458,7 +2458,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Smoke Detector - Smoke Test Failure Investigator", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt-custom-config.lock.yml b/.github/workflows/smoke-srt-custom-config.lock.yml index 7681456e10b..8bcc0c476e0 100644 --- a/.github/workflows/smoke-srt-custom-config.lock.yml +++ b/.github/workflows/smoke-srt-custom-config.lock.yml @@ -332,7 +332,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke SRT Custom Config", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/smoke-srt.lock.yml b/.github/workflows/smoke-srt.lock.yml index f7534b55af9..68c386b62a6 100644 --- a/.github/workflows/smoke-srt.lock.yml +++ b/.github/workflows/smoke-srt.lock.yml @@ -1804,7 +1804,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Smoke SRT", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-execute.lock.yml b/.github/workflows/spec-kit-execute.lock.yml index 58fa13d97ab..52a32e5c0e3 100644 --- a/.github/workflows/spec-kit-execute.lock.yml +++ b/.github/workflows/spec-kit-execute.lock.yml @@ -1861,7 +1861,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Spec-Kit Execute", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/spec-kit-executor.lock.yml b/.github/workflows/spec-kit-executor.lock.yml index e111f3d42d5..e5a7ad8d5e5 100644 --- a/.github/workflows/spec-kit-executor.lock.yml +++ b/.github/workflows/spec-kit-executor.lock.yml @@ -1899,7 +1899,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Spec Kit Executor", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/speckit-dispatcher.lock.yml b/.github/workflows/speckit-dispatcher.lock.yml index 82a3b86a631..7089b82df61 100644 --- a/.github/workflows/speckit-dispatcher.lock.yml +++ b/.github/workflows/speckit-dispatcher.lock.yml @@ -2703,7 +2703,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Spec-Kit Command Dispatcher", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/stale-repo-identifier.lock.yml b/.github/workflows/stale-repo-identifier.lock.yml index da5076f1182..814b0ab8f5b 100644 --- a/.github/workflows/stale-repo-identifier.lock.yml +++ b/.github/workflows/stale-repo-identifier.lock.yml @@ -1991,7 +1991,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Stale Repository Identifier", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/static-analysis-report.lock.yml b/.github/workflows/static-analysis-report.lock.yml index 9c7c49a069f..5ff8eb2a2ff 100644 --- a/.github/workflows/static-analysis-report.lock.yml +++ b/.github/workflows/static-analysis-report.lock.yml @@ -1972,7 +1972,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Static Analysis Report", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/sub-issue-closer.lock.yml b/.github/workflows/sub-issue-closer.lock.yml index 3c683363397..68936429e28 100644 --- a/.github/workflows/sub-issue-closer.lock.yml +++ b/.github/workflows/sub-issue-closer.lock.yml @@ -1887,7 +1887,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Sub-Issue Closer", experimental: false, supports_tools_allowlist: true, @@ -7429,7 +7428,7 @@ jobs: }; EOF_4d21ccbd - cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_006d32d7' + cat > /tmp/gh-aw/scripts/update_runner.cjs << 'EOF_60283df2' // @ts-check /// @@ -7514,11 +7513,12 @@ jobs: * @param {boolean} params.canUpdateStatus - Whether status updates are allowed * @param {boolean} params.canUpdateTitle - Whether title updates are allowed * @param {boolean} params.canUpdateBody - Whether body updates are allowed + * @param {boolean} [params.canUpdateLabels] - Whether label updates are allowed * @param {boolean} params.supportsStatus - Whether this type supports status * @returns {{hasUpdates: boolean, updateData: any, logMessages: string[]}} */ function buildUpdateData(params) { - const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, supportsStatus } = params; + const { item, canUpdateStatus, canUpdateTitle, canUpdateBody, canUpdateLabels, supportsStatus } = params; /** @type {any} */ const updateData = {}; @@ -7568,6 +7568,17 @@ jobs: } } + // Handle labels update + if (canUpdateLabels && item.labels !== undefined) { + if (Array.isArray(item.labels)) { + updateData.labels = item.labels; + hasUpdates = true; + logMessages.push(`Will update labels to: ${item.labels.join(", ")}`); + } else { + logMessages.push("Invalid labels value: must be an array"); + } + } + return { hasUpdates, updateData, logMessages }; } @@ -7612,12 +7623,13 @@ jobs: const canUpdateStatus = process.env.GH_AW_UPDATE_STATUS === "true"; const canUpdateTitle = process.env.GH_AW_UPDATE_TITLE === "true"; const canUpdateBody = process.env.GH_AW_UPDATE_BODY === "true"; + const canUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true"; core.info(`Update target configuration: ${updateTarget}`); if (supportsStatus) { - core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update status: ${canUpdateStatus}, title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } else { - core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}`); + core.info(`Can update title: ${canUpdateTitle}, body: ${canUpdateBody}, labels: ${canUpdateLabels}`); } // Check context validity @@ -7661,6 +7673,7 @@ jobs: canUpdateStatus, canUpdateTitle, canUpdateBody, + canUpdateLabels, supportsStatus, }); @@ -7782,7 +7795,7 @@ jobs: createGetSummaryLine, }; - EOF_006d32d7 + EOF_60283df2 - name: Add Comment id: add_comment if: ((!cancelled()) && (needs.agent.result != 'skipped')) && (contains(needs.agent.outputs.output_types, 'add_comment')) diff --git a/.github/workflows/super-linter.lock.yml b/.github/workflows/super-linter.lock.yml index 031aafaf384..fef209f4852 100644 --- a/.github/workflows/super-linter.lock.yml +++ b/.github/workflows/super-linter.lock.yml @@ -1893,7 +1893,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Super Linter Report", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/technical-doc-writer.lock.yml b/.github/workflows/technical-doc-writer.lock.yml index f92f6c18653..afecd99d59e 100644 --- a/.github/workflows/technical-doc-writer.lock.yml +++ b/.github/workflows/technical-doc-writer.lock.yml @@ -1962,7 +1962,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Technical Doc Writer", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/tidy.lock.yml b/.github/workflows/tidy.lock.yml index d7781149e3c..0e2fb6fed80 100644 --- a/.github/workflows/tidy.lock.yml +++ b/.github/workflows/tidy.lock.yml @@ -2334,7 +2334,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Tidy", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/typist.lock.yml b/.github/workflows/typist.lock.yml index 43e6e2c6d69..988cd6e9555 100644 --- a/.github/workflows/typist.lock.yml +++ b/.github/workflows/typist.lock.yml @@ -1959,7 +1959,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Typist - Go Type Analysis", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/unbloat-docs.lock.yml b/.github/workflows/unbloat-docs.lock.yml index f4415e5a7cd..942f1e54850 100644 --- a/.github/workflows/unbloat-docs.lock.yml +++ b/.github/workflows/unbloat-docs.lock.yml @@ -2475,7 +2475,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_CLAUDE || "", version: "", agent_version: "2.0.71", - cli_version: "dev", workflow_name: "Documentation Unbloat", experimental: true, supports_tools_allowlist: true, diff --git a/.github/workflows/video-analyzer.lock.yml b/.github/workflows/video-analyzer.lock.yml index 5a3a47e1447..09eb96b1f9c 100644 --- a/.github/workflows/video-analyzer.lock.yml +++ b/.github/workflows/video-analyzer.lock.yml @@ -1880,7 +1880,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Video Analysis Agent", experimental: false, supports_tools_allowlist: true, diff --git a/.github/workflows/weekly-issue-summary.lock.yml b/.github/workflows/weekly-issue-summary.lock.yml index 28a25fd1d39..e110b7b57ea 100644 --- a/.github/workflows/weekly-issue-summary.lock.yml +++ b/.github/workflows/weekly-issue-summary.lock.yml @@ -1876,7 +1876,6 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", - cli_version: "dev", workflow_name: "Weekly Issue Summary", experimental: false, supports_tools_allowlist: true, diff --git a/Makefile b/Makefile index a8a864120d1..8dd880574fa 100644 --- a/Makefile +++ b/Makefile @@ -167,8 +167,32 @@ test-coverage: # Clean build artifacts .PHONY: clean clean: - rm -f $(BINARY_NAME) $(BINARY_NAME)-* coverage.out coverage.html - go clean + @echo "Cleaning build artifacts..." + @# Remove main binary and platform-specific binaries + rm -f $(BINARY_NAME) $(BINARY_NAME)-* + @# Remove bundle-js binary + rm -f bundle-js + @# Remove coverage files + rm -f coverage.out coverage.html + @# Remove benchmark results + rm -f bench_results.txt + @# Remove SBOM files + rm -f sbom.spdx.json sbom.cdx.json + @# Remove security scan reports + rm -f gosec-report.json gosec-results.sarif govulncheck-results.sarif trivy-results.sarif + @# Remove downloaded logs (but keep .gitignore) + @if [ -d .github/aw/logs ]; then \ + find .github/aw/logs -type f ! -name '.gitignore' -delete 2>/dev/null || true; \ + find .github/aw/logs -type d -empty -delete 2>/dev/null || true; \ + fi + @# Remove installed gh extension if it exists + @if [ -d "$$HOME/.local/share/gh/extensions/gh-aw" ]; then \ + echo "Removing installed gh-aw extension..."; \ + gh extension remove gh-aw 2>/dev/null || rm -rf "$$HOME/.local/share/gh/extensions/gh-aw"; \ + fi + @# Clean Go build cache, module cache, and test cache + go clean -cache -modcache -testcache + @echo "✓ Clean complete" # Actions management targets .PHONY: actions-build diff --git a/docs/src/content/docs/setup/cli.md b/docs/src/content/docs/setup/cli.md index 79833ebe477..38ed6a48788 100644 --- a/docs/src/content/docs/setup/cli.md +++ b/docs/src/content/docs/setup/cli.md @@ -267,32 +267,10 @@ gh aw compile --strict --zizmor # Strict mode with security scanning gh aw compile --validate --strict # Validate schema and enforce strict mode ``` -#### Campaign specs and orchestrators - -In repositories that define campaign spec files under `.github/workflows/*.campaign.md`, `gh aw compile` first validates those specs (including referenced `workflows`) and fails the compilation if any problems are found. By default, `compile` also synthesizes an orchestrator workflow for each valid spec that has meaningful details (e.g., `go-file-size-reduction.campaign.md` → `go-file-size-reduction.campaign.g.md`) and compiles it to a corresponding `.lock.yml` file. Orchestrators are only generated when the campaign spec includes tracker labels, workflows, memory paths, or a metrics glob. +**Campaign specs and orchestrators:** When campaign spec files exist under `.github/workflows/*.campaign.md`, `gh aw compile` validates those specs (including referenced `workflows`) and fails if problems are found. By default, `compile` also synthesizes an orchestrator workflow for each valid spec that has meaningful details (e.g., `go-file-size-reduction.campaign.md` → `go-file-size-reduction.campaign.g.md`) and compiles it to a corresponding `.lock.yml` file. Orchestrators are only generated when the campaign spec includes tracker labels, workflows, memory paths, or a metrics glob. See the [`campaign` command](#campaign) for management and inspection. See [Strict Mode reference](/gh-aw/reference/frontmatter/#strict-mode-strict) for frontmatter configuration and [Security Guide](/gh-aw/guides/security/#strict-mode-validation) for best practices. -#### `campaign` - -Inspect and validate first-class campaign definitions declared as `.github/workflows/*.campaign.md` files. - -```bash wrap -gh aw campaign # List all campaigns -gh aw campaign security # Filter by ID or name substring -gh aw campaign --json # JSON output - -gh aw campaign status # Live status for all campaigns -gh aw campaign status incident # Filter by ID or name substring -gh aw campaign status --json # JSON status output - -gh aw campaign new my-campaign-id # Scaffold a new campaign spec -gh aw campaign validate # Validate campaign specs (fails on problems) -gh aw campaign validate --no-strict # Report problems without failing -``` - -**Alternative approach**: For a low-code/no-code method, use the "🚀 Start a Campaign" issue form in the GitHub UI. The form captures campaign intent with structured fields and can trigger an agent to scaffold the spec file automatically. See the [Campaigns guide](/gh-aw/guides/campaigns/#start-a-campaign-with-github-issue-forms) for details. - ### Testing #### `trial` @@ -400,6 +378,28 @@ gh aw audit https://github.com/owner/repo/actions/runs/123 # By URL gh aw audit 12345678 --parse # Parse logs to markdown ``` +### Campaigns + +#### `campaign` + +Inspect and validate first-class campaign definitions declared as `.github/workflows/*.campaign.md` files. + +```bash wrap +gh aw campaign # List all campaigns +gh aw campaign security # Filter by ID or name substring +gh aw campaign --json # JSON output + +gh aw campaign status # Live status for all campaigns +gh aw campaign status incident # Filter by ID or name substring +gh aw campaign status --json # JSON status output + +gh aw campaign new my-campaign-id # Scaffold a new campaign spec +gh aw campaign validate # Validate campaign specs (fails on problems) +gh aw campaign validate --no-strict # Report problems without failing +``` + +**Alternative approach**: For a low-code/no-code method, use the "🚀 Start a Campaign" issue form in the GitHub UI. The form captures campaign intent with structured fields and can trigger an agent to scaffold the spec file automatically. See the [Campaigns guide](/gh-aw/guides/campaigns/#start-a-campaign-with-github-issue-forms) for details. + ### Management #### `enable` diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 7b7f4916090..186cd00e559 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -398,9 +398,6 @@ func (c *Compiler) generateCreateAwInfo(yaml *strings.Builder, data *WorkflowDat agentVersion := getInstallationVersion(data, engine) fmt.Fprintf(yaml, " agent_version: \"%s\",\n", agentVersion) - // CLI version - the version of the gh-aw CLI tool - fmt.Fprintf(yaml, " cli_version: \"%s\",\n", c.version) - // Workflow information fmt.Fprintf(yaml, " workflow_name: \"%s\",\n", data.Name) fmt.Fprintf(yaml, " experimental: %t,\n", engine.IsExperimental()) diff --git a/pkg/workflow/js/update_discussion.cjs b/pkg/workflow/js/update_discussion.cjs index 4fc8035711d..f1eee2ff90b 100644 --- a/pkg/workflow/js/update_discussion.cjs +++ b/pkg/workflow/js/update_discussion.cjs @@ -30,7 +30,8 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update const shouldUpdateLabels = process.env.GH_AW_UPDATE_LABELS === "true" && labels !== undefined; // First, fetch the discussion node ID using its number - const getDiscussionQuery = shouldUpdateLabels ? ` + const getDiscussionQuery = shouldUpdateLabels + ? ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { @@ -47,7 +48,8 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } } } - ` : ` + ` + : ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { @@ -72,7 +74,7 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update const discussion = queryResult.repository.discussion; const discussionId = discussion.id; - const currentLabels = shouldUpdateLabels ? (discussion.labels?.nodes || []) : []; + const currentLabels = shouldUpdateLabels ? discussion.labels?.nodes || [] : []; // Ensure at least one field is being updated if (fieldsToUpdate.title === undefined && fieldsToUpdate.body === undefined && !shouldUpdateLabels) { @@ -172,7 +174,7 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } const repoLabels = repoResult.repository.labels?.nodes || []; - + // Map label names to IDs const labelIds = labels.map(labelName => { const label = repoLabels.find(l => l.name === labelName); @@ -222,7 +224,8 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } // Fetch the updated discussion to return - const finalQuery = shouldUpdateLabels ? ` + const finalQuery = shouldUpdateLabels + ? ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { @@ -239,7 +242,8 @@ async function executeDiscussionUpdate(github, context, discussionNumber, update } } } - ` : ` + ` + : ` query($owner: String!, $repo: String!, $number: Int!) { repository(owner: $owner, name: $repo) { discussion(number: $number) { diff --git a/pkg/workflow/js/update_discussion.test.cjs b/pkg/workflow/js/update_discussion.test.cjs index eec35fd82bb..51e24ac69e0 100644 --- a/pkg/workflow/js/update_discussion.test.cjs +++ b/pkg/workflow/js/update_discussion.test.cjs @@ -410,9 +410,7 @@ describe("update_discussion.cjs", () => { body: "Test body", url: "https://github.com/testowner/testrepo/discussions/123", labels: { - nodes: [ - { id: "L_kwDOABCD001", name: "old-label" }, - ], + nodes: [{ id: "L_kwDOABCD001", name: "old-label" }], }, }; @@ -496,9 +494,7 @@ describe("update_discussion.cjs", () => { }, }; - const mockLabels = [ - { id: "L_kwDOABCD004", name: "question" }, - ]; + const mockLabels = [{ id: "L_kwDOABCD004", name: "question" }]; // Mock the first query to get discussion mockGithub.graphql.mockResolvedValueOnce({ From 5eb114871b718a463a6a296694988e94f18b2e74 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 15:15:19 +0000 Subject: [PATCH 5/7] Make allowed-labels implicitly enable labels for update-discussion - Modified parseUpdateDiscussionsConfig to automatically set Labels when AllowedLabels is present - Updated buildUpdateDiscussionStepConfig to set GH_AW_UPDATE_LABELS env var when Labels is enabled - Added test TestUpdateDiscussionConfigAllowedLabelsImplicitlyEnablesLabels to verify behavior - Users can now specify only allowed-labels without explicitly adding labels: - All tests pass and linting is clean Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- .../compiler_safe_outputs_consolidated.go | 3 + pkg/workflow/update_discussion.go | 4 ++ pkg/workflow/update_discussion_test.go | 64 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/pkg/workflow/compiler_safe_outputs_consolidated.go b/pkg/workflow/compiler_safe_outputs_consolidated.go index a1cc03341ae..de1f4231edf 100644 --- a/pkg/workflow/compiler_safe_outputs_consolidated.go +++ b/pkg/workflow/compiler_safe_outputs_consolidated.go @@ -983,6 +983,9 @@ func (c *Compiler) buildUpdateDiscussionStepConfig(data *WorkflowData, mainJobNa if cfg.Body != nil { customEnvVars = append(customEnvVars, " GH_AW_UPDATE_BODY: \"true\"\n") } + if cfg.Labels != nil { + customEnvVars = append(customEnvVars, " GH_AW_UPDATE_LABELS: \"true\"\n") + } condition := BuildSafeOutputType("update_discussion") diff --git a/pkg/workflow/update_discussion.go b/pkg/workflow/update_discussion.go index fde900ead9b..14c9775eff2 100644 --- a/pkg/workflow/update_discussion.go +++ b/pkg/workflow/update_discussion.go @@ -59,6 +59,10 @@ func (c *Compiler) parseUpdateDiscussionsConfig(outputMap map[string]any) *Updat updateDiscussionsConfig.AllowedLabels = parseAllowedLabelsFromConfig(configMap) if len(updateDiscussionsConfig.AllowedLabels) > 0 { updateDiscussionLog.Printf("Allowed labels configured: %v", updateDiscussionsConfig.AllowedLabels) + // If allowed-labels is specified, implicitly enable labels + if updateDiscussionsConfig.Labels == nil { + updateDiscussionsConfig.Labels = new(bool) + } } } } diff --git a/pkg/workflow/update_discussion_test.go b/pkg/workflow/update_discussion_test.go index f18e3b08e6c..8dbfa941c11 100644 --- a/pkg/workflow/update_discussion_test.go +++ b/pkg/workflow/update_discussion_test.go @@ -283,3 +283,67 @@ This workflow tests the update-discussion labels configuration. } } } + +func TestUpdateDiscussionConfigAllowedLabelsImplicitlyEnablesLabels(t *testing.T) { + // Create temporary directory for test files + tmpDir := testutil.TempDir(t, "output-update-discussion-implicit-labels-test") + + // Test case with only allowed-labels (no explicit labels:) + testContent := `--- +on: + discussion: + types: [created] +permissions: + contents: read + discussions: write +engine: claude +strict: false +safe-outputs: + update-discussion: + allowed-labels: [bug, enhancement] +--- + +# Test Update Discussion Implicit Labels Configuration + +This workflow tests that allowed-labels implicitly enables labels. +` + + testFile := filepath.Join(tmpDir, "test-update-discussion-implicit-labels.md") + if err := os.WriteFile(testFile, []byte(testContent), 0644); err != nil { + t.Fatal(err) + } + + compiler := NewCompiler(false, "", "test") + + // Parse the workflow data + workflowData, err := compiler.ParseWorkflowFile(testFile) + if err != nil { + t.Fatalf("Unexpected error parsing workflow with implicit labels config: %v", err) + } + + // Verify output configuration is parsed correctly + if workflowData.SafeOutputs == nil { + t.Fatal("Expected output configuration to be parsed") + } + + if workflowData.SafeOutputs.UpdateDiscussions == nil { + t.Fatal("Expected update-discussion configuration to be parsed") + } + + // The key test: labels should be implicitly enabled when allowed-labels is present + if workflowData.SafeOutputs.UpdateDiscussions.Labels == nil { + t.Fatal("Expected labels to be implicitly enabled when allowed-labels is present") + } + + // Check allowed-labels + expectedAllowedLabels := []string{"bug", "enhancement"} + if len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels) != len(expectedAllowedLabels) { + t.Fatalf("Expected %d allowed-labels, got %d", len(expectedAllowedLabels), len(workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels)) + } + + for i, expected := range expectedAllowedLabels { + if workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i] != expected { + t.Fatalf("Expected allowed-label[%d] to be '%s', got '%s'", i, expected, workflowData.SafeOutputs.UpdateDiscussions.AllowedLabels[i]) + } + } +} From dc0a8c75bca1d48a03bc9bdb82fb784e23b58a07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Dec 2025 15:24:01 +0000 Subject: [PATCH 6/7] Merge main and recompile workflows - Merged latest changes from origin/main - Resolved merge conflicts in pkg/workflow/compiler_yaml.go by accepting main version - Resolved merge conflicts in lock files by recompiling all workflows - All workflows recompiled successfully (117 out of 119) Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com> --- pkg/workflow/aw_info_versions_test.go | 75 +++++++++++++++++++++------ pkg/workflow/compiler_yaml.go | 22 ++++++++ 2 files changed, 80 insertions(+), 17 deletions(-) diff --git a/pkg/workflow/aw_info_versions_test.go b/pkg/workflow/aw_info_versions_test.go index 0902a4cec3a..3365178f77e 100644 --- a/pkg/workflow/aw_info_versions_test.go +++ b/pkg/workflow/aw_info_versions_test.go @@ -9,22 +9,53 @@ import ( func TestCLIVersionInAwInfo(t *testing.T) { tests := []struct { - name string - cliVersion string - engineID string - description string + name string + cliVersion string + engineID string + description string + shouldInclude bool }{ { - name: "CLI version is stored in aw_info.json", - cliVersion: "1.2.3", - engineID: "copilot", - description: "Should include cli_version field with correct value", + name: "Released CLI version is stored in aw_info.json", + cliVersion: "1.2.3", + engineID: "copilot", + description: "Should include cli_version field with correct value for released builds", + shouldInclude: true, }, { - name: "CLI version with semver prerelease", - cliVersion: "1.2.3-beta.1", - engineID: "claude", - description: "Should handle prerelease versions", + name: "CLI version with semver prerelease", + cliVersion: "1.2.3-beta.1", + engineID: "claude", + description: "Should handle prerelease versions", + shouldInclude: true, + }, + { + name: "Development CLI version is excluded", + cliVersion: "dev", + engineID: "copilot", + description: "Should NOT include cli_version field for development builds", + shouldInclude: false, + }, + { + name: "Dirty CLI version is excluded", + cliVersion: "1.2.3-dirty", + engineID: "copilot", + description: "Should NOT include cli_version field for dirty builds", + shouldInclude: false, + }, + { + name: "Test CLI version is excluded", + cliVersion: "1.0.0-test", + engineID: "claude", + description: "Should NOT include cli_version field for test builds", + shouldInclude: false, + }, + { + name: "Git hash with dirty suffix is excluded", + cliVersion: "708d3ee-dirty", + engineID: "copilot", + description: "Should NOT include cli_version field for git hash with dirty suffix", + shouldInclude: false, }, } @@ -46,9 +77,19 @@ func TestCLIVersionInAwInfo(t *testing.T) { output := yaml.String() expectedLine := `cli_version: "` + tt.cliVersion + `"` - if !strings.Contains(output, expectedLine) { - t.Errorf("%s: Expected output to contain '%s', got:\n%s", - tt.description, expectedLine, output) + containsVersion := strings.Contains(output, expectedLine) + + if tt.shouldInclude { + if !containsVersion { + t.Errorf("%s: Expected output to contain '%s', got:\n%s", + tt.description, expectedLine, output) + } + } else { + // For dev builds, cli_version should not appear at all + if strings.Contains(output, "cli_version:") { + t.Errorf("%s: Expected output to NOT contain 'cli_version:' field, got:\n%s", + tt.description, output) + } } }) } @@ -122,7 +163,7 @@ func TestAwfVersionInAwInfo(t *testing.T) { func TestBothVersionsInAwInfo(t *testing.T) { // Test that both CLI version and AWF version are present simultaneously - compiler := NewCompiler(false, "", "2.0.0-test") + compiler := NewCompiler(false, "", "2.0.0-beta.5") registry := GetGlobalEngineRegistry() engine, err := registry.GetEngine("copilot") if err != nil { @@ -144,7 +185,7 @@ func TestBothVersionsInAwInfo(t *testing.T) { output := yaml.String() // Check for cli_version - expectedCLILine := `cli_version: "2.0.0-test"` + expectedCLILine := `cli_version: "2.0.0-beta.5"` if !strings.Contains(output, expectedCLILine) { t.Errorf("Expected output to contain cli_version '%s', got:\n%s", expectedCLILine, output) } diff --git a/pkg/workflow/compiler_yaml.go b/pkg/workflow/compiler_yaml.go index 186cd00e559..6f425c54e1c 100644 --- a/pkg/workflow/compiler_yaml.go +++ b/pkg/workflow/compiler_yaml.go @@ -338,6 +338,22 @@ func (c *Compiler) generatePostSteps(yaml *strings.Builder, data *WorkflowData) } } +// isReleasedVersion checks if a version string represents a released build. +// It excludes development builds (containing "dev", "dirty", or "test"). +func isReleasedVersion(version string) bool { + if version == "" { + return false + } + // Filter out development/test versions + excludePatterns := []string{"dev", "dirty", "test"} + for _, pattern := range excludePatterns { + if strings.Contains(version, pattern) { + return false + } + } + return true +} + func (c *Compiler) generateCreateAwInfo(yaml *strings.Builder, data *WorkflowData, engine CodingAgentEngine) { yaml.WriteString(" - name: Generate agentic run info\n") yaml.WriteString(" id: generate_aw_info\n") // Add ID for outputs @@ -398,6 +414,12 @@ func (c *Compiler) generateCreateAwInfo(yaml *strings.Builder, data *WorkflowDat agentVersion := getInstallationVersion(data, engine) fmt.Fprintf(yaml, " agent_version: \"%s\",\n", agentVersion) + // CLI version - only include for released builds + // Excludes development builds containing "dev", "dirty", or "test" + if isReleasedVersion(c.version) { + fmt.Fprintf(yaml, " cli_version: \"%s\",\n", c.version) + } + // Workflow information fmt.Fprintf(yaml, " workflow_name: \"%s\",\n", data.Name) fmt.Fprintf(yaml, " experimental: %t,\n", engine.IsExperimental()) From fd76d1c9264461c24c4ae06769dcdbbfe4f6e7d7 Mon Sep 17 00:00:00 2001 From: Mara Nikola Kiefer Date: Fri, 19 Dec 2025 16:42:57 +0100 Subject: [PATCH 7/7] revert file to main --- .github/workflows/daily-team-status.lock.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/daily-team-status.lock.yml b/.github/workflows/daily-team-status.lock.yml index c5be529de0f..794a8b0d0f2 100644 --- a/.github/workflows/daily-team-status.lock.yml +++ b/.github/workflows/daily-team-status.lock.yml @@ -1858,6 +1858,7 @@ jobs: model: process.env.GH_AW_MODEL_AGENT_COPILOT || "", version: "", agent_version: "0.0.369", + cli_version: "e44a690", workflow_name: "Daily Team Status", experimental: false, supports_tools_allowlist: true,