Skip to content

content: model reservations — check out what is ready, and let kits answer a reservation - #324

Open
carlosvirreira wants to merge 3 commits into
mainfrom
content-update/pr-3057-3063-reservations-checkout
Open

carlosvirreira wants to merge 3 commits into
mainfrom
content-update/pr-3057-3063-reservations-checkout

Conversation

@carlosvirreira

@carlosvirreira carlosvirreira commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Triggered by

  • shelf.nu #3057: fix(bookings): check out what is ready, whatever is still unassignedView PR
  • shelf.nu #3063: fix(bookings): adjust model reservations while a booking is outView PR

Both are LIVE on the web: the 🚀 Deploy run for 5f7fbbc1a succeeded on 2026-09-22 06:21Z, and both merges are ancestors of it.

Product change summary

A check-out now needs at least one item to go out, and nothing more. A model reservation nobody has assigned yet no longer refuses the whole booking — Shelf names the open units in a confirmation, checks out what is ready, and leaves the reservation open on the ongoing booking. Separately, a reservation's quantity is now editable on Draft, Reserved, Ongoing and Overdue bookings from a new Adjust quantity dialog, with a one-click Release the N still unassigned. The floor is unchanged: a reservation never drops below the units already assigned to it, and a reservation with assigned units is reduced rather than removed.

Content changes

Factual corrections

  • content/knowledge-base/adding-assets-and-kits-to-a-booking.mdx — said "a booking cannot be checked out while any reservation is outstanding". That is now false. Replaced with the pill's real meaning plus links to the two new sections.
  • content/knowledge-base/require-explicit-check-in-and-check-out.mdx — said fulfil-and-check-out "refuses while a model reservation is still unassigned". Removed that clause (kits are still refused on this path — verified in fulfil-and-checkout.server.ts) and added what the rule actually insists on: a scanned item, with the note that scanning an item already on the booking now checks it out instead of being dropped as a duplicate.

Content enhancements

  • content/knowledge-base/adding-assets-and-kits-to-a-booking.mdx — two new sections: Adjusting or releasing a reservation (the dialog, the floor, reduce-vs-remove, why a reduction skips the availability check, and the knock-on that an unreduced reservation keeps holding units against overlapping bookings) and Checking out while units are still unassigned (the confirmation copy, what is still refused, and which screen the Check out button opens per status).
  • content/knowledge-base/progressive-checkout-of-bookings.mdx — new Checking Out With Reserved Units Still Unassigned section, cross-linked to the above.
  • content/features/bookings.mdx — Book by Model now says a missing unit does not hold the booking back, and that reservations stay adjustable while the booking is live.
  • content/glossary/asset-models.mdx — same point, one paragraph, linked to the KB.

New content

  • content/updates/check-out-what-is-ready-when-units-are-unassigned.mdx — changelog entry covering both PRs and the explicit-check-out duplicate-scan fix.

Review notes

  • Copy is quoted from the shipped code, not from the PR bodies: the confirmation title and body from checkout-dialog.tsx, "Release the N units still unassigned" and "N of M units assigned so far" from adjust-model-reservation-dialog.tsx, the menu labels from model-request-row-actions-dropdown.tsx, the Models tab row from manage-model-requests.tsx, and the status set from canEditModelReservations in utils/booking-model-requests.ts.
  • The phone is deliberately split. #3057's companion half shipped in the production OTA 688f89a1 on 2026-09-21, so the phone's confirm step is live and the changelog says so. #3063's companion half (the quantity stepper's min floor) is not in that OTA, so the changelog says only that the server rule now lets the app's existing model manager work on Ongoing/Overdue bookings, and that the on-screen floor follows in the next phone update.
  • content/updates/model-reservations-countable-and-fulfillable.mdx (2026-08-12) still contains "an outstanding reservation blocks check-out". It sits inside a "Until now…" paragraph describing the state at that date, so it was left as the dated record it is rather than rewritten. Say the word if you would rather it carried a note.
  • No new screenshot TODOs were introduced. Capture is blocked by the same long-standing gap as before: the demo workspace has had zero bookings with an outstanding model reservation on every probe since 2026-08-13, and manufacturing one would hold real gear in a shared workspace.

Impact scope

  • End users affected: anyone running book-by-model bookings — cage and counter operators most of all, plus workspaces on the explicit check-out requirement
  • Prospects affected: teams evaluating Shelf for fleets of identical gear; the "one missing unit stops the job" objection is now answerable
  • Pages modified: 5
  • Pages created: 1
  • Pages flagged for review: 1 (the 2026-08 update entry above)

Generated by Shelf Content Intelligence — PR→Website Sync

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Check out ready items while some reserved model units remain unassigned, and keep reservations open to assign, adjust, or release while a booking is active.
    • Adjust reservation quantities without reducing them below the number of units already assigned.
    • Kits can fulfill model reservations through their individually tracked units, and the fulfil-and-check-out scanner accepts kits.
  • Bug Fixes

    • Improved model reservation editing on mobile.
  • Documentation

    • Updated booking, kit, and checkout guidance with these workflows and scanning rules.

Triggered by:
- Shelf-nu/shelf.nu#3057
- Shelf-nu/shelf.nu#3063

A check-out now needs at least one item to go out and nothing more, so an
unassigned model reservation no longer blocks it, and a reservation stays
adjustable while the booking is Ongoing or Overdue. Corrects two pages that
told readers the opposite.
@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown

Preview deployment

https://c6c2a16d.shelf-nu.pages.dev

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ace2b025-f4fc-4481-bba8-cf516a318e01

📥 Commits

Reviewing files that changed from the base of the PR and between 4b820ae and 1cce55a.

📒 Files selected for processing (8)
  • content/features/bookings.mdx
  • content/glossary/asset-models.mdx
  • content/knowledge-base/adding-assets-and-kits-to-a-booking.mdx
  • content/knowledge-base/kits.mdx
  • content/knowledge-base/require-explicit-check-in-and-check-out.mdx
  • content/knowledge-base/troubleshooting-booking-conflicts.mdx
  • content/solutions/equipment-reservations.mdx
  • content/updates/a-kit-can-answer-a-model-reservation.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • content/knowledge-base/require-explicit-check-in-and-check-out.mdx
  • content/glossary/asset-models.mdx

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The documentation describes kit members settling model reservations and the fulfillment scanner accepting kits. It also covers partial checkout with unassigned reserved units, reservation adjustments, and later assignment or release.

Changes

Model reservation documentation

Layer / File(s) Summary
Kit-based reservation fulfillment
content/features/bookings.mdx, content/glossary/asset-models.mdx, content/knowledge-base/adding-assets-and-kits-to-a-booking.mdx, content/knowledge-base/kits.mdx, content/knowledge-base/require-explicit-check-in-and-check-out.mdx, content/knowledge-base/troubleshooting-booking-conflicts.mdx, content/solutions/equipment-reservations.mdx, content/updates/a-kit-can-answer-a-model-reservation.mdx
The documentation explains how individually tracked units inside kits answer model reservations, with each physical unit answering at most one reserved unit per booking. It covers kit scans in the fulfillment scanner, refusal of loose scans for kit members, and the lack of retroactive settlement for kits already on a booking.
Partial checkout and reservation adjustment
content/features/bookings.mdx, content/glossary/asset-models.mdx, content/knowledge-base/adding-assets-and-kits-to-a-booking.mdx, content/knowledge-base/progressive-checkout-of-bookings.mdx, content/updates/check-out-what-is-ready-when-units-are-unassigned.mdx
The documentation describes checking out available items while reserved units remain unassigned. It covers confirmation messages, later assignment or release, reservation quantity limits, booking-state scanner routes, and explicit checkout behavior.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 1cce5

The booking and reservation guidance is consistent across the supplied pages; no identified issue prevents merging after normal checks.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the documentation changes: checking out ready items while model reservations remain open and allowing kits to fulfil reservations. The “content:” prefix is minor noise.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

A fleet you can hand out any unit of is the audience this page is written
for, and the page never mentioned book by model. #3057 is what makes the
honest version of the claim possible: an unfilled reservation no longer
stops the booking going out.
@carlosvirreira

Copy link
Copy Markdown
Contributor Author

Added one more page after opening this: content/solutions/equipment-reservations.mdx gains a Reserve by Model, Hand Out Whatever You Have section.

Reason: that page is written for exactly the audience book-by-model serves — interchangeable fleets — and it never mentioned the capability at all. #3057 is what makes the honest version of the pitch possible, because "a unit you cannot find does not stop the job" was not true before it.

Page count in the body above is now: 6 modified, 1 created.

Triggered by: Shelf-nu/shelf.nu#3071

An asset now discharges a reserved model unit whether it is picked loose
or arrives inside a kit, at most once per booking. Booking rows that
answered a reservation carry a "Fulfils <model>" chip, and the Fulfil
reservations & check out scanner accepts kit scans on the web and on the
phone instead of refusing them.

Lands on this branch because it corrects a line this PR already edits:
require-explicit-check-in-and-check-out.mdx still said the fulfil scanner
refuses kits.
@carlosvirreira

Copy link
Copy Markdown
Contributor Author

Added a second product change to this branch: shelf.nu#3071 — kits fulfil model reservations (merged and deployed 2026-09-23 07:00Z).

It belongs here rather than in its own PR because it invalidates a line this PR already edits. require-explicit-check-in-and-check-out.mdx said the fulfil-and-check-out scanner "refuses kits". As of #3071 it takes them, so merging this branch as it stood would have shipped a fresh inaccuracy.

What changed in the product, and where it is written up:

  • An asset discharges a reserved model unit whether it is picked loose or arrives inside a kit — at most once per booking. Before, anything arriving via a kit settled nothing, so a booking read "2 of 3 still to assign" with the third camera on it inside a case, while every other booking on those dates saw one fewer unit than the workspace owns.
  • Booking asset rows that answered a reservation carry a blue Fulfils model name chip.
  • The Fulfil reservations & check out scanner takes kit scans; each kit row states how many reserved units it settles. The rule is server-side, so the Companion app gets it with no new build.
  • New refusal: a loose scan of a unit that belongs to a kit nobody scanned — "…" belongs to a kit, so it can't go out on its own.
  • Kits already on a booking are not settled retroactively; remove and re-add.

Files added to this branch: content/knowledge-base/kits.mdx, content/knowledge-base/troubleshooting-booking-conflicts.mdx, content/updates/a-kit-can-answer-a-model-reservation.mdx. The five pages already in this PR gained sections or corrections for the same change.

No alternatives page was touched: none of the 22 mentions book-by-model today, and #3071 completes an existing capability rather than creating a new competitive claim.

@carlosvirreira carlosvirreira changed the title content: check out a booking with reserved units still unassigned content: model reservations — check out what is ready, and let kits answer a reservation Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant