Skip to content

fix(place/room_booking_approval): answer approvals at once - #640

Merged
camreeves merged 1 commit into
masterfrom
fix/room-booking-approval-exec-wait
Oct 9, 2026
Merged

camreeves merged 1 commit into
masterfrom
fix/room-booking-approval-exec-wait

Conversation

@camreeves

Copy link
Copy Markdown
Contributor

Problem

Jonathan reported on dev Concierge that approving a pending room booking does nothing. Reproduced on placeos-dev today: the accept_event exec on RoomBookingApproval took 10,011 ms (core log), which is exactly refresh_debounce_seconds.

accept_event, decline_event, accept_recurring_event and decline_recurring_event end with refresh_bookings, whose last expression is the Tasker task returned by schedule.in. The driver executor calls get on any returned value that responds to it, so the exec blocks until the debounce timer fires. The ts-client default exec timeout is also 10 s, so Concierge raced the reply and usually lost: spinner for 10 s, then either nothing or "Request timed out", even though the calendar had accepted the event.

Fix

refresh_bookings now has a Nil return type, so the exec replies as soon as the calendar call is queued and the debounced re-poll still runs on its timer.

The spec asserts the accept and decline execs answer in well under the debounce window.

Verification

./harness report drivers/place/room_booking_approval_spec.cr: 1 tested, 0 failures.

Companion frontend change (already on user-interfaces develop, eea67f658e): Concierge gives approve and decline the same 30 s allowance the series actions had, so it also works against the currently deployed driver.

accept_event, decline_event and the recurring variants ended with
refresh_bookings, whose last expression was the Tasker task from
schedule.in. The driver executor waits on any returned value that
responds to get, so every approval exec blocked for the whole
refresh_debounce_seconds window (10 s by default) before replying.
Concierge gives an exec 10 s, so approving a booking raced the timeout
and usually looked like nothing happened even though the calendar had
accepted the event.

Give refresh_bookings a Nil return type so the exec replies as soon as
the calendar call is queued. The spec now checks the exec answers well
inside the debounce window.
@camreeves
camreeves merged commit d483f57 into master Oct 9, 2026
2 of 5 checks passed
@camreeves
camreeves deleted the fix/room-booking-approval-exec-wait branch October 9, 2026 02:24
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