You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A breaking schema change was detected and incorrectly categorized as minor. The removal of the top-level sandbox: false option (boolean format) should be a major version bump, not minor.
// Handle boolean format: sandbox: false (NO LONGER SUPPORTED)// This format has been removed - only sandbox.agent: false is supportedif_, ok:=sandbox.(bool); ok {
frontmatterExtractionSecurityLog.Print("Top-level sandbox: false is no longer supported")
// Return nil to trigger schema validation errorreturnnil
}
require.Error(t, err, "Expected error when using sandbox: false (top-level boolean no longer supported)")
Schema Change: The JSON schema no longer includes boolean type in the sandbox field's oneOf definition. Only string (legacy) and object (current) formats are supported.
Breaking Change Pattern
According to scratchpad/breaking-cli-rules.md:
5. Schema Changes
Breaking:
Removing fields from workflow frontmatter schema
Changing the type of a field (e.g., string → object)
This change matches the breaking pattern: the sandbox field previously accepted boolean type, now it only accepts string or object. This removes a valid input format that users relied on.
User Impact
Users who have workflows with:
---
sandbox: false
---
Will now get schema validation errors and must migrate to:
---
sandbox:
agent: false
---
Changeset Analysis
Current Changeset: .changeset/minor-disable-agent-sandbox-only.md
---"gh-aw": minor---
Removed the deprecated top-level `sandbox: false` option and replaced it with `sandbox.agent: false`, so only the agent firewall can be disabled while the MCP gateway stays enabled. Add `gh aw fix` to migrate existing workflows.
Issue: This changeset is marked as minor but should be major because it removes a previously valid input format (boolean) from the schema.
Why This Is Breaking:
Removes field type: sandbox no longer accepts boolean values
Breaks existing workflows: Any workflow with sandbox: false will fail compilation
Requires manual migration: Users must update their workflows to use sandbox.agent: false
Complete the following items to address this breaking change:
Correct the changeset type from minor to major - Rename .changeset/minor-disable-agent-sandbox-only.md to .changeset/major-disable-agent-sandbox-only.md and change the YAML frontmatter from minor to major
Enhance migration guidance in changeset - Add explicit before/after code examples showing the migration path
Document in CHANGELOG.md - Add entry under "Breaking Changes" section with clear user-facing migration instructions
Verify gh aw fix handles migration - Confirm that the gh aw fix command mentioned in the changeset actually migrates sandbox: false to sandbox.agent: false
Consider deprecation period - Evaluate whether this should have been deprecated with a warning first, rather than an immediate breaking change
Recommendations
Immediate Actions
Update Changeset Type - Change from minor to major:
---"gh-aw": major---**⚠️ BREAKING CHANGE**: Removed support for top-level `sandbox: false` (boolean format)
The deprecated `sandbox: false` syntax is no longer supported. Use `sandbox.agent: false` instead.
**Migration guide:**
Before:
\`\`\`yaml
---
sandbox: false
---\`\`\`
After:
\`\`\`yaml
---
sandbox:
agent: false
---\`\`\`**Automatic migration**: Run `gh aw fix workflow-name` to automatically migrate your workflows.
**Reason**: This change separates agent sandbox configuration from MCP gateway configuration, allowing users to disable the agent firewall while keeping the MCP gateway enabled.
Verify Migration Tool - Test that gh aw fix correctly handles this migration:
# Test with a workflow that has sandbox: false
gh aw fix test-workflow.md
Update Breaking CLI Rules - Consider adding this as an example in scratchpad/breaking-cli-rules.md under Schema Changes.
Best Practices for Future Changes
According to the breaking CLI rules, this change should have followed this deprecation path:
Version N: Add deprecation warning when sandbox: false is detected (keep functionality working)
Version N+1 (minor): Continue showing warning, document scheduled removal
Version N+2 (major): Remove support with clear migration guidance
For immediate breaking changes like this one, always:
Summary
A breaking schema change was detected and incorrectly categorized as minor. The removal of the top-level
sandbox: falseoption (boolean format) should be a major version bump, not minor.Critical Breaking Changes
sandbox: false(boolean format)sandbox: falsein workflows will get schema validation errors. Must migrate tosandbox.agent: falseDetailed Analysis
Full Code Diff Analysis
Breaking Change: Removed Top-Level
sandbox: falseBoolean FormatLocation:
pkg/workflow/frontmatter_extraction_security.go:163-168Location:
pkg/workflow/sandbox_agent_disabled_test.go:38Schema Change: The JSON schema no longer includes boolean type in the
sandboxfield'soneOfdefinition. Only string (legacy) and object (current) formats are supported.Breaking Change Pattern
According to
scratchpad/breaking-cli-rules.md:This change matches the breaking pattern: the
sandboxfield previously acceptedbooleantype, now it only acceptsstringorobject. This removes a valid input format that users relied on.User Impact
Users who have workflows with:
Will now get schema validation errors and must migrate to:
Changeset Analysis
Current Changeset:
.changeset/minor-disable-agent-sandbox-only.mdIssue: This changeset is marked as
minorbut should bemajorbecause it removes a previously valid input format (boolean) from the schema.Why This Is Breaking:
sandboxno longer accepts boolean valuessandbox: falsewill fail compilationsandbox.agent: falseAction Checklist
Complete the following items to address this breaking change:
.changeset/minor-disable-agent-sandbox-only.mdto.changeset/major-disable-agent-sandbox-only.mdand change the YAML frontmatter fromminortomajorgh aw fixhandles migration - Confirm that thegh aw fixcommand mentioned in the changeset actually migratessandbox: falsetosandbox.agent: falseRecommendations
Immediate Actions
Update Changeset Type - Change from
minortomajor:Then update the content:
Verify Migration Tool - Test that
gh aw fixcorrectly handles this migration:# Test with a workflow that has sandbox: false gh aw fix test-workflow.mdUpdate Breaking CLI Rules - Consider adding this as an example in
scratchpad/breaking-cli-rules.mdunder Schema Changes.Best Practices for Future Changes
According to the breaking CLI rules, this change should have followed this deprecation path:
sandbox: falseis detected (keep functionality working)For immediate breaking changes like this one, always:
majorReference
Once all checklist items are complete, close this issue.