Tour Availability on Voice — Decision

PROPOSED — PENDING FEDE'S PICK

Clara couldn't tell a caller what tour times exist on a Saturday. Commissioned by Fede 2026-08-23 after his own test call hit it; investigated, built, and reviewed overnight. Nothing here touches a live phone line until Fede says so.

What was wrong (from the RCA)

Clara's briefing at call-start carries only the earliest two weekday tour slots, with an instruction to "attempt the booking instead" for anything else. She has no way to look a day up — so a caller asking "what times do you have Saturday?" can never get an answer, and the only Saturday fact Fede's call ever produced came from a booking-rejection error. She also narrated her own internal caveat to the caller ("the calendar has more slots than what I'm showing").

Did this ever hit a real customer? — Yes, twice, early on

Full retained prod history audited (1,059 real voice calls, every candidate read by hand): ~18 real prospects ever asked day-specific availability. 2 confirmed failures — both at Camellia, both April–May 2026, both before Saturday hours existed. One caller gave up and asked for a human; one got booked only by guessing a time himself. Every later case (16 more, through Aug 22) got concrete alternatives. Real but rare — an early-days bug that mostly self-resolved when Saturday hours arrived, until the structural gap resurfaced in Fede's test.

Why the lookup didn't exist — Fede remembered correctly

It was removed for latency, in two steps: a real call measured live availability reads at 4.9s and 8.3s of dead air, so availability moved to call-start injection (June 4, PR #1951, ADR-0080); six weeks later the live tools were unbound from voice entirely as redundant ~9s reads (July 19, "INJECT-4", PR #4150). The 2-day cap itself came from a calendar-throttling fix (PR #1956), and the "attempt the booking instead" wording was a later honesty patch (PR #4298) that fixed one lie and created tonight's leak. Full citations in the fleet record.

What was built tonight (Fede's design: long horizon + tool only as fallback)

PieceWhat it doesCost (measured)Where
Availability horizonThe briefing now carries every open day for 7 days (or 14 by flag), weekends included, as ready-to-speak times. The leak-prone caveat text is gone, in both the data block and the prompt. Guards: 2,000-char hard cap; properties with no saved office hours are no longer read out as a fabricated open-all-week calendar.+74 tokens (7d) / +218 (14d) at call start; zero live-call latencyPR #6125
Day-lookup toolget_day_tour_times — the first live availability tool voice has ever had. Asked about a day outside the horizon, Clara calls it and speaks the exact sentence it returns (real times, status-locked — nothing to invent). Booking rejections now also return speakable alternatives ("outside Saturday hours — I have 1:15 or 2:30") instead of a raw error.p50 223ms / worst 421ms (no calendar connected). Calendar-connected properties inherit the known 4.9–8.3s read — see open question.PR #6126

Both PRs are reviewed (two-agent review + fix-up round, re-verified approve), regression-proven fail-before/pass-after, and merge-held. Even after merge, nothing reaches a live call until the gated ElevenLabs sync step runs.

⚠ Correction found during review (overnight): merging = going live, everywhere

The review process proved the original "ships gated behind a separate sync step" claim was wrong: the sync workflow fires automatically on merge for these files, and the voice specialists are one shared agent across all properties — there is no per-property staging. So "enable on Willows first" is not currently buildable, and saying "merge" to #6126 means the new tool + prompt go live for real Camellia callers ~15 minutes later. Both PR bodies now state this plainly; a post-merge robocall verification is committed. This is why the picks below look different from a staged rollout.

Your picks

Q1Ship it? (recommendation: A — with eyes open)

AMerge both (#6126 first), accepting they go live everywhere on merge — a deliberate, single lift of the voice freeze for this one change: zero-latency fix, evals 33/35 with both new cases passing, immediate robocall verification after, rollback = revert.
BBuild per-property gating first (a real settings flag the tool checks), then merge — safest, costs another build before any caller benefits.
CMerge the horizon only, hold the tool (smallest change; unlisted-day asks still have no answer — and note #6125 depends on #6126, so this requires splitting).
DHold everything.

Q2Horizon length? (recommendation: 7 days)

7d +74 tokens, covers "this weekend" always — the case that actually failed. 14d +218 tokens, covers "two weekends out" asks (rare in the audit).

Q3Calendar-connected properties (Camellia): the lookup tool inherits the old 4.9–8.3s read. (recommendation: A)

AEnable tool only where no calendar is connected for now; fix the Graph read speed (or add dead-air masking) as its own measured follow-up before calendar properties get it.
BEnable everywhere now with ElevenLabs' speech masking on the tool.
CEnable everywhere with no masking (risk: multi-second silences on live calls — the exact class Fede banned).

Related: voice before/after report · the RCA · Voice Truth Guard decision (its Option A "speakable outcome" shape is what the new tool implements). Data as of 2026-08-23, all figures measured or cited from commits — none estimated.

PropFlow Docs