Skip to content

Reject removed tools.serena in parser and align with schema#32909

Merged
pelikhan merged 4 commits into
mainfrom
copilot/deep-report-resolve-serena-disagreement
May 17, 2026
Merged

Reject removed tools.serena in parser and align with schema#32909
pelikhan merged 4 commits into
mainfrom
copilot/deep-report-resolve-serena-disagreement

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 17, 2026

tools.serena was marked as removed in the main workflow schema, but the parser still accepted and configured it as a built-in MCP tool. This change makes parser behavior match the schema contract and provides an explicit migration path.

  • Parser/schema contract alignment

    • ExtractMCPConfigurations now rejects top-level tools.serena with a compile-time error.
    • Error message mirrors schema migration guidance to import shared/mcp/serena.md.
  • Built-in MCP cleanup

    • Removed serena from built-in tool detection in tools.
    • Deleted Serena-specific built-in MCP config branch from processBuiltinMCPTool (built-ins now only include github and playwright).
  • Coverage for removed behavior

    • Added parser test case asserting tools.serena returns an error containing the removal message.
if toolName == "serena" {
    return nil, fmt.Errorf(`tools.serena built-in support has been removed. Import shared/mcp/serena.md instead:
  imports:
    - uses: shared/mcp/serena.md
      with:
        languages: ["go", "typescript"]`)
}

Copilot AI and others added 2 commits May 17, 2026 22:23
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix schema and parser disagreement for tools.serena Reject removed tools.serena in parser and align with schema May 17, 2026
Copilot AI requested a review from pelikhan May 17, 2026 22:29
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot not special treatment, just error

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 17, 2026

@copilot not special treatment, just error

Updated in a942a2a. tools.serena now returns a plain parser error (tools.serena is removed) with no special migration formatting.

@pelikhan pelikhan marked this pull request as ready for review May 17, 2026 22:52
Copilot AI review requested due to automatic review settings May 17, 2026 22:52
@pelikhan pelikhan merged commit c6564c3 into main May 17, 2026
@pelikhan pelikhan deleted the copilot/deep-report-resolve-serena-disagreement branch May 17, 2026 22:52
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 removes parser support for the removed tools.serena built-in MCP tool and adds coverage for rejecting it.

Changes:

  • Rejects tools.serena during MCP extraction.
  • Removes Serena from built-in MCP tool handling.
  • Adds a parser test for the removed Serena behavior and updates the generated smoke workflow lock.
Show a summary per file
File Description
pkg/parser/mcp.go Rejects tools.serena and removes Serena built-in MCP configuration logic.
pkg/parser/mcp_test.go Adds error assertion support and a test case for removed Serena config.
.github/workflows/smoke-claude.lock.yml Aligns the locked workflow cleanup step with generated checkout cleanup behavior.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comments suppressed due to low confidence (1)

pkg/parser/mcp.go:218

  • This second tools.serena rejection uses a shorter message than the schema's removal guidance (pkg/parser/schemas/main_workflow_schema.json:4493). Keep both rejection paths on the same full migration message, or factor the message into a shared constant to avoid drift.
				if toolName == "serena" {
					return nil, fmt.Errorf("tools.serena is removed")
				}
  • Files reviewed: 3/3 changed files
  • Comments generated: 2

Comment thread pkg/parser/mcp.go
Comment on lines +185 to +187
if toolName == "serena" {
return nil, fmt.Errorf("tools.serena is removed")
}
Comment thread pkg/parser/mcp_test.go
},
},
expectError: true,
expectedErrContains: "tools.serena is removed",
github-actions Bot added a commit that referenced this pull request May 18, 2026
…ywright

The 2026-02-05 'how workflows work' blog post showed tools.serena as a built-in MCP tool example, but the schema has marked tools.serena as REMOVED (with x-removed: true) and PR #32909 made the parser reject it at compile time. Users copying the example would now get a hard compile error.

Replaced with tools.playwright (mode: cli) — a still-valid built-in MCP tool — to keep the three-tool illustration intact. The mcp-servers prose mention of serena is unchanged because Serena remains accessible as an external server via shared/mcp/serena.md import.
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.

[deep-report] Resolve tools.serena schema/parser disagreement (schema says REMOVED, parser still accepts it)

3 participants