Remove Challenger plugin feature#90
Conversation
Drop the bundled Challenger droids (Opus / GPT / Gemini), their
slash-command shims, and the corresponding Settings UI Apply button.
Removes the related Swift state, file-content tables, and helpers in
SettingsView, the .factory/{droids,commands}/challenger-* assets, the
README section, the AGENTS.md mention, and the [Unreleased] CHANGELOG
bullet; adds a [Unreleased] > Removed entry documenting the change.
|
Warning Review limit reached
More reviews will be available in 15 minutes and 21 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. 📝 WalkthroughWalkthroughThis PR removes the Challenger plugin feature: deletes the SettingsView Challenger UI and helper methods, removes bundled .factory droid/command files, and updates README, CHANGELOG, and AGENTS.md to reflect the removal. ChangesChallenger Plugin Removal
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request removes the Challenger plugin entirely, deleting the associated droid configuration files, removing the "Challenger Plugin" UI elements and installation logic from SettingsView.swift, and updating the documentation accordingly. The review feedback identifies opportunities to clean up dead code resulting from this removal, specifically pointing out unused @State variables (showingInfoAlert, infoAlertMessage, and expandedRowCount) and an unused alert modifier in SettingsView.swift.
| @@ -325,7 +325,6 @@ struct SettingsView: View { | |||
| @State private var authDirectoryMonitor: AuthDirectoryMonitor? | |||
| @State private var expandedRowCount = 0 | |||
| @State private var factoryModelsInstalled = false | |||
There was a problem hiding this comment.
With the removal of the Challenger Plugin row, the @State variables showingInfoAlert and infoAlertMessage (defined at lines 323-324) are now completely unused. Additionally, the .alert('About', isPresented: $showingInfoAlert) modifier at lines 921-925 is now dead code.\n\nPlease remove these unused state variables and the corresponding alert modifier to keep the codebase clean and maintainable.
| @@ -325,7 +325,6 @@ struct SettingsView: View { | |||
| @State private var authDirectoryMonitor: AuthDirectoryMonitor? | |||
| @State private var expandedRowCount = 0 | |||
There was a problem hiding this comment.
The @State variable expandedRowCount is only incremented and decremented within the onExpandChange closures of the ServiceRow views, but its value is never read anywhere in the application.\n\nSince it is a write-only state variable, it represents dead code. Consider removing expandedRowCount and its updates in the onExpandChange closures to simplify the state management.
| > | ||
| > Top-tier quality at half the cost of Opus 4.6. | ||
| ### Removed | ||
| - **Challenger plugin removed** -- The Challenger droids (Opus / GPT / Gemini), the Settings "Challenger Plugin" Apply button, and the bundled `.factory/droids/challenger-*.md` + `.factory/commands/challenge-*.md` files have all been removed. Any previously installed copies under `~/.factory/droids/` and `~/.factory/commands/` should be deleted manually if you no longer want them. |
There was a problem hiding this comment.
[P2] Unreleased still references bundled Challenger droid
Now that [Unreleased] documents the Challenger plugin/droids removal, the later “Claude Opus 4.7 migration” bullet still mentioning the bundled Challenger droid (challenger-opus) reads as inconsistent. Could you reword that clause (e.g., remove the bundled-droid reference, or make it explicitly historical/move it under the release where it actually shipped) so the Unreleased section is self-consistent?
The same [Unreleased] block now both removes the Challenger plugin and described retargeting the bundled Challenger droid to Opus 4.7; trim the latter so the section is internally consistent. Flagged by Droid Auto Review on PR #90.
Summary
Removes the Challenger droids feature in its entirety.
What was dropped
Challenger Pluginrow (Apply / Re-apply button + info popover) inSettingsView.swift, along with its@Stateflag,.onAppearinitializer, and the// MARK: - Challenger Pluginsection (challengerPluginFilestable,checkChallengerPluginInstalled(),renderedChallengerPluginContent(),applyChallengerPlugin())..factory/assets --.factory/droids/challenger-{opus,gpt,gemini}.mdand.factory/commands/challenge-{opus,gpt,gemini}.md.### Changedbullet about "Challenger GPT droid now runs on GPT 5.2" (plus its rationale blockquote). Historical entries (e.g. the Opus 4.7 migration parenthetical) are preserved. A new### Removedentry documents this removal.Verification
rg "[Cc]hallenger|challenge-(opus|gpt|gemini)"returns only the intentional CHANGELOG entries (the new Removed note + the preserved Opus 4.7 historical bullet).cd src && swift build-- clean build (Build complete!).Notes
User-installed copies under
~/.factory/droids/challenger-*.mdand~/.factory/commands/challenge-*.mdhave also been removed locally as part of this change request; existing users of prior builds should clean them up manually per the new CHANGELOG entry.