Skip to content

fix(config): migrate coreTools setting to tools.core#27947

Merged
galz10 merged 4 commits into
mainfrom
galzahavi/fix/tool-setting
Jun 16, 2026
Merged

fix(config): migrate coreTools setting to tools.core#27947
galz10 merged 4 commits into
mainfrom
galzahavi/fix/tool-setting

Conversation

@galz10

@galz10 galz10 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Migrates the coreTools array setting to the nested tools: { core: [] } schema format across GitHub Actions workflows and the A2A server configuration.

Details

The codebase has transitioned from the deprecated coreTools property to the new tools.core nested structure. While most of the application was updated, several scheduled/automated GitHub Action workflows and the A2A server configuration were still referencing the old coreTools setting.

This PR updates those residual configurations to ensure consistency and prevent schema validation errors.

Files updated:

  • .github/workflows/community-report.yml
  • .github/workflows/gemini-automated-issue-dedup.yml
  • .github/workflows/gemini-automated-issue-triage.yml
  • .github/workflows/gemini-scheduled-issue-dedup.yml
  • .github/workflows/gemini-scheduled-issue-triage.yml
  • packages/a2a-server/src/config/config.ts
  • packages/a2a-server/src/config/settings.test.ts
  • packages/a2a-server/src/config/settings.ts

Related Issues

None.

How to Validate

  1. Review the updated workflows and ensure the settings payload now uses tools: { core: [...] }.
  2. Ensure the A2A server configuration type Settings no longer contains coreTools.
  3. Verify that all automated tests pass successfully (npm run test --workspaces).

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

Updates GitHub workflows and a2a-server configuration to use the nested `tools.core` schema instead of the deprecated `coreTools` array.
@galz10 galz10 requested review from a team as code owners June 15, 2026 20:56
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request completes the transition from the legacy 'coreTools' configuration property to the standardized 'tools.core' nested schema. By updating both the A2A server configuration logic and various automated GitHub Action workflows, this change ensures consistency across the codebase and prevents potential schema validation errors.

Highlights

  • Configuration Migration: Successfully migrated the deprecated 'coreTools' setting to the new 'tools.core' nested structure across the A2A server and GitHub Actions workflows.
  • Type Safety: Removed the 'coreTools' property from the 'Settings' interface to enforce the use of the updated configuration schema.
  • Test Updates: Updated unit tests in 'settings.test.ts' to reflect the new configuration schema, ensuring ongoing validation of the settings loading logic.
Ignored Files
  • Ignored by pattern: .github/workflows/** (5)
    • .github/workflows/community-report.yml
    • .github/workflows/gemini-automated-issue-dedup.yml
    • .github/workflows/gemini-automated-issue-triage.yml
    • .github/workflows/gemini-scheduled-issue-dedup.yml
    • .github/workflows/gemini-scheduled-issue-triage.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions github-actions Bot added the size/m A medium sized PR label Jun 15, 2026
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

📊 PR Size: size/M

  • Lines changed: 164
  • Additions: +52
  • Deletions: -112
  • Files changed: 10

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request migrates the configuration settings in a2a-server by removing the deprecated coreTools property from the Settings interface and config.ts in favor of the nested tools.core structure, updating the test suite accordingly. The reviewer notes that there are still references to settings.coreTools in the codebase that will cause TypeScript compilation errors and should be removed. Additionally, an assertion in settings.test.ts needs to be updated to align with the new nested configuration format.

// similar to how packages/cli/src/config/settings.ts handles it.
export interface Settings {
mcpServers?: Record<string, MCPServerConfig>;
coreTools?: string[];

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.

high

Removing coreTools from the Settings interface is correct as part of the migration, but there are still references to settings.coreTools in the codebase that will now cause TypeScript compilation errors. Instead of maintaining backward compatibility for deprecated configuration settings, we should remove them and their associated logic entirely to avoid confusion.

References
  1. Instead of maintaining backward compatibility for deprecated or unshipped configuration settings, remove them and their associated logic entirely to avoid confusion.

showMemoryUsage: true,
coreTools: ['tool1', 'tool2'],
tools: {
core: ['tool1', 'tool2'],

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.

high

Since settings.tools.core is now used instead of coreTools, the assertion on line 114 of this file should be updated to use the new nested configuration format. This aligns with removing backward compatibility logic for deprecated settings.

References
  1. Instead of maintaining backward compatibility for deprecated or unshipped configuration settings, remove them and their associated logic entirely to avoid confusion.

@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label Jun 15, 2026
@DavidAPierce

Copy link
Copy Markdown
Contributor

Please fix failing tests, otherwise LGTM and to the CLI's review.

CLI's thoughts:

Detailed Findings

Below is the detailed analysis of the issues found during verification.

1. Critical compilation error in src/config/config.ts

The Settings interface in packages/a2a-server/src/config/settings.ts had its
coreTools property removed, which is correct. However, src/config/config.ts
was not fully updated to match.

  • File: packages/a2a-server/src/config/config.ts (Line 70)
  • Code:
    const policySettings: PolicySettings = {
      mcpServers: settings.mcpServers,
      tools: {
        core: settings.coreTools || settings.tools?.core,
        exclude: settings.excludeTools || settings.tools?.exclude,
        allowed: settings.allowedTools || settings.tools?.allowed,
      },
      ...
  • Failure:
    src/config/config.ts:70:22 - error TS2339: Property 'coreTools' does not exist on type 'Settings'.
  • Fix: Change core: settings.coreTools || settings.tools?.core to
    core: settings.tools?.core.

2. Critical compilation and unit test failure in settings.test.ts

The author updated the mock settings object in the unit test to use the new
tools.core structure, but forgot to update the assertion, which still expects
the legacy coreTools property.

  • File: packages/a2a-server/src/config/settings.test.ts (Line 114)
  • Code:
    it('should load other top-level settings correctly', () => {
      const settings = {
        showMemoryUsage: true,
        tools: {
          core: ['tool1', 'tool2'],
        },
        ...
      };
      fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(settings));
    
      const result = loadSettings(mockWorkspaceDir);
      expect(result.showMemoryUsage).toBe(true);
      expect(result.coreTools).toEqual(['tool1', 'tool2']);
  • Failures:
    1. Compilation:
      src/config/settings.test.ts:114:19 - error TS2339: Property 'coreTools' does not exist on type 'Settings'.
    2. Runtime Test Failure:
      AssertionError: expected undefined to deeply equal [ 'tool1', 'tool2' ]
  • Fix: Change the assertion to
    expect(result.tools?.core).toEqual(['tool1', 'tool2']);.

3. Documentation Gaps

Although the pre-merge checklist noted that relevant documentation was updated,
we identified residual mentions of coreTools in the enterprise documentation.

  • File: docs/cli/enterprise.md
    • Line 251: ### Allowlisting with coreTools should be updated to
      ### Allowlisting with tools.core.
    • Line 288: allowlisting with coreTools, as it relies... should be
      updated to allowlisting with tools.core, as it relies....

@DavidAPierce DavidAPierce 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.

approved pending comment(s) resolution.

@galz10 galz10 requested a review from a team as a code owner June 15, 2026 22:04
@galz10 galz10 enabled auto-merge June 15, 2026 22:05
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

Size Change: -4 B (0%)

Total Size: 33.9 MB

Filename Size Change
./bundle/chunk-ALRJ456V.js 0 B -3.77 kB (removed) 🏆
./bundle/chunk-FUTTTSYM.js 0 B -13 kB (removed) 🏆
./bundle/chunk-J5U2BLFR.js 0 B -3.43 kB (removed) 🏆
./bundle/chunk-N2OUTQZK.js 0 B -19.5 kB (removed) 🏆
./bundle/chunk-NVINBQLR.js 0 B -16.4 MB (removed) 🏆
./bundle/chunk-TWH77REX.js 0 B -2.79 MB (removed) 🏆
./bundle/chunk-UCDOGG6A.js 0 B -49.2 kB (removed) 🏆
./bundle/chunk-UPJCW2UV.js 0 B -661 kB (removed) 🏆
./bundle/core-5THIC3QE.js 0 B -50 kB (removed) 🏆
./bundle/devtoolsService-SRHWBMD3.js 0 B -28 kB (removed) 🏆
./bundle/gemini-NTYZKHUF.js 0 B -589 kB (removed) 🏆
./bundle/interactiveCli-XMULAWTH.js 0 B -1.3 MB (removed) 🏆
./bundle/liteRtServerManager-XZEFSWES.js 0 B -2.08 kB (removed) 🏆
./bundle/oauth2-provider-DFTBSOGN.js 0 B -9.12 kB (removed) 🏆
./bundle/chunk-2FU75LZY.js 2.79 MB +2.79 MB (new file) 🆕
./bundle/chunk-2Y6BXJ6Q.js 49.2 kB +49.2 kB (new file) 🆕
./bundle/chunk-AMKIOIIN.js 13 kB +13 kB (new file) 🆕
./bundle/chunk-BH7YTF56.js 16.4 MB +16.4 MB (new file) 🆕
./bundle/chunk-KPXPQGZC.js 3.77 kB +3.77 kB (new file) 🆕
./bundle/chunk-L7OROIIS.js 19.5 kB +19.5 kB (new file) 🆕
./bundle/chunk-TKZLJXWN.js 661 kB +661 kB (new file) 🆕
./bundle/chunk-WFX54BUB.js 3.43 kB +3.43 kB (new file) 🆕
./bundle/core-LYKDNEHK.js 50 kB +50 kB (new file) 🆕
./bundle/devtoolsService-KQUZPP4U.js 28 kB +28 kB (new file) 🆕
./bundle/gemini-XZZ7D3N3.js 589 kB +589 kB (new file) 🆕
./bundle/interactiveCli-XAXNKMB2.js 1.3 MB +1.3 MB (new file) 🆕
./bundle/liteRtServerManager-EQUUEHB4.js 2.08 kB +2.08 kB (new file) 🆕
./bundle/oauth2-provider-6E6EYTM2.js 9.12 kB +9.12 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./bundle/bundled/third_party/index.js 8 MB 0 B
./bundle/chunk-34MYV7JD.js 2.45 kB 0 B
./bundle/chunk-5AUYMPVF.js 858 B 0 B
./bundle/chunk-5PS3AYFU.js 1.18 kB 0 B
./bundle/chunk-6HI7VNOG.js 124 kB 0 B
./bundle/chunk-DAHVX5MI.js 206 kB 0 B
./bundle/chunk-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-TUDYL3X4.js 40.3 kB 0 B
./bundle/cleanup-DYV3DE7T.js 0 B -902 B (removed) 🏆
./bundle/devtools-V7NE4CQA.js 696 kB 0 B
./bundle/events-XB7DADIJ.js 418 B 0 B
./bundle/examples/hooks/scripts/on-start.js 188 B 0 B
./bundle/examples/mcp-server/example.js 1.43 kB 0 B
./bundle/gemini.js 5.38 kB 0 B
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB 0 B
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB 0 B
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB 0 B
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB 0 B
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB 0 B
./bundle/https-proxy-agent-AVGR4LHR.js 490 B 0 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B
./bundle/src-LG4OHBW7.js 233 kB 0 B
./bundle/src-QVCVGIUX.js 47 kB 0 B
./bundle/start-CWSFHVXB.js 0 B -622 B (removed) 🏆
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/worker/worker-entry.js 361 kB 0 B
./bundle/cleanup-7VSJYV7R.js 902 B +902 B (new file) 🆕
./bundle/start-ACWLVA5G.js 622 B +622 B (new file) 🆕

compressed-size-action

@galz10 galz10 requested a review from DavidAPierce June 16, 2026 21:26
@galz10 galz10 added this pull request to the merge queue Jun 16, 2026
Merged via the queue into main with commit 926f3d9 Jun 16, 2026
32 checks passed
@galz10 galz10 deleted the galzahavi/fix/tool-setting branch June 16, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/m A medium sized PR status/need-issue Pull requests that need to have an associated issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants