feat: limit Featured to eight selections per catalog - #3724
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. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Codex review: blocked before merge. Reviewed September 15, 2026, 11:14 PM ET / September 16, 2026, 03:14 UTC. ClawSweeper reviewWhat this changesLimit new Featured selections to eight plugins and eight skills, preserve retained selections and their history, and await skill notification scheduling. Regression provenancePossible regression — suspected (reviewed change). No predecessor PR is attributed. Merge readiness⛔ Blocked before merge - 3 items remain The change remains useful and is not implemented on current main, but the new capacity check also interrupts restoration of existing legacy Featured selections. This collaborator-authored PR should remain open. Priority: P2 Review scores
Verification
How this fits togetherClawHub’s Featured catalog uses staff-managed badge records to curate plugins and skills. Browser and admin requests update those records through Convex mutations, which feed catalog listings and skill notifications. flowchart TD
A[Staff browser or admin request] --> B[Authenticated publication mutation]
B --> C{Already selected?}
C -->|Yes| D[Preserve selection and history]
C -->|No| E[Check catalog capacity]
F[Legacy badge backfill] --> E
E --> G[Badge records and audit history]
G --> H[Catalog listings and notifications]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Copy recommended automerge instructionTechnical reviewBest possible solution: Enforce the cap on new selections while preserving restoration of existing membership, with documented transition rules and upgrade regression coverage. Do we have a high-confidence way to reproduce the issue? Yes, from source: backfilling nine skills with legacy highlighted membership and no badge-table rows commits eight restorations, then throws on the ninth. This path was inspected, not executed. Is this the best way to solve the issue? Not fully: shared transactional enforcement is the right layer and avoids UI-only bypasses, but applying new-selection admission rules to legacy restoration is too broad. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 5bf0026d8f6f. LabelsLabel changes:
Label justifications:
EvidenceAcceptance criteria:
What 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
|
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: feat: limit Featured to eight selections per catalog 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. |
What Problem This Solves
Featured has no per-catalog size limit, and keeping an existing selection rewrites its timestamp and audit history.
User Impact
Featured permits eight plugins and eight skills. A ninth addition explains that an existing selection must be removed first; keeping a selection preserves its position and history. Experimental Claws do not consume plugin slots.
Why This Change Was Made
The canonical publication mutations enforce the cap transactionally, including admin and maintenance entry points. Existing membership bypasses insertion and audit/scheduling work. Skill webhook scheduling is now awaited by its mutation owner.
Evidence
Before: the ninth grant succeeded; retaining rewrote state, and an unrelated Claw could consume a plugin slot. After: UI/admin/maintenance reject the ninth, remove-then-add succeeds, each catalog is independent, and retained badge/audit/scheduler state is byte-equivalent. Actual native Convex proof independently accepts eighth, rejects ninth, and preserves the retained timestamp.
Production +57 net lines for the shared transactional cap and mutation ownership; tests/support +225. No schema or configuration changes.
Validation at the complete stack: static, 6,903 unit tests, types/build, package verification, and HTTP/CLI e2e all passed. Native Convex and authenticated browser checks use isolated labeled fixtures; production Featured and digest delivery remain unchanged.
Related: CLAW-724.
Review follow-up:
94b6bcad62revalidates legacy membership at the maintenance mutation before applying new-selection admission. Nine legacy selections restore completely, later records still process, replay is idempotent, and new UI/maintenance grants remain blocked. Paired reproduction: before 1 failed/2 passed; after 48 publication/maintenance tests passed. Existing over-cap catalogs retain membership for curator review; no automatic removal. The accepted transition is recorded in CLAW-724 and the stack’s existing search-intelligence specification.