Aurea

Release Notes

iOS: Open TestFlight → update to the latest build

Build 418 — Co-op stops failing quietly

September 12, 2026 Latest

Ten builds’ worth of co-op repair. Nearly every item here is the same shape: the game knew something had gone wrong and didn’t tell you — an invite that vanished, a button that did nothing, a refusal meant for someone else. The story engine was fine. The moments around it were silent, and silence is the worst thing an invitation can do.

What you’ll notice

  • An invitation you can’t afford now tells you so. If you accepted a friend’s roster invite without an allowance left, absolutely nothing happened — no message, no paywall, and the invitation sat there looking unanswered while your friend waited. You now reach your own options, and the invite stays open until you decide.
  • Tapping Start twice no longer costs you twice. An impatient second tap on a co-op start could reserve your allowance twice over. One tap, one reservation, however many times you press it.
  • A refused start tells you whose problem it is. Starting a party that can’t go ahead used to show whichever message came first — a host who was out of allowance got told their companion couldn’t continue, and a party of one got a message about a companion who didn’t exist. Now the right person is named, and if it’s a guest holding things up, you’re told which one.
  • You can back out of a party you’re forming. A guest who changed their mind had no way out: the Back arrow offered the host’s choices, the system Back gesture left silently, and either way your character stayed locked to a party you’d walked away from. Leaving now works from the arrow, the gesture, and the browser’s Back button, and your character comes with you.
  • Finishing an adventure frees your character, even if the host’s phone doesn’t. Releasing everyone’s character at the end of a co-op adventure depended on the host’s app surviving the final turn. If they lost signal or the app was closed, every character in the party stayed locked to a finished story and refused to start a new one. The release now happens on our side, as part of finishing.
  • Play again behaves like everything else. Reaching your allowance limit from the Play-again button sent you somewhere different from every other route to the same wall. It doesn’t any more.
  • Co-op problems read like sentences. A handful of screens showed internal codes when something went wrong in a party — and in audio-only mode, read them aloud. Those are plain language now, everywhere we could find them.
  • Playing eyes-free, the lobby speaks. A co-op start that couldn’t go ahead was completely silent in audio-only mode: the screen changed and you learned nothing. You now hear what happened and what you can do about it.
  • Animal adventures stop being turned away. Creating an adventure in Anima could be refused by our content check for describing exactly what animals do — a fox hunting, a hawk on the wing. Anima is still the gentlest world we have; it now understands the difference between the plain facts of a food web and something a young reader shouldn’t meet.

Behind the scenes

  • Some turns come back faster. On lighter, more mechanical turns the narrator was being handed to a model we’d labelled a downgrade. It was slower than the one it replaced, and several times the price. Those turns now use the normal narrator.
  • The main menu survives a bad connection. Counting your gifts could fail on a flaky network in a way that took the whole menu down with it on the web.
  • The story’s memory keeps up when the model gets chatty. The step that files away what happened could fail to read its own notes when the model added remarks after its answer. Facts that should have been remembered were being dropped.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 408 — Leave a party without ending it, and a refused start really does leave nothing behind

September 10, 2026

A short build on the way to launch. It closes the one gap the last notes claimed too early, gives co-op players a door that was never there, and puts the sign-in and age steps Apple asks for in front of the story rather than behind it.

What you’ll notice

  • A refused start leaves nothing behind. When you begin an adventure you have no allowance for, you see the plan sheet, close it, and are returned to the world’s home page. The adventure it never started is gone from your library and your character is free. Build 405 claimed this and did not deliver it — the check that was meant to clear the adventure always saw a session and never ran. It runs now.
  • A move the server refuses now says so. If a turn is rejected outright — the story cannot be found, or the action is not allowed — you are told what happened and your choices come back. Before, a rejection on the streamed narrator path was mistaken for a dropped connection: the app held the move, showed the calm “holding your move” banner, and kept trying a turn that could never land.
  • You can leave a co-op party without ending it for everyone. Until now the only way out of a party was the host cancelling it; a guest who tapped Abandon was told only the host could do that and stayed locked to the adventure. A guest can now leave an active party from the game menu. The party carries on, the narrator hears that you left, your character is free at once, and if it was your turn the next player takes it. You cannot leave in the middle of a fight — finish it first — and if the last player leaves, the adventure ends as it would on Abandon. In audio-only mode the departure is spoken to everyone still there.
  • Ask for the facts by voice. Playing eyes-free, you can now say “recap”, “party status”, “inventory” or “where am I” and hear a straight answer — what happened last, everyone’s health, what you carry, where you are and what you have found — without turning it into a turn.
  • One consent screen the first time you sign in. Before the story starts, a short notice names the AI providers that process your words and asks you to agree. Once per version, never again after that.
  • On iPhone, Apple can vouch for your age. On iOS 26 and later the age step first asks Apple for the age range on your Apple Account, and only falls back to the picker if you decline or it is unavailable. If a parent later withdraws consent for a child’s account through Apple, the account is blocked from play and told so, mid-session if need be.
  • The Map item is gone from the game menu. The AI-drawn adventure map was an experiment that never earned its place, and it was quietly costing money on every first tap. Maps are coming back in a form we are proud of; this one is retired.

Behind the scenes

  • The narrator’s voice starts faster. Narration now renders on Inworld’s newer voice engine. Same voices, same names, less waiting before the first word.
  • Fewer turns hit the fallback in combat. About one turn in twelve, the model that reads your combat cards answered with a note after its answer, and the note broke the answer. It no longer does.
  • The overnight check repairs what it finds. The daily data check now fixes an adventure left active after its party was cancelled, rather than only reporting it.
  • When something breaks in production, the page reaches a phone. The alert that pages us no longer depends on the email going out first.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 405 — Your first month is on us, and everything you pay for now arrives

September 9, 2026

This is the build we intend to launch on. Three weeks and thirty builds went into it, and most of that time was spent on one question: when you pay for something in Aurea, does it actually show up? For a while the honest answer was “not always” — a subscription bought on an iPhone arrived with zero adventures, a paying subscriber’s account page said Free, and the Subscribe button itself opened Safari. All of that is fixed and tested through the real payment rails. The rest of the build is about the first half hour: a free month for everyone who signs up now, faster starts, co-op that actually starts, and links that land where they promise to.

What you’ll notice

  • A free month of Basic for every new account. Sign up before 9 October and your account carries Basic for 30 days, automatically — no code, no card. Your account page shows the day it ends. If you subscribe at the end of it, you step up rather than starting over.
  • Subscribing works, on every platform. Every tier’s Buy button had been answering “Subscription unavailable, try the web version” — the app was asking the store for the wrong catalogue and finding no subscriptions in it. Apprentice was missing from the in-app plans entirely. On iOS the button then left the app for a browser page that could not complete a purchase, and on every platform it was drawn so faint it read as disabled. All four of those are gone, and the plan cards now list what each tier actually grants.
  • What you buy arrives immediately. Subscribers who bought through Apple or Google received a paid tier and a balance of zero adventures; the tier was recorded in a field nothing reads. Upgrading a subscription now unblocks you the moment the store confirms it, instead of at your next renewal. And if you subscribe to Apprentice, your account page says Apprentice — it said Free while quietly holding the plan you paid for.
  • You can change or cancel your plan, and see that you did. Upgrading had no button at all on the web, and cancelling had none either. Both are on the account page now, on every platform, and changes are prorated instead of starting a second subscription beside the first. A cancelled plan shows “Ends 30 September” with a Keep it button, rather than looking exactly as it did before you cancelled.
  • Credits you bought are yours. Refunding or cancelling a subscription used to wipe the portrait credits and author tokens you had paid for separately. Purchased credits now survive; only the ones a subscription granted expire with it. Restore Purchases on the account page asks the store to re-check and heal the account, and switching between two accounts on one phone no longer leaves a purchase on the wrong one.
  • The opening trilogy is free at every tier. Free players who finished the childhood adventure and pressed on were stopped cold at the second chapter, because the trilogy was drawing from the same one-adventure allowance as everything else. It now has its own allowance of three. When you do run out of something — adventures, author tokens, portraits — every message that says so now offers a way to get more, including a $1.99 adventure on its own, rather than the tier you already have.
  • Sequels charge when you begin, not when you look. Previewing the outline of your next chapter used to spend the adventure before you had decided to play it. The charge now happens at Begin Chapter II. The Generate button on that screen was dead and the paid chapter, once bought, could not be opened; both work. A “Continue this story” button that appeared mid-trilogy and forked players into a paid sequel, off their own arc, is gone.
  • Co-op starts on a clock. When you create a party and invite friends, a countdown begins — one, three, five or ten minutes, your pick. Everyone sees the same timer. When it reaches zero with two or more of you aboard, anyone can start, not only the host. If nobody came, extend it, or play the adventure alone right there. Until now, only the host could ever start and 48 parties reached “everyone’s in” and then simply expired.
  • The story begins while the world is still being built. The prologue now arrives about 50 seconds before it used to, so you are reading while the rest of the adventure finishes assembling. Creating a first adventure takes about half the time it did, and the waiting screen tells you how long to expect instead of saying nothing.
  • Links land where they promise. Every share link ever sent showed the recipient a good-looking page whose only button was a 404. Party invite links did the same. Both open the app and take you to the right place now, and pasting play.aurea.quest into WhatsApp or iMessage shows a proper preview card instead of the bare word “Aurea”.
  • Downgrading pauses characters instead of losing them. If your plan shrinks below the number of characters you have, the surplus are paused, not deleted, with a badge saying so and a sheet to choose which stay active. Your first character in each world is never paused.
  • Screen readers can play. Every image, card and tap target across the main menu, roster, character sheet, character creation and adventure screens now carries a spoken label, and a dice roll is announced to VoiceOver and TalkBack instead of passing in silence.
  • Everyone hears the real narrator voice. Players on the entry tiers had been hearing the browser’s built-in speech synthesiser on every turn — the narration engine was refusing them and the app fell back without a word. It now speaks with the proper voice for every tier.
  • Three skills roll on the right ability. Sleight of Hand, Religion and Animal Handling had been rolling on Strength — lockpicking included. All eighteen skills now use the ability the rules say.
  • Death keeps a cost. Coming back from death with a potion now restores a quarter of your hit points, not all of them. The Retry button after a failed turn replays the turn properly, with experience and story progress intact.
  • You are told before you walk into difficult content. Curated stories that contain sensitive material carry a muted “Sensitive content” chip on the browse tile and a plain sentence before you begin. The second Orbis story is now titled “The Third Hour”; the adventure itself is unchanged.
  • A refused start now shows you the offer. Beginning an adventure you had no allowance for used to open the game screen and then print a raw error code in two places. You now see the plan sheet. (Corrected 10 September: this entry first said the never-started adventure was also cleared and your character freed. It was not — that lands in the next build.)
  • Abandoning an adventure actually ends it. Since May every adventure runs on a party under the hood, and the in-game Abandon released the party but never marked the adventure over. Your character stayed on the adventure and tapping them re-opened the dead game. Abandon now ends the adventure for everyone in it, and a party that has been cancelled refuses further turns.
  • The Aurea tavern and library have new artwork. Both got more vibrant banners.
  • Smaller things you may have hit. Your figurine configurator choices survive a Regenerate instead of resetting to defaults. The end-of-story share is now the invite link a friend can actually play, rather than a keepsake sentence. The account page says whose account it is, and each section has its own Sign Out. Portrait generation was broken for one day on 6 September and has been fixed. And for authors: “Deepen this beat” had refused every author since June; it works.

Behind the scenes

  • Cheat commands are testers-only. Ten testing commands — summoning enemies, healing, granting experience — could be typed by any player. They are now gated to testers, and new characters and gifts are written by the server after their names and descriptions pass moderation, rather than by the app.
  • The narrator stays in the story. Ask it for real-world advice and it gives a one-sentence boundary and returns to the game. Feeling down inside a story stays inside the story; only active self-harm or suicidal intent gets a crisis-line reply.
  • Payments are settled the same way on both rails. Store and web deliveries are now replay-protected, rejected if they come from the wrong environment, and logged every time. Refunds and chargebacks reverse the same things on Apple, Google and web. Deleting your account cancels its subscription instead of leaving it billing a ghost.
  • The money paths are tested through the real code. Every purchase, sequel, restart and account-deletion path now has a test that executes the shipping code against a real store rather than a stand-in. Two of the bugs above were found by writing those tests.
  • Housekeeping that had stopped. The job that deletes flagged messages after 30 days had failed every night since June on a missing database index, and three other reports were failing the same way. All are running again.
  • Deploys take thirty seconds instead of fourteen minutes. Which means fixes reach you faster.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 375 — The things that were failing quietly

August 19, 2026

A bug that throws an error gets fixed the week it lands. A bug that simply stops doing something, without complaining, can run for months — and this build is almost entirely those. Co-op combat had stopped paying experience in May and nothing anywhere said so. A deleted character could strand a party forever, silently. The backstop that nudges a story onward when a scene overruns had been dead for more than a quarter of them. None of these announced themselves; all of them were costing somebody something.

What you’ll notice

  • Co-op combat pays experience again. Winning a fight alongside your party has awarded XP since May — except that it hasn’t. A refactor removed the code that did it, nothing broke, no error appeared, and co-op combat quietly stopped paying while every document still described the award as live. Solo and co-op now share one award, so the two cannot drift apart again.
  • Deleting a character can no longer strand a party. If you deleted a character who was in a party, that party became impossible to cancel — permanently, with no message and no way out. It affected only test parties so far, but a player deleting a character would have hit it in exactly the same way.
  • Long stories reach their ending. When a scene ran far past its expected length, a backstop was supposed to move the story on. For more than a quarter of scenes it never fired. Worth saying what we did not do: the obvious fix was a cap on turns, and the sessions themselves argued against it — of sixteen real adventures past a hundred turns, nine were finished ones, some at their final beat. A cap would have cut short the best outcomes in the data.
  • You can cancel a subscription yourself. Web subscribers now manage and cancel from inside the app, without emailing anyone.
  • A refund actually returns what it should. Refunds and chargebacks now reverse the tokens or tier they paid for, instead of leaving both sides holding it.

Behind the scenes

  • Purchases can’t be lost on the way in. The step that turns a completed payment into your subscription could fail and drop it without telling anyone. It is now tested against forged and malformed deliveries, and a failure wakes a person instead of vanishing.
  • Co-op turns are billed as intended. A co-op party’s first turn could fail to record what it had spent, and the evidence expired on its own — so the adventure was played for free, invisibly, on both sides of the ledger.
  • There is now a stop button. If adventure creation ever starts misbehaving at scale, we can halt new adventures without touching anyone already playing. It refuses safely rather than presenting as a crash — which is how it behaved the first time we tried it.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 370 — When you say you’re done, the story lets you go

August 12, 2026

There is one promise a story-driven game has to keep ahead of all the others: when you want out, you get out. It turns out we have been breaking it since April — not in intent, but in hearing. The check that listens for a player wanting to leave recognised almost none of the ways people actually say it, and underneath that, the storyteller’s rulebook and the engine had been quietly disagreeing about who decides when a story ends. This build is mostly about settling both.

What you’ll notice

  • “I’m done” now means what it says. Asking to leave an adventure only registered if you happened to phrase it as “I want to end this adventure.” “I’m done,” “let’s wrap up,” “I want to stop this adventure — let me go home” — none of those were heard, and the story simply carried on around you. They all work now. Phrases that belong to the fiction still belong to it: “I’m done searching the room” and “I want to stop the ritual” are read as moves in the story, not requests to leave it.
  • Leaving is guaranteed rather than negotiated. The storyteller may ask you once, in character, whether you’re sure — a story worth telling is worth being asked about. Say it again and you are out, whatever beat you were on. Before this, the rulebook told the narrator to end the adventure while the engine told it not to, and which one won was luck: across ten measured attempts, three never ended at all.

Behind the scenes

  • Deleting your account now clears your reception records too. The records that tell an author how their adventure landed were not being caught by account deletion, so a deleted account could leave traces behind. They are covered now.
  • Choices can’t offer you someone who was never there. A new pre-release check catches the fault behind a bug a tester reported — being offered to “hail the figure” when the narration had described only an empty road.
  • The health check stopped leaving litter. The automatic check that plays a turn against the live game every fifteen minutes had been creating an adventure each time and never clearing it up, quietly since May.
  • We can now measure who the world casts in which role. Storytellers inherit the assumptions in their training data. What an NPC does for a living is now recorded as structured information rather than free text, so “who gets to be the merchant, the priest, the guard” is a question we can answer across every adventure ever played instead of guessing at.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 368 — Tell the author what you’ll remember, and co-op finally sees its mana moments

August 6, 2026

Until now an adventure ended and that was the end of it — whatever landed for you stayed with you. This build opens a way back: when a story finishes you can mark the moments you’ll remember, keep one as a card worth sharing, and the person who wrote the adventure finally gets to read what people carried away from it. The other headline is a delight that co-op players have never once seen — mana moments reached solo players only, which means every shared adventure has been quietly missing its best flourish.

What you’ll notice

  • Say which moment you’ll remember. When an adventure ends you’re offered its turning points in the narrator’s own words — not “Beat 4” — and can mark up to three. It takes one tap, and skipping is a real answer.
  • A moment you mark becomes something you can keep. Each one renders as a parchment quote-card with the narrator’s line and your figurine, ready for the share sheet in a single tap.
  • Authors hear back. If you write adventures, you now have a private view of how yours were received — which moments readers remembered, and how a story is landing across the people who played it.
  • Play someone else’s adventure and it’s yours. Starting a shared adventure now gives you your own copy to play, so your choices are your own and the author still gets the signal that someone played it.
  • Bring a friend from the moment that earned it. The share card now carries an invitation, so passing on a story you loved and inviting someone into it are the same gesture.
  • Co-op players finally see mana moments. The pivotal-moment cards, their reveal, and the illustration that hangs off them reached solo play only — no co-op player had ever seen one. Parties get them now, mid-adventure as well as at the end, and the name you give a moment actually reaches the card. Marking a moment also works for everyone in a party now, not just the host.
  • Mark a moment whenever one happens. A new /mana command lets you flag a moment as it lands, instead of waiting for the story to offer you one.
  • Item cards retry for free, like mana cards always have. If you didn’t like how an item illustration came out, your only route to a different one was to pay a second credit. Item cards now open with Try Again inline and use the two free retries the credit already bought.
  • Scenery no longer picks a fight. A descriptive phrase like “mountain air” or “a tilting stone” could be read as an enemy and start a fight against it. A second fault underneath could assemble a combatant out of a fragment of a sentence, producing enemies with names like “Path and” — those are now discarded rather than trimmed, because trimming one leaves you fighting something called “Path.”
  • Winning a fight updates your party’s health. Damage taken and healing done during a resolved co-op battle never reached the roster afterwards, so your party sheet disagreed with the fight you’d just had.
  • Watch your adventure take shape. Creating an adventure now fills in before your eyes — title, then beats as they’re written — rather than a silent wait, and it’s narrated aloud for anyone playing without the screen.
  • Editing an adventure keeps your edits. Refining a beat could silently discard every prose change you made.
  • The age check appears. New players were never actually shown it. It now appears as intended, and accounts under 13 are held until proper parental consent ships rather than being waved through.
  • The Terms of Use link works. The link on the subscription screen pointed at a page that never existed — a 404 behind a required disclosure. It now opens the EULA that actually governs your subscription.

Behind the scenes

  • A wedged fight can’t strand you unnoticed. A daily check now looks for parties stuck against an enemy that was never real — the shape that left two players behind blank choice buttons — instead of waiting for someone to report it.
  • Turns survive a bad answer from the storyteller. A truncated reply used to lose the turn silently; it now retries. Two further crash paths in reading a turn were closed outright.
  • Deleting your account works even on older data. Account deletion could fail partway on accounts that predated the new feedback records.
  • Reports carry the build they came from. Feedback you send now records which version you were playing, so a fix can be matched to what you actually saw.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 364 — Co-op that reads like one story, and fights that only start when you mean them to

August 2, 2026

Playing together should feel like one shared story, not several people typing near each other. This build closes most of the gap: the narrator now knows who did what and says so, speaks about your party rather than to a single “you”, and keeps your table’s chat inside the story where it happened. The other headline is a fight that never should have started — a peaceful conversation could erupt into combat against an enemy who did not exist.

What you’ll notice

  • The narrator knows who did what. In co-op, turns are now attributed to the player who actually took them, so the story reads as a party acting together instead of an anonymous stream of actions.
  • Co-op is narrated as a party, not as one person. The storyteller now has a proper third-person voice for group play and stays in the present tense, so a shared adventure no longer reads as though it is addressing one of you.
  • Your table talk stays in the story. Messages you send with /say and /act now appear in the narrative at the point you sent them, rather than drifting out of place.
  • You can see who acted, and tap through to them. Turn avatars in co-op show the character who took the turn — not your own — and tapping one opens their sheet. Party members also now see a figurine that finished generating after the party was formed.
  • A peaceful scene no longer starts a phantom fight. The word “hostile” inside a phrase like “not hostile” was being read as a declaration of combat, spawning a fabricated enemy mid-conversation.
  • Leaving the tavern actually means leaving. Stepping out now ends your presence. Previously it never expired — you stayed on everyone else’s roster for as long as the app kept running. Your own card also tells you plainly when you are hidden from others.
  • Signing out leaves nothing behind. Your characters are no longer visible to the next account signed in on the same device, and that account’s local data is cleared on the next launch.
  • Your stories are written by a new storyteller. Adventure creation moved to Claude Opus 5, with more room to think through a premise before committing to it. Names you write yourself are honoured in the world it builds, and while it works you now get honest progress copy instead of a silent wait.
  • Dice tell you who they hit. Combat rolls now name the target as well as the attacker, so a busy fight is readable.
  • Party screens read straight. The top bar keeps a stable order, only the host sees Start adventure, characters who are free are no longer listed as “In a party” when you invite, and the turn number sits on the beats bar instead of being buried in a menu.
  • Quick Create keeps your choices. The skin tone you pick is the one your character gets.
  • Failures say what actually failed. Refining an adventure no longer reports every problem as though someone else edited it at the same time.

Behind the scenes

  • Story generation gets the time it needs. Adventure creation now works to a single, longer budget rather than several competing ones, so a rich premise is less likely to be cut short.
  • Cost tracking follows the new storyteller. Creation calls were being recorded as costing nothing, which hid real spend; they are now priced correctly.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 363 — Adventures that go the distance, parties of four, and an authoring loop that works

July 25, 2026

The headline is length: a freeform adventure used to generate five beats no matter how rich your premise was, which is why so many of them ended before they felt like anything. They now run twelve to fifteen beats across a full three-act arc — a hundred and twenty to a hundred and fifty turns. Parties grew from two players to four. And two long-running sources of friction close: creating your own adventure is finally a complete loop, and the question “wait, which character is this?” should stop coming up.

What you’ll notice

  • Adventures are three times longer. A freeform adventure now generates twelve to fifteen beats in a proper three-act arc — roughly 120–150 turns — instead of a flat five regardless of what you asked for. Stories now have room to build, turn, and land.
  • Parties of four. The co-op cap went from two players to four, so a full table can share one adventure.
  • Your first character actually appears. A new player’s very first hero could be silently missing from the roster — created successfully, then invisible. Fixed, and the app now reports it if a character ever fails to load rather than quietly skipping it.
  • Winning a co-op fight continues the story. A won party battle now opens into the next exploration beat with ideas for what to do, matching solo play, instead of leaving the party standing in a finished fight.
  • Begin and Refine are a real fork now. Refine opens the editor first, so you can shape a story before anyone plays it. Begin builds it straight away — and it arrives with a proper title and a fully-formed world, instead of a placeholder you had to wait out. A party adventure gets a real name from your premise too, so invitations no longer read “New Adventure.”
  • Play your own adventure from the editor. A direct way into your story from the page where you wrote it — pick a character and go.
  • See what authoring costs before you spend. The editor shows a running budget, caps what a single beat can consume, and won’t let you save into an over-spend. Run out mid-Begin and your upgrade options open right there rather than dead-ending.
  • Art in Aurea’s own hand. You can illustrate your adventure’s cover from the editor, and both cover and scene artwork now render in the origami paper-craft house style rather than a generic painterly book cover. Covers draw from a scene in the story instead of its title, so no more artwork with a title banner baked into the picture.
  • Ideas you haven’t built yet stop disappearing. Drafts show up in My Adventures alongside finished ones, and a brand-new adventure appears the moment you make it — no app reload to see your own work.
  • The character you tapped Begin on is the one you play. That hero stays selectable, the library opens in their world, and one “Playing as” selector names you everywhere — roster, library, and restart alike. “Play again” honours it too, including for freeform adventures played in a party.
  • A locked hero is no longer a dead end. If your character is committed to another adventure, Play offers a picker to reclaim them or choose someone else, scoped to the world you’re in. Locks left behind by an adventure that never started now clear themselves.
  • Eyes-free combat actually works. Fights in audio-only play were unplayable — the microphone never opened and your dice rolls were never spoken. Both fixed, so a combat can be fought start to finish without looking at the screen.
  • Co-op chat is back. Party chat had been failing silently in production; messages now reach your party, and they show the sender’s real character name.
  • Parties read better mid-fight. Teammate names are no longer chopped to ten characters, HP bars use larger type, and while your adventure is built you get an honest “Summoning your adventure…” instead of a spinner that looks like a stuck turn.
  • Back goes where you came from. Browser-back out of a game, backing out of an invite lobby (which now frees your host character), and leaving an adventure all return you to the page that sent you — with anything you’d typed intact.
  • The tavern counts you in. The head count now includes you, and presence updates live.
  • Your public character sheet tells your story. The sheet others see when they meet you now carries your background and skills, your companion, the bonds you’ve formed, and a short saga of what you’ve actually earned — instead of a near-empty page that looked the same at level 1 and level 6.

Behind the scenes

  • Narration survives an outage. If the service writing your story goes down, Aurea now switches to a backup automatically instead of stopping mid-adventure — and pages a human when it happens.
  • The world remembers what can’t be undone. Permanent changes you make — a bridge burned, a ruler deposed — are captured even if the narrator glosses over them, and are never forgotten as an adventure gets long.
  • A rejected premise fails cleanly. Content that can’t be used is now caught before your adventure starts building, with a clear message instead of a crash partway through. A refused co-op start explains itself the same way.
  • Keep typing on desktop. The turn box keeps focus after you submit, so continuous browser play doesn’t need a click between moves.
  • Silent breakage gets caught before you do. The co-op chat outage happened because a route quietly stopped existing; that class of failure is now checked automatically on every change.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 360 — Replay any adventure, and co-op combat gets the full dice ceremony

July 10, 2026

This is the biggest build since the tavern opened its doors. The headline: you can now replay any adventure you’ve finished — a completely fresh solo playthrough from the top, including on a version you’ve reworked as its author. Co-op combat also grew up — the full dice-roll ceremony solo play already had now works in parties, with foes you can actually see and a turn you can actually type into. And the “Create your own adventure” editor, which used to close the moment you opened it, now works end to end.

What you’ll notice

  • Play any finished adventure again. Adventures you’ve completed now offer “Play again” — a brand-new solo run from the beginning, on the latest version of the story. If you’re the author and you’ve refined the adventure since, your fresh playthrough starts on the refined version.
  • Co-op combat has the full dice ceremony. Fights in a party now roll the dice with the same drama as solo play — the roll shows before the outcome, so nothing is spoiled, and every skill check animates instead of just snapping to a result.
  • You can see your foes and act during a party fight. Combatants now actually render in the co-op combat scene (they were invisible before), and you can keep typing freely or use the choices menu mid-fight instead of being locked out.
  • Surrender and mercy resolve cleanly. When an enemy yields, the moment where you decide their fate now plays through properly — no more “spins, then nothing.”
  • The adventure creator works — and it’s honest about cost. The “Create your own adventure” editor no longer crashes on open, saves against the right version instead of throwing a false conflict, and tells you up front what an action will cost — with a clear upgrade path when you’re out of tokens, instead of a silent refusal.
  • Archive and restore your adventures. Tidy up My Adventures by archiving ones you’re done with, and bring them back whenever you like.
  • Name your world and cast as you create. When you enhance a new idea, you can commit to a named setting and characters and give the adventure its title, rather than leaving it generic.
  • “Create adventure” is right on the browse tab. You can start authoring straight from the Adventure Library, not only from My Adventures.
  • The tavern got more sociable. Tap anyone’s presence card to open their character sheet, private drinks between two patrons now show up in the chat, and your own messages are shaded so it’s easier to follow the conversation.
  • Your character slots make more sense. Each world gives you free character slots, plus a shared pool you can spend across worlds — so your heroes aren’t stranded. Premium and Creator members also get the Inworld voice-engine picker surfaced as an option rather than a quiet block.

Behind the scenes

  • A turn survives a bad moment. If your connection stumbles or a save hangs mid-turn, your move is now held in a durable queue and delivered when things recover — with a small banner telling you what’s happening — so a co-op turn isn’t lost to a blip.
  • Resuming lands you in the right place. Picking a curated adventure back up now renders your full party (not a blank solo screen), and the “here’s where we left off” recap is a tidy banner at the top that never interrupts a fight.
  • Snappier on the web. Roster and quest-selection screens cache their artwork and skip heavier per-card animations in the browser, so the app feels lighter.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 324 — The tavern fills up, and sign-in works from any iPhone browser

June 20, 2026

The tavern was always meant to be the place you bump into other adventurers — but for a while it was strangely lonely, with two people standing in the same gathering place unable to see each other. This build fixes that for real: walk your character in, and you actually appear to everyone else who’s there, live. We also closed a long-standing sign-in gap — if you opened Aurea in Chrome, Firefox, or Edge on an iPhone, sign-in used to bounce you back to the login screen. Now it just works, and stays signed in.

What you’ll notice

  • You can actually see who else is here. The tavern now shows the other adventurers who are currently in that world’s gathering place, updating in real time. No more standing in an empty-looking room while someone else is right there with you.
  • “Enter the tavern” walks your character in. Pick a character, step through the door, and you’re present by default — visible to everyone else in that world’s tavern, with no extra toggling required to be seen.
  • Presence follows you, not just one character. Being visible and your “looking for…” note are now a property of you in a world — so they apply to whichever character you bring in, rather than being pinned to a single hero.
  • The tavern leaves cleanly when you do. If your connection drops or you close the app mid-visit, the world notices and quietly marks you as having left, so the room reflects who’s genuinely around.
  • The whole tavern works eyes-free. You can ask “who’s here?”, say “make me visible” or “hide me”, and hear who’s present — the full presence surface is voice-drivable and spoken aloud for audio-only play.
  • Sign in from any iPhone browser. Chrome, Firefox, and Edge on iPhone can now sign in with Apple or Google and stay signed in. Previously these browsers bounced back to the login screen; Safari and the native app always worked, and still do.

Behind the scenes

  • A real sign-in path, not a workaround. Non-Safari iPhone browsers now complete sign-in through a server-side handshake that hands the app a fresh session directly — sidestepping the browser limitation that broke the old flow — and it resolves to the same account you’d get signing in natively or in Safari, so no duplicate accounts.
  • Presence is its own source of truth. Who’s in a tavern is tracked per-world and per-player on the server, kept fresh by a heartbeat and a short staleness window, so the room stays accurate even when someone vanishes without a clean goodbye.
  • Steadier sign-in foundations. The web sign-in flow now runs through a single stable auth domain, removing the intermittent dead-ends that some browsers hit on the redirect round-trip.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 322 — Create your own adventure, told richer

June 17, 2026

Creating your own adventure now starts from a single idea. The new create screen is one plot box — type a sentence or paste a whole script, and you’re ready to play. A new ✨Enhance button lets the AI flesh out a sparse premise for you, grounded in the world you chose and written in your own voice. And under the hood, every adventure is now built from the world’s actual lore from the very first scene, with a faster, sharper director running each turn.

What you’ll notice

  • A simpler create screen. Making your own adventure is now a single plot box plus an optional title. No pads, sliders, wishlists, or seed questions to fill in first — the plot is the whole input. Write one line or paste a full script; both just work.
  • ✨Enhance fills out a sparse idea. Type a rough premise, tap Enhance, and the AI enriches it — adding sensory detail, world-grounded texture, and voice while keeping your idea front and center. It enriches how the story is told, never quietly rewrites what happens.
  • Your script is kept, word for word. If you’ve already written a detailed adventure, Enhance leaves it alone — every named character, place, and beat is preserved exactly, never summarized or compressed. Past about 600 characters it steps aside entirely, so a carefully-authored script is never overwritten.
  • It keeps your stakes open. Enhance never settles an ending for you — even an outcome you wrote is treated as the stakes the players are playing toward, not a foregone conclusion. It’s an adventure, not a novel.
  • Adventures are grounded in their world from the start. When the AI builds your adventure, it now draws on the full worldbuilding of the world you picked from the very first beat — so a tale set in a given world genuinely feels like it belongs there, in its factions, places, and tone.
  • Faster, richer turns. The behind-the-scenes layer that directs each scene was upgraded to a stronger, faster model. In play that means turns come back quicker and the direction of each scene has more texture.

Behind the scenes

  • A stronger, faster scene director. The director layer moved to a new model (MiniMax-M3) that’s both quicker and richer than before, with a hard time cap so a slow moment can never stall your turn.
  • World lore actually wired in. Each world had detailed authored creation guidance that nothing was reading — it’s now injected into adventure-building (and into Enhance), expanded from the world bibles for our launch worlds.
  • Steadier create flow. Enhance got a longer timeout and prompt caching so it stays responsive even on large worlds, plus moderation and a sensible rate limit on the generate button.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 318 — The Tavern, a living social heart for every world

June 14, 2026

Every world now has a gathering place — the social heart where adventurers cross paths between quests. It isn’t always literally a tavern: in the classic-fantasy world you “Speak up,” in Urth you “Call across the hall,” in Orbis you “Raise your voice,” and Anima’s grove gathers people a little differently. The room speaks in the voice of the world you’re in, a house patron murmurs in the background, and you can finally talk to the people there — trade a line of chat, or buy a round for everyone present. This is the build where the Tavern stopped being an empty room.

What you’ll notice

  • Each world’s gathering place speaks in its own voice. The entry line, the “say something” prompt, and the place’s name now all read from that world’s own copy instead of a generic “tavern” everywhere — so the room sounds like the world you’re standing in.
  • A patron mills about in the background. The house regular drops an ambient, in-world line on a steady cadence, and the topic varies from one moment to the next so it reads like overheard life in the room rather than the same loop. (Late in this window we tightened that cadence so the room feels a touch livelier.)
  • Tavern chat is live. Send a message to the room and see what others are saying. Chat is grouped so you’re only ever in conversation with age-appropriate company.
  • Delete your own messages — by tap or by voice. Long-press one of your own lines to remove it, or just say “delete my last message.” Mis-spoke or mis-heard by the mic? Take it back in a second, hands-free.
  • Buy a round for the room. Stand a drink for everyone present and a herald announces it to the room in the world’s own voice — “so-and-so bought a round!” A small, generous gesture, with no mechanical strings attached.
  • The Tavern works eyes-free. In audio-only mode the room opens your mic when it’s your turn to speak, sends what you say through the same path as typing, and reads new arrivals and messages aloud — with a spoken re-prompt when it didn’t quite catch you, never a silent dead end.
  • Clearer errors when something goes wrong. If the room can’t load, you get a Retry that actually re-attempts the load and a short diagnostic code, instead of a stuck or blank screen.

Behind the scenes

  • One source of truth for each world’s voice. The world-specific Tavern copy now lives in each world’s config and is read the same way on the server and in the app, so the room’s wording can never drift between the two.
  • Per-world Tavern modes. Worlds can offer the full social Tavern, a join-only gathering, or none — enforced on the server, not just hidden in the app. Anima’s grove is the first to use the gentler join-only mode.
  • Guardrails on the room. Chat has a server-side kill switch and rate limits so a single voice can’t flood the room, and a round announcement is written carefully so it only reaches the people who were actually there.
  • Tested before it shipped. The new chat, delete, round-herald, and eyes-free voice paths each landed with their own automated coverage, including device-run acceptance tests for the critical journeys.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 311 — Play with your eyes closed

June 4, 2026

Aurea has always promised an adventure you can play without looking at the screen — this build is where that promise grows teeth. For sight-impaired players, and for anyone whose eyes are busy elsewhere — on a commute, walking the dog, winding down with the lights off — you can now hear the whole scene and drive it entirely by voice, combat included. Combat used to be the place where the eyes-free experience quietly fell apart; now you can fight by speaking or typing in plain language, and the game speaks back so you always know what just happened. None of this changes the default tap-and-read experience — it’s a mode you opt into when you want it.

What you’ll notice

  • Fight in your own words. In solo combat you can now type or speak naturally — “slash the goblin,” “back off” — instead of saying the exact card name. Aurea reads the intent, and when it’s unsure it leans on the safest reading rather than the riskiest one. Hesitant or all-or-nothing moves are never triggered by a fuzzy guess.
  • The game tells you what it did. When you commit a combat action, the narration now echoes the move it understood — so an eyes-free player hears what landed and can correct course on the next turn. If a round actually resolved, you hear the dice; silence where the dice should be is your cue that nothing combat-y fired.
  • A real hands-free loop. Turn on Audio-only mode and Aurea reads narration and choices aloud, listens for your next move, and re-prompts itself — no tapping required. Everything you’d normally read on screen, including HP, status, and dice results, is now spoken.
  • Named reasons when it doesn’t catch you. A failed or empty voice action now tells you why — too quiet, didn’t understand, nothing heard — and re-prompts, instead of a generic “sorry, didn’t catch that.” The speech-capture window is longer too, so you’re less likely to get cut off mid-sentence.
  • Sound off. A new spoken battlefield read-out in solo combat tells you who’s standing, who’s hurt, and what you’re facing — the situation picture any “attack” or “retreat” decision depends on. You can also target any enemy by voice.
  • Choices read like a story, not a form. Your options are narrated naturally rather than recited as screen-reader prose, and retreating in combat now asks for a quick spoken confirm so a misheard word never commits you to a flight you didn’t mean.
  • It finds you when you need it. If you’re running a screen reader, Aurea now leans toward low-sight defaults on its own and announces once that the audio-drama mode exists. You can set the mode yourself any time under Settings — Automatic, Off, Low-sight, or Audio-only.

Behind the scenes

  • One source of truth for combat moves. Every combat card now derives from a single canonical registry, so what the buttons send, what the narrator describes, and what the engine resolves can’t silently drift apart — a class of “the move did nothing” bug we closed for good.
  • A smart fallback for the tricky phrasings. When the quick word-matching isn’t sure, a language model steps in under a strict time budget to read your intent — and if it ever stalls or misfires, the game falls back to a real combat round rather than dropping you into the wrong kind of check.
  • Combat state now lives on the server. Solo combat is built and tracked server-side, which makes fights more reliable and resistant to a dropped connection mid-swing.
  • Honest scope. The eyes-free combat work lands for solo play first; fully voice-driven co-op combat is a tracked next step, not something we’re claiming here yet.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 297 — A real level for every adventure, and a smarter XP economy

May 30, 2026

Until now, almost every adventure quietly sat at level 1, and the experience you earned was the same flat trickle no matter how dangerous the story was. This build fixes both. Each adventure now carries a real difficulty band somewhere across the full 1–20 range, and the XP you earn scales to match — a high-stakes story rewards you properly, while replaying easy early content pays out like the easy content it is. Two of the things that were broken on arrival — granting spells during adventure creation, and the “Previously on…” recap — now actually work. And your progress now survives a dropped connection or a force-quit mid-turn.

What you’ll notice

  • Every adventure has a real level band now. Stories are matched to a difficulty band across the full 1–20 range instead of defaulting to level 1. Your existing adventures were backfilled too — over 600 of them — so nothing was left stranded at the old flat level.
  • XP scales with the stakes. The experience awarded per beat, fight, skill check, and narrator moment — and the total an adventure can grant — now scale to the adventure’s level. A tougher, higher-band story pays out meaningfully more than a level-1 starter.
  • Replaying easy content pays easy-content rates. The XP an adventure gives is tied to that adventure’s own difficulty, not your character’s level — so a high-level hero revisiting a gentle low-band story earns low-band XP, the way it should.
  • No more reward starvation. Previously the flat cap let narrator and skill-check XP soak up the whole budget and starve beat and combat rewards down to almost nothing. The full range of what you do in an adventure now counts toward your progress.
  • Granting spells during adventure creation works. The Architect can now actually equip your character with spells from a world’s tradition when it builds an adventure. This pathway was silently dropping the spells before — it never made it past creation. (Newly wired; you may still find rough edges as it gets exercised.)
  • The “Previously on…” recap tells the story again. Coming back after a few days used to dump a list of NPC names with no context. The recap is now two short paragraphs — what happened and what your original goal was, then where you stand right now and the thread still hanging — so you can actually pick the plot back up.
  • Improvised magic stays grounded. When you describe a magical effect in prose rather than casting a card — “I raise my holy symbol and light fills the room” — the narrator now caps it at cantrip-level: a little light or a faint blessing is fine, but area effects, damage, and healing need a real spell. Reaching beyond that is narrated as reaching, not granted.
  • Your progress survives interruptions. If your connection drops or the app gets killed mid-turn, your action is no longer lost — it’s saved and safely replayed when you return, and the same turn can’t be applied twice.

Behind the scenes

  • Tougher data handling on load. A round of hardening makes character, session, and adventure loading tolerant of odd stored values — the kind of corner case that used to strand a save instead of opening it.
  • Crash reporting and live health checks. The app now reports crashes for diagnosis, and our servers are pinged every few minutes so we hear about an outage in minutes rather than from you.
  • A turn that fails now says so. If a turn is rejected by the server, you get a visible error instead of the action quietly vanishing.
  • Faster narration, honestly measured. We re-checked real narrator response times and tuned our internal speed thresholds to match what the current model actually delivers, so genuine slowdowns surface instead of hiding behind a stale number.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 283 — Final-beat climax pacing + party stability cohort + faster turns

May 23, 2026

Thirty days of work on top of Build 269's Adventure Sequels foundation. The headline fix: final beats no longer dissolve player-initiated climaxes into a one-paragraph wrap — if you push a confrontation or a fight into the last beat of an adventure, the narrator now stages it turn-by-turn. Around that, a thick cohort of co-op party stability fixes, faster turn latency (Narrator + Director both quicker), the routing gap that was 404'ing sequel Generate, and a stack of small UI polish wins (optimistic action echo, choices auto-collapse, mana card landscape, recap stacking).

What you’ll notice

  • Final-beat climax pacing. Multiple testers hit this: the narrator was telling itself "do not start new scenes" the moment a final beat reached its turn budget, then dissolving any climactic action the player initiated ("but before you can speak, the great hall shimmers"). Fixed at three layers — the budget threshold gives the narrator more headroom, the stop-sign carries an explicit carve-out for player-initiated climaxes against named antagonists, and combat in the final beat now suppresses the wrap-pressure entirely until the fight resolves. Endings are what people remember most; this one matters.
  • Faster turns. Narrator V4-Flash reasoning disabled by default (saved ~10s/turn with no measured quality lift). Narrator token cap raised 900 → 1200 (fewer truncation retries on long combat / NPC dialogue turns). Director moved back to Haiku 4.5 after a brief V4-Pro detour for latency reasons. Turn-latency tracking now built into Gate 2 so drift gets caught pre-deploy.
  • Co-op party stability cohort. Closed a thick cohort of party failure modes: party completion screen now renders XP + sequel CTA (was dumping to /adventures); `/finish` properly flips the party doc and releases locks; party start is idempotent if you quit mid-formation and restart; curated-party adventure IDs minted fresh (stale-collision class fixed); XP_BEAT_COMPLETE + XP_COMBAT_WIN parity restored in party state-hints (~30 days of party adventures were silently dropping these); truncation-retry now wired through party paths too.
  • Sequel Direction Generate works again. A 6-rewrite gap in proxy routing was 404'ing `/v1/generate-direction` for sequel outline generation. Closed. The Direction screen's LLM-backed Generate now reliably produces an outline preview before you commit.
  • Optimistic action echo. Your tapped choice now appears in the message stream the moment you tap, before the narrator round-trip completes. Game feels snappier even on the same network speed.
  • Choices auto-collapse on tap. When the choices panel is unpinned, tapping a choice auto-collapses it so the narrator's response gets full visual real estate.
  • Recap stacking fixed. The "Previously on…" recap no longer duplicates when you cold-launch into an in-progress adventure.
  • Mana card modal landscape. Card image now fits the viewport on landscape phones / tablets without top/bottom cropping.
  • Slash commands hardened. `/finish` now accepts adventures in `status=creating` (sequel start workflow). Roster + slash defenses against malformed Firestore docs from old bugs (missing milieuId, Firestore Timestamps in blueprints).

Behind the scenes

  • Adventure-health daily probe. Wedged adventures (stuck spinners, broken state) are now auto-detected nightly and emailed to ops. Faster turnaround when something breaks for a real player.
  • Cost-attribution audit. Two pricing miscounts in the spend logs corrected: V4-Pro under-counted ~4× for 2 days; spend.ts tightened on unknown-model attribution. Daily anomaly detection running on Architect + Director + Narrator + image generation.
  • `ops_alerts` email routing. Failure modes that previously went silent until manual inspection now page in under 5 min.
  • Per-call inference-latency telemetry. Every LLM call records its wall-clock duration. Latency regressions catchable early; Gate 2 now has a ratcheting turn-latency gate that blocks deploys on drift.
  • 9 client consumers migrated to ProxyClient. Continued the audit P0 #11 refactor: 9 of the remaining call sites moved off `claude_service.dart` to the dedicated `proxy_client.dart`, with 16 regression tests added. One holdout (`game_state.dart` resurrect / retry paths) waiting on server-side migration.
  • Canonical tier-resolution helper. The "which tier is this user?" decision had drifted across 5 call sites with subtle differences. Unified into one helper (audit P0 #7) so paywall behavior, credit grants, and quota enforcement all agree.
  • `_loaders.ts` net-line growth gate. A new pre-commit gate (audit P0 #4) blocks adding lazy-default normalizers without a paired migration script. Stops the "old entity broken / new entity fine" bug class from accumulating silently.
  • Pre-launch defense gates. Per-adventure XP ceiling (250), per-turn `addItems` cap (2), `requestSkillDc` floor (DC 8), daily USD per-user spend cap (tier-scaled), image quota, Sonnet escalation hourly cap. Cost-runaway + moderation safety in depth.
  • Final-beat regression test pinned. A new regression test in `proxy/tests/final-beat-pacing.regression.test.ts` locks the climax-pacing behavior so a careless cleanup can't silently reintroduce the Princess-Bride failure mode.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly. The final-beat fix above came from a single tester's flagged adventure; that's how this works.

Build 269 — Adventure Sequels: continue your story

May 17, 2026

The headline change is structural: every completed adventure can now spawn a sequel. The same character carries forward — with the canon they made (NPCs alive or dead, decisions kept, items won) intact — into a new adventure tuned by an X/Y direction interface. Around that, a new Apprentice subscription tier, a sharper Architect (the layer that plans your adventure outline and weaves long sagas), signature moments for first-time milestones, and a long list of stability fixes — including the "Conclude my adventure" crash that’s been blocking endings.

What you’ll notice

  • Adventure Sequels. Complete any adventure and the post-completion screen offers "Continue this story." Tapping it opens the Direction screen — two X/Y pads that steer the next chapter’s tone (light vs heavy / personal vs world). The sequel inherits your character, world, and canon from the prior adventure. Up to 5 sequels deep per saga — after that the CTA tells you the saga has run its course and your character can start a fresh adventure instead. Co-op sequels include a party-roster editor (drop or add members up to the 4-player cap).
  • Apprentice tier ($3.99/mo). A new fifth subscription tier between Free and Basic. 1 solo adventure + 2 co-op adventures per month, full narrator quality, smaller credit grant. For people who want the real Aurea experience but only play a few times a month. Web subscription is live; iOS App Store side syncs in a follow-up.
  • Sharper Architect. The Architect — the layer that builds your adventure outline before play and that weaves long-saga continuity — switched to a stronger model (Claude Opus 4.7). You’ll feel it most in opening beats (more specific, more tied to your character’s wedge), sequel openings (sharper recall of prior canon), and late-saga sequels (3rd / 4th in a chain still cohering with the original).
  • Coronation parchment. The first time you open the roster on Build 269, a one-time parchment unfurls confirming your character slots. Every existing account gets a +6 slot bump on top of whatever you had.
  • First-IAP signature slip. The first time you ever buy a credit pack or slot pack, a parchment slip plays once after purchase to mark the moment.
  • "Conclude my adventure" no longer crashes. A narrator-output shape mismatch was 500’ing the turn when players tried to end an adventure on the final beat. Found via Gate 2, fixed today (May 17). The fix also defends against four other narrator-output shape misses that hadn’t triggered yet.
  • Structural memory restored on solo adventures. A regression after the 2026-05-06 solo-via-party reroute was clearing world-state, known-NPC, and canonical-facts memory mid-turn for ~95% of May adventures. Symptoms: NPCs forgetting key facts, decisions not landing, stories drifting backwards. Patched; new and existing adventures now retain structural memory cleanly.
  • Yanomami-class deadlock + late-session truncation closed. If a narrator output ever got truncated mid-JSON during combat, the turn could wedge forever with empty choices. Truncation now triggers a retry with more budget; combat state can’t go null-mid-fight.
  • Beat / combat / completion XP actually delivered. A client-side XP path went dead under the server-turn migration; for ~30 days, real beat XP wasn’t landing. Server-side XP is now the source of truth, with per-adventure ceilings to prevent farming.
  • Disposed items stay disposed (hardened). Items you used, gave away, or broke don’t drift back into choice menus — same fix shipped in Build 213, now backed by additional defensive parsing on the narrator output.
  • Roster slot floor: 6. Every account now starts with at least 6 character slots (was 4). The bump is automatic and one-time.

Behind the scenes

  • Adventure Sequels OpenSpec change applied. Phases 1a (server-side sequel creation), 1b (player Direction + classifier + outline + co-op seeding), 2 (UI), 3 (Gate 2 eval), and 4 (flag flip + telemetry) all shipped in this build cycle. Phase 4 includes new `quality_events` instrumentation (`sequel_button_shown` / `_tapped` / `_blocked`) for funnel measurement during the 30-day soak.
  • iap-wave-2 OpenSpec change applied. Stripe credit-pack infrastructure (Phase 1), per-grant ledger + webhook handlers (Phase 1), grandfather slot migration + client enforcement UI (Phase 2), signature moment widgets (Phase 4). v3 subscription ladder + Apprentice tier rolled in alongside.
  • Architect bake-off: Haiku 4.5 → Opus 4.7. Architect runs once per adventure (drives 130+ turns of downstream narrator behavior), so quality matters more than per-call cost. Bake-off across Sonnet 4.6 / Opus 4.7 / Haiku 4.5 / V4-Flash on coherence + outline specificity, with combined-main Gate 2 18/18 confirmed pre-promote.
  • Director model: Haiku 4.5 → DeepSeek V4-Pro. Director (the layer that grades narrator choices and tracks pacing) shifted to a cheaper, equally-capable model via OpenRouter. ~60% per-call cost reduction with no quality drop observed in pairwise blind tests. 24h + 7d verification monitors armed.
  • Cost-change verification system (Layers 1-2). Per-call cost is now tracked by the proxy on every turn / Architect / image generation, with daily anomaly detection. Pricing-adapter regressions cover Anthropic, DeepSeek, and Replicate vendor pages — if any vendor changes pricing, an `ops_alerts` entry fires same-day. Surfaced 2 pricing miscounts in the existing constants (Haiku 4.5 input rate, Opus 4.7 split-tier) that have been corrected.
  • Ops notifications wired up. `ops_alerts` Firestore writes now push to Patrick via email (Resend) within minutes. Failure modes that previously went silent until manual inspection (Gate 2 flakes, cost spikes, Sonnet escalation share drift) now page in under 5 min.
  • Class 2 + Class 5 launch-readiness gates. Per-adventure XP ceiling (250), per-turn addItems cap (2), `requestSkillDc` floor (DC 8), daily USD per-user spend cap (tier-scaled), image quota, Sonnet escalation hourly cap. Pre-launch defense in depth on cost runaway + content moderation paths.
  • Single source of truth: model routing table. All proxy LLM call sites now derive from one ROUTING_TABLE in `_models.ts`. Drift caught by a coverage regression test. The "why is X on Y?" question stops being a 15-grep archaeology dig.
  • Defensive narrator-output parsing. Five narrator state-hint array fields (removeItems, addConditions, removeConditions, worldState, removeCanonical) now go through a runtime parser before reaching application code. The LLM is non-deterministic by design; type-cast-only validation isn’t enough. (Pinned by 14 new tests.)

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) and APK (Android) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly. Sequels in particular were driven by a tester ask: "I want to keep playing this character."

Build 246 — Faster, sharper narrator + a wave of quality polish

May 9, 2026

The headline change is the narrator: turns now run on a faster, denser model that handles tone, NPC voice, and sensory specificity better than the prior default. You’ll feel it most in dialogue scenes and failure narration. Around that core change, this build folds in a month’s worth of polish — Mana card illustration that actually resembles your character, a cleaner solo-adventure opening, public character views, and a long list of UX fixes.

What you’ll notice

  • Sharper narrator prose. Default narration migrated to a new model (DeepSeek V4-Flash). In our blind quality bake-off it scored +58% over the prior default on sensory specificity, NPC voice differentiation, and failure narration. Sonnet still handles climactic moments. You should see fewer clichés, tighter dialogue, and more concrete physical detail in normal turns.
  • Mana cards look like your character. When you illustrate a Mana card, your figurine is now passed as a reference image — the resulting illustration uses your character’s likeness for face, build, and palette while composing a fresh scene per the moment. Cards no longer look like generic NPCs.
  • Mana card gallery polish. Newest cards first. 3-up wrap on phones with a “Show N more” overflow toggle. Card detail dialog has a floating X close, inline retry error, lighter title bar. Auto-opens to the card you just generated.
  • Solo adventure openings now have a stinger. Starting an adventure as a host-alone solo party plays the world stinger and shows the same opening flourish as multiplayer. Single-member parties are now first-class solo runs.
  • Public character views. Tap any party member or featured figurine to see a sanitized public character sheet. Useful in co-op and on shared adventure pages.
  • Character sheet access for in-flight characters. You can open the sheet from inside an adventure now, not only from the roster.
  • Long-press menus for figurines + cards. Long-press a character figurine or a card thumbnail to get re-illustrate / view full / share options. Spinner overlays while regenerating so you know it’s working.
  • Anima now uses singular archetypal kindreds. Fox, Wolf, Bear, Owl, Stag, Otter, Hare, Crow — instead of taxonomic IDs. The naming matches Anima’s mythic register.
  • Sign-out flow lands you on the menu, not the settings screen. Long-standing minor papercut fixed.
  • Credit pack purchases are sturdier. Per-pack spinner during purchase (you can’t accidentally double-tap), iOS-native indicator, auto-retry on transient webhook failures. The NON_RENEWING_PURCHASE category routes correctly so credits land in your account.
  • Roster badges are legible. “Solo” and “In party” badges now have solid backgrounds and shadows so they stand out against any portrait.
  • Story log fixes. Urth characters that briefly went invisible (lookup-miss bug) now render again. Orbis culture map scrolls properly. Anima species selection resets cleanly between characters.
  • Mana card prompt safety. No more on-image text/commentary leaking into illustrations. Anti-frame and anti-hallucination clauses prevent generic-NPC drift.

Behind the scenes

  • Narrator-default model migration shipped. Bake-off (round 1) measured +58% felt-quality lift over gpt-4.1-mini with non-overlapping 95% confidence intervals on Bradley-Terry MLE Elo. Round 2 confirmed Sonnet still wins for narrator-heavy moments (kept on the escalation slot). Ships with a kill-switch env var (NARRATOR_PROVIDER=openai) for fast rollback if production diverges from the bake-off. Decision-log entry, regression tests, and Gate 2 (11/11 passing) wired in.
  • Image generation discipline. Mana card illustrations now travel with prompt + model + protagonist URL alongside every persisted Firestore write. The auditing script blocks deploys when temporary URLs sneak in.
  • OpenSpec change-management workflow on for major work. NPC relationship system + NCE-deepening cohort 1 are mid-flight as OpenSpec proposals (Cohort 0 substrate landed; Phase 0 LLM payload privacy primitive shipped).
  • Public character view pattern. Sanitized read pattern in character-system spec. Featured-figurine + party-member taps wired up.
  • aurea.quest is now the public surface. Site renamed, backup snapshot pipeline running, /content-and-safety pretty-URL live.
  • Build infrastructure. RevenueCat keys auto-source from proxy/.env (silent-IAP cause), build.sh tolerates missing keys per env-file, LOC history records build-bump commits.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly. The narrator change in this build was driven by tester feedback on prose quality across hundreds of turns.

Build 213 — Mana Cards take center stage + the world remembers what you used up

May 4, 2026

The biggest player-facing build since 211. Three things changed about Mana Cards: you can name moments mid-adventure when they happen, every adventure auto-generates a shareable illustrated card, and your first lifetime illustration gets a ceremonial 8-second moment. Plus the long-standing “I destroyed the silver vial three turns ago, why does the choice menu keep offering it?” bug class is gone.

What you’ll notice

  • Name Mana moments mid-adventure. When the Director flags a moment of courage, connection, knowledge, or transformation, a parchment slip appears on screen. Tap to dismiss (the moment is logged; you can name it later from the Mana Cards screen). Long-press to expand a name input and name it on the spot.
  • Every adventure makes a shareable Mana card. When you reach the Growth Screen at adventure end, ONE Mana card from your adventure auto-illustrates. The Director picks the most cinematic moment — transformation > courage > connection > knowledge, with later turns winning ties. Other Mana cards stay text-only by default; you can still illustrate them individually using credits. Tap share on the auto-illustrated card to send the artifact (illustration + moment title + character name + world).
  • First Mana coronation. When a free-tier player reaches their first auto-illustration, the Growth Screen takes 8 extra seconds: parchment unfurls, world stinger plays, the Director’s description plays via your character’s TTS voice, and a wax seal in the world’s color drops onto the card. One-time-per-account.
  • Disposed items stay disposed. When you give away the silver vial, the brass token, the sacred scroll — when items are destroyed, consumed, dropped, given, or shattered — the choice menu won’t keep offering them as actions. The Lara-vial and Sagat-brass-token bug classes are closed.
  • Anima figurines look like Anima figurines again. The painterly anthropomorphic fox bug from late April is fixed — Anima now uses naturalistic-animal portraits per the world’s identity. Aurea / Orbis / Urth keep their existing styles.
  • Smoother spellweaving + meditation poses. Hallucinated extra hands and conflicting instructions (“hold weapon AND spellbook”, “sit AND stand”) cleaned up in the figurine prompts.
  • Beats advance more reliably. A second wave of dawdle-prompt strengthening — when you’ve been at a beat past its budget, the narrator gets a high-salience reminder at the very end of the prompt to push the scene forward. Beats now advance on time even on long sessions.
  • New 4-pack credit ladder. Credit packs are now Starter (3 imgs / $0.99), Standard (10 / $2.99), Premium (30 / $7.99), and Anchor (75 / $14.99) — replacing the prior 5/15/50 ladder. Smaller starter for sub-$1 entry, larger anchor for serious illustrators. Old packs marked unavailable; in-flight purchases are honored.
  • Dice overlay no longer mislabels skill checks as combat attacks. A non-combat skill check now reads as a skill check in the dice overlay UI.

Behind the scenes

  • Phase 1.5 sprint complete. Four parallel agent dispatches landed item-state persistence, mid-adventure Mana surface, auto-illustration + share, and First Mana coronation, all with regression tests + spec updates. Gate 2 11/11 passed against the preview deploy. ~$0.04/adventure absorbed cost for the auto-illustration; survivable per worst-case M3 cost model.
  • End-of-prompt beat escalation reminder. Narrator system prompt now appends a high-salience escalation directive at the very end when the player is past beat budget. Restores beat-following after prior prompt-growth diluted the early-suffix dawdle warning.
  • Per-milieu figurine routing. Centralized FigurineService.generate() with milieu-specific strategy discriminator. Each milieu’s JSON declares its figurine strategy (humanoid_origami / milieu_portrait / naturalistic_animal); routing follows the data instead of being hardcoded per-call-site.
  • Worst-case M3 cohort cost model run. 200 users × 3× turn volume projects to $69-93/day; survivable at conversion ≥ 3% and Sonnet narrator share ≤ 40%. Phase 2.6 acceptance met.
  • 1141 Flutter tests + proxy tests passing. +77 Flutter tests since Build 211.

Still recruiting playtesters

Aurea is in closed-beta TestFlight (iOS) until App Store launch. If you know anyone who’d enjoy a long-form RPG with an AI dungeon master — solo or co-op — DM Patrick. Each tester shapes the build that ships publicly.

Build 211 — Mana Cards illustrate + adventure quality leap

May 1, 2026

The biggest build since the multiplayer launch. Mana Cards now have an Illustrate button that generates a real image for your cards. The narrator’s memory of your world is dramatically tighter — siege engines stay destroyed, NPCs stay dead, sealed passages stay sealed. Choice menus stop falling back to generic “continue exploring” options. And if you give an NPC a nickname, the narrator actually uses it.

What you’ll notice

  • Mana & item cards can now be illustrated. Tap the new Illustrate button on any card without an image to generate art for it. Each illustration costs 1 credit. Free tier gets 1 lifetime illustration; paid tiers get monthly credits. Need more? Three new credit packs ($0.99 / $1.99 / $4.99 for 5 / 15 / 50 credits) are available from the dialog. Note: credit packs may show “coming soon” on this build — App Store products are being finalized.
  • The world remembers what you broke. Destroyed siege engines, dead NPCs, sealed passages, depleted resources — all now persist in the narrator’s memory across the entire adventure. The Adam Demeter siege bug class (narrator “forgetting” that siege engines burned) is closed.
  • Generic choices are gone. “Continue exploring” / “Look around” / “Wait and see” will no longer appear in your choice menu when something specific should be there. Choices now anchor to the actual scene.
  • NPC nicknames stick. Say “call him Vincent” or “her name is Mira” and the narrator will use that name in subsequent prose, while still tracking the canonical name behind the scenes. Especially useful for movie-plot adventures where you give NPCs assumed identities.
  • Engagement prompts. If you’ve been deliberating on a choice for 90+ seconds, just returned to the app after a 15+ minute absence, or have been making similar choices in a row, you’ll see a gentle, dismissable hint card. Toggle off in Settings if you find them annoying.
  • Mana flag tuning. Each mana category (Courage / Connection / Knowledge / Transformation) now has its own emission budget so long sessions don’t silently drop signals. Growth Screen behavior unchanged.

Behind the scenes

  • Adventure Quality Wave 1. Five connected fixes shipped together: world-state continuity, name aliases, choice-relevance prompt, stuck-session detector + dashboard, and quality_events measurement infrastructure. Together they target the recurring “narrator forgets / hallucinates / goes generic” bug class. Replay validation against historical sessions (113 detector fires across 733 narrator messages) confirms the regex works on real prose.
  • Stuck-session detector. Cron sweep + Health-tab classifier surface the four stuck-session patterns (completed-but-active, narrative-orphan, diceroll-orphan, premature-completed) before players have to email about them.
  • Single illustration credit pool. Figurines, mana cards, item cards, and any future illustration types all draw from the same per-tier monthly + cap budget (`portraitCredits`). Per-day 20-render cap prevents accidental burn.
  • Webhook idempotency contract. Credit-pack purchases use a deterministic dedup id so RevenueCat retries are safe. Per-day 3-pack purchase cap protects whales.
  • Quality events dashboard. New Adventure Quality panel on /ops surfaces mutation-capture rate, name-drift, choice-relevance, mana flags by category, and engagement-prompt fire/suppression rates. Cron rollup with 25h staleness indicator.
  • Director per-category mana telemetry. mana_flag_courage / _connection / _knowledge / _transformation each get their own 50/day budget instead of sharing one (long sessions don’t silently drop signals).
  • Tooling: agent-team framework. Multi-agent dispatch with worktree isolation + harvest pattern + cleanup discipline. Wave 1 + Mana Cards Phase 1 used 33 dispatched agents with 22 atomic phases across 4 dispatch waves.
  • 1064 Flutter tests + 150+ proxy tests passing. 119 new Flutter tests since Build 210.

Build 210 — Sharper recaps + smoother adventure pacing

April 27, 2026

A focused quality build. Resume recaps lead with where you are emotionally, who’s with you, and the unresolved thread you were on. Adventure pacing is smoother — the narrator finally honors “I’m done” mid-quest, and beats progress more reliably. The world rebrand to Aurea is complete.

What you’ll notice

  • The world is now called Aurea. Previously Faeria / Aereth in places. The full rebrand reaches every screen, prompt, and asset in this build.
  • “Previously on…” recaps are sharper. When you resume an adventure, the recap leads with your character’s emotional + physical state right now, then key relationships (with the actual NPCs from your story, no inventions), then the single most pressing thread you were on. Replaces the older “summarize the entire story” format.
  • Adventures honor “I want to stop.” Saying you’re done mid-adventure now actually ends it gracefully, instead of the narrator pushing on regardless.
  • Beats progress more reliably. The pacing engine forces story progression after a budget of turns instead of stalling on the same beat indefinitely.
  • Co-op recaps match solo recaps. Resuming a party adventure no longer drops you back into the old plot-summary frame while solo players get the new one.
  • More world-flavored narration. Each milieu’s tone, magic system, and naming conventions are now part of the narrator’s system prompt — so Urth narrative leans Norse, Orbis leans Roman, Animalia leans bestial, without you having to remind it.

Behind the scenes

  • Director migrated to Claude Haiku 4.5. Closes a 16-day-old reasoning-leak regression where the Director was orphaned on a deprecated model after the narrator was migrated. Result: more reliable structural decisions across pacing, beat advancement, and adventure-end behavior.
  • Whale-safety + parental-approval flow wired client-side. Apple Ask-to-Buy compliance for child accounts; mostly invisible unless you’re a regulator-flagged purchaser, but unblocks Apple submission.
  • Spend anomaly dashboard. Admin /ops Health tab now surfaces cost regressions with a 14-day clean-window indicator.
  • Inscribing ritual UX shell. Three-beat ceremony (reveal → inscribe → confirm) for narrative-mechanical IAP items. Admin preview only until Items IAP ships.

Build 208 — Multiplayer co-op + combat v2 complete

April 23, 2026

The multiplayer update. Invite a friend, form a party, and play through adventures together with full narrator support, speaker rotation, and combat. Builds 202–207 were internal.

Multiplayer

  • Co-op adventures: invite another player, form a party, play through any adventure together with a shared narrative.
  • Speaker rotation: players take turns driving the narrative. Non-speakers see a “Waiting for {name}” indicator.
  • Full input parity: party players get the same FreestyleInput with mic/STT, ideas panel, slash commands as solo.
  • Party HP bars: see all party members’ health at a glance.
  • Beat progress: story beat tracker works in party mode (server denormalizes beats onto party doc).
  • Party TTS: narrator reads narrative aloud in party mode with world-themed stingers.
  • Death & resurrection: party members at 0 HP see the death banner with resurrection potion option.
  • Simultaneous combat: all party members declare combat actions in parallel (card rail), then resolution plays out for everyone.
  • Narrative search: search the shared narrative log in party mode.

Invite Flow

  • Player search: find players by name, see their figurine + class + level. World and level filtering.
  • Invite notifications: red badge on world tiles, “Invitations” section on roster, enriched invite modal with host figurine + adventure card.
  • Formation screen: 4-slot formation with join/decline, host starts when ready.
  • Merged entry point: “Begin Adventure” button leads to formation screen for both solo and multiplayer.

Combat

  • Player-controlled targeting: tap a card → pick which enemy to attack. Sticky last-target as default.
  • Taunt card: redirect enemy aggro to you (re-parents engagement).
  • Multi-combatant dice: all NPCs + allies show named dice overlays in sequence, not just first enemy.
  • TPK fix: combat ends when all PCs die, not just when all enemies die.

Monetization

  • RevenueCat IAP: subscription purchase flow wired through RevenueCat with webhook verification.
  • Portrait credit pool: global account-level monthly portrait generation allotment.
  • 3-tier paywall: redesigned purchase UI with Basic/Premium/Founding tiers.

Narrative

  • Beat transition quality: narrator now requires in-world motivation (NPC action, environmental change, interruption) when advancing beats. No more jarring scene jumps.
  • Error toast on turn failure: silent failures now surface a visible SnackBar with retry.

Infrastructure

  • Unified GameScreen: solo and party modes share one screen (party_game_screen.dart deleted). Bug fixes and UX improvements apply to both.
  • 799 tests passing: 71 commits, 150 files changed, ~21k lines added since Build 201.

Build 201 — Engagement system + 3-column combat arena + narrator overhaul

April 20, 2026

Combat gets a tactical battlefield. Combatants lock onto each other with sticky engagements, the arena shows who’s fighting whom in a 3-column layout, and the narrator finally knows what actually happened each round.

Gameplay

  • Engagement system: melee combatants lock onto each other at combat start. Front line vs back line based on combat role (melee/ranged/caster/support).
  • 3-column combat arena: PC backline | melee pairs with &x2694; | NPC backline. Toggle between expanded grid and compact flat row.
  • Many-to-one combat: 3 goblins vs 1 fighter? All 3 engage the fighter. 2 PCs vs 1 boss? Both stack against it. Symmetric layout.
  • Incremental HP reveal: each combatant’s HP bar updates as their dice overlay dismisses, not all at once at the end.
  • Engagement-based targeting: NPCs attack their engaged target, not random round-robin. Dead target → re-assigns automatically.
  • Resurrection overhaul: full HP restore, exits combat, narrator offers continue or withdraw. Potions: start with 1, earn every 4 adventures, max 1 (free tier).
  • Cumulative /summon: summoning during combat adds reinforcements instead of replacing existing enemies.
  • /recruit mid-combat: recruited allies join the fight immediately with engagements re-assigned.

Narrative

  • Combat summary for narrator: full structured COMBAT RESULTS block injected into the narrator prompt — who hit whom, damage dealt, kills, nat 1/20 tags.
  • Narrator sees the whole round: narrator call moved to after all combat resolution (player + NPC + ally attacks), so it describes actual outcomes.
  • Miss ≠ critical fail: a miss is a near thing (enemy dodges), not a catastrophe. Only nat 1 narrates a fumble.
  • Death & victory scenes: every combatant death mentioned, proper victory/TPK narration, death scene before death banner.
  • Dice labels show actual targets: “Warrior attacks Berserker Ally” instead of always showing the player’s name.
  • Ally weapon shown on damage label: “Cleric Ally mace” instead of generic “damage”.

UI

  • Smart narrative hiding: in expanded combat mode with 3+ rows, short narrative text hides to give space to the arena.
  • HP bar track visible: darkened track color so the “empty” portion of HP bars is clearly visible.
  • Combat cards persist: card rail stays visible during narrator text and loading states.
  • Overflow stripes fixed: combatant detail dialog scrolls, arena clips overflow.
  • 5 new NPC figurines: warrior, archer, shaman, cleric, mage — all origami style.

Bug Fixes

  • Death banner no longer appears before narrator describes the death scene.
  • Ally dice damage matches applied HP (no double-roll mismatch).
  • Player HP persists correctly across combat rounds (combatState on session save).
  • Momentum system hidden until Ironsworn-style redesign (was too generous).
  • Power Strike card hidden (depends on momentum).

Build 200 — Combat v2 Phase 1 + figurine flair override

April 19, 2026

11-card tactical combat set, server-side momentum, multi-combatant dice display, and figurine personal flair now overrides class defaults.

Gameplay

  • 11 combat cards: removed Parry/Disarm, added Guard, Power Strike, Yield.
  • Server-side momentum: +1 on hit, +2 on crit, earn/burn/spend mechanics.
  • Multi-combatant dice: all NPC and ally dice shown with combatant name labels.
  • Guard card: 80% damage, enemies get disadvantage, +1 bonus momentum.
  • Yield card: surrender at <30% HP, keep items/XP.
  • Explicit cardId threaded from client to server for reliable card detection.

UI

  • Figurine personal flair now overrides class gear and palette in the prompt.
  • HP/momentum conditional card visibility (Yield at <30% HP, Power Strike at momentum ≥4).

Build 199 — Combat overhaul + party panel + figurine fixes

April 19, 2026

Combat finally works the way it should — HP damage accumulates correctly, all enemies fight back, and NPC dice rolls get the same ceremony as yours. The party panel is now an inline card rack instead of a hidden drawer. Figurine generation for Aurea is back to origami.

Gameplay

  • Combat HP damage fixed. Accumulated damage now persists correctly across rounds. Previously, a Firestore save race condition was resetting HP every round — you’d deal 10 damage but only see 3 stick. Root cause found and fixed: the client now saves server-authoritative HP instead of stale deferred state.
  • All enemies fight back. Previously only the first alive enemy counter-attacked. Now every alive enemy gets their turn — if you’re fighting a goblin and an ogre, both swing.
  • NPC action rebalance. Enemies now attack with weapons 75–80% of the time (up from 50–60%). Fewer turns wasted on non-damaging skills that felt like nothing happened.
  • NPC dice ceremony. Enemy attack rolls now show the same format as player dice — d20 with target AC pill, red/green hit/miss banner, then damage dice on hit. No more silent “the goblin attacks” with invisible math.
  • Combat result banners. Hit/miss results color-coded: green for hits, red for misses. Visible at a glance.
  • Narrator damage suppressed during combat. The narrator’s HP guess no longer stacks with real dice damage. Server zeroes the narrator’s hpChange when dice are rolling — dice are authoritative.

UI

  • Party panel redesigned. Recruited NPCs and your character now appear in an inline horizontal card rack above the combat arena. Mini avatars when collapsed, full cards when expanded. Tap any card for a fullscreen detail view. The old drawer is gone.
  • HP bar improvements. Bars transition green → orange → red as HP drops. A light track shows missing HP so you can visualize the fraction remaining. Standard parchment-tone track across all bars.
  • Scroll hint carets. Scrollable card rows (combat actions, party panel, combat arena) now show subtle left/right chevrons when there’s more content to scroll.
  • Figurine detail dialog. Character images now show full width with no height constraint — tall figurines aren’t cropped anymore.
  • Debug icons moved. Development tools moved from the home screen to Settings → Dev Tools. Cleaner home page.
  • Momentum number removed. The bar speaks for itself — no redundant number overlay.

Character Creation

  • Aurea origami restored. A painterly style override in aurea.json was producing lifelike portraits instead of origami sculptures. Removed — Aurea characters are back to the paper-fold aesthetic.
  • Quick Create uses full figurine generation. Pose, personal flair, and background scene are now passed through to the prompt compiler instead of falling to the generic path.
  • Scene override refactored. Background flair insertion now uses a clean parameter instead of brittle regex replacement. “Standing on” scenes no longer silently fail to inject.
  • Museum lighting removed. Stripped “gallery” and “museum” from the figurine prompt schema — stops Seedream from rendering exhibition hall interiors.
  • Custom names preserved. Changing gender or species no longer auto-rerolls a name you’ve manually edited.
  • Tap figurine for fullscreen. In Quick Create, tap the generated thumbnail to view it full-size.
  • Orbis culture map. Tapping “Culture” in Orbis Quick Create now opens the interactive Mediterranean map for culture selection.
  • Stat circle layout fixed. Orbis stat abbreviations (VAL, GRC, END, CUN, INS, AUTH) now fit properly on phone screens with even spacing.
  • “Family name” for all worlds. Consistent label across all milieus instead of “Patronymic” (which only applied to Urth).

Bug fixes

  • Combat re-entry replay fixed (two causes). Returning to a combat adventure no longer replays the last dice roll. Cause 1: dice overlay state survived provider reuse (fixed with revealPhase gate). Cause 2: stuck-session recovery triggered during active combat (fixed with inCombat guard).
  • Web crash: partyNpcs type cast. Firestore returns List<dynamic> on web/JS which silently fails when assigned to List<Map>. Field type changed to List<dynamic> with explicit casting at access points.
  • Web crash: itemCards type cast. Similar JS interop issue — added explicit generic to .map<Map<String, dynamic>>().
  • Slash command snackbar repositioned. No longer obscures the input box — floats above it with proper margin.

Infrastructure

  • Local dev server working. ./dev.sh --no-check now runs the full stack locally — fixed TypeScript compilation errors, Firebase private key parsing (\n conversion), and web proxy URL routing to localhost.
  • Timestamps on proxy logs. All console output now prefixed with [HH:MM:SS] for debugging.

Build 146 — Roster rescue + dice ceremony + preview-first

April 18, 2026

Critical fix: 32 characters had silently vanished from the roster due to a rename bug. All restored. Dice now show proper D&D notation with multiple polyhedral shapes. Native apps can switch between prod and preview servers.

Bug fixes

  • 32 characters restored. The animalia→anima rename changed the milieu ID inside the JSON but left the filename as animalia.json. This caused a 404 that cascaded to kill ALL milieu data loading — every character using milieu-specific classes (völva, smith, skald, sacerdos, guardian, healer) or custom backgrounds (turning_born, keeper, trade_bond) silently disappeared from the roster.
  • Blank screen on existing adventures fixed. Same root cause — character dropped from roster meant game_screen couldn’t find it, showed infinite loading spinner while TTS played in the background.
  • Attack card crash fixed. The card play animation’s showGeneralDialog caused an Uncaught Error on web. Animation disabled pending a proper rewrite.

Gameplay

  • Multi-dice display. Damage rolls now show individual dice side by side — a 2d4 crit shows two d4 triangles, each with their face value, then the total below. Much more legible than a single die with an opaque number.
  • D&D dice notation. Breakdown text now shows “2d4 = 3+4” or “d20 = 14+3” instead of raw numbers. You can see exactly what was rolled.

Infrastructure

  • Preview-first deployment. All deploys now go to Vercel preview first, get tested, then promote to production. No more shipping directly to prod.
  • Admin server toggle. Settings → Server lets testers point iOS/Android at a Vercel preview URL without rebuilding. Switch, restart, test against preview.
  • Milieu pipeline tests. 17 new tests covering all 4 milieus: races load, classes load, backgrounds load, character roundtrip through JSON. The animalia.json bug would now fail immediately in flutter test.
  • Roster error logging. Silent catch (_) replaced with debugPrint diagnostics. Per-milieu error isolation — one milieu’s failure no longer kills all milieus.

UI

  • Urth tagline. “Explore the Nine Realms of Norse mythology” — self-evident for newcomers who don’t know what Urth is.

Build 138 — Combat ceremony + multiplayer foundation

April 17, 2026

Every combat turn now has a full ceremony — tap card, card flies, dice roll in the correct polyhedral shape. Enemies vary their actions. The multiplayer batch-resolution foundation is laid.

Gameplay

  • Polyhedral damage dice. Dice rolls now show the correct shape for the die being rolled — d4 triangle, d6 cube, d8 diamond, d10 kite, d12 pentagon, d20 icosahedron. A longsword's 1d8 rolls as a diamond; a dagger's 1d4 rolls as a triangle; a greatsword's 2d6 rolls as cubes. Premium dice skins (crystal, obsidian, dragon-bone) are on the roadmap.
  • Combat card play animation. When you tap a card, it zooms from the rail to center screen with a colored glow (red for offense, blue for defense, gold for social/momentum, green for recovery/environment), holds for a beat showing the weapon name, then fades out before the turn processes. Makes every combat turn a moment.
  • NPC action variety. Enemies no longer just swing weapons every turn. Each enemy type has a weighted action repertoire: goblins throw rocks and spit hex-curses; ogres grapple and shove; shamans cast bolts and hexes; mercenaries feint and try to disarm; skeletons grapple with bony fingers. Combat feels less like a tactics grind and more like a fight.
  • Ghost hint after 30s of silence. When you're stuck staring at the freestyle input, a gentle suggestion fades in: “Try something like: examine the runes on the door.” Disappears the moment you start typing.

UI

  • Ops dashboard Health tab. New tab in the ops dashboard shows automated daily/weekly system health reports — trapped players, spend anomalies, world coverage, user metrics. First data appears after tonight's cron run.
  • Anima branding unified. Internal milieu IDs finally match the display name — “animalia” is now “anima” across 30 code files. Existing characters still resolve via a legacy-ID normalizer.

Under the hood

  • Fact extraction moved server-side. Canonical state facts (decisions, knowledge, relationships, personality shifts) now extract server-side atomically with the session write. Previously client-side fire-and-forget, which lagged a turn behind and could race with saves.
  • Automated health monitoring. Daily cron (10pm PDT) and weekly cron (Sunday mornings) now run automatically against prod. Results land in the Health tab. Alerts on trapped players, spend >$20/day, expired image URLs, world coverage regressions.
  • Batch resolution narrator rules. The narrator now knows how to resolve multiple simultaneous player actions + NPC actions + setting events in one cinematic passage. Foundation for multiplayer combat rounds — the infrastructure that calls it is still being built.
  • Pre-commit hook fixes. Bug-fix keyword check moved to commit-msg hook where the message is actually fresh (fixes false negatives when using git commit -m). New warning when a commit touches both proxy and app code (reminder to deploy both halves).

Bug fixes

  • Pre-commit bug-fix gate read stale COMMIT_EDITMSG when using git commit -m — let fix-without-test commits through silently. Now runs in a proper commit-msg hook.

Build 137 — Item-centric combat + launch polish

April 16, 2026

Your weapon shows up on your combat card. Every world is playable end-to-end. Names match cultures. The little things that make the game feel like yours.

Gameplay

  • Combat cards now show your actual weapon. Attack / Reckless / Disarm display the weapon you’re carrying (“Longsword”, “Lute”, “Poisoned Dagger”) as a subtitle on the card face. If the weapon has unique art (earned during an adventure), the card face shows that art instead of the generic action image. Parry shows your shield when equipped.
  • Skill-gated card menus. A wizard no longer sees “Reckless” or “Disarm” — those require martial training. A bard without Persuasion doesn’t see Taunt. Missing cards become aspirations: “how do I learn that?” (Future work: guild training unlocks new cards.)
  • 3 new Anima adventures. The Hollow That Remembers, The Vanishing Warren, The Two-Legs’ Silence — all with covers, NPCs, and animist mystery structure. Anima is fully playable post-trilogy now, same as Urth and Orbis.
  • Threshold stage now works in Urth and Anima. 5 Urth stories got 5 period-appropriate Norse keepsakes each (manumission spear, bone spindle, foundling brooch, etc.); 6 Anima stories got 30 metaphorical tethers (scar, scent-memory, place-imprint). Every trilogy is completable across all 4 worlds.

UI

  • Aurea world tagline: “Epic fantasy with D&D 5E rules.” Replaces the vague “living world” which confused with Anima.
  • Better empty-state when a world has no adventures yet — directs you to Create Your Own or Explore Other Worlds, instead of a dead-end “check back soon”.
  • Orbis multicultural names. Quick Create for Orbis now generates names that match your character’s culture: Romans get proper tria nomina (Gaius Claudius Severus), Greeks get Greek (Demetrios Nikias), Judeans use ben/bat patronymics, Egyptians and Parthians get single names, Celts and Germans get bynames. Changing species auto-rerolls the name.
  • Anima per-species names. Fox names (Ember, Wren, Bracken); wolf names (Iron, Storm, Thunder); bear (Root, Moss, Oak); etc. — drawn from the Heartwood Oracle. Gender-neutral per the setting.
  • Aurea rebrand complete. “Faerie” and “Aereth” in lore now consistently read “Aurea” — game name = world name.

Under the hood

  • Adventure start is now idempotent. If your mobile app times out waiting for the 60s adventure creation, retrying with the same adventure will pick up the already-created session instead of duplicating work or losing state.
  • Character sheet prefers the most-recently-played adventure. No more “Continue Adventure” buttons silently pointing at orphaned adventure docs with no session behind them.
  • Character integrity regression tests. 11 new tests lock the invariant that Quick Create output always produces a character whose combat getters (HP, AC, modifiers) resolve cleanly across all four milieus.

Bug fixes

  • “Adventure not found” after completing the Orbis trilogy — threshold stories had no object options, stranding players post-trilogy. Fully resolved now that every milieu has threshold objects.
  • Greek priest with a Roman name (“Flavius Lepidus” on a sacerdos from Athens) — Quick Create now routes by culture.

Build 134 — Combat Path B + Orbis launch

April 16, 2026

Tap-to-act combat cards, real weapon damage dice, and three full Orbis adventures to play.

Gameplay

  • Combat Path B — tactical cards replace typing in fights. 10 canonical actions: Attack, Reckless, Parry, Dodge, Interact, Grapple, Disengage, Taunt, Rally, Disarm. Each enforces a load-bearing tradeoff — Rally costs your offense, Reckless leaves you exposed, Grapple forgoes a weapon strike.
  • Real weapon damage dice. No more LLM-narrated “it hurts.” The server looks up your weapon (longsword 1d8, dagger 1d4, greatsword 2d6, …), rolls with your STR/DEX modifier, doubles dice on crit. 25+ weapons supported.
  • NPC attacks roll back. Enemies roll d20+mod vs your AC, then damage dice on hit. The ogre can crit you now. You see both rolls in the log.
  • Death narration. When HP hits 0, a dedicated narrator call produces a real death passage. Not just “you died.”
  • Three new Orbis adventures. Oracle’s Silence (Sibylline mystery at Cumae), Slave Market (Ostia citizen rescue, three paths), Legion’s Ghost (Rhine frontier horror). Full covers, factions, mysteries, designed items. Orbis finally playable after the trilogy.
  • Threshold objects for Orbis. All 5 threshold stages (acolyte, criminal, folk hero, noble, sage) now have 5 period-appropriate objects to carry. The “Cross the Threshold” button works.

UI

  • Combat card rail. Swipeable deck on every combat turn, with hand-painted illustrations (male + female variants) and a pin mechanic.
  • NPC dice bubbles. Enemy attack and damage rolls show as separate dice next to yours in the log.
  • Preview banner. Red “PREVIEW” ribbon on non-production web builds so playtesters can see which environment they’re on.
  • Aurea renamed on the home page. The fantasy world is now labeled “Aurea” (not “Faerie”). New tagline: “Epic fantasy with D&D 5E rules.”
  • Slash commands. /summon goblin, /chat, /help, /roll 2d6, and more for playtesting and non-turn party banter.

Under the hood

  • Faster combat narration. Token caps tightened so combat reads fast-and-furious, not atmospheric. Hard 4-sentence / 80-word cap enforced by the narrator rules.
  • Weapon resolution from itemCards. Quick Create characters now correctly wield their equipped weapon in combat (was rolling unarmed strikes).
  • World content CI gate. Deploys are now blocked if a launched world has origin stories but zero adventures — prevents the class of bug that stranded Orbis players.
  • Combat test harness. Automated playtests for all 10 cards with an LLM judge for narrative quality.

Bug fixes

  • “Adventure not found” after completing the Orbis trilogy — threshold objects were empty.
  • Narrator no longer ends combat while enemies still have HP.
  • Game mechanics (“DC 15”, “you take 4 damage”) no longer leak into the prose.
  • Card action texts read naturally (“Attack with my longsword” instead of “I attack with my…”).

Build 133 — Freestyle-first gameplay

April 14, 2026

The biggest gameplay shift since launch. Choices take a back seat; you drive the story.

Ideas, not choices

  • Freeform input is now the primary surface. The numbered choice list is collapsed by default. Instead of picking from 4–5 pre-written options, you type or speak whatever you want your character to do. The game parses your action, rolls the dice, and narrates the outcome.
  • Rotating hints inside the input box. Faded italic text in the input field shows a different per-world example every turn — “test the edge of your blade against your thumb” in Aurea, “pour mead on the ground for the ancestors” in Urth, “sniff the air for something familiar” in Anima, and dozens more. They spark ideas without herding you into any specific action.
  • The gold lightbulb button. Next to the mic and send, a new glowing lightbulb button. Tap it any time you want to see the pre-written ideas — a number badge shows how many are available. It’s there as a safety net, not the main road.
  • Pin to keep ideas open. If you tap the lightbulb and like what you see, a small pin icon on the top choice lets you keep the ideas panel expanded for the rest of the adventure. Tapping the lightbulb again unpins and collapses in one motion.
  • Combat auto-opens the ideas. When a fight starts, the panel expands automatically so you can read tactical options clearly. When combat ends, it collapses again (unless pinned) and you’re back to freeform.
  • Audio mode is smarter too. The narrator no longer reads choices aloud when the ideas panel is collapsed — it goes straight to listening mode after the narration finishes, ready for your voice.

Settings cleanup

  • New players are freestyle only* by default. That setting goes away. People can click the idea button and pin the ideas if they want to play more of a choose your own adventure kind of game.

Server update — Narrator restoration

April 14, 2026

Server-side hotfix, no app update required. Every change below lands on your next turn in any existing adventure.

Adventures are themselves again

  • Skill checks work on freeform input — when you type “I sneak past the guard”, “I climb the cliff”, “I persuade the merchant”, “I lie about my name”, or 10 other skill verbs, the game now rolls a real dice check with your character’s modifier and proficiency. For days, these were being narrated as auto-successes with no mechanical weight. Fixed.
  • Spell casting via typed text is real — typing “I cast magic missile at the brigand” now detects the spell, looks it up in your spellbook, rolls the cast, and routes through the real spell engine. Matches what happens when you tap a spell in the UI. (Spell slot tracking for freeform casts is still pending — slots decrement when you use the UI, not yet when you type.)
  • Rest at an inn heals again — saying “I take a long rest at the inn” now restores your HP to full. This was broken for several days on wounded characters — the narrator would write a beautiful rest scene but forget to apply the mechanical heal. Server now enforces it.
  • Conclude actually concludes — choosing to end your adventure on the final beat now ends it cleanly, with a satisfying closing passage and no continuation choices. Earlier the narrator would write ending-feeling prose but leave you trapped in a conclusion loop.
  • Combat triggers when you attack — “I draw my sword and charge” now starts combat and enters combat phase properly. Was being narrated as flavor without any real mechanics.
  • Beats progress when you dawdle — if you linger past a beat’s turn budget, the narrator now progressively takes over: first wrapping up threads, then pushing harder with NPC action or environmental change, and finally forcing a decisive event (an arrival, a threat, an alarm) that pulls the story forward. No more stuck on beat 1 for 30 turns.
  • XP flows from meaningful actions — the XP award system was dropped during server migration and has been restored. Solving puzzles, winning fights, making hard moral choices, and reaching milestones all earn XP again.
  • NPC introductions feel less jarring — when a new NPC appears, the narrator describes them (“a broad-shouldered dwarf with a scarred jaw”) before naming them. Familiar NPCs are still named right away.
  • Narrator grounding — the narrator can no longer conjure abilities your character doesn’t have: no accidental wings on a human, no sudden fluency in languages you don’t speak, no phantom NPCs materialized mid-action. Freeform input is validated against the scene before narration proceeds.

Behind the scenes

  • Two new quality gates — Gate 1 (structural) runs on every commit touching a prompt file, checking that none of the load-bearing rules went missing. Gate 2 (behavioral) runs a 10-scenario playtest against the live server before any deploy, covering combat, rest, conclude, dice density, NPC intro, structured + freestyle spell casting, beat pacing, deliberate dawdle, and long-term memory. Together they catch the class of regression that caused this week’s bugs.
  • Preview → Gate 2 → promote workflow — all narrator and prompt changes now deploy to a Vercel preview first, run the full behavioral playtest against the preview URL, and only promote to production on green. No more direct-to-prod prompt surgery.

Build 128

April 14, 2026

Adventure control

  • Abandon an adventure — new menu option in every adventure’s overflow menu. If you’re stuck in a story that isn’t working, or you want to free your character for a co-op party, you can now quit cleanly. A confirmation dialog warns you clearly that your adventure credit will not be refunded, so nothing abandons by accident.
  • Smarter party host picker — when you host or join a multiplayer party, characters already mid-solo now show up with a gentle “Playing [title] — abandoning burns the credit” chip and an “Abandon & join” button. No more confusion about which characters are available.

Anima — The Living World Beneath

  • Mythic Age conceit locked in — Anima is now the Dreamtime: the time when the world is being made, animals speak, and every player choice authors how things will be. Humans have never existed in Anima — not gone, not withdrawn, but absent from the cosmology entirely. Every LLM prompt (Architect, Director, Narrator) now enforces this as a hard constraint, with species-specific redirect patterns for player input that accidentally assumes human capabilities.
  • Dreamfire voice — a new narrator voice for Anima, inspired by Barry Lopez’s reverent precision fused with Robin Wall Kimmerer’s relational ecology. Present-mythic register (“In those days, when the world is new, the rivers have not yet chosen where to run…”). Leads every scene with the species’ dominant sense — fox scenes open with sound, wolf scenes with smell, owl scenes with hearing in darkness, deer scenes with threat assessment. Sensory distances instead of units. Biology as narrative detail.
  • 8 Heartwood species — Red Fox, Gray Wolf, Black Bear, Beaver, Raven, Great Horned Owl, White-Tailed Deer, and Badger, each with real biology, species-appropriate asset cards with 3 unlock tiers, iconic poses, and narrator hints. A player who finishes an Anima adventure should come away knowing something true about the natural world they didn’t know before.
  • 12 persistent Heartwood locations — the Mossy Stones, the Split Oak, the Beaver Meadow, the Owl’s Ridge, the Crossing, the Bramble Maze, the Watching Tree, the Old Earth, the Fallen Giant, the Dark Pool, the Meadow of Firsts, and the Singing Stream. The forest has a map now, and NPCs will persist at the places you meet them.

Faster adventure starts (again)

  • Custom adventures now start in 20–40 seconds — restored the two-phase Architect design that got lost in the April server migration. Phase 1 generates the story bones (5 beats, names only) in parallel with the prologue; Phase 2 details are filled in by the narrator on demand as you play. Adam’s “dungeon under the mountain” custom adventure now starts in 19.8 seconds instead of timing out at 3 minutes.

Bug fixes

  • Stuck adventures unstickable — Adam’s Mældros: The Deepdelve got flipped to “completed” by the narrator hallucinating an adventureComplete flag while still on beat 1 of 12. Fixed the hallucination server-side (beat-advance guard) and manually un-stuck the session.
  • Bug report button works — the in-app “send report” button had been silently broken since the debug report system shipped, because the Firestore collection had no security rule. Added a create-only rule for authenticated users and deployed. Adam’s next bug report will actually reach us.
  • Multiplayer for every world — the co-op party entry point was accidentally gated to Urth only. Now appears on any beginner-tier adventure regardless of world. Aurea co-op is unblocked.

Behind the scenes

  • Decision log — new append-only log at docs/reference/decisions.md capturing every load-bearing model, prompt, and architecture choice. A pre-commit hook blocks commits that touch key server files without logging a decision, so “why is X on Y?” is now a 5-second grep instead of a 20-command git archaeology session.
  • Regression test count — 34 targeted regression tests now locking in the narrator truncation fix, parser salvage, player intent detection, Phase 1 architect prompt, and Anima anti-creep injection. They all run on every commit.

Build 127

April 13, 2026

Server patch — later on April 13 (no app update needed)

  • Narrator truncation fixed — a single root cause for four separate bugs reported on long-running adventures (Ambiorix, Deepdelve, Forgiveness, Yanomami): the narrator’s output budget was too tight for complex scenes, so responses got cut off mid-word, the broken JSON fell through to a raw-text fallback, and players saw literal ```json markers, \n\n escape sequences, and a repeating “Continue exploring / Look around carefully / Talk to someone nearby / Rest and recover” menu. Raised the output budget, taught the fallback path to strip code fences and decode escapes, and added truncation detection to our cost telemetry so we’ll notice it instantly if it recurs.
  • No more 1- or 2-choice turns — the narrator now always offers at least three meaningful choices. Two choices felt like a false dilemma; one felt like a forced continuation. Both are gone.
  • “Conclude the adventure” actually ends it — when you explicitly type “conclude the adventure” or “end this here”, the server now tells the narrator to either wrap up (if you’re on the final beat) or push back in-character and point you at a specific unresolved thread. No more conclusion loops.
  • Rest actually heals — when you take a long rest or make camp, the server now tells the narrator your exact HP delta so it can restore you to full HP (unless danger prevents it).
  • Long-session regression probe — added an internal deploy-time check that runs a few turns against a captured 324-turn adventure to catch this class of bug before it reaches players again.

These fixes are all server-side. If you’re already on build 127, just keep playing — your next turn picks them up automatically.

Co-op Multiplayer (Phase 1)

  • Play with a friend — invite someone to a Tier 1 Urth adventure. Take turns as the “speaker” while the story adapts around the whole party. Party state syncs in real time across both devices.
  • Party lobby, join, and in-game screens — host a party, share an invite code, see who’s joined, and jump into co-op play. Non-speakers see the narrative live and take their turn when it rotates to them.
  • Character lock — a character in an active party can’t be used elsewhere until the adventure ends or you cancel. Badged on the roster so it’s obvious.
  • Resume together — a party can pause for days and pick up where it left off; the next player to open the app sees a “Previously on…” recap.

Subscriptions (Phase 1)

  • Three tiers — Basic ($9.99/mo, 4 adventures), Premium ($14.99/mo, 4 adventures + cloud voice), Creator ($34.99/mo, 10 adventures + custom portraits).
  • Stripe checkout on the web — subscribe at /subscribe with Stripe-hosted payments. Mobile-friendly tier picker with plain-language features (portraits, writing styles, story nudges, voice narration).
  • Account screen — see your tier, monthly adventure tokens, resurrection potions, and manage your subscription. Paywall screen appears gracefully when you run out.
  • Launch gate — monetization is off until config/monetization.enabled is flipped. Nobody gets surprise-paywalled before we announce pricing.

Faster adventure starts

  • 20–35 seconds instead of 3 minutes — pre-authored adventures (Mound-Waker, Feast, Broken Sword, etc.) now skip the Architect LLM entirely and start from the template directly. The first narrative beat appears in the time it takes to read a stinger.
  • Custom adventures switched to Haiku — free-form “create your own adventure” now uses Claude Haiku for the story architect. Faster, cleaner JSON, no reasoning leaks.

Storytelling polish

  • Tighter narration — the narrator writes in 2–3 focused paragraphs, saving longer responses for climactic moments. Less scrolling, more momentum.
  • No more chapter skips — fixed a rare bug where the narrator could hallucinate a chapter advance after a single action (“I snuck into the tent → suddenly on a boat in chapter 2”). The server now verifies the chapter has actually run its turns before advancing.
  • Freestyle-first — the “choices only” input mode has been retired. Everyone gets freestyle + choices. Per playtester feedback: co-creating with your own ideas is dramatically better than picking from a list.
  • “Previously on…” inline — story recaps now appear in the narrative log with a play button, instead of as a floating banner.

Voice & audio

  • Inworld Mini is now the default voice — in side-by-side listening it’s essentially indistinguishable from the pricier Max model, so we switched the default and cut voice costs roughly in half without any drop in quality.
  • More Urth stingers — six Norse ambient intro tracks (up from one), rotating at adventure start.

Quick Create (Urth)

  • Tighter iPhone layout — Quick Create now fits comfortably on small screens. Urth routing (Fury / Craft / Voice tracks) automatically picks the right origin for your chosen profession.
  • Short ability descriptions — new browse-ability UI shows what each class can do without drowning in lore.

Character progression

  • Level cap raised to 20 — up from 10. New XP thresholds align with classic D&D progression.
  • Mana candidate system — the Director now flags mana candidates throughout an adventure (2–4 expected), then selects the best 1–2 at completion. Stronger final rewards, fewer forgettable moments.
  • Figurine outfit variety — profession-aware gear in the Urth world (8 professions), and figurines now pick up clothing and backgrounds from the milieu style.

Bug fixes

  • Aurea adventures appearing — migrated 51 story documents from worldId: ‘aereth’ to ‘aurea’ so all Aurea origin stories and Tier 1 adventures show up in the list (previously only “The Arcane Trials” was visible).
  • “Failed to start adventure” — fixed a crash where the server wrote an invalid beat status (“pending”) that the app couldn’t parse.
  • 3-minute timeout on start — addressed by the template fast-path. Adventure creation no longer holds the server open for minutes.
  • Home screen icons blocked — settings gear and debug toggle no longer sit under the scrollable background on the main menu.
  • Adventure start 500 errors — fixed a failure mode when the Architect produced a long response.
  • Summary stuck after choosing — picking a choice during a recap no longer leaves the summary frozen on screen.
  • Expired image URLs — watertight guardrail: images now always persist through Firebase Storage with the prompt + model stored alongside, and a pre-deploy audit blocks bad URLs from shipping.
  • Accent-insensitive character delete — “Thorsdottir” now matches “Thorsdóttir”.
  • Session timestamps — every game session now tracks createdAt and lastPlayedAt so recaps and sorting work correctly.
  • Prompt injection hardening — additional guards against hostile freestyle input reaching the narrator.

Build 114

April 12, 2026

Gameplay

  • Beat advancement fixed — adventures now properly progress through chapters. The narrator advances beats when the turn budget is reached.
  • Combat rules updated — antagonists are no longer always sympathetic. When you choose to fight, the narrator lets you fight. Enemies can be genuinely hostile.
  • XP rebalanced — narrator awards 1-5 XP for meaningful actions every 2-3 turns. Target: 15-30 XP per adventure.
  • Level cap raised to 20 — full D&D 5E progression with realm unlocks at levels 5, 8, 11, 15, and 18.
  • Mana candidate system — the Director now collects mana candidates throughout the adventure and selects the best 1-2 at completion, instead of awarding immediately.

Urth

  • 28 cover images generated — all origin stories and adventures now have origami-watercolor cover art.
  • Adventure difficulty tiers — Mound-Waker and Feast of Lies (beginner), Winter Guest and Blood Price (intermediate), Broken Sword and Whale Road (advanced).
  • Figurine outfit variety — each profession now has distinct gear in figurine generation (berserker: bear pelt, völva: dark robes and seiðr staff, navigator: sea-weathered clothes, etc.).
  • Origin routing fixed — Urth characters now correctly match to their origin stories (fury/craft/voice tracks).

UI

  • Quick Create iPhone layout — buttons now visible above the fold on iPhone.
  • Accent-insensitive delete — typing “Thorsdottir” now matches “Thorsdóttir” when deleting characters.
  • Figurine step back button — editing figurine from character sheet now returns to the sheet, not the creation wizard.

Infrastructure

  • Narrator model switched — GPT-4.1-mini replaces Kimi K2.5 (which started leaking reasoning text).
  • Prompt injection hardening — narrator will no longer change output format when players request it.
  • Session timestamps — createdAt and lastPlayedAt now tracked for engagement analytics.
  • Progression planner — interactive tool at /ops/progression.html for modeling XP rates and realm unlock pacing.

Build 110

April 11, 2026

New World: Urth

  • Urth (Viking Age) is now live — “Fate is carved; courage is yours.” 3 kindreds (human, dwarf, light elf), 8 professions with unique abilities, full origin trilogy (22 stories), and 6 Tier 1 adventures.
  • Six adventures — The Mound-Waker, The Feast of Lies, The Blood Price, The Broken Sword, The Whale Road, The Winter Guest — human-scale Viking Age drama.
  • Saga and Eddic narrative voices — Urth adventures use matter-of-fact saga prose and compressed eddic voice — distinct from other worlds.
  • Viking stinger — Urth adventures play a Norse-themed intro stinger instead of the default tracks.

Quick Create

  • One-page character creation — everything pre-randomized on a single screen. Type a name and go, or tweak kindred, profession, background, and stats.
  • Norse patronymic names — 900 combinations generated from 30 first names × 30 parent names. Separate reroll for first name and patronymic.
  • Figurine generation — generate your origami figurine right from the creation screen.
  • Abilities browser — page through profession and kindred abilities with arrows. Tap stats to swap them.
  • Appearance panel — build, age, skin tone, personal flair, and background scene.

UI

  • World tile icons redesigned — uniform 90px circles with smart head-framing for featured figurines.

Bug Fixes

  • Urth character creation — fixed 4 bugs: unlockable species appearing in selection, stat bonuses all showing as CON, all professions showing d8 HP, background screen crash.
  • Play count tracking — adventure play counts now update correctly (moved from client to server).

Build 99

April 10, 2026

Build 97

April 10, 2026

Gameplay

  • Adventures now end properly — A force-complete backstop kicks in when the final beat exceeds its turn budget. No more infinite adventures.
  • Scroll-to-end button — A floating arrow appears when you scroll up in the narrative log. Tap it to jump back to the latest text.
  • NPC introductions — Characters are now properly introduced on first appearance with a brief description and context.
  • Age-appropriate origin stories — Children in origin stories no longer carry weapons, armor, or adventuring gear.
  • Better insect figurines — Spiders, ants, and dragonflies now generate with correct anatomy instead of accidentally growing fur and ears.

Bug Fixes

  • Threshold stories now work — The final chapter of the origin trilogy was silently failing for Anima and Orbis characters. Every background now correctly routes to its threshold story.
  • Stinger stops on mute — Toggling audio off now stops the intro music immediately.
  • Anima stat labels — Animal characters now show correct labels (Fierce/Swift/Hardy) instead of D&D labels.
  • Featured figurine gallery — The home screen figurine gallery no longer fails to load.
  • Prompt injection protection — Arcjet security middleware now screens all AI requests for injection attempts and PII.

Build 91

April 9, 2026

New Worlds

  • Orbis origin stories — 26 new origin stories for the ancient world: 12 Roots (Roman heartland to Tamil coast), 9 Awakening (one per archetype from soldier to magus), 5 Threshold stories.
  • Anima origin stories — 30 origin stories for the animal world: 18 Roots across six habitats, 6 Awakening, 6 Threshold.
  • Anima worldbuilding — Seven distinct regions. Domesticated animals welcome. Human ruins as silent mysteries.

Gameplay

  • Glossary — Tap underlined words in the narrative to see definitions. 71 terms for Orbis.
  • Tappable NPC portraits — Tap an NPC’s portrait to see their full image and details.
  • Better beat navigation — Narrator skips already-completed beats instead of replaying them.

Bug Fixes

  • Stuck adventures fixed — If the narrator fails to respond, your choices are restored so you can retry.
  • Animalia figurine fix — Regenerating from the character sheet now uses the correct art style.

Build 84

April 8, 2026

Build 83

April 7, 2026

Build 78

April 5, 2026

Build 75

April 5, 2026

Build 74

April 4, 2026

Build 73

April 2, 2026

Build 70

April 1, 2026

Build 68

March 30, 2026

Build 67

March 30, 2026

Build 66

March 29, 2026

Build 65

March 28, 2026

Build 63

March 28, 2026

Build 59

March 23, 2026

Story Recap

  • "Previously on...": When you return to an adventure after time away, a narrated story recap catches you up on where you left off. Skip anytime or let it play through before resuming.
  • Intro stinger: An atmospheric audio stinger plays while the recap loads, fading smoothly into narration.
  • Recap timing: Configure how long you need to be away before a recap is offered (1 hour to 1 week) in audio settings.

Build 57

March 22, 2026

Adventure Startup

  • Adventures start in ~30 seconds: Down from ~2 minutes. A new two-phase Architect generates the core story structure first, then enriches NPC/location details in the background while you're already playing.
  • Atmospheric prologue: A scene-setting narration plays immediately while the world generates — no more staring at a loading screen.
  • Intro stinger: A cinematic audio stinger fills the moment before narration begins, then fades out smoothly as the storyteller's voice takes over.
  • Seamless audio: Narrator audio now queues behind the prologue instead of cutting it off mid-sentence. Paragraph-by-paragraph TTS means you hear the first line faster.

Quality of Life

  • Beat progress text: Chapter progress indicator is now larger and more readable.
  • Auto-generated titles: Adventure title generates automatically when a character is preselected.
  • Navigation fix: Back button during adventure creation now returns to your character roster instead of a stale adventures list.

Ops

  • Ops dashboard: New analytics dashboard with cost tracking, session metrics, and billing data.
  • Billing endpoints: New proxy endpoints for Anthropic, Replicate, and Fireworks cost queries.

Build 56

March 22, 2026

Stability

  • Story generation no longer times out: The Story Architect sometimes needs up to 2 minutes to craft a blueprint for complex adventures. Previously this was cut off at 60 seconds, causing "Story generation failed" after 3 retries. Now both the server and client allow up to 3 minutes.

Build 55

March 22, 2026

Stability

  • Story structure guaranteed: Adventures no longer silently start without story structure. If the Story Architect fails, you'll see an error with a retry button instead of getting dropped into an unstructured adventure that can never end.
  • Regenerate Story: If you're already in an adventure that's missing story structure (no progress bar, no pacing), open the menu → "Regenerate Story" to fix it mid-game.
  • Save resilience: If a save fails, the game retries automatically with exponential backoff. A warning badge appears in the top bar showing how many turns are unsaved.
  • Offline support: Firestore offline persistence enabled for web — the app works even with spotty connections.

Orbis

  • Instant culture map: The Mediterranean map now loads instantly (bundled with the app instead of downloaded).
  • Refined positioning: All culture labels repositioned for better readability. Tamil arrow indicator added.

Infrastructure

  • iPhone deployment: Build script now reliably installs to connected iPhones.

Build 52

March 21, 2026

New World: Orbis

  • Ancient Rome: A whole new world set across the Roman Empire and beyond — 11 cultures from Celtic to Tamil, 9 professions, and three Roman writing styles (Ovidian, Apuleian, Senecan).
  • Interactive culture map: Pick your culture from a hand-painted Mediterranean map.
  • Name generator: Suggest historically appropriate names — Roman tria nomina, Celtic single names, Egyptian hieratic names, and more.

Redesigned Home Screen

  • Characters + Adventures merged: No more separate tabs. The home screen shows world cards — tap one to see your characters split into "On Adventure", "Idle", and "Fallen" sections.
  • Start adventures from the roster: Tap a character to see their sheet, then hit "Begin Adventure" right there.

Storytelling Fixes

  • Adventures no longer end prematurely: Only YOU decide when it's over. If the story tries to wrap up while you're mid-quest, it gets overruled.
  • NPCs stay consistent: Characters no longer get forgotten, change gender, or lose their personality across chapters.
  • No more teleportation: The narrator tracks all locations from the entire adventure. No more mysteriously ending up somewhere you left hours ago.
  • Items stay destroyed: If you shattered that vial 40 turns ago, it won't reappear in your belt pouch.
  • No repeated conversations: You won't get offered the same dialogue option three times.
  • Damage capped: No more one-shot kills — max 6 HP per turn.

Build 47

March 20, 2026

Storytelling

  • Adventures no longer end prematurely: The narrator can't pull the plug on your adventure. Only YOU decide when it's over. If the story tries to end while you're mid-quest, it gets overruled.
  • Continue button: If an adventure does end unexpectedly, you'll see a "Continue" button to pick up where you left off.
  • NPCs stay consistent: Characters from earlier in the story no longer get forgotten, change gender, or lose their personality when the plot moves to a new chapter.
  • No more teleportation: The narrator now tracks all locations from the entire adventure, not just the current chapter. No more mysteriously ending up back in the village after crossing the ridge.
  • Items stay destroyed: If you shattered that vial 40 turns ago, it won't magically reappear in your belt pouch.
  • No repeated conversations: The narrator tracks what you've already discussed. You won't get "ask about the lodge layout" offered three times.

Prose Quality

  • Varied body language: Characters no longer tighten their jaw every other turn. Physical mannerisms now vary across scenes.
  • Better pacing: Adventures aim for 60–100 turns with natural story arcs. The Director steers toward a climax rather than letting things drag or cutting you off.

Build 46

March 20, 2026

Bug Fixes

  • No more one-shot kills: Damage is now capped at 6 HP per turn. The narrator can't wipe you out in a single blow.
  • Death screen fixed: Choices no longer appear (or get read aloud) after your character dies.
  • Quest progress fixed: If your character dies during a quest, the quest resets to "available" so you can retry with a new character. No more stuck hourglass icons.
  • Writing style now works: Picking "Whimsical" (or Mythic) actually changes the storytelling voice. Previously only worked for some adventures.
  • Session resume fixed: Adventures that were hanging on load now work. If you were stuck, try again.
  • Mic no longer auto-fires: The microphone no longer turns on automatically after narration and submits random noise as your action. Tap the mic when you're ready to speak.

Stability

  • Better error handling: If something goes wrong loading your adventure, you'll see an error message instead of an infinite loading screen.

Build 43

March 19, 2026

Gameplay

  • Smarter damage: Every HP loss is now explicitly narrated with a cause. No more phantom deaths from searching coat pockets.
  • Easier early game: Skill check DCs scaled down for low-level characters. You'll succeed more than you fail.
  • Voice skill checks: Freestyle actions ("I try to pick the lock") now trigger proper dice rolls.
  • Faster NPC conversations: NPCs move scenes forward after 4 turns instead of looping endlessly.
  • Crash recovery: If the app closes mid-turn, it automatically retries when you reopen.

Storytelling

  • The Vow: Adventures now seed a promise or oath in the opening that gets dramatically tested later.
  • Layered worlds: First impressions are deliberately incomplete. Deeper truths emerge as you explore.
  • NPCs through reputation: Key characters are heard about through contradictory accounts before you meet them.
  • Cascading consequences: Early choices meaningfully change later situations.
  • Hubris monitoring: Winning streaks are met with worthy challenges, not random punishment.
  • Survival mode: At low HP, the narrative strips back to raw survival — fewer choices, physical needs first.
  • Richer prose: Sensory precision, environment as character, strategic ambiguity, and villains built from contradictions.

UI

  • Hamburger menu: Map, party, debug, and turn count moved into a menu. Cleaner game screen.
  • Natural 20: Gold text now readable on tan background.

Performance

  • Faster narration: Fixed a bug where some sessions used the slow model (~20s) instead of the fast one (~4s).
  • Automatic fallback: If the primary AI is overloaded, seamlessly falls back to backup.