Pitbulls Company Logo

6 Pitbulls Company

eJono Updates

This page is a running log of what gets built here, week by week, and why.

eJono started as an experiment in agentic AI — early attempts (including an earlier, abandoned harness called openClaw) eventually gave way to a proper build on Claude Code, and that's where the project as it actually exists today began. eJono is a personal AI system that reasons over and acts on real day-to-day life — finances, health, a side income stream, the house, all of it — built and run by one person, in the open here, warts and all.

Entries start at the literal first commit and move forward, one week at a time.

Week 1 — March 23–29, 2026

  1. eJono replaces openclaw. We started this project from scratch this week, retiring the predecessor codebase and moving the carry-forward tracker over first so nothing in flight got lost. Finance came online as the first module, since it was already the most mature piece worth carrying forward properly.
  2. Finance module migrated, old bugs closed along the way. Scripts moved into their permanent home. The goal was (and still is) one live picture of balances, transactions, and bills instead of checking multiple different bank apps. A handful of long-standing issues got fixed in the process: a broken net worth calculation, duplicate account keys, and a few holdings that were silently showing $0 (fixed by reading share counts from Postgres and pulling live prices instead of relying on a single flaky feed).
  3. Health module stood up. The fitness pipeline moved over and the health skill went active. The goal: pull training, sleep, and lab data into one place in service of long-term healthspan, not just short-term fitness.
  4. Documents module stood up. A router went in to classify incoming documents, backed by a stability system, with approval wiring for anything the router wasn't confident about. The goal: whatever lands in the inbox (statements, bills, whatever else) gets read and filed automatically instead of by hand.
  5. openclaw fully retired. Workspace deleted, nothing left running in parallel. One home for the project going forward.

Also this week: Claude's calls got routed through a subprocess instead of a direct API key, using the login already in place rather than provisioning a separate one. Small, but it set a pattern for the project (use what's already there before reaching for something new).

Week 2 — March 30–April 5, 2026

  1. Backups became real. We set up a dedicated Postgres role and nightly backups this week, with yearly retention added the same day. The goal: if the box holding eJono's data ever dies, the data doesn't die with it. (This is the same backup system, since expanded to two offsite targets, that still runs every night.)
  2. A full year of financial history landed. More than 1,000 transactions across multiple accounts got ingested for 2025, categorized, and reviewed for billing accuracy, and a full year of investment balance history was backfilled. Turned a partial financial picture into a complete one.
  3. The daily briefing took its current shape. A status line and the 4:45 AM daily briefing both shipped, then picked up a calendar feed and improved weather/standings the same week, with a running-status card merged in. Small thing on its face, but it's the message that's greeted every morning since.
  4. Maturity review skill added. A monthly system checkup covering carry-forwards, module health, observability, infra, and cost, all in one pass. It got refined within days of shipping, too: static model lists got replaced with dynamic research, an early instance of a rule that's held ever since (don't hardcode what can be looked up fresh).
  5. Infrastructure got mapped. The Infrastructure Map module stood up, then an audit resolved a batch of unknowns and added uptime monitoring. The goal: one place that knows what hardware exists, what it's responsible for, how it's wired together, and what to restore first if something goes down.

Also this week: a round of cron PATH fixes and an observability hardening pass, plus a local AI model upgrade (and a candidate replacement rejected after review).

Week 3 — April 6–12, 2026

This was the week the primary compute node went dark. A remote reboot to apply patches, triggered while away on vacation, didn't come back up cleanly, and there was no way to unlock it remotely without physical access. Roughly five days of silence, then a return home, a hands-on fix, and a weekend spent working through everything that had piled up (helped along by a stack of unused capacity sitting ahead of the weekly reset).

  1. Side hustle module born. Bookkeeping and tracking infrastructure went in this week for the non-W2 income stream: contract terms with the outside partner who handles day-to-day operations, client records, and automated data sync from their management portal. A profit-and-loss rollup followed the next day. The goal: build up this income stream as a real pillar of household finances, not something tracked loosely on the side.
  2. Backups proved themselves for real. A restore test actually passed this week (not just "the backup job ran"), with a restoration guide written up from it. Coverage was also extended to the VPS and the laptop, and the cron schedule itself got folded into what's backed up, since a schedule is useless to restore if it isn't saved too.
  3. Biller registry infrastructure added. The first version of a single place to track recurring bills, rather than each one living in someone's memory or a scattered rule. (One biller got added; a batch of other candidates surfaced from an inbox review were checked and skipped as not worth tracking yet.)
  4. Net worth snapshot module added, folding home equity into the number instead of tracking it separately.
  5. The daily briefing got real synthesis. Instead of a static template, the 4:45 AM message started running through actual AI synthesis, with new data sources added the same day. This is the shape the briefing still runs in every morning.

Also this week: a couple of finance-skill refinements (a dedup rule and a medication-tracking rule), a lab-trends report added to the health review, and a correction to the primary compute node's actual hardware spec (later upgraded further).

Week 4 — April 13–19, 2026

  1. Health module got real structure. A full goals-framework overhaul, a prehab routine, and a quarterly review protocol all went in this week, on top of the existing tracking. The goal: give training and recovery a deliberate structure instead of ad hoc targets that drift.
  2. The self-audit process proved itself for the first time. A full system review generated a dozen new to-do items in one sitting on Friday; by Saturday, most of them were already closed. Document routing got rearchitected, log files moved out of a shared temp directory into their own proper home, stray leftover credentials got cleaned up, and database access got narrowed down to only the internal private network instead of being reachable more broadly. The monthly review habit (started two weeks earlier) doing exactly what it was built for: find a dozen things, fix most of them the same day.
  3. Media log module added. A quick way to log what's being watched or read via a message, feeding a monthly summary. The goal: capture that without needing a dedicated app for it.
  4. The morning briefing gained some personality. A sports section, watchlist integration, daily quotes, and regional event tracking all got folded into the message this week. What started as a plain status report is turning into something with more color.

Also this week: the primary compute node's RAM was finally reporting its full capacity after tracking down a firmware misconfiguration that had been silently reserving part of it, and the local model running on it got upgraded to a larger one.

Week 5 — April 20–26, 2026

  1. Every module got a written-down goal. Formal goals documents landed this week for finance, the side-hustle income module, health, and infrastructure, each wired into its own skill so future decisions get checked against something written down instead of memory or vibes. (This same practice is exactly what's making these weekly write-ups possible, months later.)
  2. The website went public with real content, twice. A basic publishing capability went live on the personal site, a public fitness dashboard launched, and by the end of the week a password-protected Financial Independence dashboard joined it, projecting a retirement date from savings, income, and spending as progress toward the goal rather than raw numbers. Small start, but it's the direct ancestor of the page you're reading this on right now.
  3. The self-audit habit kept leveling up. Another full review pass this week refactored how the evaluation itself works, added a session-history audit to catch drift over time, and cleared out a backlog the review had flagged earlier. Three weeks running now of the monthly review process actively improving itself, not just running on rails.
  4. The morning briefing picked up celestial events and a travel-aware location override. A quick way to say "I'm somewhere else this week" and have the weather and timing follow along. Both still work exactly like this today.
  5. A second AI processing path got added, then didn't stick. A secondary harness went in this week to route some work to an outside service and spread out capacity. It never became load-bearing and was fully retired a couple months later in favor of running everything locally. Worth including for the honest arc: not everything tried in this project survives, and that's fine.

Also this week: the side-hustle module picked up automated email-triggered syncing and a link between loan balances and the live account data, a couple of new spending categories got added to the finance skill, and a loan servicer's name got updated in the records after a routine change of hands on their end.

Week 6 — April 27–May 3, 2026

  1. The retirement dashboard's weakest input got fixed. Social Security had been a rough scaling estimate since the dashboard launched last week; we replaced it with the actual formula the government uses — real earnings history, wage-index adjustments, 35-year averaging — anchored to an official benefit number so it can't drift. The early-vs-late claiming tradeoff in the projection is now built on real math instead of a guess.
  2. A new module: retirement planning. We stood up a dedicated skill for ad-hoc FIRE (financial independence) planning sessions, so pressure-testing "what if I retired at X" scenarios doesn't require reinventing the analysis each time.
  3. Local AI got a speed upgrade. We'd been running a couple of different local language models for the household's automated tasks and kept meaning to re-check whether a smaller, newer one had caught up. This week we finally ran the head-to-head: the new model came out 1.8x faster with no quality loss, so it's now the default for everything that used to lean on the slower one.
  4. A quiet security pass. We spent a chunk of the week just reading our own code with fresh eyes: audited how the inbox that watches for incoming documents validates what it's handed (turned out anything could technically write a file to disk — now it checks sender and file type first), and reviewed how the notification bot handles commands (found and closed one small gap in how it validated button-press input). Also wrote up a proper rotation procedure for backup encryption passwords, so that's no longer a "we'll figure it out if we ever need it" thing.
  5. A big backlog got sketched out. We did a pass looking for data we already have access to but weren't using anywhere, and came out of it with a long list of small modules and enrichment ideas worth building later. Not all of it will happen, but a lot of what shows up in later weeks traces back to this list.

Also this week: a quick one, a water-intake tracking experiment that got opened and closed in the same week once we decided it wasn't worth the ongoing overhead, plus a round of tightening up which tools and commands the agent is allowed to run on its own.

Week 7 — May 4–10, 2026

  1. A medical-tracking module got built, all four stages of it. Providers, prescriptions, logs, and appointments, plus a quick one-line command to log a dose without opening anything. The goal: managing an ongoing treatment plan shouldn't depend on remembering it.
  2. The badge system launched, and a habit-tracking webapp got its first CF. A scorecard/badge system for tracking habits went live, and a carry-forward opened this week for a habit-tracking webapp.
  3. A big backlog-clearing sweep. Two weeks ago we sketched out a long list of small modules and data-enrichment ideas; this week about fifteen of them got closed out in two days. A market-rate feed, property-tax tracking, a fitness-API sync, blood-pressure tracking, a procedure for revoking a phone's remote access if it's ever lost, and a billing question on the side hustle all got resolved.
  4. The site hosting this devlog got a redesign. Its structure got reworked this week, and a status tile for fitness got scoped for later.
  5. We wrote down what this whole project is actually for. Borrowed some structure from Daniel Miessler's public PAI project: a life-goals document (financial independence, health, the side hustle, and the decision filters used to weigh trade-offs between them) that now auto-loads into every session, plus a few new skills for stress-testing or debating a decision from multiple angles. A quick correction pass followed to fix a couple of details.

Also this week: a vehicle-tracking module for a new car purchase, an insurance-policy tracking schema, and the finance and retirement tools started giving actual recommendations instead of just reporting numbers back.

Week 8 — May 11–17, 2026

  1. Two ideas deferred from last week got built. A containment hook that blocks the agent from reading or writing credential files by accident, and a session-quality signal system — a quick way to flag whether a session went well, feeding into later reviews of what's working.
  2. The public-facing server got real backup coverage. Nightly file-level snapshots of its web and mail configuration now go to an offsite target, with retention going back a year. First snapshot verified at 55 files.
  3. The fitness tile scoped last week shipped. It's live now on a public status page.
  4. A new module: home maintenance. Tracks properties, appliances, seasonal to-dos, and vendor contacts for the house — ten default seasonal tasks (HVAC filters, gutter cleaning, winterizing, that kind of thing) came pre-loaded.
  5. Lab results now trigger an alert on arrival instead of requiring a manual check — an email notification gets detected and turned into a task automatically.

Also this week: the badge system picked up per-module coverage checks and an audit pass, the primary compute node's OS got upgraded to the latest LTS release, and a manual balance fallback for one retirement account got opened and closed in the same week.

Week 9 — May 18–24, 2026

  1. A big one opened: sorting out old accounts from before immigrating to the US. Retirement accounts left behind in Canada, plus some cross-border reporting that had lapsed over the years, need cleaning up and eventually bringing over. This is a slow, careful one — it's still an active thread today.
  2. Another self-review sweep. The recurring review process opened nine new to-do items and closed six of them the same day, and picked up four new things it checks for going forward. The review keeps getting better at reviewing itself.
  3. Two new health data streams got started. A bedroom sleep-environment sensor and a continuous glucose monitor both got their ingest pipelines going this week — early days for both, more to come once there's enough data to say anything useful.
  4. The side hustle's automated tracking picked up three new feeds. Costs, upkeep numbers, and market data all started flowing in automatically instead of needing a manual check.
  5. The home-maintenance module from two weeks ago got its first real data. Full property details, systems, and appliances went in.

Also this week: a few new automatic spending-categorization rules, and a website docs update spelling out exactly how deploys work.

Week 10 — May 25–31, 2026

  1. Credit score tracking got added, checked periodically going forward instead of only when applying for something.
  2. The agent got better at logging into things on its own. More portal connections now handle their own login end-to-end, including picking up one-time codes without a manual step, so a session that times out or needs re-authentication can heal itself instead of waiting on a manual fix. Not every portal cooperated — one login form fought back hard enough that the attempt there got shelved.
  3. A new module: a research corpus. Pulls in relevant research and articles automatically instead of needing to go looking for them.
  4. The sleep-environment sensor from two weeks ago hit a snag. The pipeline's built, but a Bluetooth range issue is still being worked out before it's reliable.

Also this week: two more integrations got opened for later (a climbing-gym activity feed, a second credit-monitoring source), both blocked on login/auth work for now.

Week 11 — June 1–7, 2026

  1. First full security review of the system. Seventeen risks came out of it — the two most serious (a code-execution hole in the document pipeline, an over-permissioned settings file) got fixed the same day; the rest got tracked and worked through over the following days, tightening what a work session can read and adding rules for aggregating sensitive data instead of pulling it in raw. A device-loss runbook came out of it too — what to do, credential by credential, if a device is ever lost or stolen.
  2. Backup redundancy finished. Every device this system runs on now mirrors to a second, offsite backup target, verified byte-for-byte restorable. Previously a single local failure could have taken everything with it; not anymore.
  3. Bouldering tracking went fully automatic. Sends now sync straight from the climbing gym's app instead of being logged by hand, rolling into the weekly report and dashboard as trend charts.
  4. Two new modules: cross-session recall and credit monitoring. The first makes past work sessions searchable, so a past decision can be found again instead of lost in a transcript nobody re-reads. The second pulls both credit-bureau scores on a weekly cadence instead of it being a thing to remember to check.
  5. Home-maintenance tracking started for real. Appliances, systems, and seasonal upkeep tasks now live in one place instead of memory, so nothing quietly ages out of warranty or gets forgotten.

Also this week: we refinanced some debt at a lower fixed rate, closing out some interest-rate uncertainty that had been hanging over the debt paydown plan; and an old open question in the side-hustle bookkeeping module got closed out as moot, made irrelevant by a third-party dependency switch already covered in an earlier week.

Week 12 — June 8–14, 2026

  1. A layer of decision engines got built — five of them, in one day. Before, the system just told us what was true; now it models what to do about it: one stress-tests different orders for paying down debt, one checks progress against the next financial milestone, one models the household's health trajectory over years instead of weeks, one models the side-hustle business transition, and one forecasts when big household appliances will need replacing. All five landed built the same day, then spent the rest of the week in soak before getting closed out one by one.
  2. A new module: genomics. A searchable local database built from a personal DNA sequencing result, so the genetic markers that matter for fitness and health planning can be looked up without the raw sequencing data ever leaving locked-down local storage. The raw genetic data never gets shown to the AI assistant that does the reasoning — it's built, stored, and queried entirely on local hardware, and only a small, pre-selected set of health-relevant results ever surfaces into a conversation. Guardrails went in the same day as the module, not after.
  3. The habit-tracking companion app went from built to live to fully soaked and closed, in one week. Daily check-ins, streaks, and reminders all running for real now.
  4. A searchable store for the household's core reference documents got finished, so a fact — a loan note, a policy page — can be looked up instead of re-found.
  5. The standing context every session starts with got trimmed by nearly half, without losing any of the safety rules.

Also this week: retired the last piece of an old AI backend that had stopped working, in favor of running everything locally; closed two more gaps flagged by the security review the week before; and passed on a refinance opportunity on one of the side-hustle assets since the numbers didn't clear the bar.

Week 13 — June 15–21, 2026

  1. The retirement/FI model got a major rebuild — all four phases, in one day. Before, the projection assumed one flat withdrawal strategy; now it can price out how account withdrawal order and Roth-conversion timing change the tax bill and the ending number, model the cost of a health-insurance bridge before Medicare eligibility kicks in, track real spending against the plan quarterly, and factor in a possible relocation. Building it surfaced a mistake in the old assumption — the projection had been leaning too Roth-heavy — caught and corrected before it shaped a real decision.
  2. A bounded seven-week sleep study kicked off. It pairs the objective data already being collected (a wearable, plus the bedroom CO2/temperature sensor) with a short daily log — caffeine timing, disruptions during the night, how rested the day actually felt — to see what genuinely correlates instead of guessing.
  3. A quiet but real running-tracking bug got fixed. Goal weeks were being counted on a rolling basis instead of calendar Monday-to-Sunday, throwing off "did I hit my target this week" tracking.
  4. The years-long cross-border tax cleanup kept moving. Another old account surfaced while working through old statements, and we corrected an assumption about a family member's filing status that would have thrown off the paperwork if it had gone unnoticed.

Also this week: toll-account verification codes now get pulled and used automatically, one more login annoyance off the list; and the reference-document store from a couple of weeks back got its final pieces filed and closed out.

Week 14 — June 22–28, 2026

  1. A backup hardware failure turned into a non-event. The primary local backup device died this week — but because we'd just finished building offsite geo-redundancy a few weeks back, nothing was actually at risk. We brought up new hardware, restored it, and moved on.
  2. Finally started using credit card rewards properly. For a long time we've wanted to get good at this instead of leaving points on the table by habit. This year the system had ingested over a year of household spending data, so we crunched it by category, reviewed the rewards cards available, and worked out the best balance of cards to maximize points for how this household specifically spends. We acquired the cards the analysis called for and canceled the ones that no longer earned their place. Now that the right cards are in hand, this week we built the system to teach us how to use them well — tracking actual card usage (not just points), checking that the right card gets used for the right purchase, and sending a corrective nudge whenever it doesn't.
  3. Bank-account data feeds can now heal their own expired logins, no manual re-authentication needed — already proven once, on a real account. Every data feed in the system also now reports through one unified freshness check instead of a pile of one-off staleness alerts.
  4. Moving rich interaction out of the messaging app and into the companion web app kept going. The messaging app is becoming a notification-only channel; the web app is becoming where you actually do things. The first two pieces (a system-status view, the debug/fix-approval flow) are live; the rest is still in the design phase, with content specs drafted for money, systems health, fitness, and the side-hustle bookkeeping.
  5. Started planning for a family member's upcoming college costs. Locked in a federal education tax credit that applies, and began mapping the full cost-and-funding picture — financial aid, loans, savings, all of it — well before tuition is due.

Also this week: the security review picked up a new item — what it means for this whole system to be remotely controllable, modeled properly as its own risk; and the last personal daily-tracking habits finished moving fully into the companion app, off the messaging bot.

Week 15 — June 29–July 5, 2026

  1. The messaging-to-web-app inversion finished. Rich, interactive stuff — system health at a glance, one-time-code handling, approving or rejecting a fix, status views for money/health/side-hustle bookkeeping — now all lives in the companion web app; the messaging app's job shrank to sending a notification and nothing more. The last piece, verified overnight, closed out a project that had been building for two weeks.
  2. Started holding our own work to a harder standard. A stronger, more careful review pass went through the optimizer engines, the retirement/FI engine, and the app as a whole — and found real problems: a ceiling bug in the retirement math, an autopay assumption that quietly breaks once the debt gets paid off, a place where sleep-study entries could get lost. All fixed the same week they were found. We also added a second, independent code review from a different AI vendor's model entirely, deliberately not the one that wrote the code.
  3. Two long-simmering data-quality issues got cleaned up. Transactions were occasionally getting double-counted when the bank-data feed re-issued the same transaction under a new ID, and bill-tracking facts were scattered across a couple of lists that could drift out of sync — both now have one single source of truth.
  4. A new module, as a summer experiment: a meal-suggestion tool. You can build up a pantry/tools inventory just by talking to it — dictate what's on hand and it parses that into a database — then hand it one or two ingredients to build a meal around, and it suggests recipes that fill in the rest from what's already in the house. Every suggestion runs through two models side by side, a commercial one and a smaller one running entirely on local hardware, to see whether the local one holds up on quality — so suggestions can move fully local if it does.
  5. Banked the security design for a second companion app, built for a family member who isn't on the same private network the rest of this runs on — a new public-facing boundary thought through before a line of it gets written.

Also this week: kept mapping out the family college-financing plan from a couple weeks back.