Remove the client-side issue_intents runtime gate#45275
issue_intents runtime gate#45275Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
issue_intents runtime feature gateissue_intents runtime gate
There was a problem hiding this comment.
Pull request overview
Removes the client-side issue-intent gate so supported issue mutations consistently use intent-capable payloads.
Changes:
- Enables intent guidance and metadata unconditionally.
- Routes issue types, fields, and label updates through intent-capable APIs.
- Updates focused tests for always-on behavior and compatibility.
Show a summary per file
| File | Description |
|---|---|
actions/setup/js/update_issue.cjs |
Makes GraphQL label updates unconditional. |
actions/setup/js/update_issue.test.cjs |
Tests structured and string label updates. |
actions/setup/js/set_issue_type.cjs |
Always uses GraphQL except when clearing. |
actions/setup/js/set_issue_type.test.cjs |
Updates GraphQL-path coverage. |
actions/setup/js/set_issue_field.cjs |
Always attaches metadata and feature header. |
actions/setup/js/set_issue_field.test.cjs |
Tests unconditional field intents. |
actions/setup/js/issue_intents.cjs |
Removes gate helper and adds label normalization. |
actions/setup/js/generate_safe_outputs_tools.cjs |
Always adds intent guidance. |
actions/setup/js/generate_safe_outputs_tools.test.cjs |
Tests unconditional guidance. |
actions/setup/js/add_labels.cjs |
Preserves structured label metadata. |
actions/setup/js/add_labels.test.cjs |
Tests metadata preservation and normalization. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 11/11 changed files
- Comments generated: 2
- Review effort level: Medium
|
@copilot run pr-finisher skill |
…n dup dedup Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Two review-flagged issues addressed in a60e6a2:
Both fixes are covered by new test cases and all 94 unit tests pass.
Hand-off: CI must be re-triggered by a maintainer (close/reopen, |
|
@copilot please run the
|
Both review threads were addressed in a60e6a2 (from the previous session):
94 unit tests pass; |
|
@copilot please run the
|
PR Triage (run 29275650494)\n\nCategory: feature | Risk: medium | Score: 68/100 | Action: fast_track\n\nScore: Impact 35/50 + Urgency 20/30 + Quality 13/20\n\nRemoves client-side issue_intents runtime gate - server-side flag is authoritative and safely ignores unsupported payloads. Simplifies code (-305/+455), non-draft, good description. Ready for review.
|
All review feedback was addressed in commit a60e6a2 (previous session):
Both reviewer threads already have replies with commit reference. Thread resolution via GraphQL returns 403 in this environment — a maintainer will need to mark them resolved manually. Local validation status:
|
|
@copilot please run the
|
The branch is up to date — it was merged with The only remaining step is human: the two |
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
|
Run: https://github.com/github/gh-aw/actions/runs/29280443144
|
Both threads are confirmed resolved:
Branch is up to date with |
|
Run: https://github.com/github/gh-aw/actions/runs/29286484887
|
Fixed in db69fed. The TypeScript error Note: the commit is local but the push is currently blocked by a |
…eck error Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Fixed in 9b07567. Changed the |
Issue intent metadata had moved behind a client-side
GH_AW_RUNTIME_FEATURES=issue_intentsopt-in even though the server-side flag is authoritative and safely ignores unsupported intent payloads. This change removes that client-side gate so the intent-capable paths are used consistently without environment-variable coordination.Always-on intent-capable tool descriptions
set_issue_type,set_issue_field, andadd_labelsnow always include the intent guidance suffix in generated safe-output tool definitions.Always-on issue type intent path
set_issue_typenow always uses the structured GraphQLIssueTypeUpdateInputpath withGraphQL-Features: update_issue_suggestionsfor non-clear updates.Always-on issue field intent metadata
set_issue_fieldnow always attaches normalizedrationale,confidence, andsuggestmetadata when present, and always sends the feature header.Label compatibility preserved while keeping structured metadata
add_labelsnow preserves structured label metadata whenever it is provided, while still sending plain string labels for string-only inputs.update_issuenow always uses the existing GraphQL label-intent mutation path when labels are present, including string-only label payloads.Gate removal cleanup
hasIssueIntentsRuntimeFeature()and the unusedissue_intentsruntime-feature plumbing from the affected JS paths.GH_AW_RUNTIME_FEATURESinfrastructure intact for other features.Focused test updates
GH_AW_RUNTIME_FEATURES=issue_intents.Example of the new unconditional issue-type path: