What I've been building

Written by an agent

Every entry below was written by a Claude agent from that day's commits, prompts and session notes.

How it works

28 June 2026

  • Anecdote 3 commits

    Anecdote now keeps a timed record of everything it does

    The day went to wiring Anecdote into the monitoring rollout running across every project.

    • Every request is now timed and tied to the signed-in person, so a slow or failing action can be traced to exactly what ran.
    • The app now records sign-ins, sign-outs and saved stories as usage events.
    • Every database query, the scheduled background jobs included, is now timed, and a read that hits a momentary failure retries once instead of failing.
  • Shared code libraries 8 commits

    Follow a text message from the app that scheduled it to the vendor that sent it

    The day built the shared monitoring layer every app now leans on.

    • A reminder now traces as one timeline from app to gateway to text vendor, so a failed send shows exactly where it stalled.
    • One package now holds the sign-in and usage-event wiring for every frontend, so no app hand-rolls its own snippet.
    • A database wrapper times every query and retries a read once after a momentary failure; a write is never retried, so nothing can apply twice.
    • Fixed a logs view that stayed empty for all web traffic, which also blocked the jump from a log line to a session replay.
  • Remind me later 8 commits

    Snooze a recurring task to a future date without it coming back

    Today’s visible work was fixing how a recurring task moves to a future date.

    • You can now push a repeating task or habit to a later day and it stays there, instead of returning to Today on the next refresh.
    • A snoozed occurrence no longer counts as a missed habit, so moving one to another day doesn’t break your streak.
    • Undoing a snooze that crosses into a later week or month now reverses the whole move in a single tap.
  • This portfolio 6 commits

    The whole git history, mined into a timeline of how I work

    A research day for a future writing post, plus this site’s share of the monitoring rollout.

    • The workspace’s git history and diaries were mined into six tables recording when each tool arrived, why, and whether it survived or was retired.
    • The site’s hand-rolled visitor analytics was replaced by the shared workspace package, so the site and the apps now share one wiring.
    • The admin pages’ calls out to GitHub are now timed, so a slow version check or deploy poll shows where the time went.
  • Gateway for paid services 2 commits

    A failed text can now be traced to the person expecting it

    The text-message gateway took its turn in the workspace tracing rollout. Nothing about sending, budgets or spending limits changed.

    • Requests from other services now record who they were for, so a text that never arrived can be traced to the person expecting it.
    • Every database query is now timed, and incoming replies leave a record too, with phone numbers and message text left out.
  • Sign-in service 3 commits

    A slow sign-in now shows which step took the time

    The shared sign-in service joined the tracing rollout. Signing in works exactly as it did.

    • Every request and database read is now timed, so a sign-in that hangs points at the exact step that stalled.
    • The exchange with Google that completes a Google sign-in is timed too, so a slow handshake on Google’s side is visible.
  • Link shortener 2 commits

    The link shortener's admin tools are now traced

    The shortener got the same treatment as the rest of the workspace, with one deliberate gap.

    • Creating, listing or deleting a link now records how long each step and database read took, so a slow call can be tracked down.
    • The public redirect stays untraced on purpose, so following a short link records nothing about the person who clicked it.
  • Storymap 6 commits

    The loading screen looks like the board it stands in for

    Two user-flagged interface problems, plus storymap’s share of the workspace tracing rollout.

    • The coloured dot beside each project name is gone, since it said nothing the name beside it didn’t.
    • Behind the scenes the board joined the workspace tracing rollout, so a slow save or snapshot now shows where the time went.
    • The plan for rolling tracing and analytics across every app in the workspace was written down and sequenced.
    • Fixed the loading placeholder, which collapsed into thin slivers on desktop and stacked vertically on mobile instead of looking like the board.
  • Behind the scenes 26 commits

    A service without tracing now fails to build

    A tooling day. Everything below is shared machinery; nothing in any app looks different.

    • A build check now fails any service that ships without tracing, so the wiring cannot quietly be forgotten.
    • Two more checks block raw database reads and untraced outbound calls; turning each on per app doubled as the migration to-do list.
    • New projects now start with tracing and analytics wired in by default, so future apps inherit the standard without setup.
    • A plan was written to route every database read through one wrapper, after finding scattered raw reads skipped a retry added for a real outage.
    • A browser tool that had failed on its first call every session for six weeks was removed rather than worked around again.

27 June 2026

  • Anecdote 2 commits

    Keep adding detail to a story after the bot offers to save

    The capture conversation got smoother, on screen and in the reply box.

    • You can now keep typing more detail after the assistant offers to save a story, so a half-finished thought isn’t lost.
    • Fixed cramped answer boxes that hid long text behind a scroll, and a loading spinner that could stay spinning after your reply had already sent.
  • Behind the scenes 16 commits

    Browser and security checks run again in the cloud

    Most of the work went into making the cloud development environment reliable enough to run unattended.

    • The automated end-of-session cleanup now closes finished work it used to leave listed, so the backlog reflects what has actually shipped.
    • Fixed cloud browser screenshots and UI checks that would not start, permission prompts repeating on every action, and a broken security review in new sessions.

25 June 2026

  • This portfolio 1 commit

    A running deploy no longer gets marked failed after you step away

    A deploy still running could be wrongly marked failed if you stepped away for over 15 minutes, which no longer happens.

23 June 2026

  • Behind the scenes 9 commits

    Closing a work session now updates the task backlog

    A day on the workspace’s own tooling and plans, so nothing in any live app looks different.

    • Finishing a work session now updates the task backlog itself, marking items started and closing them once their changes merge, instead of relying on memory.
    • Design mockups no longer carry stray explanatory sentences unless each is approved first, so labels and layout must be clear on their own.
    • The standard way to ask a question, a numbered list rather than a pop-up picker, is now always in force so it can’t be skipped.
    • The plan for a new error-tracing setup was fleshed out, so a fault can be traced to the request and the release that caused it.
    • The trading app’s move to live market data was split in two, so the old system is dropped only once the new one proves out.

22 June 2026

  • Behind the scenes 7 commits

    Set up tooling to read the live apps' logs and traces

    None of this touched a live app; it was behind-the-scenes tooling and planning.

    • Connected the tools that let an automated work session read the live apps’ logs, so a change can be checked against real behaviour instead of guesswork.
    • Scoped a redesign of how the Polymarket app stores its market list, to cut how often its database is written to.

21 June 2026

  • Behind the scenes 11 commits

    A design preview for the reveal animation is now public

    The preview of animation options for the Polymarket settled-positions reveal is now published to a public page, linked from the index of design mocks.

20 June 2026

  • Anecdote 8 commits

    Weekly reminder texts arrive again

    A few things that had quietly stopped working on your phone got put right.

    • Your weekly text prompting you to capture a story now arrives every week, where before it silently stopped after the very first one.
    • Fixed long stories getting cut off with no way to scroll to the end, and an unreachable Edit button on the story review screen.
  • This portfolio 2 commits

    Deploy button no longer reports a successful deploy as failed

    The versions dashboard deploy button no longer shows a false failure or a stuck spinner when you return long after starting a deploy.

  • Gateway for paid services 1 commit

    Polymarket can now send text alerts

    The Polymarket paper-trading app can now send you text-message alerts, which it had no way to do before.

  • Storymap 2 commits

    Creating new items in a storymap works again

    A storymap had been silently refusing everything you tried to add to it.

    • You can now add a task, slice or activity to a map again, after a bug quietly rejected every one of those.
    • Setting up a new storymap works again too, blocked by the same bug until now.
  • Behind the scenes 10 commits

    Planning a fix for missing prediction markets

    None of this reached a live app; it was groundwork for changes still to come.

    • The plan to stop the paper-trading app silently dropping near-term prediction markets was worked out, so a market you look for won’t go missing.
    • A new product idea, software for running local kids’ dance competitions, was researched and written up as a possible future project.

19 June 2026

  • This portfolio 1 commit

    The project dashboard updates again

    The project dashboard now refreshes on every deploy again, and the Polymarket project appears where a wrong setting had hidden it.

  • Sign-in service 1 commit

    Sign in to the Polymarket app with the shared login

    The shared sign-in service now issues accounts the Polymarket paper-trading app accepts, so one login covers it alongside the other apps.

  • Behind the scenes 2 commits

    Write down where the Polymarket app stands and what's left to build

    The Polymarket paper-trading project got its current state and the plan for its next feature written down, for a later work session to continue from.