content: a kit's new members reach only that kit's bookings - #243
Conversation
Triggered by: Shelf-nu/shelf.nu#2848 Documents the add-a-member propagation direction, which the site never covered, and its scope fix: a quantity-tracked asset shared between kits used to drag a new member into a different kit's bookings.
|
Warning Review limit reached
Next review available in: 111 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
Preview deployment |
Triggered by
Product change summary
Adding an asset to a kit propagates that asset into the bookings the kit is already part of. The booking list was derived from the first kit member that had any booking row at all, with no filter on which kit that row belonged to. A
QUANTITY_TRACKEDasset can belong to several kits, so that member's rows could belong to a different kit's booking. The new member was then written into a booking that never held this kit, and bookings that genuinely did hold it were skipped. A customer reported the visible half: kits appearing in bookings she never added them to, extra items inside them, and bookings that refused to reserve because the stray asset created a conflict, with the reason only visible on hovering the disabled Reserve button.Content changes
Content enhancements
content/knowledge-base/kits.mdx— the Changing Kit Contents and Existing Bookings section only ever covered removing a member. It now has an Adding a member subsection covering the propagation, its booking-status scope, the kit-quantity inheritance for a quantity-tracked member, and the shared-asset case the bug came from. The existing removal content is unchanged and now sits under a Removing a member heading.updatedbumped to 2026-08-14.New content
content/updates/kit-members-reach-only-their-own-bookings.mdx— changelog entry. Customer-reported, visible in existing data, and the entry names the remediation for anyone already affected.Verified against the code, not the PR description
updateKitAssetsinapps/webapp/app/modules/kit/service.server.tsonmainfilterskitBookingstoDRAFT | RESERVED | ONGOING | OVERDUE. The article names those four and says completed/archived/cancelled are untouched.BookingAssetrows takequantityfrom the newAssetKitslice rather than defaulting to 1, which is why the article says "at the kit's own quantity for a quantity-tracked member".thisKitAssetKitIdsis built from this kit's ownAssetKitids and the rows are deduped by booking, so "every such booking is updated rather than just the first one found" is literal.Review notes
BOOKING_ASSETS_ADDEDactivity event, and the article deliberately does not mention it. It is anActivityEventrow for reporting, not aBookingNote, so it does not appear in the booking's Activity tab, which is what a reader would assume from "activity". The PR is explicit that no note is written on purpose, and that the event has no report consumer yet. Documenting it would promise a user-visible trail that does not exist.content/knowledge-base/activity-logs-for-bookings.mdxwas read and left alone for the same reason.node scripts/check-product-claims.mjspasses (543 files, no stale claims).Impact scope
Generated by Shelf Content Intelligence — PR→Website Sync