Handoff

Care, carried through.

Inspiration

A care visit was expected, but nobody has confirmed it. Who is following up? That is the question behind Handoff, a prototype for consenting families coordinating scheduled help for an older relative. NICE's guidance on missed or late home-care visits calls for agreed backup communication and replacement contacts. Handoff turns that idea into a visible workflow. Ring care summaries and alerts, and agency missed-visit systems, already exist; our focus is carrying responsibility from uncertainty through to an explicitly recorded outcome.

What it does

Handoff records an expected visit, a confirmation deadline, and agreed primary and backup contacts. When confirmation is overdue or accounts conflict, it opens one follow-up task. One helper accepts responsibility with an ETA. Acceptance leaves the task open until someone records what happened.

Camera observations, camera coverage, human statements, ownership and outcomes stay separate. A doorstep event cannot establish completed care; a backup check-in cannot confirm that the original provider visited. The receipt preserves authors, timestamps, earlier statements and remaining uncertainty.

A credential-free, explicitly fictional replay demonstrates overdue confirmation, a camera outage and differing statements with a paused clock. Connected household records are kept separate, so evaluation does not depend on supplying a Ring token.

How we built it

The application uses TypeScript, React and Vite, with Express, Zod and Node.js 24's built-in SQLite. An append-only event log and deterministic projection maintain the workflow; persistent deadlines survive restarts, and atomic assignment prevents competing acceptances from creating two owners.

A server-side adapter calls the documented Amazon Vision API, with HMAC verification at webhook ingress. A fresh official check on 19 October 2026 found one online Playground device and retrieved a historical on_demand event. The application connected successfully and conservatively stored it as source: ring, type: unknown. This proves authenticated ingestion, without establishing new motion, a visitor, completed care, physical-device use or public webhook delivery. The sanitized evidence records that boundary.

The official MCP TypeScript SDK exposes real Streamable HTTP tools through the same service. Anonymous reads cover fictional replay; mutations and connected records require bearer authorization. The browser explorer demonstrates local MCP interaction. It is not a shipped Alexa integration.

Challenges

The hardest design problem was preserving uncertainty while still enabling action. Missing camera coverage, delayed or duplicate inputs, and contradictory accounts must not silently become reassuring confirmations. Ownership also needed to remain consistent when multiple helpers act or the application restarts. Keeping observation time, receipt time, statements and outcomes distinct made those cases explicit and testable.

Accomplishments

Handoff carries an expected commitment through an accountable follow-up to a receipt that retains the evidence. Verification passed 29 unit tests, 13 browser tests, TypeScript checking and the production build. A separate clean source installation and build succeeded, with four production, receipt, MCP and restart smoke checks. The validation record describes their scope. Public, MIT-licensed source and local setup instructions make the prototype reproducible.

What we learned

An integration can succeed while its evidence remains inconclusive. Preserving an official on_demand event as unknown was a useful test of that principle. We also learned to treat taking responsibility, reporting an outcome and confirming the original visit as separate steps. A clear interface needs to preserve those distinctions as carefully as the data model does.

What's next

The next step is user research, followed by authenticated household access, consent controls, appropriate notifications, token lifecycle management and durable evaluation hosting. No interviews, pilots, demand estimates or clinical outcomes have been established. This remains a local prototype without production authentication, automatic OAuth refresh, external messaging, emergency dispatch, medical assessment or facial recognition. Those limits define the work ahead.

Share this project:

Updates

Submission history