Changelog

What’s shipped, written for the Specialist using it — not the engineer who built it.

  1. Lulu books the right visit at the right price, and pet history merges cleanly

    1.0.0-beta.58
    • A drop-in a Pet Parent asks Lulu for is now the standard 20 minutes, not 30.
    • Ask Lulu for a family's rate by name and she quotes that family's own rate, not your standard one.
    • Boarding requests through Lulu ask for the check-out date and can cover more than one night.
    • When a visit request can't go through, Lulu says why in plain words and nothing half-made is left behind.
    • Importing a pet's history no longer duplicates visits PayPaw already has, and photos are never saved twice.

    This release is mostly about Lulu getting the details right. She will not draft an invoice line for zero or a fraction of a cent, and when a family skips visits on a subscription, her receipt says what actually happened to the money: a credit, a smaller upcoming charge, or no change.

    Pet history import now fits around the care PayPaw already recorded. A stay that overlaps a PayPaw visit attaches its photos to that visit, daytime photos across several days become separate daily visits rather than one long boarding stay, a boarding stay and a walk on the same day stay separate, and Memories counts each kind of care exactly. A pet you leave out of a family's Memories story takes their photos with them.

    Part of this release reaches Specialists through the iPhone app in private testing: the visit card now appears on the Lock Screen before a visit even if the app has not been opened, the start-visit button is larger, and the chat box offers predictions and autocorrect like a normal message.

  2. Training plans, Walk & Train, and a pet's history from before PayPaw

    1.0.0-beta.57
    • Trainers can build a training plan for any pet, with goals, sessions and homework, whatever the family pays and however they pay.
    • Walk & Train is now its own service, for walks that include training time.
    • A pet's care from before PayPaw can be added, with photos, so the record does not start the day the family joined.
    • When a visit runs behind, the Specialist can choose 15, 30 or 60 minutes, and the family sees the new arrival time in the visit's chat.
    • This release also updates the platform for the latest Node.js and Next.js security fixes.

    Training plans used to be tied to how a family paid. Now a plan belongs to the pet, so a trainer can track goals and homework the same way for a package, a subscription or pay-as-you-go.

    Some of what ships here reaches people through the coming iPhone app: a welcome story that shows a family their pet's history, which plays only after their Specialist has previewed and approved it, and a private place to write each visit's report with Lulu before the family sees it.

  3. Honest pauses, tips that get offered, and a bank that is never charged before it is verified

    1.0.0-beta.56
    • Pausing a recurring service now stops the visits and the billing together. Before a pause starts you can see what it will change, and resuming picks up at the start of a billing cycle instead of charging part of one.
    • Pet Parents now see tip amounts right when they pay, and can add a tip after paying or after a visit. Custom tips take cents, so 4.50 means $4.50.
    • A bank account still waiting on its small verification deposits shows as pending. It cannot be set as the default and it is never charged until it is verified.
    • The pay options no longer show a +$ fee. The bank option says what paying by bank saves the Specialist.
    • A paid invoice can no longer be marked void by the background sync with the payment provider.

    Most of this release is about money being exactly what it looks like. A pause used to stop the visits while the subscription could still bill, a bank that was not verified yet could look ready to charge, and in rare timing a paid invoice could be marked void. Each of those is fixed at the source.

    A few smaller changes ride along. Initial Consult is now its own service and can be offered at no charge. Schedule pages no longer show a visit twice or drop one, and recurring visits are placed on the Specialist's own clock. Lulu's chat recovers after sitting idle instead of showing an error, explains problems in plain words, and can send a draft invoice the Specialist made by hand.

    This release also carries the server side of the coming iPhone app: a chat for each visit, a written visit report, and a Lock Screen card that follows a visit while it happens. None of that appears on the website, and it reaches people only when the app does.

  4. Lulu can act on the pets she finds, and a way to rescue an unapproved visit

    1.0.0-beta.55
    • When Lulu looks up a family, she now gets each pet's record along with its name, so she can go on to open that pet's profile or make a reservation for it. Before, she found the pet and then could not act on it.
    • The email warning a Specialist that a Pet Parent has not approved a reservation now has an Open the visit button. If the visit already happened, it says how to mark it delivered so the family receives the invoice, instead of letting the reservation expire.

    Both changes came from the same day of use. A visit that was delivered but never approved was two days from expiring with nothing in the email to act on, and Lulu kept finding a pet by name and then failing to do anything with it. Two small fixes, shipped the same day.

  5. One morning summary, and delivered visits always reach a bill

    1.0.0-beta.54
    • Specialists no longer get a reminder the day before every visit. Instead, one summary arrives at 6:30 each morning there are visits: how many, when the day starts and ends, and how many families.
    • Pet Parents now get a notice when a visit starts and when it ends, with how long it ran.
    • If a visit has not been started 15 minutes after its time, the Specialist gets a nudge with a Running late option that tells the family the new time. At 45 minutes, PayPaw checks in with the Specialist and asks the Pet Parent whether the Specialist has arrived.
    • Visits that were delivered but never billed are now caught. Each night PayPaw closes visits left running long past their end and prepares the final invoice as a draft for the Specialist to review. Nothing is sent or charged until the Specialist sends it.
    • Lulu can send an invoice that already exists as a draft, after showing it for confirmation, and only for visits that have happened. When a Pet Parent asks her for a visit and something is wrong with the request, she now says what to fix instead of retrying the same thing.

    Two of these changes came straight from Specialists' days. A reminder for every visit had become noise, so it is now one summary in the morning. And a run of visits that were walked but never invoiced, some going back to July, showed that nothing noticed when billing was skipped. That gap is now checked every night. The final invoice it produces is always a draft: the Specialist reviews it, adds anything extra, and sends it. A handful of older reservations whose invoices had already been voided are not re-billed automatically; those are being reviewed one by one.

  6. Recurring drop-ins are the right length

    1.0.0-beta.53
    • Recurring drop-in visits were being scheduled as 30 minutes even though a drop-in is 20. New recurring drop-ins now get the same length as one-off ones, and the calendar, the close-out reminder and the end-of-visit check all use that one number.
    • Lulu uses the same default lengths when she creates a reservation, so she no longer guesses 30 minutes for a drop-in.
    • In the iPhone app (private testing): each item a Pet Parent taps opens its own saved conversation with Lulu, earlier conversations can be found again, and the morning summary leads with anything owed.

    The drop-in length came from two tables that disagreed: the one the reservation form showed and a separate one the server used for recurring visits. There is now one source. Drop-ins already on the calendar from before this release keep their old 30-minute window until they are corrected, and completed visits are left exactly as they happened. Setting a different default length per Specialist is not available yet.

  7. A watch on the stuck Lulu bar, and cards before words

    1.0.0-beta.52
    • On iPhone, the Ask Lulu bar could get stuck partway up the screen with no keyboard showing. PayPaw now notices when that happens and tries to put the screen back. It also records what led up to it, so the cause can be found. The underlying bug is not fixed yet.
    • When Lulu shows a card, such as a reservation or an invoice, it now appears above her reply instead of below it.
    • When Lulu cannot finish something she was asked to do, PayPaw now hears about it automatically instead of relying on someone to report it.
    • In the iPhone app (private testing): a Pet Parent quick-action menu that opens straight into Lulu, photos in chat, live refresh, and dark mode.

    The stuck Lulu bar has been reported several times and has been hard to pin down, because it happens intermittently and nobody can recall exactly what came before it. This release does not claim to fix it. It makes the bug observable: the next time it happens on a phone in the signed-in app, PayPaw tries to recover the screen and reports the sequence of taps and screen changes that led there. The report contains no typed text and no message content.

  8. Smoother Lulu in the iPhone app (private testing)

    1.0.0-beta.51
    • In the PayPaw iPhone app, which is in private testing, Lulu now writes her replies at the same steady pace as on the web and keeps bold text in place as she finishes.
    • Cards Lulu shows stay where they land instead of jumping, and buttons, chips and cards respond to a press.

    This release changed only the PayPaw iPhone app, which is still in private testing and not yet in the App Store. Nothing changed on paypaw.app. It is listed here so the history of every release is complete.

  9. Training sold as a package, and a calmer way into Lulu

    1.0.0-beta.50
    • Training can be sold as a program: one price for the outcome, a deposit the Pet Parent pays on acceptance, and a payment schedule the Specialist sets. Each installment is invoiced automatically on its due date, so the Specialist does not have to remember to send it.
    • Sessions are drawn against the program, so moving one never touches the money. After any session the Specialist can assign homework, and the Pet Parent marks it done and writes back.
    • On an iPhone, tapping Ask Lulu no longer flashes the keyboard on the way into the chat. A related problem, where the Ask Lulu bar could still end up stuck partway up the screen, was not fully fixed by this release (see beta.52).
    • This page. Every production release now has its notes here, starting with beta.46.

    The training program is the first thing in PayPaw priced for an outcome rather than a visit. A Specialist names the program, the result it is for, and the total. The Pet Parent accepts and pays the deposit, and the balance arrives on the schedule the Specialist chose, invoice by invoice, without anyone keeping a calendar of who owes what. Sessions and homework sit inside the program, so the question of what has been paid and the question of what has been done stay separate, which is how a trainer thinks about the work anyway.

    The Lulu change addressed a keyboard that appeared when it was not wanted. It fixed the flash, but the stuck-bar symptom it was also meant to cure came back intermittently afterward, so it is not described here as fixed.

  10. Scrolling restored on the public site

    1.0.0-beta.49
    • Scrolling works again on the public pages. For about a day and a half, a mouse wheel or a swipe did nothing on the home page and the Specialists page. Anyone who opened a PayPaw link in that window and found the page stuck was seeing this bug.
    • Lulu on iPhone: Close returns to the previous screen, and the keyboard no longer pushes the conversation out of view.

    A fix for a mobile layout problem, shipped on September 22, quietly broke scrolling on the public site. Keyboard scrolling still worked, as did every screen inside the app, which is why it took a day and a half to surface — none of PayPaw's automated tests scrolled a page the way a person does. It is fixed, and a test that scrolls the way a person does is now part of the suite.

  11. Local time, intact notes, and the Specialist's name first

    1.0.0-beta.48
    • Agendas show visit times in the Specialist's local time. Several views were rendering UTC, so a visit could read at the wrong hour. Every instance found is fixed.
    • Care and behavioral notes keep their shape. Paragraphs and lists were being flattened into one block; they now render as written across the timeline, the drawers, and the pet profile.
    • Texts to a Pet Parent lead with the Specialist's name instead of PayPaw's.
    • Lulu can create, confirm and change reservations, several at once, and she understands recurring visits — a Pet Parent asking when the next visit on a subscription falls gets a real answer.
    • A first payment no longer depends on one email arriving. An invite can be claimed with an emailed code, a payment email can be resent, and the Specialist can copy the link and send it directly.

    Three of these surfaced during real walks, and they share a theme: PayPaw had the right answer and displayed the wrong one. The agenda held the correct visit time and printed it in UTC. A note typed with paragraphs and lists rendered as one wall. A Pet Parent received a text about their pet with PayPaw's name in front instead of the Specialist's.

    The last one matters more than its size suggests. A message to a Pet Parent comes from the Specialist — PayPaw is the plumbing, and plumbing does not introduce itself.

    On phones, Lulu's chat has been rebuilt on a frame that holds steady as the keyboard opens and closes, and the dashboard no longer drags sideways during a downward scroll.

  12. Dose reminders that arrive on time

    1.0.0-beta.47
    • Medication reminders follow the Specialist's own clock. For anyone working outside UTC, dose reminders had been landing hours off — or not arriving at all. That is fixed.
    • Every email PayPaw sends on a Specialist's behalf carries their business branding, and subject lines lead with the pet, then the time, then the amount.
    • Reminder notices name the real visit time instead of a generic "in 2 hours".
    • Payout amounts appear in the right currency, and a covered visit credits the Specialist who covered it.

    The dose reminder fix is the one worth knowing about. Reminder windows were being built in UTC rather than in the Specialist's own time zone, so for any Specialist working outside UTC a dose-due or dose-missed reminder could land hours late or never arrive. Reminders are now built against the pet's Specialist time zone.

    Alongside it, a full pass over every notice PayPaw sends. More than thirty emails that used to go out as plain text now carry the Specialist's branding, subjects follow one consistent shape — pet, then when, then how much — and push titles say what happened rather than who is sending the notice.

  13. Notifications that repair themselves, and a steadier Lulu

    1.0.0-beta.46
    • Push notifications repair themselves. When a browser or phone quietly drops its subscription, PayPaw re-subscribes the next time the app opens — and notifications a Specialist turned off on purpose stay off.
    • Cancelling a visit on an invoice that has not been sent yet now edits the draft instead of creating a credit.
    • Lulu opens full screen on mobile instead of in a cramped panel.
    • Lulu conversations survive a reload or a dropped connection, a reply can be stopped mid-sentence, and older messages scroll back.

    Most of this release is about notifications Specialists were supposed to be getting and might not have been. Browsers and phones drop push subscriptions on their own — after an update, after a long stretch with the app closed — and until now nothing signaled that it had happened. PayPaw now notices and reconnects on its own, while leaving a deliberate opt-out alone.

    The rest is Lulu, steadier in the places she was least steady: on a phone, and across a dropped connection.