-
Notifications
You must be signed in to change notification settings - Fork 290
Description
Summary
- Total Breaking Changes Identified: 5
- Severity: HIGH
- Commits Analyzed: 1 (commit 0f15728)
- Status:
⚠️ Requires Immediate Review
Issue: Multiple changesets in commit 0f15728 are marked as "minor" (non-breaking) but describe breaking changes according to scratchpad/breaking-cli-rules.md. These should be reclassified as "major" before the release.
Critical Breaking Changes
| Change | Category | Severity | Issue |
|---|---|---|---|
Removed sandbox: false field |
Schema Removal | HIGH | Users relying on this field will get validation errors |
Renamed app: → github-app: |
Field Rename | HIGH | Workflows using app: will fail validation |
Renamed supportsLLMGateway → llmGatewayPort + made mandatory |
Field Rename + Required | HIGH | Breaking schema change making optional field required |
Changed status-comment default behavior |
Behavior Change | HIGH | Workflows lose implicit status comments without explicit enable |
| MCP Gateway v0.1.5 breaking rules | Dependency | MEDIUM | "Breaking rules" in MCP Gateway may break existing configs |
Breaking Change Analysis
Detailed Changeset Review
1. minor-disable-agent-sandbox-only.md ❌
Description: "Removed the deprecated top-level sandbox: false option and replaced it with sandbox.agent: false"
Classification: Marked as minor ❌
Should be: major ✅
Breaking Change Type: Schema field removal (Category #5 in breaking-cli-rules.md)
Analysis:
- The changeset removes an existing field (
sandbox: false) - Per breaking-cli-rules.md: "Removing fields from workflow frontmatter schema" is breaking
- Users with
sandbox: falsein workflows will get validation errors - A codemod is mentioned but not guaranteed to run automatically
User Impact: Existing workflows with sandbox: false become invalid
2. minor-rename-app-to-github-app.md ❌
Description: "Renamed the deprecated app: workflow field to github-app:"
Classification: Marked as minor ❌
Should be: major ✅
Breaking Change Type: Schema field rename (Category #5 in breaking-cli-rules.md)
Analysis:
- The changeset renames an existing field (
app:→github-app:) - Per breaking-cli-rules.md: "Renaming fields (without backward compatibility)" is breaking
- A codemod is provided but requires users to run
gh aw fix - Without automatic migration, workflows using
app:will fail validation
User Impact: Workflows using app: require manual migration via gh aw fix
3. minor-rename-llmgateway-port.md ❌
Description: "Renamed supportsLLMGateway flag to llmGatewayPort, made the gateway port mandatory and validated"
Classification: Marked as minor ❌
Should be: major ✅
Breaking Change Type: Schema field rename + required field change (Category #5 in breaking-cli-rules.md)
Analysis:
- The changeset renames
supportsLLMGateway→llmGatewayPort - Additionally: Makes the new field mandatory (was optional, now required)
- Per breaking-cli-rules.md: Both field renaming AND making optional fields required are breaking
- This is a DOUBLE breaking change (rename + required)
User Impact: Existing workflows lose supportsLLMGateway and must add new llmGatewayPort field
4. minor-decouple-status-comment.md ❌
Description: "Decouple status comment from emoji, must each be enabled explicitly"
Classification: Marked as minor ❌
Should be: major ✅
Breaking Change Type: Default behavior change (Category #4 in breaking-cli-rules.md)
Analysis:
- The changeset changes the default behavior of status comments
- Previously: Status comments were enabled implicitly with emoji reactions
- Now: Status comments require explicit
status-comment: trueconfiguration - Per breaking-cli-rules.md: "Changing default values for flags... that users rely on" is breaking
- Workflows relying on implicit status comments will no longer produce them
User Impact: Users expecting automatic status comments must add status-comment: true to restore behavior
5. minor-update-mcpg-v0-1-5.md ⚠️
Description: "Bump MCP Gateway v0.1.5, sync validation with breaking rules (Docker-only, explicit mounts, no mounts on HTTP)"
Classification: Marked as minor
Severity: MEDIUM (depends on MCP Gateway implementation)
Breaking Change Type: Dependency with breaking changes (Category #5 in breaking-cli-rules.md)
Analysis:
- The changeset upgrades MCP Gateway dependency to v0.1.5
- Mentions "breaking rules" explicitly (Docker-only TOML stdio, explicit mount modes, no HTTP mounts)
- These are validation rules that restrict previously valid configurations
- Workflows with non-compliant MCP server configurations will fail validation
User Impact: Existing MCP server configurations may no longer work
Decision Tree Application
Applied the breaking change decision tree from scratchpad/breaking-cli-rules.md:
Breaking Change Criteria Assessment:
Changeset 1 (sandbox removal):
├─ Removes a schema field? ✅ YES → BREAKING
└─ Requires major version bump
Changeset 2 (app → github-app):
├─ Renames a schema field? ✅ YES → BREAKING
└─ Requires major version bump (codemod is helper, not automatic)
Changeset 3 (supportsLLMGateway → llmGatewayPort):
├─ Renames a schema field? ✅ YES → BREAKING
├─ Makes optional field required? ✅ YES → BREAKING
└─ Double breaking change - requires major version bump
Changeset 4 (status-comment default):
├─ Alters default behavior users rely on? ✅ YES → BREAKING
└─ Requires major version bump
Changeset 5 (MCP Gateway v0.1.5):
├─ Validates configurations that were previously valid? ✅ YES → BREAKING
└─ Requires major version bump
Action Checklist
Complete the following items to address these breaking changes:
- Reclassify changesets - Change all 5 changesets from
minortomajortype - Update changeset files - Modify the YAML frontmatter to
"gh-aw": majorfor each changeset - Add migration guidance - Each changeset needs clear migration instructions:
sandbox: false→sandbox.agent: falseapp:→github-app:(note: codemod available)supportsLLMGateway→llmGatewayPort(with new field being required)status-comment→ add explicitstatus-comment: trueto restore previous behavior- MCP server configurations → validate against new Docker/mount restrictions
- Document in CHANGELOG.md - Add "Breaking Changes" section with user-facing descriptions
- Update release notes - Include migration guidance for each breaking change
- Test migration paths - Verify that any codemods and fixes work as documented
Recommendations
- Stop the current release until changesets are reclassified
- Reclassify changesets before merge:
# Example: Update .changeset/minor-disable-agent-sandbox-only.md # Change: "gh-aw": minor → "gh-aw": major
- Add migration guidance to each changeset with examples users can follow
- Document version bump: This will be a major version release (e.g., v1.0.0 if currently v0.x.x)
- Consider deprecation warnings: For future breaking changes, add deprecation warnings in one minor release before removal
Reference
- See scratchpad/breaking-cli-rules.md for the complete breaking change policy
- Decision tree on lines 130-174 of breaking-cli-rules.md
- Categories on lines 11-72 define breaking vs non-breaking changes
Analysis completed: All 5 changesets from commit 0f15728 were reviewed against breaking-cli-rules.md
⚠️ Compatibility report by Breaking Change Checker · ◷