Skip to content

Enable built-in issue intent safe outputs on issue-triage#1880

Merged
SteveSandersonMS merged 6 commits into
github:mainfrom
lukewar:aw-issue-intents-issue-triage
Jul 16, 2026
Merged

Enable built-in issue intent safe outputs on issue-triage#1880
SteveSandersonMS merged 6 commits into
github:mainfrom
lukewar:aw-issue-intents-issue-triage

Conversation

@lukewar

@lukewar lukewar commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What & why

This enables issue intents on the issue-triage workflow. Issue intents let the triage agent attach its reasoning to each action it takes (labels, issue type, issue fields, with state and assignees support coming soon) and surface a confidence level, so maintainers can see why a change was made and approve or reject low-confidence suggestions instead of having them applied silently. A key goal is also to minimise the noise of agent-generated comments since rationale and confidence travel with the action itself rather than as separate comments on the issue. Learn more: Review and approve Copilot agent actions on issues.

Changes

This change is minimal, with no behavior change. The workflow already uses the native add-labels safe output (the valid intents target), so onboarding is just a gh-aw upgrade + lock recompile.

  • Recompiled issue-triage.lock.yml with gh-aw v0.82.1 (wires GH_AW_RUNTIME_FEATURES).
  • Bumped the required github/gh-aw-actions/setup pin in .github/aw/actions-lock.json to v0.82.1.
  • No change to the trigger, permissions, prompt, or which actions the agent can take.
  • Source issue-triage.md is untouched (native safe outputs, no custom rationale/confidence jobs to remove).

Note: this workflow is currently dormant (0 runs in the last 30 days). This upgrade does not change that; it simply keeps the workflow ready so intents are in place whenever it next runs.

⚠️ Requires a repo admin action

This upgrade is inert until a repo admin sets the repository variable:

GH_AW_RUNTIME_FEATURES = issue_intents

We opened this via a fork PR because we lack push/admin on this repo, so we cannot set the variable ourselves. Until it is set, the recompiled lock behaves exactly as before (no intents).

Closes github/plan-track-agentic-toolkit#516.

Recompile issue-triage.lock.yml with gh-aw v0.82.1 to wire
GH_AW_RUNTIME_FEATURES=${{ vars.GH_AW_RUNTIME_FEATURES }}, enabling native
issue intents (rationale/confidence) for the workflow's add-labels safe
output. No behavior change: the trigger, permissions, prompt, and safe
outputs are unchanged, and the source .md is untouched.

The actions-lock.json pin bump (github/gh-aw-actions/setup v0.82.1) is
required by the recompiled lock.

Co-authored-by: Copilot App <[email protected]>
@lukewar

lukewar commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

cc @friggeri for review. Requesting you as reviewer via the API failed (we lack write access on this repo, so reviewer assignment on a fork PR is blocked), so flagging you here directly. This is a minimal issue-intents onboarding change. See the ⚠️ note in the description: it needs a repo admin to set repository variable GH_AW_RUNTIME_FEATURES=issue_intents, and is inert until then. The workflow is currently dormant (0 runs/30d); this keeps it ready.

@lukewar
lukewar marked this pull request as ready for review July 2, 2026 11:15
@lukewar
lukewar requested a review from a team as a code owner July 2, 2026 11:15
Copilot AI review requested due to automatic review settings July 2, 2026 11:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repository’s agentic workflow lock material for the Issue Triage Agent, primarily by recompiling .github/workflows/issue-triage.lock.yml with a newer gh-aw version and updating the corresponding action pin entry in .github/aw/actions-lock.json.

Changes:

  • Recompiled issue-triage.lock.yml using gh-aw v0.82.1 (new metadata, container images, and additional generated steps/outputs).
  • Updated .github/aw/actions-lock.json to include the github/gh-aw-actions/setup v0.82.1 pin.
Show a summary per file
File Description
.github/workflows/issue-triage.lock.yml Recompiled workflow lock with updated gh-aw runtime wiring and generated job/step structure.
.github/aw/actions-lock.json Updates pinned github/gh-aw-actions/setup version used by agentic workflows.

Review details

  • Files reviewed: 2/2 changed files
  • Comments generated: 5
  • Review effort level: Low

Comment on lines +85 to +87
env:
GH_AW_MAX_DAILY_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_DAILY_AI_CREDITS || '5000' }}
GH_AW_RUNTIME_FEATURES: ${{ vars.GH_AW_RUNTIME_FEATURES }}
Comment on lines +173 to +181
env:
GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
GH_AW_WORKFLOW_ID: "issue-triage"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_WORKFLOW_DISPATCH_AW_CONTEXT: ${{ github.event.inputs.aw_context || '' }}
GH_AW_HAS_SLASH_COMMAND: "false"
GH_AW_HAS_LABEL_COMMAND: "false"
GH_AW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_AW_MAX_DAILY_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_DAILY_AI_CREDITS || '5000' }}
Comment on lines 891 to 895
GH_AW_TOOL_CACHE_MOUNT=""
GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"
GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"
if [ -d "$GH_AW_TOOL_CACHE" ]; then
if [[ "$GH_AW_TOOL_CACHE" != /opt/* ]]; then
GH_AW_TOOL_CACHE_MOUNT="$GH_AW_TOOL_CACHE:$GH_AW_TOOL_CACHE:ro"
Comment thread .github/workflows/issue-triage.lock.yml Outdated
-- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"; export PATH="$(find "$GH_AW_TOOL_CACHE" /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
# shellcheck disable=SC1003,SC2016,SC2086
awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --skip-pull \
-- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
Comment thread .github/aw/actions-lock.json Outdated
Comment on lines 28 to 32
"github/gh-aw-actions/setup@v0.82.1": {
"repo": "github/gh-aw-actions/setup",
"version": "v0.77.5",
"sha": "3ea13c02d765410340d533515cb31a7eef2baaf0"
"version": "v0.82.1",
"sha": "dadd6a0a0f4d1087fbd3e115776f28471388d6db"
},
lukewar and others added 5 commits July 7, 2026 16:04
The verify-compiled workflow pinned gh-aw v0.77.5 while issue-triage.lock.yml
was compiled with v0.82.1, so CI recompiled at v0.77.5 and the byte diff failed
the check. Bump the pin to v0.82.1 to match, and recompile all lock files at
v0.82.1 so they are consistent with the pinned compiler.

Co-authored-by: Copilot App <[email protected]>
`gh aw compile` with the v0.82.10 toolchain introduced by this PR emits
`.github/workflows/agentics-maintenance.yml`. Commit the generated file
so it is tracked alongside the recompiled locks.

Co-authored-by: Copilot <[email protected]>
Copilot-Session: 004ba78d-3cf4-41ab-8647-180e683460f0
Add `permissions.copilot-requests: write` to all 11 agentic (gh-aw)
workflows so their Copilot usage is billed to the org, and recompile the
lock files. The compiled workflows now authenticate the Copilot CLI with
the GitHub Actions token and set S2STOKENS=true.

Authored by adding `features.copilot-requests: true`, migrating it with
`gh aw fix --write` (the deprecated flag maps to the permission), and
recompiling with gh-aw v0.82.10.

Rebased onto github#1880 (issue-intents), which bumps the pinned gh-aw CLI to
v0.82.10.

Co-authored-by: Copilot <[email protected]>
Copilot-Session: 004ba78d-3cf4-41ab-8647-180e683460f0
@SteveSandersonMS
SteveSandersonMS merged commit ebc84e3 into github:main Jul 16, 2026
25 checks passed
alondahari added a commit to alondahari/copilot-sdk that referenced this pull request Jul 23, 2026
…kflow

Complete the issue-intent audit against the v0.83.0 schema: every
already-configured safe-output whose schema supports issue-intent now
declares `issue-intent: true`. This adds it to `create-issue` in
cross-repo-issue-analysis, the one remaining schema-supported tool.

No tools added; no repo variables changed. Only the source frontmatter
and its lock's frontmatter_hash change (the create-issue handler does not
emit issue_intent at runtime, so the compiled safe-outputs config and
body are unchanged).

Full schema-supported enablement across the PR github#1880 scope:
- add-labels: cross-repo-issue-analysis, handle-bug, handle-documentation,
  handle-enhancement, handle-question, issue-triage
- close-issue: issue-triage
- create-issue: cross-repo-issue-analysis

Co-authored-by: Copilot App <[email protected]>
Copilot-Session: b18ddbb6-b994-4a4b-9096-a16d52309df7
alondahari added a commit to alondahari/copilot-sdk that referenced this pull request Jul 23, 2026
Setup PR github#1880 ("Enable built-in issue intent safe outputs on
issue-triage") meaningfully scoped issue intent to the issue-triage
workflow. Revert the issue-intent frontmatter that had been added to
the other five workflows (cross-repo-issue-analysis, handle-bug,
handle-documentation, handle-enhancement, handle-question) and recompile
at gh-aw v0.83.0.

Net effect vs main:
- issue-triage.md: issue-intent enabled on add-labels + close-issue.
- All other workflows: v0.82.10 -> v0.83.0 generated version bump only.
- Shared generated files (actions-lock.json, agentics-maintenance.yml,
  copilot-setup-steps.yml, verify-compiled.yml): v0.83.0.

Compiled with gh-aw v0.83.0; idempotent.

Co-authored-by: Copilot App <[email protected]>
Copilot-Session: b18ddbb6-b994-4a4b-9096-a16d52309df7
alondahari added a commit to alondahari/copilot-sdk that referenced this pull request Jul 23, 2026
Reduce the PR to the minimal net diff: only the issue-triage workflow
(the workflow meaningfully scoped by setup PR github#1880) is refreshed to
gh-aw v0.83.0 and gains issue-intent. All other workflows are left
untouched at their base v0.82.10 compiled state.

Compiled issue-triage alone with `gh aw compile issue-triage` (v0.83.0),
which regenerates only issue-triage.lock.yml and the shared
actions-lock.json setup pin. The other 10 lock files, agentics-
maintenance.yml, and copilot-setup-steps.yml are reverted to base.

verify-compiled.yml (hand-authored CI) is pinned to v0.83.0 and scoped
to `gh aw compile issue-triage` so the mixed-version repo verifies
cleanly without rewriting the untouched locks.

Net diff vs base:
- issue-triage.md: issue-intent on add-labels + close-issue
- issue-triage.lock.yml: v0.83.0 recompile
- .github/aw/actions-lock.json: gh-aw setup pinned v0.83.0
- verify-compiled.yml: CI pinned v0.83.0, compiles issue-triage only

Co-authored-by: Copilot App <[email protected]>
Copilot-Session: b18ddbb6-b994-4a4b-9096-a16d52309df7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants