Skip to content

merge - #1

Merged
dariandawnblixtleo-hue merged 39 commits into
Blixtleod:mainfrom
github:main
Aug 10, 2026
Merged

merge#1
dariandawnblixtleo-hue merged 39 commits into
Blixtleod:mainfrom
github:main

Conversation

@dariandawnblixtleo-hue

Copy link
Copy Markdown
Collaborator

Summary

Why

Fixes #

What changed

MCP impact

  • No tool or API changes
  • Tool schema or behavior changed
  • New tool added

Prompts tested (tool changes only)

Security / limits

  • No security or limits impact
  • Auth / permissions considered
  • Data exposure, filtering, or token/size limits considered

Tool renaming

  • I am renaming tools as part of this PR (e.g. a part of a consolidation effort)
    • I have added the new tool aliases in deprecated_tool_aliases.go
  • I am not renaming tools as part of this PR

Note: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.

Lint & tests

  • Linted locally with ./script/lint
  • Tested locally with ./script/test

Docs

  • Not needed
  • Updated (README / docs / examples)

kerobbi and others added 30 commits July 16, 2026 13:53
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v5...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps node from `a2dc166` to `e88a35b`.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 26-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Move Octicon base64 encoding to the generation script and embed the generated lookup manifest for zero-allocation reads.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5557f448-5cc1-46ce-b5ad-36f9e2e224e0
Adopt the pre.3 protocol correctness fixes without changing server wiring or MCP tool schemas. Update exact SDK license references for all release platforms.


Copilot-Session: f399f533-3d1f-4c76-872b-f9813729a61f

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bumps distroless/base-debian12 from `9c05cfd` to `348dac1`.

---
updated-dependencies:
- dependency-name: distroless/base-debian12
  dependency-version: 348dac1808083ccc3366399d6db835875b4eaf7c9b694783f5a3f353c4b58a28
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1a67631b-dc18-448a-8be5-81110bfd543a

Co-authored-by: Ross Tarrant <rosstarrant@github.com>
* Add opt-in intent-aware Copilot issue assignment tool

Add `assign_copilot_to_issue_with_intent` in a new non-default toolset
`copilot_issue_intents`. The tool uses GraphQL's object-form
`assignees: [AssigneeUpdateInput!]` so intent metadata (rationale,
confidence, is_suggestion) is attached to the Copilot entry only, while
existing assignees are preserved.

- Reuses the existing Copilot actor lookup, target-repository
  resolution, base_ref, custom_instructions, GraphQL-Features header,
  and direct-assignment PR polling behavior.
- `is_suggestion: true` records a pending Copilot assignment intent,
  returns a suggestion-shaped result, and does not launch Copilot or
  poll for a linked PR.
- `rationale` is capped at 280 characters (schema + runtime);
  `confidence` is validated against `LOW`/`MEDIUM`/`HIGH`.
- Toolset is non-default so its inputs do not add schema bloat to the
  default tool surface; available via `copilot_issue_intents`,
  `all`, or explicit tool selection.

Includes unit tests for direct assignment (with existing assignees and
with base_ref/custom_instructions), the suggestion path, invalid
rationale length, invalid confidence, and Copilot-not-available; a
generated toolsnap; regenerated docs; and an e2e test for the
suggestion path.

Refs: github/plan-track-agentic-toolkit#683

* Address review: tighten description, require intent fields

Per review feedback on #2909:

- Trim the tool description to mirror assign_copilot_to_issue and add
  "Prefer this tool over assign_copilot_to_issue when available",
  removing the verbose is_suggestion narrative from the schema.
- Make rationale, confidence, and is_suggestion required inputs (schema
  and runtime). is_suggestion is now always sent explicitly on the
  Copilot AssigneeUpdateInput entry.
- Update unit tests to supply the newly-required fields and cover the
  missing-rationale and missing-confidence rejection paths.
- Regenerate toolsnap and README.

* Address review: dedupe copilot, require is_suggestion, update doc link

Per @RossTarrant review feedback on #2909:

- Reject requests where `is_suggestion` is omitted from the raw args
  before decoding. `mapstructure.WeakDecode` defaults missing bools
  to false, which would silently launch Copilot instead of recording a
  suggestion. Presence-check the raw map so callers make the choice
  explicit.
- Skip the copilot-swe-agent actor when copying existing assignees so
  we don't send its actorId twice (once without metadata and once with
  intent metadata) when Copilot is already assigned.
- Update the stale about-assigning-tasks-to-copilot reference to the
  redirect target (about-cloud-agent). Applied to the const message,
  both tool descriptions, and the e2e/unit-test literals that assert
  on that message.

New unit tests cover the missing-is_suggestion rejection and the
copilot-dedup behavior. Regenerated toolsnaps.
Split out of #2903 as a small prerequisite refactor.

- Add a NodeID field to ResolvedField, populated for all three field
  variants in listAllProjectFields.
- Refactor resolveProjectItemIDByIssueNumber into a thin wrapper over a
  new resolveProjectItemByIssueNumber that also returns the item node ID,
  delegating to resolveProjectItemByIssueNumberWithProjectID for an
  already-resolved project ID. The projectItems query now selects the
  item node ID alongside its full database ID.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 89f897b0-115f-4435-a071-46fb6c49be86
…rename item resolver test

- Assert field.NodeID in Test_ResolveProjectFieldByName_Success.
- Add Test_ResolveProjectFieldByName_NodeIDsForAllVariants covering
  single-select, iteration, and generic fields (asserts NodeID + DataType).
- Rename Test_ResolveProjectItemIDByIssueNumber_Success to
  Test_ResolveProjectItemByIssueNumber_Success to match the resolver it calls.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 89f897b0-115f-4435-a071-46fb6c49be86
* Extract aliased project mutation primitive

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: d7dc302d-e6f2-41e9-a2c8-ed598de47067

* Test partial GraphQL mutation data

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4d3df48a-5aa0-4cf0-a067-4aa5618c2887

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* build: require Go 1.25.12

Ensure setup-go and GoReleaser use the patched Go toolchain for release binaries.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0b2aa497-b47d-464a-b132-af0dcaf2b621

* build(ui): update fast-uri to 3.1.4

Resolve the high-severity host-confusion advisories reported by npm audit.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0b2aa497-b47d-464a-b132-af0dcaf2b621

---------

Co-authored-by: Ross Tarrant <rosstarrant@github.com>
Add non-interactive GitHub App installation authentication to the stdio
server, so headless deployments (CI, Kubernetes, background agents) can
authenticate without a browser, device code, or elicitation. This is the
outstanding follow-up tracked in #1333: OAuth login shipped the interactive
user-to-server flows, but PEM-based server-to-server auth was still needed to
remove the interactive requirement.

The new internal/githubapp package signs a short-lived RS256 JWT with the
app's private key, exchanges it for an installation access token, and refreshes
it transparently before expiry. It exposes a Provider whose AccessToken method
mirrors oauth.Manager so it plugs into the existing BearerAuthTransport token
provider. Only the standard library and golang.org/x/oauth2 are used.

The private key is injected safely: a file path (GITHUB_APP_PRIVATE_KEY_PATH,
preferred — mountable as a secret and kept off argv and out of the environment)
or an inline GITHUB_APP_PRIVATE_KEY env var. There is intentionally no flag for
the key contents, which would otherwise leak via the process command line.

App auth is mutually exclusive with a PAT and with OAuth login. A loud startup
warning and a dedicated docs page (docs/github-app-auth.md, with Docker and
Kubernetes examples) cover the security considerations: this injects a
high-privilege credential alongside the agent and is not recommended without an
independent security review.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep PEM loading and installation-token provider construction at the CLI leaf, then pass a generic refreshing token provider through the existing HTTP transports. Rebase the feature onto current main and keep the HTTP command unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 646357dd-c89f-4973-9a5c-e6c5fc18818c
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6 to 7.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.35.0 to 0.36.0.
- [Commits](golang/oauth2@v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: golang.org/x/oauth2
  dependency-version: 0.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Auto-generated by license-check workflow
Allow clients to keep MCP App views enabled while making form-backed write tools execute directly when explicitly configured.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…dates

Bumps the npm_and_yarn group with 2 updates in the /ui directory: [body-parser](https://github.com/expressjs/body-parser) and [hono](https://github.com/honojs/hono).


Updates `body-parser` from 2.2.2 to 2.3.0
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](expressjs/body-parser@v2.2.2...v2.3.0)

Updates `hono` from 4.12.26 to 4.12.31
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](honojs/hono@v4.12.26...v4.12.31)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 2.3.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.12.31
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
* Bump go-github for search_type support

* chore: regenerate license files

Auto-generated by license-check workflow

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Promote fields parameter beyond Insiders

Keep fields_param as an independently controlled feature flag while removing it from the Insiders expansion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Make fields parameter available by default

Remove the fields_param feature flag and legacy tool variants so selected read tools always advertise and honor fields.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5c43cc70-27b5-47b4-bbd1-99d20f42d61b

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5c43cc70-27b5-47b4-bbd1-99d20f42d61b
* Implement batch project write engine

Resolve and validate shared field updates and item references before executing ordered, chunked GraphQL writes with explicit ambiguous outcomes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Expose update_project_items

Add the public projects_write contract, routing, handler coverage, and generated documentation for shared field updates across batches of up to 50 items.

Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Classify batch resolution failures

Use a neutral code for non-structured lookup failures while preserving structured resolution details.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Resolve issue references concurrently

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2

---------

Co-authored-by: Bryan Zwicker <zwick@github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
Move from the v1.7.0-pre.3 pre-release to the final v1.7.0 release, which
consolidates the pre-releases with no further changes. Regenerate the
third-party license files to reflect the new version tag.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
SamMorrowDrums and others added 3 commits July 30, 2026 15:22
The server exposes a static set of tools, prompts, and resources and never
mutates them at runtime, so it never emits list_changed notifications. When
capabilities are left unset, the go-sdk infers listChanged:true from the
presence of items and advertises tools/prompts/resources list-change support
we don't actually provide - and the 2026-07-28 spec (subscriptions/listen)
tightens expectations around this.

Declare empty tools/prompts/resources capabilities in NewMCPServer so both the
stdio and remote servers advertise honestly. The remote HTTP handler already
set these explicitly; that duplication is now removed in favour of the shared
default, leaving only the remote-specific schema cache.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
Add a regression test locking in the capability contract set by NewMCPServer:
tools, prompts, and resources are advertised without list-changed
notifications, the deprecated logging capability is not advertised, and the
inferred completions capability is preserved. Covers both the stdio path (full
inventory, items present) and the HTTP path (inventory emptied for the
discovery request), which share the same NewMCPServer entry point.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 95b8432c-f280-472e-a242-d3ca6dc31f19
The content parameter is passed to the API as plain text and the server
base64-encodes it, but the description said only "Content of the file".
The REST endpoint this wraps documents its own content field as base64,
so a model reading the tool description has a strong reason to encode the
content itself. When it does, the server encodes again and the file is
committed containing base64 text. Every layer reports success.

Describe the value by how it should end up on disk rather than by what
not to do, so a file whose contents are legitimately base64 is still
unambiguous, and name the encoding step so the conflict with the REST
API docs is resolved rather than merely overridden.

@dariandawnblixtleo-hue dariandawnblixtleo-hue left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

merge

zwick and others added 6 commits August 6, 2026 09:04
* Return closing pull requests from issue_read

Answering "is there a PR that closes this issue?" previously required
listing pull requests and grepping their bodies for closing keywords,
which is expensive and unreliable. GraphQL already exposes
Issue.closedByPullRequestsReferences.

Add it to the existing issue_read `get` enrichment query so the answer
comes back in the same round-trip as the hierarchy signals, as a compact
`closed_by_pull_requests` list. An enriched issue with no closing pull
requests serializes an explicit empty list so an agent can stop looking.

Lockdown mode filters references whose author cannot be verified as safe
content, mirroring the existing parent reference handling.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f

* Cap embedded closing pull requests and report the total

This enrichment runs on every issue_read get, so embedding up to 25
references costs more than the common case is worth. Embed at most 5,
keeping orderByState so open pull requests are the ones that survive.

Select totalCount alongside the nodes and return the summary as an
object of total_count plus references, so the rare issue with more than
five linked pull requests cannot be read as a complete list. The common
zero-to-two case stays compact and an empty result stays definitive.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: a0b58914-0d94-47a9-8229-c0ef7e32e69f
* Make search_issues semantic by default

* initialize description depending on the host

---------

Co-authored-by: Iulia B <iulia-b@github.com>
Co-authored-by: Iulia Bejan <64602043+iulia-b@users.noreply.github.com>
* Render union types in generated docs

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c

* Support clearing issue types with issue_write

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c

* Support clearing issue types with granular tool

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c

* Validate duplicate closures before updates

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c

---------

Copilot-Session: ea8faa5c-7f26-4e2d-bf9c-6f0b5f173e8c
…#3020)

* Add non-default find_duplicate tool gated by duplicate_detection flag

* Trim find_duplicate output to spec fields and relax confidence_threshold bounds

* Attach repo-visibility IFC label to find_duplicate results
* Implement batch project write engine

Resolve and validate shared field updates and item references before executing ordered, chunked GraphQL writes with explicit ambiguous outcomes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Expose update_project_items

Add the public projects_write contract, routing, handler coverage, and generated documentation for shared field updates across batches of up to 50 items.

Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Classify batch resolution failures

Use a neutral code for non-structured lookup failures while preserving structured resolution details.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0

* Resolve issue references concurrently

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2

* Add singular Issue Field project updates

Support name-based attached Issue Field updates for singular Project items while preserving existing read and standard field behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4

* Preserve iteration project field updates

Bypass Issue Field metadata resolution for standard field data types and recognize exact missing fragment-type schema errors.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4

* Adding GraphQL-Features: update_issue_suggestions

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Lizeth Vera <47796851+veralizeth@users.noreply.github.com>
Copilot-Session: 7ae767ff-c1d0-46a9-b126-2e91403993a0
Copilot-Session: 5709a470-df75-43ec-9a9c-98868e6065d2
Copilot-Session: 4c94f3ce-c04a-482f-830b-ab85abc3f6e4
* Order list_label results by issue count (descending)

Sends orderBy: {field: ISSUE_COUNT, direction: DESC} on the GraphQL
labels query so the most-used labels (by issue count) are returned
first. ISSUE_COUNT is accepted by the GitHub GraphQL API but is not
part of the public schema docs or the githubv4 client library's
LabelOrderField constants, so it is defined locally.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* regen docs

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings August 10, 2026 08:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This broad merge updates authentication, issue/search/project tooling, MCP behavior, generated schemas, dependencies, documentation, and CI.

Changes:

  • Adds GitHub App authentication and host-aware semantic issue search.
  • Expands issue, duplicate-detection, Copilot-intent, and project batch workflows.
  • Promotes field filtering, updates MCP capabilities, dependencies, icons, docs, and CI.
Show a summary per file
File Description
ui/src/apps/issue-write/App.tsx Supports explicit issue-type removal.
ui/package-lock.json Updates UI transitive dependencies.
third-party-licenses.windows.md Refreshes Windows dependency licenses.
third-party-licenses.linux.md Refreshes Linux dependency licenses.
third-party-licenses.darwin.md Refreshes macOS dependency licenses.
script/fetch-icons Generates embedded icon data URIs.
pkg/utils/api.go Adds GitHub host classification.
pkg/octicons/octicons.go Loads pre-encoded embedded icons.
pkg/octicons/octicons_test.go Verifies encoded icons against PNGs.
pkg/octicons/octicons_benchmark_test.go Benchmarks icon retrieval.
pkg/http/transport/bearer.go Generalizes token-provider documentation.
pkg/http/server.go Builds host-aware tool inventories.
pkg/http/server_test.go Tests host and feature handling.
pkg/http/handler.go Applies host configuration and capabilities.
pkg/http/handler_test.go Tests host-specific static inventory.
pkg/github/ui_capability.go Adds form-deferral opt-out.
pkg/github/ui_capability_test.go Tests form-deferral flags.
pkg/github/tools.go Updates tool registration and options.
pkg/github/server.go Explicitly advertises MCP capabilities.
pkg/github/server_test.go Tests advertised capabilities.
pkg/github/search.go Makes search fields generally available.
pkg/github/search_utils.go Adds semantic search preparation.
pkg/github/search_test.go Updates search field tests.
pkg/github/search_semantic_test.go Tests semantic query behavior.
pkg/github/repositories.go Promotes field filtering and clarifies content input.
pkg/github/repositories_test.go Updates repository tool snapshots.
pkg/github/projects_batch_mutation.go Implements aliased batch mutations.
pkg/github/params.go Adds nullable string parsing.
pkg/github/params_test.go Tests nullable parameter states.
pkg/github/minimal_types.go Adds closing-PR issue metadata.
pkg/github/lockdown.go Centralizes author lockdown checks.
pkg/github/lockdown_test.go Tests lockdown failure behavior.
pkg/github/labels.go Orders labels and marks destructive writes.
pkg/github/labels_test.go Tests label ordering and annotations.
pkg/github/issues_granular.go Updates issue request APIs and nullable types.
pkg/github/issues_delete_test.go Uses the updated issue request type.
pkg/github/inventory.go Passes tool configuration options.
pkg/github/find_duplicate.go Adds duplicate-candidate search.
pkg/github/fields_param_gating_test.go Removes obsolete feature-gating tests.
pkg/github/fields_filtering_test.go Removes legacy variant tests.
pkg/github/feature_flags.go Updates available feature flags.
pkg/github/feature_flags_test.go Tests revised feature resolution.
pkg/github/__toolsnaps__/update_issue_type.snap Records nullable issue types.
pkg/github/__toolsnaps__/search_pull_requests.snap Records permanent field filtering.
pkg/github/__toolsnaps__/search_pull_requests_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/search_issues.snap Records semantic search schema.
pkg/github/__toolsnaps__/search_issues_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/search_code.snap Records field selection.
pkg/github/__toolsnaps__/search_code_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/projects_write.snap Records batch project updates.
pkg/github/__toolsnaps__/list_releases.snap Records field selection.
pkg/github/__toolsnaps__/list_releases_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/list_pull_requests.snap Records field selection.
pkg/github/__toolsnaps__/list_pull_requests_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/list_label.snap Documents label ordering.
pkg/github/__toolsnaps__/list_issues.snap Records field selection.
pkg/github/__toolsnaps__/list_issues_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/list_commits.snap Records field selection.
pkg/github/__toolsnaps__/list_commits_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/label_write.snap Records destructive annotation.
pkg/github/__toolsnaps__/issue_write.snap Records nullable issue type behavior.
pkg/github/__toolsnaps__/issue_read.snap Documents closing pull requests.
pkg/github/__toolsnaps__/get_file_contents.snap Records field selection.
pkg/github/__toolsnaps__/get_file_contents_ff_fields_param.snap Removes obsolete gated snapshot.
pkg/github/__toolsnaps__/find_duplicate_ff_duplicate_detection.snap Defines duplicate-search schema.
pkg/github/__toolsnaps__/create_or_update_file.snap Clarifies file content encoding.
pkg/github/__toolsnaps__/assign_copilot_to_issue.snap Updates Copilot documentation URL.
pkg/github/__toolsnaps__/assign_copilot_to_issue_with_intent.snap Defines intent-aware assignment schema.
internal/githubapp/githubapp.go Implements installation token authentication.
internal/githubapp/githubapp_test.go Tests GitHub App authentication.
internal/ghmcp/server.go Wires host and token providers.
internal/ghmcp/oauth_test.go Tests authentication-mode exclusivity.
go.sum Updates dependency checksums.
go.mod Updates Go and dependencies.
e2e/e2e_test.go Adds intent-aware Copilot E2E coverage.
docs/server-configuration.md Documents form-deferral configuration.
docs/remote-server.md Documents the intent toolset.
docs/oauth-login.md Links GitHub App authentication.
docs/insiders-features.md Refreshes generated feature documentation.
docs/github-app-auth.md Documents GitHub App authentication.
docs/feature-flags.md Refreshes feature-flag documentation.
Dockerfile Updates build and runtime images.
cmd/github-mcp-server/main.go Adds GitHub App CLI configuration.
cmd/github-mcp-server/main_test.go Tests key loading and schema formatting.
cmd/github-mcp-server/generate_docs.go Supports union schema types in docs.
.github/workflows/registry-releaser.yml Updates setup-go.
.github/workflows/mcp-diff.yml Updates setup-go.
.github/workflows/lint.yml Updates setup-go.
.github/workflows/license-check.yml Updates setup-go.
.github/workflows/goreleaser.yml Updates setup-go.
.github/workflows/go.yml Updates setup-go.
.github/workflows/docs-check.yml Updates setup-go.
.github/workflows/docker-publish.yml Updates cache action.
.github/workflows/code-scanning.yml Updates setup actions.
.github/actions/build-ui/action.yml Builds UI with Node.js 22.

Review details

Tip

Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Files not reviewed (1)
  • ui/package-lock.json: Generated file
  • Files reviewed: 110/112 changed files
  • Comments generated: 3
  • Review effort level: Balanced

Comment on lines +808 to 810
if (issueTypeName && toolInput?.type === undefined && !prefillApplied.current.type) {
setSelectedIssueType({ id: issueTypeName, text: issueTypeName });
prefillApplied.current.type = true;
Comment on lines +154 to +159
candidates = append(candidates, duplicateCandidate{
Issue: MinimalIssueRef{
Number: res.Issue.Number,
Title: res.Issue.Title,
State: res.Issue.State,
URL: res.Issue.HTMLURL,
candidates = append(candidates, duplicateCandidate{
Issue: MinimalIssueRef{
Number: res.Issue.Number,
Title: res.Issue.Title,
@dariandawnblixtleo-hue
dariandawnblixtleo-hue merged commit b225951 into Blixtleod:main Aug 10, 2026
@dariandawnblixtleo-hue

Copy link
Copy Markdown
Collaborator Author

@copilot Fix the code for all comments in this review thread.

When a review comment includes a suggested change, apply the suggestion exactly.

Do not make changes beyond what is described in the linked review thread.

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.