Willows End-to-End Sweep — Aug 23

Fede asked for a full test round of every channel ("there's lots of bugs") plus the finish of the lease automation. Four test lanes ran against the Willows test property only: scripted voice calls, email/SMS, the web app, and a full data audit. This page is the consolidated result: every bug, who owns the fix, and what's already live. Camellia was never touched.

The day's headline

The first fully-autonomous lease send happened today. Approved applicant → lease prepared in AppFolio → sent for signature → applicant's inbox, zero human steps, with the finalize/countersign actions structurally blocked throughout. The signing email and Clara's congratulations (with the portal link) are both verified delivered. The remaining polish — real dollar amounts pulled from data instead of a browser robot's typing — is the no-hands API that merged tonight, with its last two field names being captured now.

Bugs found, ranked — and their fix status

#What happens (plain English)SeverityFix status
1Clara goes silent on a lease question. An approved applicant texted "I have questions about my lease" — the message arrived, got escalated to a human, and the applicant heard nothing at all. The proposed quick fix was rejected in review because it didn't explain the real cause (the silent path it patched was email-only; this was a text).SEVEREDeferred honestly — real cause being traced before any live-agent change (tracked)
2Tour "reschedule" reschedules nothing. "Move my Saturday tour to Monday" → "Got it, I'll make that change" → no booking tool ever called; caller leaves believing it's done.SEVEREFix built in lab; ships to the Willows-only agent fleet (Fede's ruling: Camellia frozen until he tests)
3Clara states a lease status she can't know. Told an applicant "your lease is being prepared and sent" with no data source. Root cause found: the saved lease info was stored on a record the phone/text channels can't naturally reach.SEVEREStorage being moved to the person's record + wired into calls (zero added latency)
4Recent conversations don't appear in the conversations list — a call from 9 minutes earlier was invisible on page 1 under every filter, and even phone-number search missed it. Cause found at the database-index level: the "recent" index sorts by record ID, not time.SEVERERoot cause documented; needs its own fix (ticketed)
5A caller can be transferred to their own phone number. A test-property debug redirect for unrecognized callers catches real callers too — Fede was transferred to himself. And when a transfer isn't answered, the call just ends with no fallback.HIGHFix built in lab with regression tests; ships with the Willows train
6Approvers couldn't see who a message goes to — the review card showed "Email" but never the address; one congrats was approved with no email on file at all.HIGHFIXED — card now shows the resolved recipient; approve goes inert when it's empty
7The prospect page showed stale lease state ("Ready to send the lease" while the real lease was already out for signing).HIGHFIXED — page now shows real signing status, sent date, and the same portal link the applicant got
8Wrong and fake data planted on the property: a fake door code ("buzz 0000") served to callers as real, a $200 admin fee and other charges contradicting Fede's ruled fee table, and pages cloned from Camellia describing a different building.HIGHCLEANED — live in production; Clara now answers only from sourced facts
9Duplicate resident records: the same applicant had two occupancy rows (one a stray from a test-run bug), and the "find this person's lease" lookup returned the wrong, lease-less one.HIGHDuplicate-prevention guard in review; stray record removal sequenced (AppFolio side first, then database)
10She promises follow-ups that never get logged — "I'll flag that for the team" (breed rules, 2-bedroom waitlist) without ever firing the team-notification tool; plus contradictory answers about whether the team will reach out.MEDIUMFix in the Willows train
11Spanish switch lag: the first reply after a caller switches into Spanish comes back in English and repeats an old question. (Switching back to English is instant.)MEDIUMFix in the Willows train
12Raw system IDs in the conversations "From" column, "Unit unknown" noise, staff shown as prospects, unlabeled repeat callers, phone search failing on the on-screen number format.MEDIUMMostly FIXED/in review (three PRs from Fede's own session); search normalization ticketed

What passed cleanly (worth knowing)

No fee-dumping on a fees question; honest refusal to promise a text mid-call; accurate pet fees; no invented Saturday slots on the current config; no internal-notes leakage; review gate and approval flow working; both of today's calls correctly recorded in the database (the list bug is display-side, not data loss).

The lease automation, tonight's state

PieceState
Autonomous lease prepare + send (browser-driven proof)DONE — real lease out for signing to the test applicant
Congratulations email with signing-portal linkDONE — delivered; link answers from saved state on any channel (retrieval wiring in progress)
No-hands API (terms from application data, blank-money guard, execution actions blocked)MERGED — two field names being captured now via the live lease regeneration
Lease v2 with real dollar amounts (replaces the blank-rent v1)RUNNING — v1 canceled cleanly, regeneration in progress
Change requests ("can I move my start date?") → review queue → regenerateDESIGNED + roadmapped; the cancel→regenerate→resend path is proven mechanics
ScreeningANSWERED — optional paid add-on, never required for approval; tomorrow's clean pass uses real application + manual approve, faking nothing

One honest discovery about today's "approved" state

The applicant's approved status was planted directly in the database by a test harness — the real AppFolio-application → approval → sync path has never been exercised end to end. That's the whole point of tomorrow's clean pass: inquiry → tour → real application → real approval → lease → signature, every step through the actual machinery.

All findings trace to saved transcripts, screenshots, and read-only database queries from 2026-08-23. Voice scenarios ran as text simulations against the live agent brains (no real calls placed, no cost); the email lane's live round-trips were still completing at publish time and will be appended. Camellia: untouched by every lane, per standing order.

PropFlow Docs