Changelog
What's new in Goatfied.
What shipped, why it matters, and how to use it. Updated as releases land — roughly weekly.
Aug 17, 2026
The real logos
Each model now carries its vendor's actual mark, sitting beside the name instead of stranded at the far edge of the menu.
The marks in the model picker were our own approximations of each vendor's logo. They are now the vendors' published artwork, so a model is introduced by the mark you already recognise rather than by something that merely gestures at it. They stay grey, because a list you scan should not be a list you look at.
The marks also sat at the far left of each row while the model name sat at the right, with the width of the menu between them — the two halves of one label, as far apart as the row allowed. The mark now sits directly beside the name it belongs to.
Build 2.31.4
Aug 17, 2026
Marks that tell you whose model you are running
Every model wears its own house mark, our family wears ours, and the pinned prompt finally sits flush against the top of the thread.
The model picker's marks were placeholders, and one of them was doing real harm: the whole GOAT family was wearing Auto's robot, because the catalog reports the family as automatically routed and the mark was chosen from that rather than from the family itself. Our models now carry the AIARCO rosette, Auto keeps the machine that stands for choosing on your behalf, and Claude and the rest carry their own house marks. They are drawn in grey rather than colour: a mark you scan down a list should not compete with the tick that says which one you picked.
The pinned prompt has moved out of the scrolling area and now sits above it. It was a sticky element inside the transcript, which meant fighting that panel's own padding with negative margins — hence the gap above it and the strip of empty space before the right edge. As its own row it simply spans the column.
The file chips in a run are slimmer, with less border and padding around them and a larger file-type icon, so a list of touched files reads as a list rather than a row of buttons.
Build 2.31.3
Aug 17, 2026
Sessions move to disk, and a run stops giving up on itself
History is no longer squeezed into a five-megabyte browser store, and a model that fumbles one character no longer loses its turn.
Every session was being kept in a single browser-storage value, which the browser caps at about five megabytes for the whole app. That cap is why history had a limit at all: to fit, the store had to drop old runs and shed transcripts, and it did both silently. Sessions now live in their own file on disk, which is what the editors we sit beside do — VS Code writes one file per chat session, Cursor keeps a database per workspace. There is no session limit any more, a large session cannot cost a small one its transcript, and because the files sit in your user data rather than in the app itself, they survive reinstalling Goatfied. Anything already stored is carried across on first launch.
A run could also end on a protocol error after doing all of its work. The agent talks to the model in JSON, and a single malformed character — a stray equals sign welded onto a key, in the case we caught — cost the whole turn. Five such turns ended the session. Malformed keys are now repaired and the turn proceeds. Values are never touched, so a repair cannot invent an argument the model did not send.
When a run does give up, it now leads with what the model last told you rather than reporting only that the protocol failed. A session that had finished its work and merely failed to sign off used to end on an error, which read as though nothing had happened.
Build 2.31.2
Aug 17, 2026
Your old sessions were being thrown away
The session list kept sixty and silently dropped the rest. It now keeps your history, and gives up transcripts before it gives up runs.
Sessions are stored on your machine, and the store held sixty of them. Reaching sixty did not warn you or archive anything — the oldest session was simply not written on the next save, and there is no second copy anywhere. For anyone using this daily that is a few weeks before history starts quietly ending. The limit is now far enough out that reaching it is a deliberate act.
There was a second way to lose a run. When the store outgrew the space the browser allows, it trimmed transcripts, then dropped image previews, and if that still did not fit it wrote nothing at all — which meant the session you had just finished was never saved. Now the oldest sessions give up their transcripts first and stay in the list with their prompts intact. A run you can still find is worth much more than one that vanished to make room.
The model picker also had its marks doubled and its families confused: Auto now shows a machine, our own GOAT family shows the goat, a model we have no mark for shows none rather than borrowing one, and the model you have picked wears its mark in the composer. The pinned prompt sits flush against the top of the thread, and the hover that explains a timestamp is now on the timestamp instead of across the whole prompt.
Build 2.31.1
Aug 17, 2026
Knowing where you are in a long thread
The prompt you scrolled past stays pinned at the top, every prompt carries its own clock, and each model says who serves it.
A long session scrolls a long way. By the time you are reading the middle of a reply, the request that caused it is far above you, and the only way back to it was to scroll and hope. The prompt you have scrolled past now stays pinned at the top of the thread with its position in the conversation beside it. Click it to jump back to where it was asked, or step through the others with the arrows without reading anything in between.
Scrolling up to check something used to be a one-way trip; there is now a button back to the newest message, and it only appears when you are not already there.
Every prompt shows the time it was sent. Hover it for the full date and how long that turn took — the two things you want when you are working out which attempt did what, and the two things that were nowhere in the transcript.
The model picker now shows who serves each model rather than asking you to know from the name, and the GOAT family has a mark of its own. All of it is drawn from the same palette as the rest of the app, so it reads correctly in dark, light and grey rather than being built for one of them and tolerated in the others.
Build 2.31.0