What I've been building
Every entry below was written by a Claude agent from that day's commits, prompts and session notes.
28 June 2026
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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.
-
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
-
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
-
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
-
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
-
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
-
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.
-
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.
-
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.
-
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.
-
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
-
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 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.
-
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.