I needed something to keep track of everything I have going on, now and later. Something I could just talk to, that would remember what I was doing and what I had already done in real detail, and would go and look at that detail before it did anything. That last part is the whole idea. Every turn, she reads back over the last twenty things we talked about and makes sure she has the context right before she answers.
There are two halves to it. Amy is the part I talk to, kept as thin as I could make it. Abel is the logic underneath, running on my own server, doing the actual work. Two sides of one thing, and the reason everything here is named BuddyBot in the first place.

Voice in, voice out. Text in, text out, the same conversation either way. Photo and PDF input, so a receipt or a document goes in the same way a sentence does. The whole thing runs as a private instance at its own address, on my own server.
Persistent memory between conversations. Semantic and keyword search over everything ever said. Memory that updates and supersedes, so a thing that changed reads as changed.
A running daily record keeps something said this morning live tonight. Daily briefs on top of that, and a weekly pattern reflection that reads the briefs and finds what a single day cannot show.
Thirteen task handlers, each owning one job from what I said to what got saved.
Receipt reading from a photo. Mileage and fuel logging. Cost-per-mile, worked out per tank of gas. Income tracking. Food and nutrition logging. Inventory tracking. Price tracking. Reminders and notes.
A confirmation gate. Nothing gets written unless I actually said it, and that is enforced in code the model has no way around. It exists because the early version invented a whole work session out of thin air and logged food I had only mentioned.
Grounded readbacks, where what she says back to me is the record that got saved. Automatic quality grading, a nightly pass that rereads the day and scores it against the specific ways this thing has gone wrong before.
Nightly health monitoring. Per-turn cost tracking, so I always know what it costs to run. An auto-generated status report I can read on a phone. A build board holding every fix, idea and problem in one place.
Intent classification and automatic routing to whichever handler owns the job. Multi-part turn splitting, so a photo and a spoken number said in one breath come apart and go to two different places.
It is a work in progress and it stays one. A thing like this only earns its keep by being shaped around one specific person, so every new thing in my life is another piece to build. Thirteen handlers exist because thirteen parts of my week needed one.
That is the reason it never gets finished, and I have made peace with it.