Conversation
…tputs - Add SafeOutputsMCPServerID constant in pkg/constants/constants.go - Update mcp-config.go to use constant for server ID - Update copilot_engine.go to use constant in tool detection and allow-tool args - Update safe_outputs_mcp_server.cjs SERVER_INFO name from "safe-outputs-mcp-server" to "safeoutputs" - Update all test files to expect "safeoutputs" identifier instead of "safe_outputs" - mcp_config_shared_test.go - copilot_engine_test.go - log_parser_test.go - safe_outputs_mcp_integration_test.go - mcp_config_refactor_test.go - logs_mcp_failure_test.go All unit tests passing. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot look for all instances of |
|
@copilot make sure the JSON schema / front matter still uses |
|
- Update pkg/cli/mcp_inspect.go to use constants.SafeOutputsMCPServerID for filtering - Update pkg/parser/mcp.go to use constant for MCP server Name field - Update test files to use constant instead of hardcoded "safe-outputs" string: - pkg/cli/mcp_inspect_test.go - pkg/cli/mcp_list_tools_test.go - Recompiled all 65 workflows successfully This ensures all MCP server identifier references use the "safeoutputs" constant consistently throughout the codebase, while YAML frontmatter keys remain "safe-outputs" (with dash) as expected. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done! I've reviewed all instances of Changes made in commit
All 65 workflows recompiled successfully with the new identifier. All unit tests passing. |
|
@copilot use facing text should be "GitHub Agentic Workflows Safe Outputs" |
…tmp/gh-aw/safeoutputs/ - Updated all Go files in pkg/workflow/ to use new path - Updated all JavaScript files in pkg/workflow/js/ to use new path - Updated test files to use new path - Recompiled all 65 workflows successfully - JSON schema still correctly uses "safe-outputs" (with dash) for frontmatter key Path changes: - /tmp/gh-aw/safe-outputs/ → /tmp/gh-aw/safeoutputs/ - /tmp/gh-aw/safe-outputs/config.json → /tmp/gh-aw/safeoutputs/config.json - /tmp/gh-aw/safe-outputs/mcp-server.cjs → /tmp/gh-aw/safeoutputs/mcp-server.cjs - /tmp/gh-aw/safe-outputs/outputs.jsonl → /tmp/gh-aw/safeoutputs/outputs.jsonl - /tmp/gh-aw/safe-outputs/assets/ → /tmp/gh-aw/safeoutputs/assets/ All unit tests passing. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Verified ✅ - The JSON schema in
Done! All file paths updated from Updated paths:
Files updated:
All 65 workflows recompiled successfully. All unit tests passing. |
…rkflows Safe Outputs" - Updated all instruction text in pkg/workflow/safe_outputs.go - Updated comment in pkg/workflow/js.go - Recompiled all 65 workflows with new user-facing text Changes user-facing references from "safe-outputs MCP" to the more descriptive "GitHub Agentic Workflows Safe Outputs" throughout all generated workflow prompts. All unit tests passing. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done! Updated all user-facing text from "safe-outputs MCP" to "GitHub Agentic Workflows Safe Outputs" in commit Changes:
Examples from generated workflows:
All 65 workflows recompiled with the new user-facing text. |
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString("\n") | ||
| yaml.WriteString(" \n") | ||
| yaml.WriteString(" **IMPORTANT**: To do the actions mentioned in the header of this section, use the **safe-outputs** tools, do NOT attempt to use `gh`, do NOT attempt to use the GitHub API. You don't have write access to the GitHub repo.\n") | ||
| yaml.WriteString(" **IMPORTANT**: To do the actions mentioned in the header of this section, use the **GitHub Agentic Workflows Safe Outputs** tools, do NOT attempt to use `gh`, do NOT attempt to use the GitHub API. You don't have write access to the GitHub repo.\n") |
There was a problem hiding this comment.
@copilot you should use the MCP server if constant here since it is a prompt.
There was a problem hiding this comment.
Done! Updated to use constants.SafeOutputsMCPServerID in commit 1a3e00a. The prompt now shows "use the safeoutputs tools" instead of the hardcoded text.
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString(" **Adding a Comment to an Issue or Pull Request**\n") | ||
| yaml.WriteString(" \n") | ||
| yaml.WriteString(" To add a comment to an issue or pull request, use the add-comments tool from the safe-outputs MCP\n") | ||
| yaml.WriteString(" To add a comment to an issue or pull request, use the add-comments tool from GitHub Agentic Workflows Safe Outputs\n") |
There was a problem hiding this comment.
@copilot use safeoutputs mcp server id constant
There was a problem hiding this comment.
Done! Updated to use constants.SafeOutputsMCPServerID in commit 1a3e00a.
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString(" **Creating an Issue**\n") | ||
| yaml.WriteString(" \n") | ||
| yaml.WriteString(" To create an issue, use the create-issue tool from the safe-outputs MCP\n") | ||
| yaml.WriteString(" To create an issue, use the create-issue tool from GitHub Agentic Workflows Safe Outputs\n") |
There was a problem hiding this comment.
Done! Updated to use constants.SafeOutputsMCPServerID in commit 1a3e00a.
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString(" **Creating an Agent Task**\n") | ||
| yaml.WriteString(" \n") | ||
| yaml.WriteString(" To create a GitHub Copilot agent task, use the create-agent-task tool from the safe-outputs MCP\n") | ||
| yaml.WriteString(" To create a GitHub Copilot agent task, use the create-agent-task tool from GitHub Agentic Workflows Safe Outputs\n") |
There was a problem hiding this comment.
Done! Updated to use constants.SafeOutputsMCPServerID in commit 1a3e00a.
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString(" 3. Add and commit your changes to the branch. Be careful to add exactly the files you intend, and check there are no extra files left un-added. Check you haven't deleted or changed any files you didn't intend to.\n") | ||
| yaml.WriteString(" 4. Do not push your changes. That will be done by the tool.\n") | ||
| yaml.WriteString(" 5. Create the pull request with the create-pull-request tool from the safe-outputs MCP\n") | ||
| yaml.WriteString(" 5. Create the pull request with the create-pull-request tool from GitHub Agentic Workflows Safe Outputs\n") |
There was a problem hiding this comment.
Done! Updated to use constants.SafeOutputsMCPServerID in commit 1a3e00a.
pkg/workflow/safe_outputs.go
Outdated
| yaml.WriteString(" **Adding Labels to Issues or Pull Requests**\n") | ||
| yaml.WriteString(" \n") | ||
| yaml.WriteString(" To add labels to an issue or a pull request, use the add-labels tool from the safe-outputs MCP\n") | ||
| yaml.WriteString(" To add labels to an issue or a pull request, use the add-labels tool from GitHub Agentic Workflows Safe Outputs\n") |
There was a problem hiding this comment.
@copilot Use MCP server, constant ID when referring to safe outputs in these prompts
There was a problem hiding this comment.
Done! All prompt references now use constants.SafeOutputsMCPServerID in commit 1a3e00a. Generated workflows show "use the create-issue tool from safeoutputs" and similar for all other tools.
…ed strings - Import constants package in safe_outputs.go - Replace all "GitHub Agentic Workflows Safe Outputs" text with constants.SafeOutputsMCPServerID - Updated test expectations in missing_tool_test.go and create_agent_task_integration_test.go - Recompiled all 65 workflows Now prompts use "safeoutputs" (the MCP server ID constant) instead of the descriptive product name, making it consistent with how the MCP server is actually named in the configuration. All unit tests passing. Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
Agentic Changeset Generator triggered by this pull request. |
There was a problem hiding this comment.
Pull Request Overview
This PR renames the safe-outputs MCP server identifier from "safe-outputs" (with hyphen) to "safeoutputs" (no separator) throughout the codebase to eliminate ambiguity between "safe-output" and "safe_output" variations. The changes introduce a new constant SafeOutputsMCPServerID = "safeoutputs" in pkg/constants/constants.go and update all references across Go source files, JavaScript files, test files, and generated workflow lock files to use this consistent identifier. File paths are also updated from /tmp/gh-aw/safe-outputs/ to /tmp/gh-aw/safeoutputs/, and user-facing prompt text now directly references the MCP server by its ID rather than using descriptive names.
Reviewed Changes
Copilot reviewed 79 out of 79 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/constants/constants.go | Adds SafeOutputsMCPServerID constant |
| pkg/workflow/safe_outputs.go | Updates prompt generation to use constant |
| pkg/workflow/mcp-config.go | Updates MCP config rendering to use constant |
| pkg/workflow/copilot_engine.go | Updates tool name detection and arguments |
| pkg/parser/mcp.go | Updates MCP server name assignments |
| pkg/cli/mcp_inspect.go | Updates server filtering logic |
| pkg/workflow/js/safe_outputs_mcp_server.cjs | Updates server name and file paths |
| Test files (multiple) | Updates test expectations to use new identifier and paths |
| Lock files (.github/workflows/*.lock.yml) | Generated workflow files with updated paths and identifiers |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
* Initial plan * Create smoke-copilot.firewall.md workflow with firewall enabled Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> * Update .github/workflows/smoke-copilot.firewall.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add changeset for smoke-copilot.firewall workflow * Fix safe-outputs parameter and add smoke-copilot.firewall to smoke-detector Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> * Rename safe-outputs MCP server identifier to "safeoutputs" and update file paths (#2305) * Fix CI test failure by updating to safeoutputs identifier Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> * Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com> Co-authored-by: Jiaxiao Zhou <duibao55328@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This PR renames the safe-outputs MCP server identifier from
"safe_outputs"(with underscore) to"safeoutputs"(no separator) and updates all file paths to use the consistent naming convention, eliminating confusion between dash and underscore variations in the codebase.Problem
The safe-outputs feature uses different naming conventions in different contexts:
/tmp/gh-aw/safe-outputs/(with dash)safe-outputs:(with dash)"safe_outputs"(with underscore) ❌This inconsistency created subtle bugs and confusion when developers needed to reference the MCP server identifier, as they had to remember whether to use a dash or underscore.
Solution
Standardize both the MCP server identifier and file paths to
"safeoutputs"(no separator):safeoutputs(no separator)/tmp/gh-aw/safeoutputs/(no separator) - UPDATEDsafe-outputs:(with dash)"safeoutputs"directlyChanges
1. Constant Definition
Added
SafeOutputsMCPServerID = "safeoutputs"constant inpkg/constants/constants.goto centralize the identifier and prevent future inconsistencies.2. Go Code Updates
--allow-toolargument generation/tmp/gh-aw/safe-outputs/to/tmp/gh-aw/safeoutputs/constants.SafeOutputsMCPServerIDdirectly3. JavaScript Updates
SERVER_INFO.namefrom"safe-outputs-mcp-server"to"safeoutputs"/tmp/gh-aw/safe-outputs/to/tmp/gh-aw/safeoutputs/4. Path Updates
All file paths updated throughout the codebase:
/tmp/gh-aw/safe-outputs/config.json→/tmp/gh-aw/safeoutputs/config.json/tmp/gh-aw/safe-outputs/mcp-server.cjs→/tmp/gh-aw/safeoutputs/mcp-server.cjs/tmp/gh-aw/safe-outputs/outputs.jsonl→/tmp/gh-aw/safeoutputs/outputs.jsonl/tmp/gh-aw/safe-outputs/assets/→/tmp/gh-aw/safeoutputs/assets/5. Prompt Text Updates
All workflow prompts now reference the MCP server by its constant ID:
fmt.Sprintf()"safeoutputs"(the constant value)Examples from generated workflows:
6. Test Updates
Updated expectations in 10 test files to use the new identifier and paths:
mcp_config_shared_test.gocopilot_engine_test.golog_parser_test.gosafe_outputs_mcp_integration_test.gomcp_config_refactor_test.gologs_mcp_failure_test.gomcp_inspect_test.gomcp_list_tools_test.gomissing_tool_test.gocreate_agent_task_integration_test.goExample
Before:
{ "mcpServers": { "safe_outputs": { "command": "node", "args": ["/tmp/gh-aw/safe-outputs/mcp-server.cjs"] } } }After:
{ "mcpServers": { "safeoutputs": { "command": "node", "args": ["/tmp/gh-aw/safeoutputs/mcp-server.cjs"] } } }Generated Workflow Prompt Example:
Before:
After:
Testing
"safe-outputs"(with dash) for frontmatter keysafe_outputsandsafe-outputsinstances completedImpact
This change provides clearer naming conventions throughout the codebase and reduces the cognitive load when working with safe-outputs functionality. The MCP server identifier, file paths, and prompt references now use the same consistent convention (
safeoutputswith no separator), while YAML frontmatter keys appropriately retain their dash-separated format ("safe-outputs").All MCP server identifier references now consistently use the
constants.SafeOutputsMCPServerIDconstant, all file paths use/tmp/gh-aw/safeoutputs/, and all workflow prompts reference the MCP server by its actual ID value.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.