Add top-level plugin switcher tabs - #3516
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs real behavior proof before merge. Reviewed September 9, 2026, 3:59 PM ET / 19:59 UTC (Revision 10). ClawSweeper reviewWhat this changesAdds opt-in provider-plugin tabs to the merged menu switcher, preserves legacy plugin cards, and routes standard Refresh controls to the selected plugin. Merge readiness⛔ Blocked before merge - 3 items remain This remains a useful, owner-approved enhancement absent from current main and the latest release. Earlier concrete findings are addressed, but real native behavior and upgrade compatibility remain unproven. Priority: P2 Review scores
Verification
How this fits togetherCodexBar loads local provider plugins and displays their usage snapshots in its menu bar interface. The switcher combines enabled providers and plugin metadata to select which cards appear and which provider receives Refresh actions. flowchart TD
A[Plugin manifests and settings] --> B[Enabled provider identities]
B --> C[Menu switcher selection]
C --> D[Selected plugin and legacy cards]
C --> E[Refresh action]
E --> F[Existing plugin approval and runtime]
F --> G[Provider usage snapshot]
G --> D
Before merge
Agent review detailsSecurityNone. Review metrics
Root-cause clusterRelationship: Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Keep the approved opt-in design, with unchanged legacy placement and preferences demonstrated on fresh and upgraded installations. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction: this adds an approved capability, and current-main and release source confirm that plugin tabs are absent. Is this the best way to solve the issue? Yes: the opt-in flag reuses existing provider identities, settings, rendering, and approval checks; native compatibility validation is still needed. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5e5a9003efb2. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (9 earlier review cycles; latest 8 shown)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 681c63098f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
Add opt-in plugin tabs with stable selection and scoped refresh. Preserve legacy cards and plugin-only menus. Rebuild visible plugin payloads after refresh through the guarded menu path, and share refresh coalescing with card buttons. Co-authored-by: harjoth <harjoth.khara@gmail.com>
b4cd88a to
8c359f5
Compare
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: Add top-level plugin switcher tabs This is item 1/1 in the current shard. Shard 0/1. This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
|
Landed in e9da079; #2988 is closed. Enabled plugins can opt into their own switcher tabs with Native testing caught a real gap in the proposal: Cmd-R fetched the right snapshot but left the open card stale. Completed plugin refreshes now use the existing guarded rebuild path only for menus containing that plugin’s card. Card refresh buttons also share the scoped manual-refresh lifecycle and in-flight guard. Verification, with credential and session isolation:
The PR body contains inspected synthetic before/after screenshots. No real account data or live provider requests were used. Main is synchronized and clean. |
Adds opt-in
topLevel: trueplugin tabs using the manifest name and icon. Stable plugin identities drive mouse/keyboard selection, Refresh and Cmd-R. A single plugin works without a redundant switcher, multiple plugin tabs work without built-in providers, and legacy appended cards remain reachable. Merge Icons disabled retains appended-card placement.This changes presentation only: existing sandbox capabilities, network approval, settings enablement and provider-data isolation remain in place. Overview still summarizes built-in providers.
Native verification exposed a stale-card bug in the proposal: Cmd-R fetched the new plugin snapshot, but the open card kept its old value because it shared the built-in path that defers parent rebuilds. Plugin cards capture snapshots rather than using the built-in live-value monitor. Completed plugin refreshes now request the existing guarded rebuild only for menus containing that plugin’s card, preserving native-highlight and hosted-submenu safeguards. Card refresh buttons share the manual-refresh scope and in-flight guard. The maintainer pass also removes duplicated selection logic and an Overview wrapper.
Verification:
make check: zero violations across 2,171 Swift files. Independent P0–P2 review is clean.8c359f56c894b106caffdf1be40f27df42cdd4e7.make testpassed all 1,059 selections across 89 groups in 905.1 seconds. One group passed on automatic retry after two unchanged Kiro login fixtures failed their first attempt (missing captured output / timeout); 88 groups passed first try, with no group timeouts or isolated-selection retries.Existing appended-card placement, with the opt-in disabled:
Top-level tabs, showing the updated value after Cmd-R:
Includes authoring documentation and an Unreleased changelog entry. Thanks @harjothkhara!
Fixes #2988.