Everything released on novarchy.com, newest first.
The format follows Keep a Changelog. Every entry says what the player saw before and what they see now. The four oldest releases (beta.1 to beta.4) are in Italian: they were written before the project moved to English.
A release is written up here once it is live, so the newest one appears on this page a little after it reaches the game.
A colony name can no longer scramble the feed row it lands in (#1404)
Renaming a colony used to check three things: trim the spaces, collapse the runs, keep it between 3 and 24 characters. Nothing else — no character rules, and none of the moderation that has stood at the door of commander names and guild names since August.
That was survivable while a colony name only sat on the map and you had to go and look at it. It stopped being survivable when the defender's colony name started arriving in the Activity feed of every attacker and every garrison ally after a fight. A name built to damage the row it lands in was reaching people who never went looking for it: a single invisible right-to-left character — one character, well inside the length limit — mirrored the rest of the sentence around it, so the outcome word and the loot figures came out backwards and unreadable in every opponent's feed. A 24-character slur got in through the same door.
Colony names now pass the two doors the other names already use: a character guard, then moderation. Invisible characters, symbols and emoji are refused with a message that says which rule broke and what to try instead. Everything a colony name legitimately is still works — letters in any script, digits, and ordinary punctuation, including the : and # the game writes into its own Outpost 1:10:1 names.
Guild founding had the same hole, and gets the same guard. It had the moderation check but no character rule at all, while a guild name is stamped next to every member on the leaderboard, in chat and on the bounty list — further than a colony name travels.
Also
Writing this guard turned out to be mostly a lesson in not breaking languages. Four review rounds each found a spelling the previous version refused: Persian and Hindi need the invisible joiners the first draft banned outright; Tibetan, pointed Hebrew and vowelled Arabic stack accent marks deeper than the first limit allowed; and Burmese given names — ကျော်, one of the commonest — stack deeper still. The rules are now measured against twenty-six real strings in thirteen scripts rather than guessed, and the deepest correct spelling any of them produces is what sets the limit. If your language needs a character this refuses, that is a bug and worth reporting.
1.35.14 — 2026-08-27
Fixed
Your own fleet no longer blocks the system it is flying over (#1468)
Send a fleet on a mission to or inside one of your own systems, and on the galaxy map that system became almost impossible to open: every click landed on the flying fleet's card instead, for as long as the fleet was in the air. The mark of a fleet in transit is drawn on the very system it is crossing, and the map was answering the mark first without ever asking which of the two you were actually pointing at.
Now it asks. From the sector view inwards — where a click opens the system — whichever of the two you clicked nearer wins, and standing inside a system's flower the star keeps the click unless you land on the fleet mark itself. Clicking a fleet still opens the fleet. At the widest galaxy view, where a click only steps the camera closer, nothing changes.
Two smaller things came out of it. A fleet whose heading is not yet known draws no mark at all, and one of those could still swallow a click aimed at the system underneath it; it cannot any more. And the size the map uses to decide "did you click the mark" is now the size the mark is actually drawn at, so the two can no longer drift apart.
1.35.13 — 2026-08-27
Fixed
A guild could end up with a leader who was not in it (#1500). Founding a guild and joining one at the same moment could leave the guild you founded with your name on it and nobody inside — and a guild with no members cannot be disbanded, because there is nobody left to leave it. Its name, tag and colour were held for good. Both actions now claim you in the same step that checks you, so whichever one loses simply says you are already in a guild and leaves nothing behind.
Founding a guild told you the wrong thing first. If you were already in a guild, or the name or tag you picked was taken, you were told about it only after the slowest part of the request had already run. Those answers now come back immediately.
Changed
Colony renames and guild foundings now share a limit of twenty new names an hour (#1500). Every name you pick is checked before it is stored, and that check is the expensive part of both actions. There was nothing stopping a script from renaming a colony over and over to run the bill up, so there is now a ceiling — and past it you are asked to wait an hour and try again, rather than being told anything is wrong with the name you chose.
Renaming stays free and unlimited in every sense that matters at the table: an empire tops out at ten colonies, and re-using a name that has been seen before does not count. Twenty brand-new names inside one hour is not something playing produces.
Also
Under the hood, the store of already-checked names used to empty itself completely once full. It is shared between sign-up, guild and colony names, so one busy corner of the game kept throwing away the answers another had already paid for. It now forgets one name at a time, oldest first.
1.35.12 — 2026-08-27
Nothing changes in the game this time.
Changed
How releases are checked before they reach you (#1520). Every change to Novarchy has to pass the full test suite — about 16,000 checks on the game engine and screens, plus 3,500 on the empires you talk to in chat — before it is allowed near the live server. Until now that suite ran on the developer's laptop; from this release it runs on a dedicated build machine, on the exact commit that is about to go live. What you play is unchanged; what changed is that the machine standing between a change and your empire is no longer the same one someone is typing on.
1.35.11 — 2026-08-27
Fixed
Contract rewards are priced on the planet your colony is actually on (#1072)
Every reward on the Contracts board — the daily cards, the Daily Wrap, the weekly arcs and the Weekly Chest — is sized from how much your empire produces per hour. That figure was being worked out from a colony record that, on some worlds, had never had its planet written into it. Those colonies were priced as though they sat on no planet at all: none of the world's production bonuses counted, and none of its penalties did either.
The claim did not even agree with itself. The check that trims a reward down to fit your warehouse already knew which planet you were on, while the price did not — so one payment was being worked out on two different worlds.
Both halves now read the same planet.
Some rewards go up, some go down, and which way is a property of the colony rather than of the planet. Every world gives a bonus on one resource and a penalty on another, and some worlds help or hinder your power as well — so what matters is what that colony mines and whether its reactor covers it. A colony whose mines lean towards its planet's strong resource was being underpaid; one leaning on its weak resource was being paid over the odds. In our own measurements the swing ran from roughly a tenth up to a tenth down, and on an under-powered colony an icy world and a volcanic one trade places entirely.
Whichever way yours moves, the new figure is the one your planet was owed all along.
Only colonies whose world had never been recorded were affected. A colony's world is written down for good the moment anything is built there, or the first time it is fought over — so this had already narrowed to long-dormant colonies, and it is now closed for all of them.
Also
One knock-on, if you have a "win battles" card open right now
The same hourly-production figure does a second job: it sets how much you have to destroy in a battle for that battle to count towards a win battles contract. Tying the bar to your own production is deliberate — it is what stops the card being farmed — and the card already tells you the bar is measured at claim time. So correcting the production figure moves the bar with it, exactly as finishing a mine or letting a guild boost lapse would.
The effect is a one-off and a small one. On the first board refresh after this update, a win battles card still in progress may tick by one win if a battle in that week happens to sit within a few percent of the bar. A card you have already collected cannot change. If your production is under 1,000 or over 20,000 an hour, the bar does not move at all.
1.35.10 — 2026-08-27
Fixed
A colony or guild name can no longer be made of invisible characters (#1509). Some Egyptian hieroglyph signs draw nothing at all, and the name check let them through. Three of them made a colony whose name was simply blank — and since a defender's colony name is printed in the Activity feed of every attacker and every ally in the garrison, that blank name landed in other players' feeds. The same characters could found a guild with a blank name on the public directory.
There was a quieter version of the same trick: sixteen hieroglyph marks that draw nothing of their own, so a commander could register a name that looks exactly like someone else's — Kael and Kael with one invisible mark on the end were two different names on screen and one name to the eye.
All of it is now refused when you rename a colony or found a guild, with the same "invalid characters" message every other invisible character already gets. Genuine Egyptian hieroglyphic names still work, including the marks, when they are attached to a real sign the way the script actually uses them.
Names already saved are untouched and keep showing as they do today; the check only runs when you set a new one.
1.35.9 — 2026-08-27
Fixed
Signing in with Google no longer lets an unmoderated name into the game (#1495). Creating an account with Google took the name Google supplies and made it your commander name with no checks — where the guest login, the in-game rename and Sign in with Apple all filter it. A commander name is the most-seen text in the game: the leaderboard, chat, guild rosters, every battle report. So a Google account whose display name was a slur, an impersonation of staff, or invisible layout-breaking characters walked straight in wearing it. New Google accounts now pass the same character and blocklist checks the other doors use; a name that cannot pass gets a neutral Commander … placeholder instead of blocking the sign-in. Existing players keep the name they already have — this closes the door without touching anyone already inside.
1.35.8 — 2026-08-27
Fixed
An empire that offers you help in guild chat now remembers it when you write to them privately (#1486). Someone offered, in your guild channel, to walk you through the shroud — you took them up on it in a private message, and they answered like a stranger: "explain what exactly, you opened with a demand and no subject." Every channel was read on its own, so a line said in the guild room simply was not there once the conversation moved to a DM. Now a private reply knows what that empire said to you in the room you share, and answers as somebody who remembers saying it.
It only ever recalls what that empire itself wrote, only if you are currently in the guild together — where you can already read every one of those lines yourself — and only from the last couple of days. Nothing is stored: the channel is read fresh each time.
1.35.7 — 2026-08-27
Fixed
Bounty hunting against the biggest empires paid almost nothing, and now it pays (#1416).
The share of a bounty you collect is measured against the target's war capital, and on the largest empires on the server that made the pot effectively unclaimable: a hunter who destroyed a whole garrison — 1,370 ships — collected 14.68 Dark Matter of a 3,924 pot. Under a third of a percent, for wiping out a fleet. The floor that produced that number now grows as a square root above 20 million rather than in a straight line, so the same hunt is paid for what it actually overcame.
Changed
Emplacements are capped on a bounty claim, and only on the most heavily armed targets (#1416).
Batteries grow back on their own, for free, one every half hour; ships have to be rebuilt. Lowering the floor without touching that would have let a wall nobody paid for collect half a pot overnight and do it again the next day. So broken emplacements now pay out of a bounty only up to a shared ceiling per 12 hours — shared with everyone who breaks them, not per hunter — and nothing above it. Ship kills are never capped.
Below the knee nothing changed: on a mid-size target a wall-heavy hunt still pays in full and still earns a Chronofragment.
Also
When the cap refuses part of a claim, your log now says so. Before, a hunter who flattened a wall into a ceiling somebody else had already reached collected nothing and read a battle with no explanation, while the Wanted board still advertised the whole pot. The line names the rule and points at what does work: bring warships.
Four screens promise the payout — the launch warning, the planet sheet, the leaderboard and the Wanted board — and they now say the same thing, from one source, including the half-pot ceiling on a single battle that none of them mentioned.
The launch warning is two lines instead of one long one, so the bounty's value is not pushed off a phone screen by the fine print.
"Collected while you were in flight" now says what the engine has done since fleet recall shipped: it is your first strike landing after your fleet passes the point of no return that still counts as the hunt, and only the first.
1.35.6 — 2026-08-27
Fixed
"Settle a new world" is no longer handed to commanders who cannot settle anything (#1428). A commander at their colony limit was given the weekly Settle a new world contract with no way to finish it — the only thing that advances it is founding a colony, and founding one is refused before it can happen. With four weekly cards competing for three slots, that dead card came up almost every week, so one of the three weekly slots was wasted, over and over, for exactly the commanders who had run out of room. The contract is now only offered to someone who could still found a colony, and the three weekly slots are filled from cards they can actually complete.
The check asks the same two questions the game asks before letting a colony ship launch: whether the Command Center of the home colony still grants another world, and whether Colonisation research covers the worlds already held. Either one on its own closes the slot. A colony ship already in flight leaves the card in place — it is about to land and complete it.
Two consequences worth stating plainly. A commander below Command Center 6 with a single colony will now see one fewer weekly card; the card they lose is one they could not have completed. And a weekly board already dealt keeps the old card until the next weekly reset — at most seven days — because redrawing it mid-week would reshuffle cards they have spent the week working on.
Reported by commander Juan, at ten colonies of ten.
1.35.5 — 2026-08-27
Fixed
The target list no longer fails when an inactive account is cleaned up (#1220). Opening the galaxy-wide target board could occasionally fail with a server error. It looked random, and it healed itself on the next refresh, so it was easy to dismiss — but it was not random at all: it happened when the daily clean-up of accounts that never started removed somebody at the exact moment your board was being assembled. Whoever had the board open in that second saw the scan fail. The board is now built from a single consistent picture of the galaxy, so an empire disappearing while it is being drawn can no longer break it.
1.35.4 — 2026-08-27
Fixed
You can find every commander again, not just the first three hundred (#1429)
Typing a name into chat's @ selector, or into the guild invite box, could not reach most of the game. Search commander crabdavid and the panel answered "No one by that name." — while they were logged in and playing. They were not buried at the bottom of a list; they were unreachable, and typing more letters never helped.
The search only ever looked at the first three hundred names in the alphabet. Past the three-hundredth, nothing you typed could find you. That was around five hundred of the game's eight hundred and eleven commanders — roughly three in five — and it hit both places the roster is used: they could not be mentioned in chat, and they could not be found to invite to a guild.
Now the name you type is part of the search itself, so the whole roster is looked at. Everything else about the two panels is unchanged: still ten suggestions, still no monuments or factions among them, still never yourself.
An underscore in a name no longer hides its owner (#1429)
An underscore typed into the search box was being read as "any character at all" rather than as the character you typed, which flooded the search with names nobody had asked for and could push the commander you actually wanted out of the results. Underscores are legal in names, so this was a real way to lose a real player. What you type is now what is searched.
A name is found by its own first letter, whatever alphabet it is in (#1429)
Names built from letters like İ were being matched twice, by two systems that disagreed about how to compare capitals and small letters — and the stricter of the two won. A commander called İbo could be looked up, found, and then quietly dropped again before the list reached the screen. There is now one judge instead of two, and the name comes back.
1.35.3 — 2026-08-27
Fixed
An interception could hand back goods a raider had already taken (#1480)
When a picket caught a loaded convoy, it wrote the convoy's manifest back from a reading it had taken a moment earlier. If a raid hit that convoy's home colony in those few moments, the raid took its share of the hold in flight, the raider banked it — and the interception then restored the manifest as it was before the raid. The same goods ended up in two places at once: with the raider, and still aboard the convoy that had just been robbed of them.
Nothing about it required a trick. It needed a raid and a pursuit landing on the same convoy at the same instant, and the convoys it could happen to are the everyday ones — a shipment between worlds, or a redeployment — because those are exactly the fleets that are both worth looting in flight and worth intercepting.
Now an interception refuses to write a manifest that moved while it was working. It reads the hold again, works out the engagement against what is actually still aboard, and only then writes. Nothing is created out of nothing, and nobody pays twice: if the convoy is still being fought over elsewhere, the pursuit simply comes home having found nothing rather than inventing a result. Battles, losses and reports are unaffected — what changes is only that the numbers now add up.
1.35.2 — 2026-08-26
Fixed
Mining Automation now does what its card always said (#1462)
The node promised +20% Ferrolite and Xenogas production and the game never applied it. You could research it, watch your rate, and see no change at all — which is exactly what SpartanEcho reported in universe-chat. It had been that way since the tech tree shipped: the effect was written on the card and never written into the game.
It works now, on every source of those two resources — extractors, refineries and the Stellar Forge alike. Data production is deliberately unchanged.
If you already owned the node, the bonus turns itself on. There is nothing to research again and nothing to claim: your Ferrolite and Xenogas rate simply steps up the next time your colony ticks. Anyone with a Nanoforge or a Terraformer owns Mining Automation, since both require it — so this is most established empires.
How big a jump you see depends on how developed you are. A young colony gains the full +20%. An empire already running maxed drills and Economy research sees roughly +7% on top of what it had, because the bonus adds into that total rather than multiplying it — the same way Deep Drills and every other production line has always worked.
Open Power → Details to see it: Mining Automation now appears there by name, next to your other production bonuses, so you can see exactly where your rate comes from.
Rankings score resources spent, not resources held, so nobody's position on any ladder moved when this went live.
1.35.1 — 2026-08-26
Fixed
Loot taken from a convoy in flight stays taken (#1459).
Since the raid rework you have been able to reach the goods a defender put in the sky — a laden convoy that had left the colony and had not yet delivered. Emptying somebody's warehouse into a transport no longer hides it.
That half worked. The other half quietly gave the goods back. When the convoy finished its trip, it landed carrying the hold as it was before the raid: the attacker kept their share, the defender got the same units a second time, and the difference was created out of nothing. A redeployment was worse — its cargo was not put back but paid out twice, once to the raider and once into the destination warehouse.
Every landing now checks the hold it was priced against. A convoy that is raided mid-flight comes home with what is actually left, a founding endows its new colony with the surviving dowry, and a redeployment delivers what the raid left behind. If a battle lands in the same instant, the arrival simply re-prices itself against the new hold rather than overwriting it.
Two smaller things travelled with it. A pursuit that shoots down part of a convoy's escort no longer has those hulls restored by the convoy's own arrival — the ships the picket destroyed stay destroyed. And a colonization now retries a lost race the way every other arrival already did, so a founding that collides with a battle completes instead of stalling.
1.35.0 — 2026-08-26
New
The Discord server shows the live numbers (#1471)
Before: someone who opened the Novarchy Discord found chat and nothing else. There was no way to tell from the outside whether the game had forty players or four hundred — and if the last message happened to be a few hours old, that silence read as an answer even when it wasn't.
Now the top of the sidebar carries a category called 📊 NOVARCHY LIVE with five channels whose names are the numbers, refreshed every ten minutes:
👥 Players — human empires
🆕 New today — commanders who signed up since midnight UTC
🟢 Online — humans who did something in the last quarter of an hour
📅 Active today — humans who did something today
⚔️ Battles 24h — battles fought across the galaxy in the last day
They are labels, not rooms: nobody can join them, and they cost nothing to read.
The numbers mean people. The four counters about players count humans only — the synthetic empires that carry the AI badge in game are excluded, using the same definition the internal dashboard uses, so the two can never quietly disagree. Without that, "Online" would never have dropped below the machines, and the sidebar would have advertised a busy server at four in the morning. The battle count is the deliberate exception and counts everyone: it measures the galaxy, not the roster.
If Discord is unreachable or the numbers are late, nothing in the game notices — the counters are an ornament on the sidebar and are built so they can never affect play.
1.34.0 — 2026-08-26
New
The galaxy gets its weather (#1413). The last chapter of the Hive Map redesign — depth, without a single new sign to learn:
Nebula washes. Three faint tinted clouds now drift behind the sector plates — violet, teal, rose. Their colours deliberately belong to no guild (that rule is now a test measured against the guild colour wheel), and none is strong enough to be mistaken for territory.
A second weight of stars. The void between the plates carries a handful of soft flared stars over the familiar dust. They are seeded, so your galaxy's weather looks the same every time you return; they keep out of the plates entirely, and they stay dimmer than every real sign on the chart — distance, not destinations.
A vignette at the screen's edge. The corners of the view now fall off gently into dark, like the edge of an eye. It lives on the screen, not on the map — it never pans, never covers a notice or a panel, and never blocks a tap.
1.33.1 — 2026-08-26
Changed
Nothing changes in the game this time — and that is the whole point of this release.
The engine has been carrying a rule that did not exist. Since late July it computed, for every system, a four-hour "window" each day during which that system was supposed to be attackable, plus a thirty-minute warning to its defenders. It was never connected to anything: no screen showed it, no attack was ever refused because of it, and no warning was ever sent. Players were attackable all day, every day, exactly as they are now and exactly as they were yesterday.
The trouble is that the code around it had started to believe in it. One engine comment stated that the window "time-boxes the permanent galaxy's systems to four hours a day", which was never true; the Calendar and the season design document both reasoned about it as a live feature, and the guild design doc's own progress table had listed it as done since 9 August. A recent piece of work came within one step of pushing "you will be vulnerable in 30 minutes" to players' phones — a notification about a threat with no mechanical effect whatsoever.
So the window has been retired rather than switched on, and every place that claimed otherwise now says what is actually the case (#1386). Time-boxed attacks were the wrong answer for a galaxy this size: the game's real contested territory, the event sector, is deliberately open at all hours, and the relic design had already turned the same idea down in writing — with fifteen players, a siege calendar is a calendar of absences. A season that wants timed sovereignty in future starts from that, not from the leftover arithmetic.
One thing did get stricter behind the scenes: the Calendar's rule that it may only show dates something actually runs on used to be written down in comments and nowhere else. It is now enforced by the compiler, so a future date that nothing enforces cannot quietly appear on your calendar.
1.33.0 — 2026-08-26
New
The inbound alert now tells you which guild is flying the attack (#1387).
Your Observatory has always graded what you learn about a fleet aimed at your colony — the sector it comes from at level 2, the exact origin at 3, the attacking empire's name at 4, and so on up to the full composition at 8. What it never told you, at any level, was whose banner those attackers fly. Eight fleets converging on one of your planets is always a single guild's operation, and you could read eight empire names without the one fact that tied them together.
Level 4 now buys both halves of identity: the empire's name and its guild tag. Your Inbound card reads attacker: Corsari di Vega · guild: [VOID], and the row your guildmates see on the threat board carries it too.
On a joint raid the card states the guild once, for the raid — and only when every contingent really is flying it. A raid whose members changed banner mid-flight claims none rather than picking one, and the per-contingent breakdown carries each. An attacker who flies no banner simply has no guild line.
It is level 4 and not a higher rung on purpose: the galaxy map already names a fleet's guild at that same level, and the alarm about the fleet aimed at your own colony should never tell you less about who is coming than a bystander's map tells them about the very same ships.
Also
The map's hint about what the next Observatory level buys had been under-selling its own level 4 for as long as it has existed — it named the empire and not the guild, though it has shown both all along. It now says what it actually gives you.
1.32.4 — 2026-08-26
Fixed
Tapping with a finger works everywhere again (#1456) — on a phone, tapping a building in the base view almost never opened its card: the tap was silently read as a map pan, and the game was effectively menu-only on mobile. The same mouse-tuned threshold also made taps unreliable on the sector map, on planets in the galaxy system view, on ship groups in the battle replay, and when confirming a building relocation. All of them now give a fingertip the room it actually needs (a finger rolls 8–15 px between touching down and lifting; a mouse click stays within a couple), so a finger tap selects, opens and confirms exactly the way a mouse click always did. Mouse behaviour is unchanged in the base view, and tightens imperceptibly (by 1 px) on the maps.
1.32.3 — 2026-08-26
Fixed
Ship counters no longer list the same ship as both "Strong against" and "Weak against" (#1446). The Orbital Scythe's panel showed the Voidlance Cutter under Strong against ×1.5 and Weak against ×2.5 at once — both numbers are real (the two hulls counter each other), but a green "strong" on the side that loses the exchange read as a favourable matchup. Four pairs in the catalog counter each other: Scythe/Cutter, Cruiser/Splinter Lance, and two even ones against the Praxis Interdictor. A mutual pair now sits only on the side that wins the exchange, and its chip prints both numbers: the Scythe reads Weak against — Voidlance Cutter ×2.5 · you ×1.5, the Cutter reads Strong against — Orbital Scythe ×2.5 · back ×1.5. An even exchange stays on both rows and reads ×2 both ways, the same chip on each side. The Ship reference legend explains the two-number chip. Same rule on the Shipyard ship card; the multipliers themselves are unchanged.
1.32.2 — 2026-08-26
Changed
A raid now reaches the cargo you put in the sky (#1344)
Emptying a warehouse into a fleet no longer hides it.
Until now, goods left your colony the moment a transport launched and nothing in a battle had ever looked at a ship's hold. So with an attack inbound you could load the warehouse onto a convoy, let the raid land on an empty colony, and take everything back — by recalling the fleet, or more cheaply by aiming it at a slot that would not accept it, which turned it round with the whole hold aboard. A raid now takes from the convoys a colony has in the air and has not delivered anywhere: on the way out, on the way back, and including a pickup carrying home what it just collected from that colony.
Your warehouse always pays first. A raid only reaches the convoys for the part of the loot the stock on the ground could not cover, so a colony with nothing in flight fights exactly the raid it fought yesterday. Nothing else about looting changed.
Evacuating still works, and still costs a fleet and a real trip. Goods that actually reach another colony are safe from the raid you flew them away from — and lootable at the colony they reached, which is the point. What no longer works is sending them nowhere and calling it safety.
Three details worth knowing before you next load a convoy:
Cargo already in flight is included, from the moment this update goes live. There is no grace period. If you have a warehouse in the sky right now to keep it away from a raid, the next raid that lands will find it.
One raid reaches at most 40 convoys, and it takes the largest first. Splitting a warehouse across many small holds does not protect the big ones.
A fleet coming home from a raid with loot is untouched, and so is a colony hit by a faction sortie — a punitive expedition destroys what it takes rather than carrying it away, and this rule exists to stop goods being hidden from a raider, not to licence burning a convoy nobody could have captured.
This closes the last of the three hiding places: #1307 shut the pickup escrow, #1332 the market board, and the rule behind all three is the same one — goods stop being lootable when they arrive somewhere, never when they are merely promised or merely loaded.
1.32.1 — 2026-08-26
Fixed
Pointing at a building on the base map now names that building, not the one behind it (#1348)
On the colony map, hovering or tapping a building could describe a completely different one — the building hidden behind it. The clearest report of it: a Xenogas Refinery whose tooltip read «lvl 14 · Under construction → lvl 15» while the level badge on that same artwork read «13». Both numbers were correct. They belonged to two different buildings.
The map was deciding what you had pointed at by looking at the flat ground tile under the cursor, while what you were actually pointing at was the drawing. Buildings are drawn rising up and over the tiles behind them, so the ground beneath a roof belongs to a tile one to three steps further back — and that was the building you got. It has been reported three times over the past months, each time as a level that looked stale.
The map now asks which artwork is actually painted where you are pointing. In practice:
the tooltip, the highlight and the cursor all name the building you can see;
tapping a tall building opens its own card. Before, tapping its upper body could open the wrong building's card, or count as tapping empty ground and clear your selection;
a building still under construction — a blueprint, with its scaffold and countdown — can be pointed at where it is drawn, instead of handing you whatever stands on the ground behind it;
a blueprint never steals the pointer from a solid building you can see straight through it.
One consequence worth knowing, because it is deliberate: a building whose artwork is completely hidden behind a taller neighbour can no longer be selected by clicking on that neighbour. Its card is still one tap away from the Build menu.
1.32.0 — 2026-08-26
New
The launch screen tells you which world you are attacking (#1338)
A colony's power plants run on the world underneath them — a lava world gives them more energy, an ice world less — and their Shield Bubble, Orbital Cannon and batteries all run on that power. The Advisor has been sizing your fleet against that since the last release. It just never told you.
So the same untouched spy report could ask for almost a third more hulls than you remembered, with nothing on screen to say why. That reads like an Advisor having a bad day, and the natural answer — trimming the fleet back by hand — is exactly the mistake that loses it.
The target's world is now named where you compose the fleet, on the phone and on the desktop alike, with what it does to a defender's energy and one line explaining what that moves. It comes from the coordinates themselves, so it is still there when the Galaxy view fails to load — the one moment you have least to go on, and the moment the forecast was quietly using it anyway.
Three things it deliberately does not say:
an ice world's penalty, once its owner has engineered it away. An Outpost or a Terraformer standing on that colony cancels the malus, and the Advisor already knows it from your spy report. When the world no longer costs them anything, the screen stops claiming it does.
anything about the Pirate Beacon. The Beacon has no power plants and no Bubble to run on them, so its world moves nothing. It is named; it is not explained.
anything about your own colonies. A harvest or a transfer aimed at your own planet is not an attack, and the panel no longer describes your own Bubble as a stranger's.
The wording says "energy production", and it says the defences follow it only while the defender is short of power — because a colony with energy to spare feels its world not at all, and a figure without that caveat is the same misleading number in a nicer font.
1.31.0 — 2026-08-26
New
A pickup can be recalled (#1333) — freighters sent to collect resources from another of your colonies were the one fleet you could never call back. The mission card said so, and so did the notice before you pressed Send. They now carry the same Recall button as any other mission, on the same clock: you can turn them round at any point before the last quarter of the flight.
Turning one round costs you nothing but the trip. A pickup flies out with an empty hold — it only loads at the far end — so the fleet comes home empty and not a single unit moves in either colony. The confirmation says exactly that before you commit.
The old rule was a leftover rather than a design choice. Until two days ago the manifest was set aside in the destination colony the moment the fleet lifted off, and a recall would have carried that stock home in a fraction of the round trip. That reservation was removed when it turned out to double as a hiding place from raiders, and the ban on recalling outlived the only reason it ever had.
Also
Pickups launched before the reservation was removed still cannot be turned round, and the server says so rather than doing it. For those older orders the goods really did leave the colony at launch, so recalling one would have destroyed them. No such order has been in flight for some time; the rule is there so it stays that way.
On the iOS and Android apps the Recall button arrives with the next build. Until you update, the app will keep showing the old line saying a pickup cannot be recalled — the browser already has the button, and the same fleet can be recalled from there.
1.30.4 — 2026-08-26
Fixed
A battle now sizes a defender on the world it actually sits on (#1339). Every planet's traits — the ice world's power penalty, the lava world's bonus — are versioned, and a colony's saved copy can be out of date. Everywhere the game reads such a colony it quietly brings those traits up to date from the planet's coordinates. The battle did not. So a colony with an out-of-date copy fought under today's rules with yesterday's world: on an ice world its Bubble, Orbital Cannon and emplacements stood about 11% stronger than the launch preview had just promised the attacker. Preview and battle now agree on every colony, not just on the recently active ones.
The spy report, the guild rescue card and the Advisor were reading the same stale copy. Fixing the battle alone would have left them contradicting it, so all three moved with it. The rescue card is the one that mattered most: it is the only screen a guildmate can use to size a rescue — espionage refuses a friendly target — and its own promise is that its numbers are the battle's. It was quoting a Bubble up to 11% larger than the wall the raid would meet. The Advisor was worse in a quieter way: it was telling the model "Power yield 100%" for a colony whose owner was looking at the penalty in a red chip, and that fact became a sentence in chat.
Also
How many colonies were actually affected was checked against the live database rather than assumed: 1336 of 1337 already carried current traits. The single exception is a starter colony that never built anything, so the advantage it was owed applied to nothing. This ships as a correctness fix that closes the gap by construction, not as a live exploit being shut down. For every colony already up to date, nothing changes at all.
1.30.3 — 2026-08-26
Fixed
The Advisor no longer contradicts itself about your fleet (#1350). Open the Advisor on an attack and it could give you two verdicts two lines apart: a green row reading «Victory 3/3 sims» and, just below it, «0% simulated win rate — even your entire fleet does not reliably win this battle». Same fleet, same target, opposite answers, and nothing on screen to say which to believe. Both were honestly computed — they were simply computing different battles. The row simulated the rows you had actually set and the stance you had actually picked; the Advisor ignored both and fought on class defaults. On a real fleet — 180 warships against a target of 82 interceptors, 41 cruisers and 21 battleships — your own deployment is the whole difference between losing every simulation and winning every one. The Advisor now fights the battle you are about to fight, so the two cannot disagree, and moving a ship to the vanguard moves the advice in the same instant it already moved the forecast.
A battle nobody can win is no longer called a defeat (#1350). Attack a colony whose last defender is a parked Destroyer — a hull nothing can kill — and the forecast told you «Defeat 0/3 sims» right next to «losses 0%»: you had lost, and it would cost you nothing. That fight is a stalemate, and the forecast now says so: «Stalemate — neither side holds the field, nothing is looted». Your ships are not in danger; the holds simply come home empty. The Advisor's own advice changes with it — it used to tell you to build more ships against a hull no fleet size can kill, and now tells you to pick a different target. A defeat you actually lose ships in still reads «Defeat», a fight where only some simulations end that way still reads «Coin flip», and a battle where both fleets are wiped out still reads «Defeat», because that is what it is.
The forecast stopped claiming a planetary shield held when it had been smashed (#1350). On a target you could not beat, the row printed «planetary shield holds — the raid bounces» over a shield that had been broken in every simulation — and sent you off to build bombers for an obstacle that was never the obstacle. The shield now reports what happened to the shield.
1.30.2 — 2026-08-26
Fixed
The Advisor no longer under-sizes your hold when you raid under Pursuit (#1359). Pursuit costs you 10% of your cargo, and the Advisor was sizing the raid's hold as if it did not. It would hand you a fleet with no freighters and say nothing — while the forecast row directly underneath lit up «hold full, add freighters». Two numbers on the same panel, disagreeing, and the raid came home leaving loot on the ground that one more freighter would have carried. Against a 3,000 pool it planned for a hold of 1,620 when the raid actually flew with 1,458, for loot it had itself measured at 1,500. It now prices the stance where the battle charges it, and adds the freighters the loot really needs.
And it tells you what that hold costs you in speed. A Freighter is one of the slowest hulls you own, and a fleet only ever moves as fast as its slowest ship — so the freighter added to honour Pursuit can hand back the speed you picked Pursuit for. When the hold ship would set the pace, the Advisor now says so, and names both speeds. It does not tell you the trip gets longer, because that is not always true: sometimes the stance's own speed bonus more than covers it, and the arrival time on the same screen is the number to trust.
Raids flying no stance at all — which is most of them — are completely unchanged, and so are Assault and Rampart, neither of which costs you any cargo. Transports, pickups, colonizations and harvests are unchanged too: they never carry a stance to begin with.
1.30.1 — 2026-08-26
Fixed
The Superconducting Grid's card no longer contradicts your energy meter (#1356). It promised "+8%/lvl energy production on every colony, and nothing at all where the balance is already positive" — so a player who researched it, watched production rise on every colony including the ones already in surplus, and reported it as a bug was reading the card correctly. The engine was right all along: the bonus really is applied everywhere, and power yield stops at 100%, so on a colony whose power already covers its draw none of it reaches your resources, your Dark Matter or your defences. The card said that by denying the part you can see.
It now says what the node does: power yield is capped at 100%, so the Grid is only felt while a colony is short of power — where power already covers the draw it buys room to build rather than more output. That last part was missing before: on a colony in surplus the extra production is real headroom, i.e. how many more buildings you can raise before the balance tips.
Changed
The two other places that promised the same +40% now say what caps it (#1356). The energy sheet behind the power pill announced "Superconducting Grid: +40% energy production" beside a production number that had genuinely gone up, with nothing about what happens to power above the balance; it now carries that clause for every colony. The Power details panel listed "Energy production" flush with four bonuses that always pay, and now reads "up to full power yield". The percentages are unchanged — they were never the wrong part.
The same energy sheet stopped saying buildings "slow down" in a deficit. A shortfall cuts what the colony produces; it has never touched build times, and with "room to build" now in the same sentence the old wording read like a warning about your build queue.
1.30.0 — 2026-08-26
New
Command Center 14 and 25 open a second and a third Warehouse (#1164). These were the last two levels on the ladder that bought nothing but the level cap — CC14 in particular had its description rewritten four times, because there was nothing to put in it.
A colony can now hold up to three Warehouses, and its storage ceiling is the sum of all of them. Storage is the quantity that really binds the late game, so there is finally somewhere to put those levels.
Both rows tell you the whole truth, including the unglamorous half:
2nd Warehouse Site: its storage adds to this colony's cap (the new Site starts at lvl 1).
That last clause matters. A Warehouse at level 25 holds about 1.6 billion; the new Site's first level holds 8,000. The third Warehouse is a full second investment walked up its own curve — at the usual Site surcharge, and paying its own power bill — not a switch you flip.
Each Warehouse contributes its own capacity, and the capacities add. Two Warehouses at level 10 hold twice what one level-10 Warehouse holds — not what a level-20 one holds. Building wide and building tall stay different decisions.
Everything that reads your storage now reads all of it: the ceiling on your resource bars, what a colony can accept from a convoy or a transport, what survives a raid, guild aid and treasury donations, war tribute, and your daily market intake budget. The Warehouse card on the Base tab still shows what that Warehouse contributes on its own, and now says so, naming the others.
Every Command Center level from 1 to 30 now grants something real. #1164 fills the last two gaps left by #1159, after #1162 and #1163 took the rest. There is no longer a level on the ladder whose description is "this buys you the level cap".
Changed
The Anchorage names the number that actually decides (#1164). The Deliver-to picker used to label each colony by its Warehouse level, which stopped meaning anything once a colony could hold three of them — a two-Warehouse colony at level 15 has far more room than a one-Warehouse colony at level 16. It now shows the free space in the resource you are shipping, which is exactly what the charter is accepted or refused on. The crate's own "Warehouse N" line now reads "equivalent", because it is a size guide and not a requirement.
1.29.0 — 2026-08-26
New
The six Dark Matter hulls finally look like themselves (#1418). The Voidlance Cutter, Umbral Reaver, Continuum Hauler, Aegis Bastion, Breachhead Monitor and Praxis Interdictor shipped with somebody else's picture on their card and a small "concept art coming" label in the corner — a Cutter showed you a Titan, a Hauler showed you a Colonial Ark. All six now have their own art on the shipyard card, in the detail panel, and as real 3D models in the battle replay, where they used to appear as a flat billboard of the wrong ship. The label is gone.
Two new steps on the rarity ladder (#1418). The card of every hull says how far into the game it sits, and the top of that ladder had stopped making sense: a hull you reach only by taking a Doctrine to level 20 wore the same colour as the Titan, which you research in your first week.
The six Doctrine hulls are now Legendary, in gold.
The Destroyer has a step of her own above them — Mythic, in red. She is the only hull that will ever wear it.
The step below is no longer called "Epic". It is Ascendant: the hulls you climbed the tech tree to reach — Titan Dreadnought, Colonial Ark, Splinter Lance, Spectral Corsair.
Nothing about what these ships do changed — no stat, no cost, no counter. This is what they look like and what their card calls them.
1.28.0 — 2026-08-25
New
A second Defense Batteries at Command Center 22 (#1163). Both sites' emplacements deploy as one group, on the one regeneration clock they always shared. The new site starts at level 1, so what it adds the day you build it is two emplacements — not a doubling.
A second Planetary Shield at Command Center 29 (#1163). The two bubbles add their HP, and the pool your defense absorbs with grows by the sum. This one is a second full investment rather than a switch: the new site starts at level 1, every level of it is bought on the Shield's own steep curve at the usual second-site surcharge, and your colony pays the power for both.
Those were the last two levels on the Command Center ladder that gave you nothing but a higher cap. Every level from 1 to 30 now grants something you can point at.
Changed
Scouting a colony with two Shields tells you the truth (#1163). The Bubble level on the target board, the planet sheet, the War Room and the ally-rescue card is now the level whose HP pool matches what is really standing there. Before, a colony with two Shields advertised only the first one — half a wall. If you have been sizing raids off that number, it will read higher on some targets now, and it is the honest figure.
Rebuilding emplacements is priced across both sites. If your batteries stand on two sites, buying them back after a raid costs what those emplacements actually cost to put up. A colony whose batteries are all on the second site can now buy them back at all — before, the game looked at the first site, saw nothing there, and refused.
Also
Emplacement counts, the "wall in the vanguard" marker, the war-value line on your colony's sheet and the spy report all count both sites now. The building sheet of a site you have not built yet no longer reports battle damage to a building that does not exist, and on a two-site colony it says which site's figure it is quoting.
1.27.1 — 2026-08-25
Changed
The game now sends far less data over the network. Until today every answer the server gave — your colonies, the leaderboard, your battle reports, the galaxy map — travelled as plain, uncompressed text. It is now compressed before it leaves the server, and the same screens arrive between 78% and 92% smaller. Measured on the live game, after the deploy:
The game asks the server for fresh data every 30 seconds while you have it open, so this repeats all day. On a phone it is the change you are most likely to notice: the same session costs a fraction of the mobile data it used to, and less battery spent receiving it. Nothing about what you see changes — only how much of the network it takes to see it.
Older app versions that cannot read compressed answers keep receiving plain ones, exactly as before, so nothing needs updating for the game to keep working.
Also
The database was still configured for a machine of unknown size, reserving 128 MB of memory on a server with 62 GB. It is now sized for the machine it actually runs on. This is room to grow rather than a speed-up, and it is worth being straight about that: the measurements behind this release found the database essentially idle, so nobody should expect the game to feel faster because of it. The part you can feel is the compression above.
The server now waits for the database to actually answer before it starts accepting players, instead of merely waiting for it to launch. Nobody will ever see this working — it exists so that a restart cannot briefly greet you with errors while the database is still warming up.
1.27.0 — 2026-08-25
New
The factions pay Dark Matter (#1289)
Felling a bastion now pays Dark Matter on top of the Chrono shards — 9/18/30/48 by the bastion's step, to every raider who brought a real share of the fleet, with no split. Repelling a faction's retaliation sortie pays its target too: 6/9/15/24. Both channels share one ceiling, 96 DM per rolling 7 days — two full bulwark victories — and the target board now prints the price on the bastion's own row before you launch, including what your week still lets you collect. Wrecks still pay nothing, Event Control garrisons still pay nothing, and the whole haul shows up in your feed under Combat.
Precursor Schematics: one talent, three buildings (#1289)
A new one-time purchase in the Dark Matter panel — 150 DM, needs the Particle Accelerator and Production Singularity 3 — unlocks the whole Precursor district at once:
Zero-Point Reactor — one level is worth one hundred Fusion Reactor levels. The energy drama has a paid ending.
Singularity Vault — adds storage on top of the Warehouse, built for the era where a single research level bills in billions. Transports, raid hauls, crates, charters and rewards all respect the new ceiling.
Stellar Forge — the first building that pours all three resources at once, twenty times the basic producers, and so power-hungry it will not run without the Reactor.
All three come with their own art on the colony grid.
Also
The Warehouse and Vault cards each state their own contribution, and the HUD shows the colony's real ceiling.
Apex cards now say what they still require before you tap, and an owned one-time purchase shows as a trophy instead of a dead button.
1.26.0 — 2026-08-25
New
The Dark Matter Apex is now four Doctrines of twenty levels each (#1301). The two old nodes — Lances and Aegis — become full Doctrines with retuned, stronger per-level effects (shield penetration to 26% at 20; +60% shields at 20), joined by two new lines: the Forge (+2% to all production per level) and the Veil (−1.5% travel time per level, floor −30%). Prices moved from the old runaway curve to four flat bands — 8/20/45/90 DM per level, 815 DM to master a line. Levels you already bought are kept, never truncated.
Twelve keystones: every Doctrine changes the rules at levels 5, 10 and 15. Overcharge, Sundering and Cascade for the Lances; Hardened Pool, Deep Formation and Last Stand for the Aegis; Cold Fusion, Third Lane and Nanoforge Cascade for the Forge; Cold Trail, Ghost Manifest and Free Jump for the Veil. Each is described on the Apex panel's new ladder, ticked off as you climb.
Six new hulls, each locked behind Doctrine mastery: the Voidlance Cutter and Umbral Reaver (war), the Continuum Hauler (an 18,000 hold that nothing counter-picks), the Aegis Bastion (a shield tender that never fires and feeds a shared pool), the Breachhead Monitor (halves the anti-siege Cannon's bite; any two Doctrines at 15) and the Praxis Interdictor (breaks the enemy rear's sanctuary; all four Doctrines at 5).
Free Jump is visible on the launch form: when your daily free warp is open the row says so and strikes the price; when it is spent, the form says when it reopens instead of pretending you are short of Dark Matter.
Changed
The synthetic empires learned all of it: they buy Doctrines by archetype, respect the new keystones in their energy and build decisions, and price warp jumps from the colony the fleet actually leaves from.
Apex hull padlocks now point at the real screen (Research → Apex) and state the whole requirement — a choice-gate says "2 of 4 Doctrines", never a list that reads as all four.
Also
The battle report credits fire to the correct side when a Bastion fights, the formation editor shows the shares Deep Formation actually produces, and the building sheet's energy row names Cold Fusion when it discounts the Accelerator.
1.25.2 — 2026-08-25
Fixed
The weekly war board said it paid for wreckage, and it does not (#1251)
The banner over the standings read "every battle — won or lost — earns points for the value destroyed". That names the smaller half of the score. Value destroyed is capped in every battle; the loot you carry off an attack you win has no ceiling at all, so one big haul can be worth several times everything the destruction term can pay. A player worked this out from numbers quoted in chat and told us the description was what had misled him: on this board a looter outranks a fleet-killer, and the label said the opposite.
The banner now leads with the truth — the loot you carry off is the only thing on this board with no ceiling — and adds the parts a player needs to explain their own score: value destroyed pays both sides of a fight between empires whether you win or lose, but capped, and worth less against pirates or on a target that was harvested recently. It also names the fights that pay nobody, which were never written down anywhere: in an ambush or a Campaign level only a win scores, and a Wraith sortie scores for neither side. Winning and repelling add flat bonuses, the underdog and relic bonuses multiply different things, and a joint raid or defence splits the battle's points among everyone who took part.
Deliberately, the banner prints no rates. Four different parts of the game credit this one board, each with its own rules, and two drafts that tried to print the price list were found stating things the engine does not do. The exact numbers stay on the Season panel's chips, which now read them from the engine instead of having them typed in — so the day the balance moves, the chips follow.
Known limitation: you can no longer check the arithmetic from the war board itself. A page that explains the weekly score properly — one rate per case, instead of one averaged sentence that is wrong for three of them — is the next step, not part of this fix.
1.25.1 — 2026-08-25
Fixed
Recall and Stand down work from the Overview tab (#1253) — every fleet in flight on the Overview screen carried a Recall button, and every garrison a Stand down button, and pressing either did nothing at all: no confirmation, no order, no error. The same buttons on the Missions tab worked, which made the Overview ones look broken rather than missing. They now give the order from either screen, with the same confirmation, the same warnings and the same refusal messages.
1.25.0 — 2026-08-25
New
The galaxy map's chrome became one instrument (#1396). The row of four filter chips is gone; a scanner bar now reads the chart back to you:
A level breadcrumb — GALAXY ▸ SECTOR ▸ FLOWER, lit where you are. The chart has always had three zoom grammars behind the two-step tap; now it says which one it is showing.
One Layers button owns the four map filters and the complete map key in a single sheet. On the phone the key used to hide inside THE PRIZES cartouche; now it renders whole, one tap away.
THE PRIZES became LANDMARKS: a strip of the chart's own signs — a diamond per relic, filled in the holder's colour and hollow while free, a chevron per bastion — and every glyph is a button that flies the camera to its place. Expanding the strip still shows the familiar rows.
"Go to" reaches the phone. The goto vocabulary — 2:7, deep-space names like 4:2 NE3, home — could only be typed on desktop. The phone now has its own door beside the breadcrumb, and a refused entry says "the chart can't take you there" and keeps your text instead of doing nothing in silence. The sheet grows by the keyboard's overlap so the field stays reachable while you type.
Also: the fleet-contact chip (▲) rides the bar's trailing slot, and the collapsed LANDMARKS panel keeps the old cartouche's exact height, so the map's phone framing budget still holds.
1.24.0 — 2026-08-25
New
The Activity feed names the colony that was attacked (#1397)
Until now a Battle card in your Activity feed told you who fought and at which coordinate, and never what the place is actually called:
1:6:1: defeat · loot 0 Fe · 0 Xe · 0 Da.
But nobody talks to their guild in coordinates. As the player who suggested this put it: "'Itz Iceee' is the more commonly known name of planet 1:6:1 … but is nowhere to be found on the activity page."
The colony's name now comes first, with the coordinate kept right beside it so you can still find the place on the map:
Itz Iceee (1:6:1): defeat · loot 0 Fe · 0 Xe · 0 Da.
It shows on every kind of Battle card — an ordinary clash, a raid on an undefended colony, and the razing that ends a siege — and everyone who was there sees it: the attacker, the defender, and an ally who flew in to garrison. Pirate Beacons get named too, which is the target most of you see most often.
Two things worth knowing. Battles fought before this update keep showing the bare coordinate: the feed reads each battle exactly as it was recorded at the time, and a recorded battle never changes. And the name shown is the colony's real name, the one its owner set — already public on the galaxy map and the planet sheet — so if your team calls a planet by a private nickname, what appears is the owner's name for it, not yours.
Also
Thanks to jaybee / commander Usherin for the suggestion.
1.23.1 — 2026-08-25
Changed
The ship picker puts the right hulls first (#1234)
When you compose a mission, the hangar rail used to list your hulls in one fixed order that no screen ever explained — and in that order the Freighter, the Spy Probe, the Colony Ship and the Colonial Ark sat in the middle, between the Battleship and the Monitor Frigate, and again between the Shroudrunner and the Splinter Lance.
So on a transport, the one ship you opened the panel to send was the sixth chip of the fifteen that mission accepts, behind five warships. On a defence or a redeploy — the two orders that turn no hull away — all four sat buried among the warships with nothing to separate them.
Now the rail leads with the hulls the order is actually for:
sending goods, harvesting, a pickup, a colonisation or a redeploy — the hulls that carry the hold come first;
attack, defence, patrol and interception — warships first, support hulls together at the tail.
Either way the two kinds are never mixed: your support hulls are one unbroken run at one end of the rail, instead of scattered through the middle of your battle line.
Espionage still opens with the Spy Probe exactly as before, and exploration is left in the order it always had — on that one mission every hull is offered equally, and moving the support hulls to either end would have pushed the fast ship it asks for further from your thumb, not closer.
Also
Fleet cards, ledgers and battle reports are deliberately unchanged: they still list ships in the same fixed catalogue order they always have. Those are the screens you read side by side against one another, and an order that shifted with the mission type would make two panels twenty pixels apart disagree about the same fleet.
1.23.0 — 2026-08-25
New
The First Convoy — a reason to come back tomorrow (#1382). Every commander who founds their empire from now on has a supply convoy inbound from the first minute, docking exactly 24 hours after the account was created. A quiet line on the Base tab counts down to the docking instant, and the manifest can be swapped with one tap until it docks: an Escort wing (3 Interceptors) or a Survey wing (3 Spy Probes — enough to scout three different neighbours). On day two, one tap unloads the ships into the hangar — and once the first steps are done, the confirmation points straight at the day's three contracts. One delivery per account, ever. Veterans are untouched: accounts created before today's cut-off never see the card.
Also
The delivery lands in the Activity feed under the Empire chip, with the other fleet arrivals ("First convoy unloaded").
Nothing knocks at hour 24 yet: this release adds no notification, so the convoy rewards the return it hopes to cause. The push follow-up belongs to the events calendar work (#1195).
1.22.0 — 2026-08-25
New
Territory now has borders, and busy systems have a sign (#1379). On the galaxy map, an owned sector no longer reads as a faint colour wash: its tint gathers toward the edge of the plate and the outermost ring of cells wears a bright border in the owner's colour — visible at the widest zoom, where "whose region is this" is the question. Each sector also carries a big, faint numeral naming it, drawn into the territory itself (at galaxy and sector zoom). Stars now come in three shapes: a faint dot for an uncolonised system, a warm core for a colonised one, and from 3 colonies a four-point flare — a hub you can spot across the map.
Changed
Control rings and guild anchorages now appear from sector zoom in: the widest view keeps sovereignty, landmarks, your home and colonies, beacons, anomalies — and contested systems, which stay marked at every zoom. The map key describes the new signs.
1.21.0 — 2026-08-25
New
The Building Sheet shows every level, not just the next one (#1239)
Until now a building's sheet answered two questions: what it gives you right now, and what it gives you one level up. Anything beyond that was yours to work out on paper — whether the Shipyard is worth taking to 20, where the Extractor stops being the best place for your ferrolite, what a level 25 Shield actually absorbs.
Tap Full progression on any building and the whole ladder opens: one row per level from 1 to 30, each with what it costs, how long it takes to build, and what it contributes when it is done. The level you are on is highlighted, and the table opens on it rather than at the bottom of the climb.
Two things are marked on the way up. A ◆ sits on the levels where the building changes its look in your base, so a long upgrade has a visible landmark. And a gold line marks where your Command Center stops: it names the Command Center level the next step needs, and everything below it is dimmed until you get there. On a second Site the line accounts for that Site's own Command Center requirement too, which is a different rule and used to disagree with the button underneath.
Every number in the table comes from the same formulas the build queue charges you with — the row for your next level is the exact price the Upgrade button is about to take, discounts, edicts and all. It cannot fall out of date, which is why it lives in the game rather than in a written guide.
The table is closed by default and costs one line of the sheet until you ask for it.
Thanks to Spacca-Mazza, who asked for it.
1.20.0 — 2026-08-25
New
The season finale knocks (#1195). When the sovereignty season crosses into its final two weeks — the Eschaton Finale, where territory points count double — the game now tells you, instead of waiting for you to find out. Guild members with the app on their phone get one quiet banner: "Eschaton Finale — The sovereignty season is in its final two weeks. Territory points count double until it closes." It arrives once per player, never during your night window (if the quiet hours catch you, it knocks after they end), never while you are already in the game, and it spends one of the same four daily slots every other alert respects. Tapping it opens the Season tab directly on the Calendar lane, where the finale badge and the sovereignty rail live.
Also
Every push notification that actually reaches a phone now leaves a typed record, so "does this kind of banner bring players back?" can be answered with data instead of a guess — and a kind that doesn't earn its place can be switched off.
The issue behind this asked for two more knocks that could not be built yet: the vulnerability-window warning (the window exists only as math today — enforcing or retiring it is now tracked in #1386) and league promotion banners (the leagues they belong to are #1193, still on the drawing board).
1.19.0 — 2026-08-25
New
Four Command Center levels now give you something (#1162). Levels 16, 17, 26 and 28 used to cost a fortune and buy nothing but the level cap. They all grant something real now.
Lvl 17 — a 5th build queue slot. Lvl 26 — a 6th. The queue stopped growing at Command Center 13 and never moved again, which is why the whole stretch from 16 to 30 felt so empty: the only things still arriving were colonies (every 3 levels) and Sites (every 4), and those two rhythms miss each other. Six slots against the four-hour build ceiling is roughly a day of construction running while you are away.
Lvl 16 — a second Laboratory Site. The Laboratory becomes the first building outside the economy you can build twice on one colony, and the second one joins your empire's research network: the network Laboratory level on the Research tab goes up, and research lanes and buffer slots unlock earlier.
The unlock says out loud what it is worth, because it is not worth the same to everyone: your research network is capped at twice your best Laboratory. If you have spread wide and already sit at that ceiling, a second Laboratory in one colony changes nothing. If you play tall — one or two colonies you cannot expand past — this is the way up that expanding was giving everyone else.
Lvl 28 — an 8th Site for the economic buildings. Extractors, refineries, compute nodes, reactors and orbital panels each get an eighth emplacement.
Fixed
The Build menu no longer offers a third Laboratory Site. Two is all a colony can have, and the menu now says so by not offering a third — instead of showing you a priced row with a live Build button that the server then refuses, promising a Command Center level that was never coming.
The error you get when a Site is not available no longer insists a higher Command Center is the answer. Sometimes the building simply does not have that many Sites, and it now says so.
Also
The Command Center's design table, the deploy notes and the empires run by the AI all follow the new ladder — the synthetic players will build the second Laboratory and use the wider queue exactly as you can.
1.18.1 — 2026-08-25
Fixed
The Base tab no longer hangs on «Loading base…» when the 3D view cannot start (#1362)
If your browser or device could not give the game a 3D view — hardware acceleration turned off, another 3D view already using what it needed, a driver, a graphics setting — the Base tab used to sit on «Loading base…» for as long as you were willing to wait. Nothing else ever appeared. The only account of what had happened was a line of technical text from the graphics library, in a place most players have no reason to look, and clearing cookies could not touch any of it.
Now the base says what happened, in a sentence written for a person, and gives you a button straight to the Colony tab — which is the same colony without any 3D at all: every building, its level, and everything it is working on. You can keep running your empire while you sort the graphics out. Where the cause is something a reload really does fix, it says so; where it is not, it does not waste your time suggesting it.
A base that is merely slow now says so, instead of looking broken
Opening the game for the first time on a phone on a bad connection genuinely takes a while — the colony has a lot of artwork to fetch. If it goes on unusually long, the base now tells you it is taking longer than usual and may still arrive, keeps the loading message while it waits, and offers the same way out in the meantime. It never claims a failure it cannot prove, and the moment your base arrives the notice disappears.
The Colony tab stopped greeting you with a technical error
The planet image in the Colony tab header needs 3D too. When it could not be drawn, the tab used to show the raw error text from the graphics library across the top. Now it says, briefly, that the planet image needs 3D and that the rest of the tab works without it — which matters most for exactly the player the fix above sends there.
1.18.0 — 2026-08-25
New
Tap a star, see the system before you commit (#1371). On phones and tablets, tapping a star on the galaxy map no longer drops you straight into the system view: a peek sheet opens over the map with the system's colonies, owner, control state, contested/beacon/anomaly signals, the guild anchorage, and how far it is from home in cells — the map's own metric. "Open system" is the descent, now a choice; × puts you back on the map exactly where you were. The gesture decides: a finger or pencil tap peeks on any device, while a mouse click still goes straight in (it already has the hover tooltip).
Also
Before the map's data has answered, a tapped star says "Charting the hive…" instead of wrongly claiming the system is unexplored — and if the data feed is down, both the peek and the hover tooltip now say "live data unavailable" instead of a loading message that never resolves.
1.17.3 — 2026-08-25
Changed
The counter-espionage row on the building sheet reads "no limit" (#1365). The Observatory and the Deep Sensor Grid both described their counter-espionage axis as "+N per level, no ceiling". It meant what it said — the bonus keeps growing at every level, with no upper bound — but the wording was idiom rather than plain language, and plenty of players read the game in their second or third language. The row now says "+N per level, no limit", which is the phrasing the game already used elsewhere for the same idea.
Nothing about the buildings changed: the same bonus, at the same rate, with the same detection cap on the sentence below it. Only the sentence is clearer.
Thanks to Tibeh01 for spotting it.
1.17.2 — 2026-08-25
Fixed
The Sunless Vault's ROUNDS column no longer looks like broken counting (#1361)
The column that decides the Proving Ground's ranking — how many rounds your fleet needed to break the boss — printed its figures as "1 rd", "2 rd", "3 rd". A player reported it as a bug, and he was reading it exactly as written: after a small number, " rd" is the tail of an ordinal before it is short for "round", so the column read as a failed attempt at 1st, 2nd, 3rd.
It now prints the number alone. Nothing is lost: the column is headed ROUNDS on a wide screen, and on a phone every figure already carries that name above it, so the unit was being said twice and only the second one was confusing.
The battle replay had the same wording in one place — a fight lasting a single round showed "1 rd" beside the progress bar. There is no heading there to lean on, so the unit stays and the spelling changes to "rnd"; on a wide screen it spells "round" as before.
Also
The reporter suggested a third change, to the desktop wording. It turned out that text was already correct, and the file the report pointed at was not the one drawing the board — so that part is deliberately not in this release.
1.17.1 — 2026-08-25
Fixed
Nothing changes in the game this time. This release repairs the test suite that guards it.
Two checks that protect a promise the empires make to you — that an AI empire never announces a trade it did not actually make — had been failing since yesterday morning, and were blocking every other release. They were not failing because anything was broken in the game: the checks themselves carried a hard-coded date, and once that date passed a day old, the scenario they were meant to describe stopped happening. They were written to expire without anyone noticing.
They now measure time against the clock rather than the calendar, so they cannot go stale again, and they say plainly when their own setup no longer holds.
Along the way the same checks gained two things they never had. One of them proves that when an AI empire's offer disappears from the market board, it is only reported as a sale if it really was one. The other proves that a stranger's offer vanishing from the board is never mistaken for your neighbour's own deal — until now, removing that protection entirely would not have made a single check complain.
1.17.0 — 2026-08-25
New
Intercepting a fleet no longer means catching a moving triangle (#1341). The ▲ counter on the galaxy map is now a button: it opens a Contacts board listing every fleet in transit your sensors can see — who it is, where it is heading, when it lands, and whether any of your colonies can actually meet it (MEETS · 9m MARGIN, CAN’T REACH, NO COURSE). Tapping a row opens the same contact sheet the mark opens, on a freshly sampled clock. Contacts you can act on sort first; the list holds its order while it is open, so nothing reshuffles under your thumb; your own convoys show as a count and a pointer to the Missions tab, never as rows.
Also
The shadow-mode notice now appears on the Contacts board too, not only inside the contact sheet — and the two surfaces share one sentence, so they cannot drift apart.
The margin badge turns gold under three minutes of slack on the board exactly as it does in the sheet: one threshold, shared everywhere it is painted.
1.16.6 — 2026-08-25
Fixed
A market offer no longer hides your goods from a raid (#1332). Publishing an offer used to empty the goods out of your warehouse, and cancelling put them back — in full, instantly, for free. With an attack inbound that was a trick anyone could use: list a fat offer, let the raider land on a warehouse that was short by exactly that much, cancel the moment the battle report arrived. Two taps, no fleet, no risk.
The offered resources now stay in your warehouse until somebody accepts. They are visible in your chips, honest in a spy report, and a raider can take them — and they are handed over only when the trade actually settles.
Cancelling returns nothing, because nothing ever left. It just withdraws the listing.
You can promise each unit once: listing goods your other open offers already promise is refused, and the composer's "max" button now counts what you have left to promise rather than what is in the warehouse.
If you spend or lose the goods, the board says so on the row — to buyers, and to you on your own offers, which is the only place you would find out your board had gone quiet. Those rows stay up in case you restock.
Tapping an offer whose seller can no longer cover it now explains that, instead of blaming the resources you are holding.
Evacuating ahead of a raid is still possible — that is what fleets are for — but it costs a round trip and a launch colony instead of two taps.
Also
Every offer that was open has been returned to its seller. Those listings were made under the old rule, with the goods already out of the warehouse, so the game handed them back once and closed them: 114 offers, returned to the players who made them. If you had offers on the board, they are gone and the resources are home. Anything above your warehouse capacity was lost to the usual storage ceiling on the way in — the same thing that would have happened had you cancelled them yourself.
A note for anyone playing on an older app build. The store version still says the offered resources are locked and refunded in full if you cancel. That is no longer true: they sit in your warehouse and can be raided, and cancelling gives nothing back. Update the app when you can, and until then do not use a listing as a hiding place.
1.16.5 — 2026-08-25
Fixed
Numeric fields no longer keep a zero you typed in front of a number (#1331). Clear a box, type a new amount, and the old 0 used to stay stuck at the front: the NEW OFFER form would show 012211 in the Ferrolite box while the total underneath read the correct 12,211. The offer that published was always the right one — only the box was wrong, and it stayed wrong until you touched the field again.
Clearing a box now leaves it empty instead of putting a 0 straight back with the cursor behind it, which is where the stray zero came from in the first place. A leading zero that still gets in — pasted, or typed on purpose — disappears the moment you leave the field, so a box can never be left disagreeing with what you are about to send.
Editing a digit in the middle of a number keeps working: nothing moves under the cursor while what you have typed still means the number the game is holding. And a value the game will not accept is shown straight away rather than on the way out — type 900 into a field capped at 500 and the box says 500.
Reported on the market composer; the same fault was on five more screens and all six are fixed: mission cargo, shipyard build count, target coordinates, the defense planner's per-ship count, and the guild raid ship picker.
Also
The six of them now share one field instead of each carrying its own copy, so the tap-to-select behaviour from the older fix to these boxes is guaranteed in one place rather than remembered in ten.
1.16.4 — 2026-08-25
Nothing changes in the game this time. No screen, no number and no rule is different, and the words the agents use are byte-for-byte the ones they used yesterday — that was checked rather than assumed.
Fixed
The lane that answers a newcomer's very first message — the one added so that somebody who knows nobody's name still gets a reply — was carrying several promises about itself that nothing actually held. A sweep after it shipped found no broken behaviour, but it did find claims that could quietly stop being true. They are now held (#1330):
the hourly limit on that lane is spent when an answer is attempted, not when one comes out. Otherwise, if the model were failing, every newcomer's first line would cost a real call while the limit sat reading zero — and nothing would have noticed;
the instruction that forbids an agent from inventing the rules of the game can no longer be reworded into one that hands it a canned answer without somebody reading the change. A canned answer is worse than it sounds here: it gives every agent the same reply, and the anti-repetition filter then silences the second newcomer of the evening as an echo of the first;
a test that claimed it was checking nothing important is in fact the only thing keeping two newcomers who speak in the same minute from having the second one ignored.
Also
Several comments in that code said more than the code did — one promised a check that had been deleted. They now say what is true, including where the honest answer is "nothing verifies this, so read it yourself".
1.16.3 — 2026-08-25
Fixed
The attack preview now sizes a defender on the world it actually sits on (#1323). Before launching, the Fleet Advisor rebuilds the defender you are about to meet — their Bubble pool, their Orbital Cannon, their emplacements — and every one of those is scaled by how well that colony is powered. The battle has always counted the defender's planet in that figure: an ice world runs its defences at 90% of nominal, a lava world at 120%, a rich lava world at 140%.
The preview did not. It read the research half of the multiplier and stopped there, so the two screens disagreed about the same fight: against a defender on rich lava you were shown a Bubble and a Cannon roughly a third weaker than the ones that actually fired back, and against one on ice you were shown them stronger than they were. Understating is the direction that costs fleets — you sized the attack against a target softer than the real one.
Both screens now agree, on every world. A defender on lava is previewed as the harder target it is, so the Advisor will recommend more hulls against one; a defender on ice as the softer one. Nothing about the battle itself changed — only the forecast, which had been telling you something the engine never believed.
The target's world was never a secret, incidentally: it is fixed by the coordinates, the same way the galaxy map has always shown it. The preview simply had no way to look it up.
A Terraformer on the target no longer goes uncounted. An Outpost or a Terraformer cancels part of an ice world's power penalty, and whether the defender has one is written in your spy report. The forecast was deciding that from your research instead of from what their colony actually has — so a defender who had built one was previewed about 11% weaker than they would fight. Their buildings answer that question now.
1.16.2 — 2026-08-25
Fixed
Nothing changes in the game this time. This one is entirely inside the workshop, and it is written down because the repo's history should say why a release exists.
The build could not be verified at night (#1343). Three tests covering what an agent says when it wins or loses a contested relic had been failing every night between 22:00 and 06:00 UTC, and passing the rest of the day — on untouched code. The agents in question keep human hours: each one has a waking window, and a persona who is offline after 22:00 does not post in guild chat at 22:04. The test told the game it was two in the afternoon, but the last check before a line actually goes out reads the real clock, so once real time passed 22:00 the two disagreed and the agent fell silent mid-test.
The tempting repair was to make that final check trust the time the test had claimed. It was written, reviewed, and thrown away: it would have bought the agents the right to keep talking a minute past their own bedtime whenever the game was busy — a small thing, and exactly the kind of small thing that makes a synthetic empire read as a machine. The clock was corrected in the test instead, and a new test now guards the bedtime rule that was nearly traded away.
For players the effect is indirect but real: nothing could ship overnight while this stood, so fixes queued up until morning.
1.16.1 — 2026-08-24
Fixed
A pickup no longer empties the colony it is flying to (#1307).
You could put a colony's warehouse out of reach the instant a raid was inbound on it. Launching a pickup at that colony from anywhere in the galaxy took the whole manifest out of it immediately, and the attacker landed on nothing while the goods sat untouchable for the hours the freighters were in the air. No fleet needed, no timing to get right, and it worked on every undefended colony you owned.
That is gone. The manifest is now what the fleet is going to ask for, not a reservation:
the goods stay in the destination colony until the freighters actually land and load them — visible in its warehouse, and takeable by a raid the whole way;
if the colony was spent down or raided while they flew, the fleet loads whatever is left and comes home light, and the diary line says what it did not find instead of leaving you to work it out by counting at home;
if the colony was razed, abandoned or is no longer yours when they arrive, they turn back empty and tell you why;
the composer still refuses a manifest the colony cannot cover, and now also counts what your other pickups already have on order there, so the same pile cannot be promised to four fleets. The amount offered under each field, the "fill the hold" button and the refusal all read that same number.
Changed
This inverts a rule the game used to teach. The old Pickup notice said the manifest was set aside the moment the fleet lifted off and that nothing spent at the destination could touch it. That is no longer true, and every screen that said so has been rewritten. Evacuating resources ahead of an attack is still perfectly possible — that is what fleets are for — but it now costs a round trip, a launch colony within range, and the clock, instead of being a button you press when the alarm goes off.
Two smaller things that came with it: the mission card explains why a pickup cannot be recalled without citing a mechanic that no longer exists, and a pickup that comes home empty says "Pickup found nothing" rather than "Pickup loaded".
Also
Hiding resources from a raid is not closed in general — this release fixes the pickup door only. The market has the same shape through a cheaper one, and it is tracked at #1332.
1.16.0 — 2026-08-24
New
A newcomer's first word no longer falls into the void (#1296)
The galaxy channel answers you only if you name somebody — by name, with the reply button, or by naming their guild. That rule assumes you know a name to type. If nobody has ever answered you, you don't know one, and the channel is quiet by design, so you can't learn one by reading it either. A new commander who typed "hi, anyone around?" into the busiest room in the game got silence, and nothing on screen said there was another way to ask.
The first line you ever address to the channel now gets an answer, even when it names nobody. Once — after that you have a name, and the channel works the way it always has.
It stays narrow on purpose. The line has to name nobody at all: ask something of another commander and that line is theirs, not ours to take. Whoever answers has to be awake and not already talking themselves hoarse. And it is one line per person, remembered across restarts, so nobody gets greeted twice.
The answer is not a welcome. An agent knows you have never spoken to it — not that you are new to the game — so it answers what you actually wrote, the way somebody who happened to be around would. If you ask how a game mechanic works, it will tell you it doesn't know rather than invent a number: that has always been the rule, and it still is.
Also
The switch's own documentation had drifted: it still listed war declarations among the things agents never say in the galaxy channel, which stopped being true some time ago. It now lists what actually reaches that room.
1.15.0 — 2026-08-24
New
Superconducting Grid — a fully built early base can be powered (#1278)
A Command Center 4 colony with everything built and everything maxed sat in energy deficit, with every building running below full output and nothing to do about it: the second Reactor is gated at Command Center 7, so the era's power supply was fixed while the catalogue kept selling things that draw.
The Forge branch now opens a way out. The Superconducting Grid is a tier-1 repeatable, +8% energy production per level, up to 5 levels. Buying the line out takes a full CC4 base from 74% to a thin positive margin. Skip it and the era's ceiling is still there — raising the Command Center remains far cheaper, which is the point.
The trough was wider than reported: at CC5–6 a completionist base sits at 62%, worse than the CC4 that prompted this, because Batteries and the Trade Portal unlock while the power supply does not. The maxed line leaves that rung at 87% — softened, still a ceiling. From CC11 the base closes on its own.
It cannot inflate a colony that is already fine: energy yield is capped at 100%, so the Grid is worth exactly nothing where the balance is already positive. It does keep feeding a Particle Accelerator, which is the one building that can still black out a mature colony.
Fixed
The attack preview was underestimating defenders (#1278). Against a colony whose owner had researched the Grid, the launch screen sized up a defender weaker than the one you would actually meet — the shield pool, the Orbital Cannon and the emplacements all resolved stronger in the real battle than the forecast showed. Preview and battle now agree. A defender you have not spied is still assumed to hold what you hold.
Changed
The energy tooltip and building cards now name both halves of the bonus. A colony's energy multiplier can come from the world it sits on and from the Grid; each is stated separately, so a lava world is never credited with research that every one of your colonies carries. The planet is also named in English now — an ice world reads "Ice", not the internal id.
Empire power breakdown gains an Energy production row once you own the Grid, and shows nothing where there is nothing to break down.
Also
Synthetic empires read the same energy figure the server charges them, including the world they sit on — previously they could misjudge their own colony and chase power they did not need, or ignore a shortfall they did have.
1.14.2 — 2026-08-24
Fixed
Chrono Shards: the two counters now say which way they go (#1306). Shards are bought at one counter and spent at four others, and nothing on either side said so — a player looking at the two cards guessed that one traded shards and the other traded Dark Matter. The Shard Chandlery now says what a shard is actually for: a build, the shipyard, research, or a convoy in flight. The convoy card, when you hold no shards at all, stops offering four dead tiles and points at the counter further down the same screen — and withdraws that pointer when there is nothing on sale to point at. The speed-up panel and the Inventory name the shop whether or not you already hold shards; before, they mentioned it only while you held none, which is exactly the state you are not in when you run out mid-queue. The Inventory's shard label also counted three places to spend a shard where there are four.
1.14.1 — 2026-08-24
Changed
The ship you are about to build is bigger on screen. In the Shipyard, the panel where the hull turns in 3D was the same small size it has had since the models arrived, sitting in the middle of a column with room to spare. On desktop that well is now taller, and the extra room goes into the ship rather than around it: the camera does not pull back, so the hull is drawn about 40% larger. The illustration that shows while a model loads grows with it. (#1295)
On phones nothing changes, and that is deliberate. There the picture shares the screen with the stat bars and the Build button, and measuring what a taller well would actually do showed it pushing three of the four visible stat rows below the fold — so the phone keeps the panel exactly as it is. (#1295)
1.14.0 — 2026-08-24
New
Fleets in transit are now on the chart. Until now a fleet only existed at the two ends of its journey: it left, and later it arrived. The space in between was empty. It is not empty any more — ships crossing your sensors show up as contacts on the map while they are still flying, with their heading, their route and the time left before they land.
What you learn about a contact depends on your Sensors. A low reading gives you a mark and little else: something is up there, crossing that way. Build the Sensors up and the same contact tells you more — how big it is, where it came from, and eventually whose it is. Nothing about a contact is free, and nobody sees the whole picture. Range matters as much as level: a mark on the far edge of your reach reads worse than the same mark overhead.
Hiding is now worth something. The Veil, espionage research and the quiet hulls all lower what your fleets broadcast, and for the first time that has a use beyond flavour: a well-covered fleet crosses somebody's sensors without ever becoming a row on their chart. A large fleet is far louder than several small ones, so splitting a run is a real choice rather than a trick.
You can meet a fleet in flight. Open a contact and you can send a fleet to intercept it. You do not pick a place — you pick the contact, and the game solves where the two of you would actually meet, if you can get there at all. Slow ships chasing a fast fleet simply cannot, and the screen tells you so before you commit rather than after your fleet comes home empty.
Or leave a watch standing. A picket is a fleet stationed on a spot in open space that meets qualifying fleets crossing it while you are asleep. You choose how long it stands, and it comes home on its own.
Some fleets are never touched. Colony ships, probes, explorers and defence flights all pass. So does anyone sheltered by their night window, anyone still under novice protection, anyone you hold a pact with, and anyone hauling their own goods between their own worlds — housekeeping is not war. The cradle sectors are where nobody is hunted at all. When a launch is refused, the screen now says which of those it was.
Also
Interception ships switched off by default for its first run in production: contacts, sensors and stealth are all live and the picket flies and records what it meets, but nothing is fired until the mechanic has been watched against real traffic. Nothing you build for it is wasted in the meantime.
1.13.0 — 2026-08-24
New
A joint raid is one alarm, not one per fleet (#1233). When several allies hit the same colony together, the Inbound panel used to draw one card per attacking fleet: five allies meant five identical countdowns, five «Send a garrison» buttons for one battle, and a genuinely separate attack lost among rows that were all the same thing. Now they arrive as a single Inbound raid card — how many fleets are in it, every attacker named, the hulls added up — and the intel on each contingent is one tap away under Show the N contingents, not gone.
Fixed
Four small fleets are no longer read as a small attack (#1233). Each contingent used to be sized on its own, so a raid of thirty-six hulls showed four «small fleet» cards and a defender under-reacted exactly where they should have done the opposite. The size band is now measured on the whole raid, on the hulls your Sensors can actually read.
The guild's «allies under attack» row sizes the raid, not its first fleet (#1233). A guildmate deciding whether to strip their home cover was reading the band of whichever contingent happened to land first — «small» for a raid nine times that size. It now describes the same raid the defender's own card does.
The alarm counts agree with what is on screen (#1233). The HUD chip, the phone Alarm segment, the bottom-bar badge and the Peace-shield warning all count threats now, so a four-fleet raid plus one separate attack reads as «2» everywhere instead of «5» over a panel showing two cards.
Also
Two independent attackers arriving at the same colony in the same minute are still two cards, deliberately: only fleets the server knows are flying together are ever folded. Two problems do not become one because they share a clock.
At Observatory 2 and 3 a raid card lists every colony the contingents launched from, and says how many of them the Observatory can no longer trace.
1.12.0 — 2026-08-24
New
Twenty contested relics on the map, and no guild may hold more than four (#1300).
There were four. If your guild did not hold one of those four, there was nothing on the board for you to want — the prize existed, but it was somebody else's furniture, and most guilds simply stopped looking at it.
Now there are twenty: five carrying each bonus, five in every sector from 5 to 8, and at least one of every bonus inside each sector, so there is always one within reach. The four you know — The Jump Ring, The Verdant World, The Suspended Yard, The Exarch Archive — keep their names and their coordinates. Sixteen new ones have joined them, from The Tidewalk to The Forge Moon.
Two rules keep this from becoming a runaway:
A bonus counts once. Five relics carry each bonus, and holding two of a kind is worth exactly one. The second is worth what it denies to whoever wanted it — which is a real reason to take it, and the only one.
Four per guild. Win a fifth and you do not keep it: you tear it off whoever had it and leave it unclaimed. Denying a rival is a legitimate move, and now it is one you can make on purpose.
Together those mean the strongest guild's ceiling has not moved a gram — the best possible hand is still one relic per bonus. What changed is how many guilds can have something at all.
Changed
The relics panel now groups by bonus and tells you which of yours is earning it, so a duplicate reads as a spare rather than a second bonus. The Power dialog and the Inventory say the same thing about the same relic, every time you open them. The map's PRIZES cartouche scrolls instead of pushing the map off a phone screen, and it tells you when your guild is at the cap — because at four, winning another prize is not adding one.
Fixed
A relic bonus is no longer silently withheld. The game only ever checked the first relic carrying a bonus, so a guild holding any of the other four was told its bonus was worth nothing — on the path every fleet launch goes through.
Battle reports about relics now say what actually happened. Winning a relic and keeping it are two different things, and the diary used to claim the second whenever the first occurred: it congratulated you on a prize sitting unclaimed on the map, told a guild that somebody had taken a relic nobody now holds, and promised a one-hour seal on sites that were not sealed at all.
Relic sites can no longer fail to appear. A new site whose address was already occupied used to be skipped in silence, forever — the relic simply never existed in the game. It now takes the next free address in its sector. Four of the sixteen needed one on the day this shipped.
Monuments have stopped turning up where people belong: they are out of the chat mention list, out of the guild invite picker, and cannot be sent a whisper.
Also
Your synthetic neighbours read the same rules you do. They will not set out for a relic that would add nothing to their guild, they will not promise an expedition their guild has no room for, and when a call to arms stops making sense they say so instead of going quiet on the people who answered it.
1.11.1 — 2026-08-24
Fixed
A free research lane no longer sits idle behind a stacked order (#1222). Queue two levels of the same Discipline — Armor Plating 12 running, Armor Plating 13 waiting for it — and the whole queue used to stop there. The second lane stayed empty, every order behind it waited too, and nothing on screen explained why: a lane was drawn as free right next to an order that said it was waiting for a lane. It was worst exactly when you were offline and the queue was supposed to keep going on its own.
Now the queue steps over an order that is only waiting for its own Discipline or node, and starts the next one it can actually take. Nothing jumps the line: a Discipline still runs its levels strictly in order, one at a time.
Two things still stop the queue, on purpose. An order you cannot afford yet holds its place — otherwise a cheap order queued later would start ahead of the expensive one you are saving for, again and again for as long as cheap orders keep arriving. And an order your Laboratory network can no longer start still stops the queue when its turn comes, because waiting will not fix it.
One honest trade comes with this: the order that overtakes spends resources, so if you were saving for an expensive stacked level it can now be short when its turn arrives. An order you are deliberately banking for is one to queue on its own.
Changed
The queue panel points at the right order, and stops crying wolf. "Queue blocked" and "Queue on hold" now follow the order the game will actually start next, so a stacked order in front of it is no longer coloured red for money it is not being asked for. And those two sentences are reserved for a queue that is genuinely stuck: when the orders ahead are still going to run, the card says so plainly, in its normal colour, instead of sending you off to build Laboratories over something that will not bite for hours.
When your network has fallen below an order that is stacked behind another one, the panel does still say the queue is on hold — because then it really is.
1.11.0 — 2026-08-24
New
Ten minutes to take back a change to your night window (#1303). The night window is the one setting that has to match something outside the game — when you actually sleep — and it can only be moved once every 24 hours. Until now, an hour set by mistake was set for the day.
For ten minutes after you move it, the control offers one button: Undo — back to 22:00 · 4m left, naming the hour you came from on your own clock and counting down what is left of the offer. Press it and that hour is restored. It is on the HUD row on desktop and tablet, and in the settings sheet on a phone, and it stays usable while the window itself is locked.
The button says the rest out loud: the 24-hour wait keeps running. The undo takes you back to where you were, and not on to a third hour. That is deliberate — it is what stops the grace from becoming a way to re-aim the window at whoever is attacking you, because the hour it restores was already the one in force.
This came from a player who set the wrong hour the day the picker switched to local time, and could not fix it for a day.
Also
The hour a mis-set move can be restored to is now remembered per commander, and the settings your client receives carry it. Nothing you had set changes, and if you have not moved your window in the last ten minutes there is simply nothing to take back.
1.10.1 — 2026-08-24
Fixed
The Research bench no longer swaps the colours of your treasury (#1267). Looking at a colony that is not your mother colony, the Research tab shows a reminder of the treasury that pays for your orders. It printed the ferrolite figure in orange and the xenogas figure in cyan — the opposite of the HUD, the Colony tab, the Market, the Overview and the Anchorage. If you read those tiles by colour, as most people do after a week, the two numbers looked swapped. They now match the rest of the game.
Crates in your Inventory are tinted like what is inside them (#1267). A ferrolite crate was drawn in gold and a xenogas one in cyan, so a prize looked like the wrong resource until you read the label.
Also
The colour for each resource is now written down in one place instead of seven. Five of those seven agreed; two did not, which is what you were seeing. Nothing changes on the five surfaces that were already right.
1.10.0 — 2026-08-24
New
You can now hear an attack coming (#1290). The incoming-fleet alarm has always been something you could only see — the red chip in the HUD, and on the phone the pulsing screen edge in the last ten minutes. Both need your eyes on the game, so the most urgent thing that can happen to you was also the easiest to miss while you were reading the market in another window.
A fleet newly on its way now sounds a cue: a low three-second swell, dark and restrained, not an alarm bell. It plays once per attack — never once per poll, however many hours that fleet stays in the sky — and it stays quiet for anything that was already in flight when you opened the game, so refreshing the page mid-siege will not replay an alarm you have been watching all evening.
It respects your sound settings: mute silences it, and the SFX slider sets its level. It deliberately still plays when the tab is in the background, because that is the whole point of it. The phone notification opt-in is unchanged and still covers the app that is fully closed.
Thanks to Spacca-Mazza for the suggestion, and for naming the right register: dread, not panic.
1.9.0 — 2026-08-24
New
The fleet ledger is on the Overview (#1280)
The empire dashboard could tell you how many ships you owned, and what was in the air. It could not tell you where they were. That table already existed — one row per ship type, one column per colony, plus what is in flight, what is on garrison, and the total you own — but it lived only inside the Fleets tab. If you wanted to know which colony held the bombers, you opened your colonies one by one and added up.
It is now on the Overview too, below your colonies and above the fleets in flight. Same table, same numbers as the rest of the tab.
On a phone it starts folded — tap the FLEET LEDGER row to open it — because a wide table becomes one card per ship type there, and the summary above it is what that screen is for. Wherever the table fits, it is simply open.
It appears from your second colony onward: with one colony, the hangar already is the ledger.
Changed
The ledger's garrison column used to be headed Stationed. On the Overview that put it one scroll below the STATIONED FLEET strip, which counts something else entirely — the ships sitting in your hangars. Same word, two different sets of ships. The column is now headed Garrison, the word your mission cards already use for that fleet. Nothing about the numbers changed, and the column still appears only when you actually have a garrison out. (#1280)
Fixed
While the fleet list is still loading — or after it fails to load — the new section no longer promises "what is in the air" over a column of dashes. It says it is still counting, or that the fleets in flight are unavailable, and shows your hangars either way. (#1280)
1.8.0 — 2026-08-24
New
Your first screen now says the galaxy is running (#1194)
A new commander used to arrive on an empty base with a build panel and a timer, and that was the whole game as far as he could see. The season, the war weeks, the market and every other empire were running the entire time — behind tabs nobody opens on their first visit.
The first-steps panel now closes with one quiet line naming the season that is running and how long the galaxy has left on it:
OUT IN THE GALAXY Season of the First Omen · 12d 4h left
No button, no badge, no sound. It appears while you are still working through the first steps and leaves when they are done — and it stands aside on the Season tab, where that countdown is already on screen and ticking.
Also
Three of the four directions the original issue proposed turned out not to need building, and saying so is part of the entry:
the first builds are already fast. The early-level sprint cuts construction to 15% for the first three levels of anything, so the first five steps of the chain cost 58 seconds of building in total — the issue asked for 60 to 90;
the league card it asked for was written against a personal league that does not exist. Only the guild league does, and a player without a guild never sees it;
an agent greeting you on arrival would reverse a rule the agents are deliberately built on — they never speak first in the galaxy channel and are explicitly told not to welcome anyone. That is a decision to take deliberately, not a gap to fill, so it is now its own issue (#1296).
1.7.4 — 2026-08-24
Fixed
The colony dropdown starts with the colony's name (#1243). On desktop, every row of the colony picker used to open with the planet glyph and the planet type — «🜨 Rocky · Mars — 3:19:1» — so the name you were actually looking for sat in the middle of the row, behind a prefix that every colony on the same kind of planet repeats word for word. With a few colonies on similar planets the list read as a column of identical openings. The row now reads name — coordinates · planet type, the same order the phone picker already used. Two things come with it: the column now differs from its first letter, and typing a colony's name with the dropdown open jumps to it, which it could not do while every row began with the same glyph. On a long name the type can fall off the end of the closed dropdown; it is still there when you open the list, and on the Colony tab.
1.7.3 — 2026-08-24
Changed
Night protection is now picked on your own clock (#1283). The window that decides when your empire cannot be attacked used to be chosen in UTC — «Night protection: 8h from 2:00 UTC», with a dropdown of bare UTC hours — so unless you happened to live on UTC you converted the hours in your head before setting the one thing that is meant to match when you actually sleep. Both selectors, the top bar on desktop and the settings sheet on a phone, now read at your browser's own time and are ordered by it, with the UTC counterpart next to them so a guild spread across timezones still has one number everybody can quote. Both readings follow your browser's language, so a 12-hour clock stays a 12-hour clock on either side. If your browser is already on UTC, nothing changes but the wording.
Nothing was converted behind your back: the hour stored for you is the hour still stored, and the same window protects you tonight as last night — it is only shown to you in a clock you can read. Time zones that sit half an hour off the hour, like India's, see their real minutes (07:30, not a rounded 07:00), because the alternative would have been saving you a different hour than the one you picked. Suggested by jaybee.
1.7.2 — 2026-08-24
Changed
Every ship in the game is a real 3D model now (#1281)
The Colony Ship was the last hull still shown as a painting. Open its card in the Shipyard and it turns like every other ship; send it out escorted and the replay draws a real hull among the fleet instead of a cardboard cutout that gave itself away the moment the camera moved.
That closes the art pass. Sixteen hulls, sixteen models — the Spy Probe, the Shroudrunner and the Colony Ship were the last three, and they landed over the past two days.
Also
A player raised this one in universe chat, naming the Shroudrunner and the probe. Both went out earlier; this is the ship nobody complained about and that turned out to be the last one left.
One thing deliberately left for its own release: the Colony Ship, the Freighter and the Ark all draw a little smaller than their artwork did. It is an old quirk of how those three are sized rather than anything new, and correcting it moves two ships that are already flying, so it gets its own change and its own look rather than riding along with this one.
1.7.1 — 2026-08-24
Changed
The Shroudrunner is a real ship now, not a painting of one (#1281)
Open the Shroudrunner's card in the Shipyard and it turns: the illustration fades into the actual hull, which you can spin like every other warship in the catalogue. In a battle replay it is a real mesh among the rest of your fleet instead of a flat cardboard cutout that gave itself away the moment the camera moved — and its running lights are lit.
It also arrives at the right size. The catalogue rates the Shroudrunner a shade larger than an Interceptor, and until now the model would have flown at half that: review caught it before it reached you, and there is a new check that measures every hull against its class so the next ship cannot arrive shrunk.
Fifteen of the sixteen hulls in the catalogue now have a 3D model. The Colony Ship is the last one still waiting for its own.
Also
A player pointed this one out in universe chat — the Shroudrunner was named specifically. The Spy Probe, mentioned in the same conversation, was already dealt with a few releases ago.
1.7.0 — 2026-08-24
New
Rebuild your emplacements instead of waiting out the clock (#1261)
When a raid flattens your Defense Batteries or your Orbital Fortress, the emplacements used to come back on a clock and nothing else: one every 30 minutes, one Fortress platform every 2 hours. A wiped Batteries L14 was fourteen hours of watching a countdown with a full warehouse.
Now the Batteries and Fortress sheets offer to rebuild them, paid out of the colony's own ferrolite, xenogas and data at what that colony sank per emplacement. The bill for what the tap will actually buy is printed before you tap it, and when you cannot afford it the button tells you what a single emplacement costs instead of just refusing.
One tap proposes at most half your warehouse — this button sits under Upgrade and there is no confirmation step, so it should not be able to empty the fund you were saving for something else. When the whole line is within reach anyway, a second Rebuild all appears, so buying the lot is one deliberate choice.
Two things it deliberately does not do:
it never touches the free clock. The emplacements you did not buy come back at exactly the time the countdown already promised — paying does not push them back;
the last one is always free. However rich you are, a colony still waits out one regeneration tick. You are buying the tail of the wait, never the whole of it.
Rebuilding does not change what an attacker earns for destroying your emplacements again: a bought emplacement is worth exactly what a regrown one is worth, and the same weekly limits apply.
Synthetic empires got the same button, and they use it the way a player would — during their own waking hours, after a pause, on whichever of their colonies took the worst of it, and only out of what they can spare.
Also
The activity feed now names the colony and the price on the rebuild receipt, so two purchases minutes apart are no longer the same line twice.
1.6.0 — 2026-08-24
New
Hangar interdiction — cloaked hulls can finally catch the freighters they hunt (#1265)
A Shroudrunner's counter kit is freighters ×3, spy probes ×4, colony ships ×2. Against another player, none of it could ever happen: unarmed hulls stay in the hangar by default, and the reserve took no losses whatever the outcome. The ships those counters named were never in the battle, so bringing cloaked hulls to hunt an enemy's haulers bought you nothing.
Now, when an attack takes the colony, the winner's surviving ships run down the unarmed hulls they counter, caught in the docks:
one hull per point of multiplier, per surviving ship — a Shroudrunner (×3) catches three freighters, an interceptor (×5) five probes;
up to a quarter of each type in the hangar, rounded up. One won battle takes a slice, never a logistics fleet — and a stack of one is lost whole;
only hulls that cannot shoot back. Armed ships your defence plan held back are never touched on the ground: that choice already cost them the battle they did not fight;
a repelled attack catches nothing, and neither does a winner with no counter against what is parked there. A wall of battleships takes your colony and leaves every freighter where it was.
The caught ships are destroyed and leave nothing behind — no loot, no debris, no season points. The attacker's reward is that your hold capacity is gone.
Three places tell you about it: the battle report names what was destroyed in the defender's docks, the activity row lists the hulls caught in the hangar beside your battle losses, and the Ship reference explains when a counter against an unarmed hull is worth bringing.
Changed
The Planetary Defense panel stops promising the reserve is safe (#1265)
It used to say the reserve "sits out the battle, safe in the hangar". That was true until this release and would now be the game telling you that a loss you are about to take cannot happen. It says what is true instead: out of the battle, not out of danger, with the share and the rounding spelled out — and it still says the part that has not changed, that armed ships held back are untouchable on the ground.
Thanks to RoyDisco, who spotted that the desk's own doctrine was wrong about this and that the mechanic underneath was oddly shaped.
1.5.0 — 2026-08-24
New
The Spy Probe is a real ship now (#1273). Until today it was the last light hull still drawn as a flat picture: in a battle replay it was a card that turned to face you, and you could tell. It now has a proper 3D model — a squat armoured sphere with its sensor eye leading and its solar panels spread wide — that banks and turns with the rest of your fleet.
Changed
Its picture in the Shipyard is the same ship you see in battle. The card art, the grid thumbnail and the fleet illustration were all re-made from the new model, so the probe you order is the probe you watch fly. It is the same size on screen as before — that was measured, not eyeballed, so nothing about how your fleet reads at a glance has moved.
Also
The probe's sensor eye does not glow yet. Every other lit hull carries a separate lighting map and this one does not have hers, so the lens reads as painted rather than powered. It is on the list.
If your browser had the old ship art cached, it will fetch the new pictures once. Nothing to do — it happens on its own the next time you open the Shipyard.
1.4.1 — 2026-08-24
Changed
Sector 4 joins the protected sectors (#1269). The starter band was filling at ~50 colonies a day and was five days from full, so it grew the one way that moves nothing on the map: the rule now covers sectors 1–4. New empires can start in sector 4, and the whole newcomer shield — the tighter ½..2× Power band and the doubled bounty on anyone punching down — applies there from today, including to the ~50 colonies already living in it. Sector 4 keeps its Frontier-grade rich planets, making it the only sector that is both protected and rich — deliberately: re-rolling planets under existing colonies was the alternative, and that never happens.
Guild Displacement follows the wider cradle (#1269). The fold rule is unchanged — never into the newcomers' spawn pool, freely within your own band — but the boundary it reads moved: a Frontier colony (sectors 5–8) can no longer fold into sector 4, and a sector-4 colony can now fold deeper into sectors 1–3.
Also
Browser tabs and installed app builds opened before this release still price sector-4 strikes at the old Frontier rate. The server's price at impact is the authoritative one — reload the page, or wait for the next app build, before planning an attack there.
Agents now describe the new boundary correctly when asked where to expand: sectors 1–4 protected, richness starting at sector 4.
1.4.0 — 2026-08-24
New
Your ally's own defences, on their distress call (#1263) — the "Allies under attack" card in Joint raids told you what was flying at a guildmate and nothing about what it was flying at. You could not find out any other way either: spy runs refuse a friendly target, so an ally who was offline could only be rescued blind.
Each threatened planet now carries what is already standing on it, in the words the rest of the game uses:
Their own defences at 3:58:2 — Bubble 12 (48,120 HP) · Emplacements ×9 · Fortress ×2 · Orbital Cannon · 340 ships
If there is nothing left, it says so in amber — nothing of their own takes the field — which is the moment a garrison is worth stripping your home cover for. If the colony is browning out, a line underneath tells you by how much, because a Bubble running on short power shows fewer hit points than its level would suggest and that is worth knowing before you decide how much to send.
It is your ally's own information, riding your ally's own alarm to their own guild. Nothing is revealed that they cannot already read on their colony screen, and no one outside the guild learns anything.
Fixed
"You never lose it to them" no longer reads as "your ships cannot die" (#1263) — that sentence meant you are not handing the fleet over to the defender, and more than one player read it as a promise that a garrison could not be destroyed. A guard fleet that then died in the battle contradicted what they believed they had been told.
The two facts are now two sentences: the ships stay yours, a garrison is never handed over — and they do fight, so they can be lost there like any fleet of your own.
1.3.0 — 2026-08-23
New
Uninstall a module (#1255): every filled refit bay now ends its picker with an "Empty bay" row — uninstalling refunds half the module's parts, the same 50% every replacement already paid, and arms the same 12-hour bay cooldown. The combat Core menu has no drawback-free option, so an empty bay is a real choice, and now you can make it.
Every module shows its blast radius (#1255): each option in the refit picker (and the uninstall row) can expand "Affects N hulls" — every ship of the class with the stats the choice would move, as they are today and as they would be after, composed with your other standing orders. A change too small for whole numbers shows a decimal instead of hiding: a drawback never reads as free.
Changed
The 50% refund is stated where you decide (#1255): every installed module card now says "Replacing or removing refunds N parts" with the picker closed. The rule always existed, but it was invisible — a player proposed, sight unseen, the exact penalty the system already charges — and a rule nobody can see is a rule that doesn't help anyone. The uninstall refusals also come back as plain sentences instead of raw codes.
1.2.0 — 2026-08-23
New
A queued research can be taken back out of the queue (#1244)
Until now a research order, once queued, could not be taken back — the only way out was to wait for it to finish. That was worst exactly where it hurt most: an order needing a Laboratory level your network has fallen below stops the whole queue behind it, and there was nothing to do but watch.
Every queued order now carries an × in its slot. Pull one and it leaves the queue, the slot frees, and anything that was stuck behind it starts right away in the same request. Nothing is refunded because nothing was ever charged: a queued order is unpaid until it starts.
Two details worth knowing:
Running orders have no ×. They have already been paid for, and what a refund should be worth is a separate question this does not answer. Ask for one and the game says so in a sentence rather than a code.
When you have several levels of one Discipline queued, only the top one carries the ×. The levels of a Discipline are researched in order, so removing a middle one would leave the levels above it with a gap — you would land on a level you never paid for. Pulling the top level is the one removal that moves nothing else, so that is the one offered. A stalled order that cannot be pulled yet now says which one to remove instead of leaving you looking at a slot with no button.
1.1.4 — 2026-08-23
Fixed
Buildings capped by the Command Center no longer look upgradeable in the Colony view (#1256). Before, a building sitting at your Command Center's level cap — an Extractor at level 10 under a level-10 Command Center, say — still showed a bright upgrade arrow near the top of the Colony tab's building list, and tapping it only earned a refusal from the server. Now the row says why it is dark — «Command Center lvl N required for the next level», the same line the Build menu already shows — the arrow is switched off, and capped or maxed-out buildings drop below the ones you can actually upgrade. Buildings under construction keep the top of the list, and within each group nothing changes order, so the list never reshuffles under your thumb.
1.1.3 — 2026-08-23
Fixed
The ally who helps repel an attack is told they won (#1245)
Lend a fleet to defend a guild-mate's colony, win the battle, and the Activity feed told you that you had lost: «Battle (defender) — defeat», in red. Every single time.
The row contradicted itself in one sentence — the title already called you a defender, and the body underneath called it a defeat — and it was invisible unless you happened to win, because a defence that actually fell produced exactly the same row.
A garrison now reads the same row the colony's owner reads: victory, in green, with the siege note when there is one. A defence that falls still reads defeat, in red.
1.1.2 — 2026-08-23
Also
Nothing changes in the game this time. This release fixes the machinery that numbers the releases themselves.
Since 22 August the version has been plain 1.0.0, 1.0.1, 1.1.0 — the long 1.0.0-beta.N series was closed. It did not quite take: over the following day, 15 releases came out still numbered 1.0.0-beta.N, which is why the changelog you are reading has entries that look out of order, with a newer release sitting below an older-looking one.
The cause was mundane. The script that cuts a release is kept among the project's own files, so every working copy carries its own; the copies that had not been updated kept using the old numbering, and nobody noticed because the result looked like a perfectly normal release. From now on that script refuses to run unless it is the same version as the code it is about to release — so a stale copy stops the release loudly instead of quietly mis-numbering it. The script that deploys the site is checked the same way, since the release runs it.
The old tags stay exactly as they are. Renumbering or deleting them would break every link that already points at them; they are simply out of sequence, and the sequence behaves again from here.
1.1.1 — 2026-08-23
Also
Nothing changes in the game this time — no ship, no building, no agent behaves differently. This release fixes two tests that had been quietly given expiry dates.
Both described a moment "in the future", but wrote it as a fixed date rather than a distance from now. One of those dates arrived this afternoon and the test simply stopped being true, which froze the whole release pipeline: nothing could be merged or shipped while it was red. The second would have done the same thing on Monday.
Both now measure from the real clock, so they stay true whenever they run, and a new check fails if anyone writes a future date the old way again. To be sure there was not a third one hiding, the entire test suite was re-run with the clock wound forward a week, a month, a year and nearly three years: green at every point.
1.0.0-beta.241 — 2026-08-23
Nothing changes in the game this time. No balance moves, no screen looks different, and no empire gains or loses anything. This one is a rule that was written down but never actually enforced, and is now enforced.
Fixed
The Pirate Beacon was never really exempt from Dark Matter (#1228). Dark Matter is meant to be a currency for real empires only: the pirates who hold the Beacon were supposed to be left out of it, and the game said so. In practice the check never excluded anyone. It asked each colony who owned it, but never actually looked up the owner, so every answer came back "a real player" — pirates included — and the whole galaxy went through a gate that had been built to stop them.
Nobody was ever paid a unit they should not have been, and it is worth being precise about that rather than leaving it to be imagined: producing Dark Matter needs a Particle Accelerator, the Beacon has none and never builds one, so the amount owed to it was always zero. Every pirate, faction and relic holding in the game was sitting on exactly 0.000 Dark Matter when this was found. The rule was not being bent — it simply was not doing anything, and would have given way in silence the first time a pirate holding ever came to own an Accelerator.
The check now happens where it cannot quietly stop working. As a side effect the periodic sweep also stops picking up the hundred-odd pirate and guardian colonies it had no use for, every five minutes.
1.0.0-beta.240 — 2026-08-23
Fixed
A pickup's two diary lines now land under the same Activity chip (#1229)
Sending a fleet to fetch resources from one of your own colonies writes two lines in Activity: one when the hold is loaded at the far colony, one when the fleet lands back home. Until now the first was filed under Economy and the second under Empire.
If you tapped Empire to keep an eye on your fleets, you saw trips end that you had never seen begin. If you tapped Economy, you saw a hold get filled by a fleet that then vanished. Both halves of a pickup now sit under Empire, next to your transports, transfers and returning fleets.
Two Contested Space lines moved to Combat (#1229)
Two more lines were filed under Economy when nobody would ever look for them there, and both are now under Combat:
the line that explains a battle you won did not take the world after all — "another guild took it while your fleet was in flight, you keep what you took from it, but a world cannot be contested again within an hour of being captured". The battle itself was already under Combat; its explanation was filed among your market sales.
the Contested Space result at the end of an event, which now sits with the season's other verdicts, where the sweep and "Season ended" already were.
Also
Nothing else changes in the game. The chips themselves, their counts and every other line in Activity are exactly where they were.
1.0.0-beta.239 — 2026-08-23
New
Pickup — fetch resources from your own colony in one mission (#693). Until now every cargo mission moved resources one way: bringing a secondary colony's surplus home meant two separate launches, each paying its own trip, and anything left at the source could be spent before the ships arrived. The new Pickup mission flies empty to another colony of yours, loads a manifest there and brings it home on a single mission — one queue slot for the whole round trip.
The manifest is set aside the moment the fleet lifts off. The source colony's stock drops at launch, so nothing spent there while the freighters fly can eat what they are coming for — the launch is refused outright if the source cannot cover it, and the arrival can never come up short.
The escrow stays visible: the in-flight card carries a "Collecting: …" row naming exactly what the fleet is fetching, and the activity log gets a "Pickup loaded" line at arrival.
A pickup cannot be recalled — the goods are committed at launch, and both the composer and the mission card say so before and after you press Send.
The composer bounds the manifest on the destination's warehouse, "fill the hold" fills from there (capped by what fits back home — a pickup's surplus at landing is lost, and a notice warns you before it happens), the fleet Advisor sizes freighters for the homebound load, and the trip preview shows both legs.
Also
The mission cards no longer crash an outdated app when the server learns a mission type it does not know: unknown types now render a plain, degraded card instead of taking the tab down.
Two fleets that can never turn back — a raid member and a pickup — now share one honest refusal message instead of the raid-only wording.
A rare "internal error" when two mirrored launches between the same pair of colonies collided at the same instant is now retried silently, like every other concurrent action.
1.0.0-beta.238 — 2026-08-23
New
The Calendar now shows what is coming, not just what happened (#1223). The Season tab's Calendar used to answer only "what has been happening" — its future squares said "nothing scheduled" about everything. Now a "Coming up" strip above the grid names the next occurrence of each scheduled event with a countdown (or the date, when it is far): the Eschaton Event, the war week close, the next League round, the weekly anomaly survey, the daily and weekly contract resets, the guild directives window, the guild shop limits reset, the guild season finale. Future squares carry dashed chips for the rare events that land on them (a diamond mark on phones, with its own legend entry), and tapping a future day — or today — lists that day's whole schedule with local times and countdowns. Only enforced dates are drawn: if the engine does not act at an instant, the calendar does not promise it.
Also
The one-shot dates (Eschaton, guild season finale, anomaly grid expansion) always keep a seat in the strip unless something even more imminent fills it, and the strip says "+N more" when its six seats are not enough.
Screen readers get each square's schedule in its label, including "schedule not read yet" when the feed has not answered — the calendar never claims "nothing scheduled" about a day it has not read.
1.1.0 — 2026-08-22
New
The login now greets first-time visitors with a commander name already filled in — one tap on Play and you are in. If the name happens to be taken, the game quietly draws another; after three unlucky draws it fills in a fresh one and says so, without blaming you for a name you never typed. (#1194)
Devices that already held an empire keep the empty field they know: the one-tap door is for newcomers only, so a stray tap cannot found a second empire by accident — and that holds even for empires from before this update.
Fixed
Failure notices on the login screen are now announced to screen readers.
The small print under Play no longer promises "reclaim" to players who never linked an account, and it goes silent under a deletion notice instead of contradicting it.
1.0.0-beta.237 — 2026-08-22
New
The Calendar (PR #1207). The Season tab has a fourth lane: a month calendar of what actually happened in the galaxy. Every day carries the public registry's own counts — battles, colonizations, market sales, season endings, war weeks — bucketed in your timezone, with today marked. Press a day and its registry opens beside the grid: the same narrative rows Activity shows, newest first, with a plain line when a day was quiet. Above the grid, the sovereignty season rail says which of the 8 weeks you are in, marks the finale weeks, and — while the finale is live — that territory points count double; the Eschaton Project bar appears only while its phase is open. Future days say plainly that nothing has happened there yet: the only forward dates drawn are the ones the server actually commits to, the season's end and the Eschaton phase.
Also
The ship review closed three defects before merge: a typecheck failure the test suite could not see, and the calendar routes are now pinned to the wire by route-metadata tests — renaming a query parameter can no longer kill the feature while every test stays green.
1.0.0-beta.236 — 2026-08-22
Fixed
Guild loyalties now survive rising war tension (#660). Synthetic guildmates no longer resent allies for friendly-side attacks, while defenders remember each real strike once, including joint raids and garrison battles.
1.0.0-beta.235 — 2026-08-22
Fixed
Building pads now rest on their cells (#630). Every shipped building sprite uses a measured ground contact, so neighbouring structures share the same ground line and upgrades no longer jump between measured and guessed anchors.
Changed
Upgrade art stays within its pad constraints (#630). Visual stage growth no longer magnifies a building's illustrated slab beyond what its source art or minimum upgrade size requires.
1.0.0-beta.234 — 2026-08-22
New
The joint-raid call has an off switch (#628). Since the Joint raids door started calling (#437), the dot on the Guild tab went out only when you joined the raid or it landed — a player who opened the door, looked, and decided not to spend their fleet kept being called for hours, and a player with no warships was called to something they could not answer. Now, visiting the Guild screen marks the raids it showed you as seen: the dot goes quiet for those, and a new raid lights it again. Declining one raid never silences the next.
The raid row tells you whether your fleet can make it (#628). lands in 38m is a fact about the raid, not a promise about you: if your ships need 50 minutes, the join button was a dead end that answered only after you had picked ships and a formation. The row now shows your fleet's own travel time next to the window — Your fleet: 50m to get there — longer than the window. The join may be refused. It never blocks the button: guild hypergates and travel research can shorten the real trip, so the warning is a warning, not a verdict.
A raid that would refuse everyone stops calling (#628). A raid formed on a target that has since been shielded, or whose guild has since signed a pact with yours, stayed on the door burning red while every join failed on the click. The call now checks the same rules the join uses and stops counting those raids — including on faction bastions, the one place the post-raid shield still exists.
Fixed
"Allies under attack" no longer offers a defence for a battle that is over (#628). The board loaded once per visit, so forty minutes in it could read impact now beside a live Send defence button — and a fleet sent through it parked for an hour over a planet glassed twenty minutes earlier. Landed strikes now grey out with "this attack has landed", their button refuses, and the board refreshes itself every few minutes. Countdowns on the board also read each fleet's real arrival instant, so sitting on the panel no longer makes them drift.
The Menu badge counts raids (#628). 3 raids forming used to reach the phone's Menu slot as 1.
Also
The forming-raid lookup on the guild summary now has a database index shaped for it, and the raid list costs one query instead of one per raid on every refresh (#628).
The door tiles on the phone guild screen no longer risk stretching their row when the raid status runs long (#628).
1.0.0-beta.233 — 2026-08-22
New
A warning before a launch empties your colony (#549)
Sending an attack, a garrison, a joint raid or a redeployment could quietly take away the last defence your colony would actually put on the field. The mission left at once, and the first you heard about it was a battle report from a colony that had been standing open the whole time.
Now the game stops and tells you first. When a launch would turn a defended colony into one with no defences of its own, you get an explicit decision naming the colony and what you are exposing:
an attack or a garrison tells you when that fleet is due back, and that recall or stand-down can bring it home sooner;
a joint raid says plainly that raid fleets cannot be recalled at all;
a redeployment is the one with no way out: those ships change home, so it says there is no scheduled end — the colony stays exposed until you deliberately send defences back or build new ones.
Two details that decide whether a prompt is worth reading. It judges what STAYS BEHIND, not what you selected: leaving a single scout at home does not buy you a quiet launch, because a scout is not something the battle engine fields. And it only fires on the change — a colony that was already undefended does not ask again, so the warning stays rare enough to mean something when it does appear.
The test for "undefended" is now literally the same one the battle engine uses to stamp that word on your battle reports: ships, defence plans, Batteries, Fortresses, Shield, Orbital Cannon, planet traits and energy shortfall, all from one definition. What the warning calls exposed and what a battle calls unopposed cannot drift apart.
Also
The return time shown in the warning is the latest planned return before any battle delay — bonuses that only the server knows can bring the fleet home sooner. When the game does not yet know your travel settings, it says so in words instead of showing you a number it cannot stand behind.
1.0.0-beta.232 — 2026-08-22
New
The Guild tab tells you when something needs you (#1182). Until now, opening the Guild tab was the only way to find out whether anything was waiting behind its fifteen doors. Three of them now say so before you open them:
Joint raids turns red when a guildmate is under attack — the door behind which you can actually send them cover.
Help board carries a quiet dot when somebody has asked for a hand since you last looked. Opening the door clears it.
Treasury tells you when your donation charges are full, so the ones regenerating on top of them stop going to waste.
Two colours, and the difference is deliberate: red is something happening on a clock, cyan is something waiting with none. The Guild tab's own dot in the navigation follows only the timed half — a raid forming, or a guildmate with a fleet on final approach — so it never burns all evening over something nobody has to rush.
Both the phone's command room and the desktop rail now show all of this. They used to keep two separate lists of what each door says, and those lists had already drifted apart, so some doors told desktop players things they never told anyone on a phone. There is one list now.
An attacked guildmate arrives with their Observatory reading (#1182). The "Allies under attack" list used to give you a name, a coordinate and a countdown, and then say their observatory sees these fleets coming without showing you any of what it saw. It now shows the readout that guildmate's own Observatory produced: where the fleet is coming from, who is flying it, how many hulls or what size, which classes, and — at the top levels — the exact composition.
Nothing new is being revealed. It is the defender's own intel about an attack on themselves, at exactly the detail their own Observatory buys, riding their own request instead of being retyped in chat. And when their sensors could not read the fleet, the row says so in red — fleet unidentified, or partial reading — cloaked hulls are not counted — because a cover sized against four visible hulls is the wrong cover when sixty are coming.
Also
The Observatory readout appears wherever more than one fleet is inbound, and says which of them it is describing. Numbers in it are grouped in thousands, and a single incoming hull is now "1 ship" rather than "1 ships" on both the guild's row and your own inbound alarm.
1.0.0-beta.231 — 2026-08-22
New
Tier 8 Mastery: three choices, and each one costs you something (#1108)
Research used to reach the Eschaton Depths and find nothing waiting there but more storage. Tier 8 now asks you to decide, three times over — and all three are trades. Both halves are on screen before you commit.
Battle stances, chosen per fleet at launch, once you have researched Admiralty:
Assault — +10% attack, −10% hull.
Rampart — +10% hull and shields, −10% speed.
Pursuit — +15% speed, −10% cargo.
The stance belongs to the fleet that leaves. Change your mind and the fleet already in flight keeps the orders it launched under. On a joint raid every ally fights under their own — the one who opened the raid does not choose for everybody.
Pursuit can only be taken where its cargo cost can actually be charged, so it is offered on a raid or a loaded run and not on a probe or a garrison, where it would be free speed.
Planetary mandates, one per colony, changeable every 72 hours, once you have Planetary Mandates:
Industrial — more Ferrolite and Xenogas, less Data.
Scientific — more Data, less Ferrolite and Xenogas.
Transit — faster Transport, Redeploy, Harvest and Scouting leaving that colony, paid for across all three resources.
Industrial edicts, one for the whole empire, also on 72 hours, once you have Industrial Edicts:
Construction — buildings finish faster, ships slower.
Shipbuilding — the other way round.
Throughput — more production, and both queues slow down.
An edict changes what the next order costs in time, never one you have already paid for: a queue you filled yesterday keeps the durations you were quoted, in both directions. Changing or dropping an edict settles what your colonies have already earned first, so it can only ever price the future.
Choosing nothing is still a choice, and it is free — an empire, a colony or a fleet with no selection behaves exactly as it did before today.
Changed
The mission composer now prices the stance everywhere it shows you a number, not just in one place: the battle forecast, the loot estimate, the fleet totals, the cargo cap and the arrival time all reflect the stance you picked. Under an edict, the build and shipyard panels quote the duration the order will actually take.
Also
Every account gets its first mandate and its first edict change immediately: the 72-hour clock starts when you first use one, not when this update shipped.
1.0.0-beta.230 — 2026-08-22
New
The spy report launches the attack it justifies (#1179)
An espionage report told you everything about a target except how to get there. You studied the defences, the fleet and the emplacements in Activity — then walked to Missions and re-found the same address by hand, usually through the Recent row, which carries none of the report's context. Deciding with the intel in front of you meant memorising three numbers across a tab switch.
Every espionage report now carries two actions under its header, without opening the card:
⚔ Attack — the launch form opens with the report's coordinates already in the target.
🛰 Spy again — the same, for another probe at the same address.
Nothing is sent by pressing either one: they aim, you still choose the fleet and launch.
The intel comes with you. Missions already looks up the freshest espionage report for whatever coordinates it is aimed at, so the report's age, the attack forecast built on its snapshot, and the Advisor are all there when you arrive — which is why this needed no new panel anywhere.
The actions do not judge whether the target can be hit. A shielded target is still aimable, and the launch itself is where that gets refused, as before. The report shows you what a probe saw; it does not hand out permission.
1.0.2 — 2026-08-22
Changed
Dark Matter Lances now pierce shields instead of adding attack (#1185). Before, the Lances and the Doctrine of Annihilation both gave the same +0.5% attack per level — two different endgame nodes pushing the same number, so the tier-7 fork was not really a choice. The Lances now ignore a share of the enemy's ship shields: your fire lands where it used to be soaked. The share grows with every level and never quite reaches everything, so the node stays worth buying however deep you take it. Existing levels carry over as penetration — nothing was reset, and nothing was refunded.
The Doctrine of Annihilation is worth what its price suggests (#1185). It used to add a flat half-percent per level on top of a total that everyone maxing their Disciplines already shares, which left each level worth about a fifth of a percent — for a node whose later levels cost more than most empires earn in a season. It now multiplies your attack by 1.5% per level, so a level is worth the same proportion whether it is your first or your twentieth.
Also
The Power Details panel gained an Enemy shield penetration row under Fleet combat, so you can see what the Lances are doing for you.
Both tier-7 cards were rewritten to describe what they now actually do.
1.0.0-beta.229 — 2026-08-22
Changed
Activity opens on your own outcomes (#1189). Since the galaxy's chronicle moved into the Activity feed, the tab opened on All — and the chronicle is the bigger half, so the screen the unseen-battle dot points at opened on somebody else's night. It now opens on Mine. Nothing was removed: All, Galaxy and the four family chips are one tap away, and the feed's contents, order and grouping are unchanged.
If you have nothing of your own yet, the tab opens on All instead — a brand-new commander gets the galaxy to read, not an empty column. The choice is made once when the tab opens: tap Mine 0 on purpose and you stay there, and a result landing mid-read never swaps the list out from under you.
The empty Mine notice no longer says "yet". With the tab opening there, a commander with three fleets in flight could meet a sentence written to welcome newcomers.
1.0.1 — 2026-08-22
Changed
The Proving Ground pays a bracket with only one empire in it (#1188). If you were the only empire ranked at your fleet size, your board used to read "One empire ranked here. No prize until 2 empires are ranked." and the season close paid you nothing. It now reads "One empire ranked here. Pays at the close." and you are paid your bracket's crate. Being the only empire in your bracket is not something you can do anything about — nobody can bring a rival up to their own fleet size — so the board no longer withholds the prize for a reason you cannot act on.
A bracket with nobody ranked in it still pays nobody. That part is unchanged: Warhost and Apex open at 10 million and 100 million military power, and until an empire actually ranks there they pay nothing at all.
The prize table says the new rule. The line explaining the close now reads "A bracket pays once one empire is ranked in it", and the note about the crate ceiling no longer claims that a bracket you reach alone pays nothing — it says what is still true above Armada, which is that the crate stops growing and climbing higher buys you a smaller field rather than a bigger prize.
Also
On iPhone and Android you will read the old rule until you update. The app carries its own copy of the screen, so an installed build still shows "No prize until 2 empires are ranked" until you install this version. The rule the season close actually applies is the new one, so a lone entrant on an old build is paid regardless of what their screen says.
This season counts. The change applies to strikes already made in the season currently running — you do not need to strike again for it to take effect. If you have not struck at all because the old wording said it could not pay you, a strike costs nothing and nothing is lost, and there is still time.
1.0.0-beta.228 — 2026-08-22
Fixed
Admin colony totals explain their scope (#647). The moderation roster used to show every colony under the same bare label as the dashboard's human-only figure. It now states that the total covers all empires and includes beacons.
1.0.0-beta.227 — 2026-08-22
New
Every battle in the galaxy is replayable (#1168). The Activity feed has always told you that a battle happened — who struck, where, what they carried off. Now it will show you. Every battle row in the galaxy's chronicle has a Replay button, and it opens the same film the people who fought it watch: every salvo, every round, the shield pool going down, the batteries firing.
Your own old battles came back (#1168). The archive only ever kept the replay for your last twenty reports; past that you could scroll to a battle and find nothing to open. Those rows have their Replay button back, however far down you go.
Changed
A battle opens to the galaxy a day after it is fought — your own, at once. A fresh report is not just a story, it is a map: it carries the defending fleet's formation, the strength its walls started with, and the ships each attacker still has in the air on their way home. Handed to everyone the moment the shooting stopped, that would have been a free scouting report on whoever had just been in a fight — better than a probe buys, with no probe to lose and no warning to the person being read. A day later the fleets have landed and the losses are rebuilt, and what you are watching is a war story.
Whoever was in the battle never waits: attacker, defender, everyone who joined the raid, and the allies who had a garrison there.
What a stranger sees of your battle. The battle itself is the same for everyone watching — the ships, the rounds, the losses, the outcome. What does not travel is where each fleet set out from and the research each commander fought with: the things a spy has to be sent out for.
Beyond your last twenty reports the archive offers the replay but not the Details panel, and now says so instead of leaving a button silently missing.
1.0.0 — 2026-08-22
Changed
Novarchy leaves beta. This is the first release numbered as a finished game rather than as a preview of one. Nothing in the game changes with it — no balance, no screens, no rules. The number was simply behind: Novarchy has been live and updating many times a day for weeks, while every release was still numbered as a beta, which is how you number a game that has not launched yet.
From here the version carries a little information. When a release adds something we call out as new, the middle number moves; when it only fixes or adjusts, the last one does. So 1.1.0 and 1.0.1 usually tell you something different before you read a word — usually, not always, because it is the release notes that decide, and a small addition sometimes travels under a heading that does not announce itself.
Every earlier release keeps the name it shipped under. Nothing was renumbered, nothing was removed, and no existing link changed.
Also
The check on whether a release reached the public changelog now works. After each release we check that it actually appeared on novarchy.com/changelog. That check was looking for the version written in a form the page has never used, so it always answered "not there" — whether or not the page had updated. It now reports honestly whether the entry arrived.
Nothing else changed. No new content and no fixes to the game itself: this release is the version number and the machinery that produces it.
1.0.0-beta.226 — 2026-08-22
Fixed
The Command Center stops telling you the ladder is over at 15 (#1159)
From Command Center 15 upwards, the gold "At the next level you unlock" panel — the one you decide a ~430k ferrolite upgrade from — said there was nothing left to unlock. That was wrong, and the game had been granting things above 15 the whole time.
You really do get, and now you are told about it one level in advance:
your 6th to 10th commandable colony, at Command Center 18, 21, 24, 27 and 30;
a 5th, 6th and 7th Site for each economic building, at 19, 23 and 27;
at Command Center 20, the level cap that lets every building reach lvl 20 — and with it Stage III, the third look a building takes on, exactly as level 10 opens Stage II.
The "The road ahead" list had the same hole: it showed nothing at all to anyone at Command Center 15 or above, which is to say to the players with the most Command Center left to buy. It now opens on the whole remaining ladder.
And it stops promising build queue slots that were never coming
The same panel said "queue slots keep growing regardless". They do not: the fourth slot arrives at Command Center 13 and is the last one. A player at 16 read that sentence and, fourteen levels later, still had four slots. It is gone.
Changed
Every Command Center level from 1 to 30 now says what it gives. Levels that raise only the level cap say exactly that, instead of the old line that opened by denying it unlocked anything — under a heading announcing an unlock — and went on to promise a build-time speed-up that, at some of those levels, the panel's own discount row measures as zero.
The colony advisor no longer offers one of those levels as a reason to buy the Command Center. A level whose only content is the cap is not an argument for spending on it, and that suggestion sits one tap from the queue button.
1.0.0-beta.225 — 2026-08-22
Changed
The synthetic empires can turn a fleet around now (#592). Recall shipped for you a few releases ago; they did not have it, and that was becoming a way to tell them apart — once everyone else calls off a doomed attack, the ones who never do stand out. They can call one off too, and only for something they actually saw: a probe flown after the fleet left that finds a garrison it can no longer beat, a pact signed with your alliance while it was in the air, their own plan turning defensive, or the target changing hands, vanishing, or joining their guild.
They stop like people, not like a timer. A synthetic empire only turns a fleet around during its waking hours, it never uses the last stretch of the legal window — the last two to five minutes before the point of no return are yours to count on — and it takes a moment to give the order, the same beat it takes before it speaks in chat.
Ask one where its fleet went, and it can tell you. A recalled mission shows as recalled, on its way home rather than as a fleet returning from a battle, and the empire can talk about turning it around — and about an attack that turned back on it.
Pointing a fleet at one and pulling it back is remembered. It counts as hostility and colours how that empire speaks to you afterwards. It does not, on its own, earn you a punch back: what buys a reprisal is a blow actually landed or words actually said, so nobody can goad a smaller empire into a fight it will be fined for by feinting at it for free.
Whether they can name you depends on your Observatory, as it always has. Below tier 4 the alarm and its cancellation are anonymous at both ends, and the empire will say so rather than guess.
1.0.0-beta.224 — 2026-08-22
New
Two new brackets in the Proving Ground: Warhost and Apex. The boss board ranks you only against empires whose fleet is the size of yours, and until now the top rung — Armada — opened at 1,000,000 military power and had no ceiling above it. Everything from the largest human fleet up to the biggest fleet on the server raced in that one bracket, more than a hundredfold apart. Warhost now opens at 10,000,000 and Apex at 100,000,000, so the top of the ladder is cut the same way every other step of it is (#1172).
Nobody has reached either one yet, and that is on purpose: a bracket pays nothing until two empires are ranked in it, so headroom costs nothing — while adding the rung on the day somebody first crosses it would move a growing empire out of the race it had been climbing all season. Your stored score does not move either. The close pays on the bracket each best strike was made in, so a strike already filed in Armada stays in Armada and is paid there.
The crate does not keep growing with the ladder. Armada, Warhost and Apex all pay 3 × 5M crates: that is the largest crate below the season winner's own prize, and a race that costs nothing to enter and risks nothing must not out-pay the season itself. The prize table now says so instead of leaving three identical rows unexplained.
Changed
The ladder reads properly on a phone. With six rungs instead of four, each one gets about a sixth of the card, and "from 100,000,000" no longer fits beside its neighbour. The thresholds on the scale are now written short — from 0, from 10k, from 100k, from 1.0M, from 10M, from 100M — and the rung names size themselves to the space they actually have, on tablets and half-width windows too, not just phones. The exact figure you are chasing is still spelled out in full in the line underneath.
The line that tells you how far the next bracket is now tells you what it is worth. It used to say only "Warhost opens at 10,000,000 military power — you are 8,140,000 short", which is true and half the story: Warhost pays the same crate as Armada, and a bracket you would be alone in pays nothing at all. It says both now — and it stays quiet when your arrival would be the second empire, because then the bracket does pay.
A bracket nobody has reached is stated, not alarmed. An empty bracket used to be drawn in the same red as one sitting a single entrant short of paying. Red is a call to action, and there is nobody to call: those cards are neutral now, and still say what they pay and when. This also affects the first hour of a season, when every bracket is empty.
1.0.0-beta.223 — 2026-08-22
Changed
The Command Center's upper levels are reachable again (#1161). Past level 20 the Command Center had priced itself out of the game: every level cost 70% more than the one below it, so level 30 alone came to 1.2 billion resources and the last three levels together were four fifths of the entire ladder. In practice nobody ever got there — across the whole server there was not a single empire anywhere between level 22 and level 29.
The climb now eases after level 20. Level 21 costs 8.1M instead of 10.2M, level 24 costs 19.9M instead of 49.9M, level 27 costs 48.8M instead of 245.3M, and level 30 costs 120.2M instead of 1,204.9M. Everything up to level 20 costs exactly what it cost yesterday — not a single resource more or less — and no other building changed at all.
Level 30 is still about twenty times the price of level 20, so the top of the ladder is still something you work for. It just stopped being a wall.
Also
If your Command Center is above level 20, your Power and your leaderboard score will drop. Nothing was taken from you and nothing was spent twice: those numbers are worked out from what your buildings cost, so when the price of a level comes down, the credit it carries comes down with it. Your colonies, your resources and your fleets are untouched, and below level 21 nothing moves at all.
The faction bastions get a little weaker. Their fleets are sized against the strongest empire in the field, so they follow that number down — and they will follow it back up as the top of the table grows again. The season's contested planets are not affected.
1.0.0-beta.222 — 2026-08-22
Fixed
The colony no longer opens with its base tucked under the HUD (#616)
On a phone the colony fills the whole screen and the interface floats on top of it: the resource bar covers the first 150-210 pixels, the navigation bar the last 60-95. The camera had never been told any of that — it centred your base on the middle of the screen, which put it 45 to 81 pixels above the middle of the strip you can actually see, with its top edge sitting behind the HUD.
The Base tab now measures those two bands and opens the colony in the middle of what is left free. On a planet whose painted ground is not offset the centring is exact; on rock and ice the terrain calibration keeps 12 to 27 pixels of the old drift, because the alternative would be showing you the edge of the world.
Two consequences worth knowing about, both on phones only:
your base is drawn 11-16% larger. Sliding the view down slides the painted ground with it, so the ground has to be magnified to keep reaching every edge of the screen. That is the price of the slide and it cannot be had separately.
the base is not made smaller to fit. Shrinking it into the free strip would have cost a quarter of its size in landscape and changed nothing at all in portrait, so the size rules are untouched.
On desktop and in landscape nothing moves and nothing costs anything.
1.0.0-beta.221 — 2026-08-22
The Events tab is gone. What was in it is now in two better places.
Changed
Activity is one feed (#1160). Your own outcomes and the galaxy's public chronicle now scroll in a single column, newest first, instead of living in two tabs side by side. Your battles keep everything they had — Replay, Details, the full report — and the galaxy's news is interleaved around them by time.
Seven filters, two questions (#1160). Mine and Galaxy ask whose a row is; Combat, Exploration, Empires and Economy ask what happened, across both sources at once. Mine means what happened to you, not what came from your own log — so a purchase you made on the market, which only ever existed as a public line, is finally under it.
Season is its own tab again (#1160), with three full-width screens behind one switch: Standings, The Proving Ground, and Contracts. Nothing is stacked below anything else any more.
Fixed
The season podium was invisible to exactly one player (#1160). Every season, one account — whichever one the register happened to pick to represent the final table — was the only one in the galaxy that never saw the podium in their feed. It is there for everyone now.
The Contracts dot led nowhere (#1160). When the day's new contracts appeared at 05:00, the marker lit up on the tab, you opened it, and nothing on the screen said where to go. The Contracts lane now carries the marker too, and it says which of the two things it means: a reward waiting, or a new hand for the day.
A new commander tapping Mine was told "nothing under this filter" (#1160) instead of being told their fleets' outcomes will land there.
A broken galactic log looked like a quiet galaxy (#1160). If the chronicle cannot be read, the feed now says so instead of showing an empty stretch and letting you assume nothing happened.
Also
Your own trades are no longer folded into a "4 trades" summary when you filter to Mine — on your own ledger, every purchase is listed.
The Contracts marker now has a name a screen reader can read, which the old phone strip used to say out loud and the marker alone did not.
1.0.0-beta.220 — 2026-08-22
New
The game says who built it (#1152). Novarchy never named its maker anywhere. A quiet line — powered by AigenSolutions — now sits at the bottom of the login screen, under Privacy, Support and Changelog, and links to aigensolutions.it. It is footer-sized on purpose: it stays out of the way of Play.
And you can find it once you are in. A player who starts as a guest never sees the login screen again, so the same line closes the Command menu on a phone and the commander card everywhere. The landing page, the privacy page and the support page carry it too, in exactly the same words.
It opens in your browser, not inside the game. In the iOS and Android app there is no address bar to get back with, so tapping the credit hands the link to your normal browser and leaves the game exactly where you left it.
1.0.0-beta.219 — 2026-08-22
Fixed
Planet names on the galaxy map no longer run into one another (#594). In a busy system, the names of two neighbouring worlds could end up side by side with nothing between them and be read as a single name — one player reported seeing a guild affiliation that does not exist. The map used to separate two names only when their letters actually overlapped; now it also separates them when they simply sit too close to be read apart, and the nearer world keeps its name. Names that are genuinely apart, or on different lines, are unchanged.
Also
The effect had come back after systems grew from twelve planets to eighteen, which put half again as many names in the same sky. Measured across more than a thousand camera angles in a fully settled system, pairs of names too close to read apart went from common to none, and the map shows very slightly fewer names in exchange.
1.0.0-beta.218 — 2026-08-22
Fixed
The battleship flies the right way round again (#1153). In the battle replay it was advancing on the enemy backwards: flat armoured end first, and its bow — the end carrying the five blue rings — trailing behind. It had done that in every replay since the battleship got a 3-D model, on both sides of the line, attacking and defending. It now leads with its bow.
The shipyard sheet stops contradicting itself (#1153). Opening a battleship's detail card cross-fades its illustration into the 3-D model, and the two were facing opposite ways through the dissolve — permanently so for anyone browsing with reduced motion, since the model then never turns. Both now point the same way.
Also
Which way that hull points is now checked automatically. Nothing in the test suite could tell the two directions apart before — which is how a ship flew backwards for months with everything green.
1.0.0-beta.217 — 2026-08-22
New
Every ship now wears a rarity. The Shipyard grid gave all sixteen hulls the same slate border, so the Destroyer — the one ship an empire can only be given — looked like a Freighter with better art, and the only hint that the catalog had steps in it was the padlock, which says "not yet", not "how far". Each card now carries Common · Uncommon · Rare · Epic · Legendary: as the colour of its border, as a glow behind the artwork, and as a word on the card itself. The Destroyer is gold and glows; the Titan Dreadnought is the violet one step below her.
The step is named where you go to read about a hull, too — on every row of the ship reference, which shows all sixteen at once, and in the detail panel next to the class.
Where a hull sits is decided by how far into the game it is, not by a list someone maintains: the Tree node that unlocks it and how deep that node sits, or, for the hulls no node gates, what it costs to put one on the pad. The Destroyer is Legendary because she can only be won, never built.
Changed
The Destroyer's count reads ×1, like every other hull. It used to read 1/1. Nothing about how you get her has changed — the build card still says she is an Event Relic, not buildable, and granted only once.
A hull you have not unlocked yet keeps its colour. Locked cards are still greyed out — dimmed art, grey text, the padlock, the line telling you which research opens them — but the border and the rarity label now stay legible instead of fading with everything else. They were the seven cards where the new ladder was hardest to read, and they are the seven it exists for.
Selecting a card is now a cyan ring drawn outside it rather than a coloured border, so the card you are about to build keeps its own rarity colour while it is selected.
1.0.0-beta.216 — 2026-08-22
Fixed
The Missions "Recent" row now tells you how much salvage is out there (#586)
After a battle, wreckage is left floating at those coordinates, and the game has always worked out how much of it is still there — decaying it hour by hour, subtracting whatever you have already lifted. You never saw that number in the Recent row. It was computed on every refresh and thrown away.
The row had a whole chip type for it, and that chip could never appear: a coordinate only gets a salvage estimate because one of your own battle reports left wreckage there, and that same report already puts a "battle" chip on the row, which won every time. So the figure existed and was never once shown to anybody.
Now the chip that does appear wears the estimate next to the address, in gold: • 4:2:7 ♻ ≈ 305,000,000. You can see there is a harvest worth sending recyclers for before picking the target, instead of having to select each coordinate in turn to find out. The tag rides on whichever chip you get — your own colony with wreckage in its orbit, a target you have a fleet already flying to, a coordinate you pinned — not only on battle chips.
The figure is an estimate and says so with ≈: it is too high if somebody else has harvested there without your knowing, too low if somebody else has fought there. It does not yet subtract a harvest of your own that is still in flight — that is #1146, and it affects the target panel and the Fleet Advisor the same way it always has.
Removing a chip with × still hides everything known about those coordinates, salvage included, until a newer contact brings the chip back — and when it comes back, it comes back with the figure.
1.0.0-beta.215 — 2026-08-22
New
The Season screen has two lanes. (#1124) The Proving Ground used to sit at the bottom of one long scroll, below the key art, the podium table, the scoring chips, the Eschaton warning, your own position and a ten-row leaderboard. Standings and The Proving Ground are now two full-width screens with a switch between them, and the standings carry a card that opens the bench.
Your score is the headline. (#1124) The figure this screen exists to produce — how much boss hull your navy destroyed — is now the first thing on it, with the rounds it took, the strikes you have made and where it places you. A score that broke the wall carries the same ★ the board does.
You can see what you are hitting. (#1124) The Sunless Vault's composition is drawn: how many cruisers, battleships and titans stand in it, and how many hulls that is in total. Until now the number you scored had no denominator.
The bracket ladder is a scale. (#1124) Instead of "you are ranked against fleets your size", the four brackets are drawn as rungs with your own military power marked on them, and the gap to the next one spelled out: "Fleet opens at 100,000 military power — you are 51,700 short."
Only your own board opens. (#1124) Four boards of ten was forty rows, thirty of them about races you cannot enter. The other three collapse to their leader, how many empires are ranked in them and whether the close will pay them at all — and each opens on its own board when you ask for it.
What the close pays, and which bracket it pays it on. (#1124) A table of the crate each bracket wins, and the rule that decides which one is yours: the close pays on the bracket each best strike was made in, not on the fleet you hold at the end. If you struck at 8,000 military and have since grown, you are still racing in the bracket you struck in until you strike again.
Fixed
The invitation no longer appears beside the reason you cannot accept it. (#1124) "Nothing is spent — strike as often as you like" was printing two lines above "No season is open." and "You have no ships to send."
A strike that dealt nothing no longer looks like a win. (#1124) A fleet of freighters and probes passes the "have you got hulls" check and destroys exactly nothing. That zero was being shown in gold, at the size of a record, directly above three lines explaining that it was not on the board.
A shipless empire is no longer told which race is theirs. (#1124) With no ships your power is zero, which files you in Patrol — and the screen was treating that as a race you had entered.
Also
The other brackets' boards, when you open one, are the same board your own bracket shows: the same columns, the same ★, the same names on a phone.
1.0.0-beta.214 — 2026-08-22
The Research screen has been rebuilt, on both desktop and phone.
New
The research queue is a bench, not a row of dots (#1130). Before, your lanes and queue slots were ten-pixel dots with a line of text beside them — and one hollow dot was drawn for every slot the game can ever grant, so a new player counted four and owned one. Now each lane is a card: what is running, how far along, how long left. Your queue slots sit beside them, and the next slot you have not unlocked yet says which Laboratory level opens it.
The Laboratory network and your treasury are on the same panel. The number the game actually researches with, the arithmetic behind it when you own several Laboratories, and the three resource totals that every cost on the screen is measured against.
Every card now shows what its next level costs and how long it takes. That used to live only inside the detail panel, so choosing between two Disciplines meant opening one, reading two numbers, and going back. A green or red dot tells you whether your mother colony can pay for it today, and when it cannot, the card says which resource is short and by how much.
Filter and sort the catalogue.Affordable now, In the queue, Locked, and a shortest first sort — the two questions the grid could not answer before.
Disciplines, the tech tree and the Dark Matter apex are one catalogue. They used to be three sections stacked down a page four screens long; the tree began below ten cards and a detail panel, so a player who had never scrolled that far did not know it existed. They are one switch apart now, and the switch says how much of each you own.
Fixed
A locked tech tree node tells you what it is waiting for. A padlock said "no" forty-odd times and never said why — finding out meant opening every node in turn. Each locked node now names the one thing that is missing: a Discipline level, a prerequisite, or a Laboratory.
A queued order that cannot start says so. If your Laboratory network drops below what a queued order needs — leaving a guild can do it — that order stops the whole queue, and every order behind it. The screen used to say it was waiting for a lane, next to a lane it had drawn as free. It now says the queue is on hold and which level it is waiting for.
A waiting order and a stalled one no longer look identical. An order waiting its turn and an order the treasury cannot pay for were drawn the same way while the queue sat still.
A card no longer prices a level you already bought. With an order running, the queue level and the next level are two different numbers, and the card was mixing them.
Changed
The tree's symbols are drawn instead of typed. The branch and node emoji came from the system's colour emoji font on iPhone and iPad, which ignores colour — a locked node's symbol was as bright as an unlocked one, and sizes differed from device to device. They are proper icons now and take the colour of whatever state they are in.
1.0.0-beta.213 — 2026-08-22
Fixed
The Proving Ground board was ranking the wrong thing (#1126). A strike used to be scored on everything it landed, including the shields the boss soaks up — and those shields grow back between rounds. So a fleet that could not break through kept hitting the same shields over and over, and every round added to its score.
The result was a board that rewarded taking longer. Measured on the live server: of two fleets that both destroyed the boss outright, the one less than half the size scored 78% higher, purely because it needed 400 rounds instead of 6. The empire at the top of the Armada bracket would have improved its standing by scrapping half its navy.
A strike now scores the boss hull it destroyed. Shields do not count. The whole wall is a fixed amount of hull, so that is the most any strike can score — and once you can break it outright, what still improves is how few rounds you need. The board shows those rounds next to every score, and a row that took the whole wall is marked with a ★.
Changed
Every score on the board has been reset, and this is not a bug. Scores taken the old way cannot be compared with scores taken the new way, so every existing strike has been retired. Open the Proving Ground and strike once to get a score on the new scale — it costs nothing, as always, and nothing is lost.
Expect a much smaller number than before. That is the point: the old figure counted the same shields hundreds of times. The new one counts what you actually broke.
Also
Battle reports credit a fleet that surrenders correctly now — a defence that gives up without firing used to be recorded as if almost nothing had happened to it.
1.0.0-beta.212 — 2026-08-22
New
Synthetic empires now run campaigns, not isolated moves (#1083). Before, an agent decided each tick more or less from scratch. Now it forms a plan against a specific colony and works it in stages: scout it, gather a force that can actually take it, stage that force at whichever of its colonies is closest, launch, and follow the mission through. If the target is razed, changes hands, or goes behind a shield while the fleet is in the air, the agent notices and calls the attack off instead of flying into nothing.
They coordinate on relics. An agent will never open a relic raid on its own. It joins one only when a coalition has already formed and the fleets actually promised are enough to take the site — and when it puts out a call to its guild, that call is a real request it will act on.
They learn from what happens. Outcomes feed back: an agent that keeps losing gets more cautious about the size of force it commits, and one whose forecasts hold gets bolder. Fleet composition, research order, scouting and defence all follow from what it has actually seen rather than from a fixed script.
Changed
What an agent says about its own operations is tighter. It can tell you it is scouting a colony, or that an attack is committed, but it will not read out a win percentage or an expected loss figure — those come from its own maths and correspond to nothing you can open a panel and check. It also no longer names the colony it is staging from: which system an attack launches from is what the Observatory is for, and an agent volunteering it in chat was giving away a readout you pay for.
Stale talk is gone. An agent used to be able to keep announcing a campaign stage against a colony that had been destroyed days earlier, or an attack that had already come home. Those claims now expire, and are dropped outright when the operation behind them ends.
What an agent thinks your fleet is is now what it last saw, per colony, and it forgets sightings older than three days. Previously it added every scouting report together, so an opponent it scouted five times looked five times stronger than they were — and the more it watched you, the less willing it was to ever attack.
Agents now field the hulls they had been quietly building. Their fleets were only ever counted from the five starting hull types; everything unlocked through the tech tree was invisible to them and stayed parked. Those ships now fly. Expect agent fleets to look noticeably bigger from the first hours after this update — that is the correction landing, not a sudden build-up.
Also
One piece of this work ships switched off. Agents can read a promise out of their own chat ("I'll hit 4:2:7 tonight") and turn it into a real operation, and that turned out to be much harder to do safely than it looks: across seven rounds of review the parser kept finding new ways to bind the wrong coordinate — a colony mentioned in the next sentence, a raid the agent had already fought, someone else's threat quoted back, and twice a colony the agent had just publicly agreed to leave alone. An agent attacking a player it never threatened is worse than an agent that talks without acting, so the feature is in the codebase and disabled until it rests on something that can actually read a sentence. Everything else above is live.
1.0.0-beta.211 — 2026-08-22
New
Battle replays glow (#1125). Everything meant to read as light now bleeds into the frame instead of stopping at a bright pixel: muzzle flashes, explosion cores, the lit engine bells on ships that have them, and the starfield. Measured across one frame of a real battle, the brightest tenth of the picture roughly doubles while the very top comes down slightly — bright things now roll off like film rather than clipping to white.
Fixed
Three ships were being drawn too dark. The shroudrunner, the probe and the colony ship are painted cutouts rather than modelled hulls, and they were rendering far darker than the ships beside them. Nobody could see it, because the whole scene was drawn the same way. They now sit at the same brightness as everything else.
A replay that loses its canvas says so. If the browser takes the drawing surface back mid-battle — a background tab, a phone under memory pressure — the picture used to freeze while the transport bar kept advancing, which looked exactly like the game hanging. It now tells you what happened and that reloading will bring it back.
A device that cannot run the effect falls back instead of going black. On graphics hardware without the feature bloom needs, the replay would have played to the end on a solid black canvas, with the loading text cleared and the bar moving. It now simply plays without the glow.
Changed
On a phone that cannot hold the frame rate, the glow is the first thing given up. That was already how the quality ladder was built; this is the first release where it has anything to give up. The rest of the picture — the colour of space, the shield shell around a defending fleet — is held steady across that switch, so the replay does not change appearance beyond losing the halo.
Also
Space is the same colour it has always been. Rendering the whole frame through one final tone-mapping pass would have taken the deep blue of space almost to black and the faint nebulae with it; the backdrop is authored against that pass so it arrives where it always did.
1.0.0-beta.210 — 2026-08-21
Changed
Alex is on the boards again (#1116). The account that builds the game had been kept out of every standing since 10 August: it scored points but never appeared, and its prizes slid down to the player behind it. That exclusion is lifted. Alex now holds a row on the leaderboard, a place on the weekly war scoreboard and a place on the season scoreboard, and is paid like anybody else.
What this means for you, plainly: if Alex outscores you in a given week or season, the ladder shifts by one. The rank-1 share of the weekly war, the season podium steps, the guild-podium crate bands and the end-of-season Destroyer can now go to that account instead of passing over it. Nothing you have already earned is taken back — the change applies from here on.
Also
The Proving Ground is not affected. The season boss board is ranked by damage, and damage is mostly a question of how many hulls you brought — Alex's fleet is granted rather than flown, so it stays off that board and off its crates, exactly as before. Concretely: the Armada bracket still pays only when two real fleets have contested it. A bracket that was uncontested yesterday is uncontested today, and nobody has been quietly beaten to a crate.
The relics and the faction bastions are not affected either. Those are sized against the fleets that actually describe the field, and that calculation has never counted Alex's. A relic that was reachable yesterday is just as reachable today.
The Kepler Observatory and the Wraiths remain outside every standing: they are the opposition, not competitors.
1.0.0-beta.209 — 2026-08-21
Fixed
The game sits straight again on a wide monitor, with the chat open (#571) — since the chat got its own lane beside the game, it was taking that lane out of every screen, however wide. On a large monitor the result was a page visibly off-centre: the resource and navigation bar across the top stayed centred, while everything below it — the log, the colony, the market — was pushed to the right, with a corridor of empty space between the chat panel and the content. On a 2560-pixel screen the game sat 261 pixels off from the bar above it.
Now the chat only pushes the game as far as it actually needs to. On a screen wide enough to fit the whole game past the panel, nothing is pushed at all: the game lines up exactly under the bar, the way it does with the chat closed. On a laptop nothing changes — the chat still takes its lane, and the Base screen keeps the same room it had.
1.0.0-beta.208 — 2026-08-21
New
Deep Vaults — the Warehouse is no longer where the late game stops (#1107). A new Forge research doubles the storage capacity of every colony you own. At Warehouse 30 with Compressed Depots maxed, a colony went from holding 11,963,051,962 of each resource to 23,926,103,924 — and the doubling applies at every Warehouse level, including the free floor a colony has before you build one at all.
It needs Compressed Depots at 10 and Production Singularity at 3: it extends the storage line you already built rather than starting a new one. The Warehouse card names it beside the figure, so a ceiling that doubles overnight reads as your research and not as a glitch.
Changed
The tech Tree can now hold more than seven tiers, and the first of the Eschaton Depths is open. Tier 8 appears with Deep Vaults in it; the deeper rows stay hidden until they have something in them, so you will never see an empty tier promising content that is not there yet.
Anything the game sizes against your Warehouse grows with it, as it always has when you widened your storage — guild aid, the emergency crate, the war chest, and what a lost war costs you. Deep Vaults is worth about one and a half Warehouse levels on that scale, and it moves none of those rules, only the number they read.
Also
Your daily market intake limit already sits at its own ceiling from Warehouse 14 upward, so most empires will see no change there. Below that, it doubles with the rest.
Nothing changes for an empire that has not researched Deep Vaults: every cap, limit and reward is exactly what it was yesterday.
1.0.0-beta.207 — 2026-08-21
Fixed
Desktop chat no longer blocks the game (#571). Before, keeping chat open covered Base controls and the lower-left game area. Now chat keeps its familiar left position in a dedicated desktop lane, so the game stays interactive; minimizing it restores the full-width layout. Phone chat is unchanged.
1.0.0-beta.206 — 2026-08-21
New
The map now tells you where the contested worlds are.
The system dropdown marks which systems hold one — 3 ◆, 6 ◆, and so on — so you can see which door to open before you open it. Fly to one and the world itself wears a gold ring, with its own name written beside it: The Cindergate, Ember Crown, Ashfall Reach. There is a new entry in the map key for it.
This mattered more than it sounds. The Event Sector is nineteen systems of eighteen planets, and six of those slots are contested — one per system, in six systems out of nineteen. Thirteen systems hold none at all. Unless you already knew the coordinates, walking the sector and finding one was luck.
Fixed
Until now the six were labelled "The Verge Watch" on the map — the name of the neutral garrison that holds a world nobody has captured. The same words on all six, indistinguishable from each other and from any other outpost. They read as their own names now, and a world a guild has taken keeps its name rather than reverting to the garrison's.
Also
The Contested Space panel still lists all six with their coordinates, and still tells you who holds what and for how long. What changed is that you no longer have to memorise a number from it and go hunting: the answer is on the control you were already using.
1.0.0-beta.205 — 2026-08-21
New
The Proving Ground (#1081). A season boss — The Sunless Vault — now stands behind the Season tab, and a damage board ranks who hits it hardest.
Throw your whole navy at it and find out how hard you actually punch. Nothing is spent and nothing is lost: the fleet never leaves, no queue moves, and you can strike as often as you like. Ships die inside the simulation and none of it is real. Until now there was no way to answer "how hard does my fleet hit?" except by attacking somebody and finding out the expensive way.
Only your best strike is ranked, and you are ranked against empires with a fleet the size of yours — four brackets, from Patrol to Armada, each its own race with its own top spot. At the close, the best strike in each bracket is paid in crates, bigger crates in the heavier brackets. A bracket only pays if at least two empires have struck in it: a race with one runner is not a race.
The result is fixed by what you send, so pressing again gives the same number until your fleet, your research or your refit changes. It is a bench for testing a build, not a slot machine.
Also
Battle reports now record how much damage each side actually dealt — the figure the board is ranked on, and one the reports could not produce before.
1.0.0-beta.204 — 2026-08-21
New
The ships have their lights on. (#1099) Until now a hull in a battle replay was lit only by the scene's lamps, so a ship turned away from them was a black silhouette — engines, windows and weapon ports were paint like any other paint. Ten of the thirteen modelled hulls now carry their own light: engine bells glow, port rows and canopies read as lit, and a ship in shadow looks like a machine that is running instead of a shape.
Where it shows most is exactly where it was missing most. A battleship crossing into the dark side of the field keeps its engine bank burning; a swarm of drones reads as a swarm of running engines rather than a cloud of pebbles.
Three hulls stay dark on purpose. The Ark, the Destroyer and the Monitor were never painted with any lit detail to find, and inventing some would have meant making up lights the art does not have.
Fixed
A destroyed ship no longer drifts through the rest of the battle with its engines lit. (#1099) Wrecks were being blackened everywhere except their lights, which stayed at full brightness — a burnt-out hull ended up more conspicuous than it had been alive. A wreck's lights now go out with it.
1.0.0-beta.203 — 2026-08-21
New
The six contested worlds are now structures on the map itself, not just in their detail panel.
Fly the event sector and you can see which planets are the contested ones without opening anything: where the other seventeen orbits carry rocks and gas giants, these carry built things — Ashfall Reach, The Cindergate, Hollow Meridian, Sable Anchorage, The Long Silence and Ember Crown, each turning slowly on its own orbit.
The sector already told you it was different — the green nebula, the pale star — but it never told you which worlds mattered. Now the map does.
Changed
They are drawn larger than the body they replace, and that is deliberate rather than decorative. A planet is a solid disc; a station is mostly empty space — a tower, a ring, a spire — so at the same size it reads as a scratch on the dark instead of a place. Twice the body, which is as much as fits between one orbit and the next.
Also
Nothing extra is downloaded to look at the map: a world's structure is fetched only when you actually visit the system that holds it, and it is the same model the detail panel already uses. Systems outside the six are untouched, and so is every other sector.
1.0.0-beta.202 — 2026-08-21
Also
No player-facing behavior changes (#562). Planet-trait safety checks now cover the galaxy's full configured depth and independently guard shallow and deep slots, so future depth expansions cannot silently escape the existing distribution checks.
1.0.0-beta.201 — 2026-08-21
Changed
The Assault Swarm is now the Splinter Lance, and it finally looks like itself. Yesterday's release gave this ship a 3D model but left the picture on its card showing the hull it used to have — the two were plainly different craft, and the name still described a formation while the model showed one. Both are fixed. The card, the hero image and the ship you see in battle replays are all rendered from the model itself now, so they cannot drift apart again, and the name matches what you are looking at (#1088).
Nothing about the ship changed in the game: same cost, same stats, same counters, same place in the tech tree. Your fleets, your build queues and your old battle reports are untouched — only what it is called and what it looks like.
Fixed
The Research panel promised a screen that does not exist. The Monitor Frigate's node said it screened against this ship. It never did — the Monitor does no extra damage to it at all, and in a mixed fight will shoot almost everything else first. If you built Monitors to hold off a wave of these, they were not doing the job the card advertised. The node now names what the Monitor actually counters: corvettes, interceptors and bombers (#1088).
Also
If you read yesterday's notes and went looking for the Assault Swarm, it is the same ship — open the Splinter Lance instead. Yesterday's entry also said the artwork still did not match the model; that is what this release closes.
1.0.0-beta.200 — 2026-08-21
Fixed
Wanted hunts keep their political-map context (#544). Opening a commander from the Wanted board now shows their planet without switching map modes, so closing the sheet returns to the same board.
Wanted rows disclose missing Power data (#544). When either side lacks a Gate reading, the row now says that the Power comparison is unavailable instead of silently looking evenly matched.
1.0.0-beta.199 — 2026-08-21
Fixed
Battle contracts explain every scoring boundary (#534). The “Win 3 battles” card now states which PvP roles count, how destroyed fleet value is divided in raids, and how the claim-time production floor and cap are applied. It also keeps that rule visible when a completed-looking card may be rechecked at claim time.
1.0.0-beta.198 — 2026-08-21
Nothing changes in the game this time. No new building, no rebalance, no screen you have not seen before — this release is a floor under the combat engine, and the best possible outcome is that you never notice it.
Fixed
A battle can no longer run forever (#1051). Since the six-round clock was removed, battles end when they are decided — a fleet destroyed, an attacker breaking off, a siege that cannot out-drain a shield. Those rules are good ones, and they have always ended every real battle. But each of them is an argument, not a guarantee, and if one of them ever had a gap the fight would not produce a wrong report: it would freeze the server for everyone, mid-battle, with no error and no way back except a restart.
There is now one last rule underneath all of them that simply stops. It sits far above anything a fleet can reach — the longest battle the engine can be made to play is about 40,800 rounds, and the new limit is 25 times that, so no attack you can launch will ever meet it. If it ever does fire, the battle report is marked, so we find out instead of guessing.
Also
The bench that measures how long battles run was counting them wrong: it read the stored report, which keeps only the first 60 and last 20 rounds, so a battle of a million rounds looked like eighty. It now counts the rounds actually fought.
1.0.0-beta.197 — 2026-08-21
New
Contested worlds are no longer drawn as planets. Tap one of the six in the galaxy and you now see its own structure — a built thing, turning slowly against the dark, different for each world.
They were spheres until now, which was the one thing a contested world is not: a station is not a rock, and the panel had been showing a rock. Ashfall Reach, The Cindergate, Hollow Meridian, Sable Anchorage, The Long Silence and Ember Crown each have their own.
And the panel says which one you are looking at. The six have had names since the day they opened, and the detail panel never showed them — the only place you could read them was the Events tab. Now the world's name sits at the top, next to its coordinates.
Changed
The picture is bigger on a phone, where there is room for it. A sphere reads at any size — it is one circle — but a structure's meaning is its shape, and at the old size the panelling on these simply disappeared. On a phone held upright the panel now puts the structure above the text instead of beside it, so it gets close to the full width. On a short phone, or one held sideways, the layout stays as it was: there is no room there without pushing the buttons off the bottom of the screen, and a smaller structure is better than a button you cannot reach.
Also
Nothing is downloaded until you actually open one of the six, and each structure is about a megabyte — roughly what one of the ship models costs. The rest of the galaxy is untouched.
1.0.0-beta.196 — 2026-08-21
Fixed
The weekly battle card now tells you which wins count (#534). "Win 3 battles" could sit at 0/3 after a victory you had just watched, and nothing on the board or in the game explained why. The card now carries the rule under its title: only PvP wins count, and the win has to destroy enough enemy fleet value to clear a threshold scaled to one hour of your production, never below 1,000 and never above 20,000. Same treatment the trade card already had — the condition is there before you commit a fleet, not discovered after you have spent one.
Also
Nothing else changed. No rule, reward or threshold moved: the engine counts exactly the battles it counted yesterday, and this release only puts the existing condition on screen.
1.0.0-beta.195 — 2026-08-21
Changed
Battle replay: the ships are lit by the sky around them, not only by lamps. (#1076) Until now the hulls in a replay caught light from four fixed lights and nothing else, so their metal had nothing to reflect and read as flat painted panels. The battle now builds a faint sky from its own lighting, and the ships reflect it: edges catch highlights, curved plating separates from the background, and the models look like the metal they were built as.
Being honest about the size of it: this is a refinement, not a new look. Measured across the whole frame it is about a percent and a half brighter, concentrated on the hulls themselves — noticeable side by side, easy to miss otherwise. The bigger step, making engines and windows actually glow, is still to come.
Also
Nothing else in the game changes. No balance, no costs, no rules.
1.0.0-beta.194 — 2026-08-21
New
The Assault Swarm finally has a hull. It was the last light ship still shown as a flat card: everywhere else in the fleet you can spin a ship in the Shipyard and watch it fly as a real shape in a battle replay, and the Swarm could do neither. Now it can — turn it in the Shipyard well, and see it as a solid craft in the replay, like the twelve ships that got there before it (#1078).
Fixed
A replay with Assault Swarms in it could refuse to open. When a ship's artwork fails to arrive, the game falls back to a simple built-in shape so the battle still plays. For the Assault Swarm — and only for that one ship — that fallback shape could never actually be drawn, so instead of a plain-looking swarm you could get a replay that would not start at all. It had been that way since the ship was added (#1078).
Also
The Assault Swarm's card illustration still shows the design the ship had before, so for now the 3D model and the picture beside it are not quite the same craft. Matching the artwork to the new hull is the next piece of this work, not part of this release.
1.0.0-beta.193 — 2026-08-21
Changed
On a wide screen the Colony tab is now two columns. The colony's identity and its stockpiles sit in a rail on the left; the advisor, the build queue, the fleet and the whole buildings list get the space on the right. Before, everything was one long column: on a 1440px monitor the buildings list started below the fold, and the resource cards you had already read were what you scrolled past to reach it.
On a narrow screen the order changed too. The advisor — the panel that answers "what do I upgrade now" — comes second, straight after the colony's name. It used to sit behind roughly 330px of resource cards and two more panels. The cards still say everything they said; they are simply no longer in the way of the answer.
New
The buildings list has family filters: All, Production, Military and Civic, each carrying the number of buildings it will show for this colony. They use the same three colours the Base map uses for the same three families. The filter follows the colony you are looking at: switch colony and it resets, so you never arrive at a screen that looks empty because of a choice you made somewhere else.
Fixed
An iPad in portrait stretched each building onto its own full-width row where two fit comfortably. The list now fits as many columns as the width allows, at every size.
A colony with a long name pushed a horizontal scrollbar into the left rail. Long names now wrap instead.
A colony you have just founded, with nothing built yet, said "nothing in this category" over a "Show all" button that did nothing. It now says plainly that there is nothing built here yet.
Switching colony no longer shows a flash of the previous colony's filter before it resets.
1.0.0-beta.192 — 2026-08-21
Fixed
The Weekly Chest no longer opens under your finger (#1069)
Collecting your fifth Daily Wrap of the week is what earns the Weekly Chest — and the board refreshes the moment you collect. So the chest appeared, with an Open button identical to the one you had just pressed, in the same list, right under your thumb. A second tap landed on it, and the chest was spent before anyone decided to spend it.
Opening a chest now takes two deliberate taps. The first arms it; the row then shows Open chest and Cancel, with Cancel in the spot Open used to occupy — so a repeat tap in the same place cancels instead of opening. The warning sits above the buttons, so a tap at the old height hits nothing at all.
The chest now tells you what it will cost before you open it (#1069)
The chest pays production hours from your whole empire into a single warehouse — your home colony's. On a large empire that can be more than the warehouse holds, even when it looks far from full, and the overflow is simply lost. The only warning before was "your warehouse is nearly full", which stays silent in exactly that case.
The confirmation now says it plainly: roughly what the chest pays, roughly how much would not fit and would be lost, and whether a chrono shard arrives at all. If it does not fit, the chest will wait — spend or upgrade first, then open it. It also warns you what waiting costs: earning a newer chest converts this one's shard for good.
1.0.0-beta.191 — 2026-08-21
Fixed
The launch panel says the travel estimate can be beaten by your guild (#526). A player in a guild read 8m 14s on the mission launch panel, sent the fleet, and watched the in-flight card count down 6m 22s on the same mission — two authoritative numbers two minutes apart, reported as a bug. Nothing was broken, and the fleet was never the slower one: the panel works out its estimate from what your browser knows, and the server then counts things your browser cannot see, above all the Hypergates of your guildmates — gates in systems you may never have visited. Those can only ever make the trip shorter. Nothing on screen said so. Now, if you are in a guild, the launch panel adds one line under the travel time: the server also counts guild bonuses and your guildmates' Hypergates, and both can only shorten the trip, never lengthen it. A player with no guild sees nothing new, because for them the estimate is simply the estimate.
It appears on every kind of mission, attacks and espionage included. Your own Hypergates only speed up logistics runs, but your guild's gate network and travel bonuses apply to everything you launch — which is exactly where an early arrival is least expected.
The line is careful about what it promises, and deliberately does not say your guild will beat the estimate: a guild with no travel research, no forward drydock, no Jump Ring and no guildmate gate has nothing to add, and its flights land on the estimated second.
"Your guildmates", not "your allies": this is your own guild's network. An alliance pact signed with another guild in the Diplomacy panel does not open their gates to your fleets.
What this does not change: the Hyperspace −N% badge still shows only the discount your own gates and relay account for. The rest is known only to the server, so the real saving on a route can be larger than the badge claims — the new line is what tells you that figure is a floor and not the whole of it.
1.0.0-beta.190 — 2026-08-21
Fixed
The campaign tower can no longer be climbed by an immortal flagship (#1052). An empire whose roster carried the singleton Destroyer could climb the tower ~150 levels past every intended wall: the garrison counted as a single opponent, so the Spectral Bulwark's last-ship floor — a PvP protection — armed in PvE and the flagship simply could not die (in production one empire reached depth 235 on battles of 232,000 rounds). The tower garrison now stands as two watches and counts as a coalition, so the floor never arms in the campaign: the flagship fights and dies like any hull. The measured walls with a mortal flagship: day one ~L29, maxed research ~L45, full tech tree with the Destroyer ~L95 — and the same garrison fights the exact same battle as before for every other fleet.
The pre-engage forecast tells the truth again (#1052). It now simulates the same defender the server fights: a Destroyer roster past its real wall no longer reads "Clear win · 3/3 sims" on levels the server refuses.
Changed
Campaign replays name the tower's two watches for what they are — W1 / W2 chips on the rail, "First watch" and "Second watch" on the cards — instead of borrowing "Home" and "Relief 1" and counting the tower as "2 fleets" in the finale, a homeowner and a relief fleet the tower never had.
Also
Depths already cleared through the hole stay cleared: the fix changes what can be climbed from now on, not history. An empire far past its mortal wall will find its next level holds until the fleet genuinely outgrows it.
On the installed iOS app the pre-battle forecast keeps the old math until the next TestFlight build; the battle outcome the server returns is the authoritative one everywhere.
1.0.0-beta.189 — 2026-08-21
New
Anomaly signals: the list the map could never be (#524)
Finding an anomaly meant reading the political map by eye. Eight sectors, nineteen systems each, and at low Astrometrics most of those screens hold nothing — the sky shows you 2 + Astrometrics/3 signals per sector, so the sweep is mostly empty space. The players who checked least often paid the most for it.
Galaxy now carries a list. Every system with a signal you can see, one badge per signal, sorted by tier or by distance from home. Tap a row and you are in that system, on the slot, ready to plan the expedition. On the desktop it sits above the map already folded, and its header alone tells you how many signals are out there; on a phone it is a chip that opens a sheet, next to Wanted and Targets.
Nothing about what you can see has changed. Astrometrics still decides which tiers reach you and how many, exactly as before — the list only shows what the map was already drawing as a dot, and finding the exact planet still means opening the system, same as always. What is gone is the sweep.
Two things the list does not do. It does not name the outcome type, even with the Deep Observatory built: that reading lives on the planet's own card, one tap further in, and it has stayed there. And it does not appear at all when nothing reaches you — there would be nothing to open, and the note on the map already explains why the sky is quiet.
1.0.0-beta.188 — 2026-08-21
The Empire Overview now opens by telling you which colony is waiting on you, instead of leaving you to find it.
New
Needs attention (#522). The top of the tab now names the colonies that want a decision: a build queue standing idle, a warehouse at its ceiling throwing away everything it produces, a shipyard with nothing on the slipway, a siege one attack from razing the colony. One chip per colony, worst first, and tapping it takes you there. Every one of these facts was already on the tab — it was just printed at the same weight as everything else, so a six-colony empire never said which colony to look at. When nothing is wrong, the section is not there.
The colonies line up. On a wide screen they are a table: stock, energy, build queue, shipyard and defences run down columns you can compare at a glance. On a phone and a tablet they stay cards, because a table that does not fit is worse than no table.
The empire tiles say when you are overflowing. Each resource now shows the total warehouse ceiling it is filling, and — when it applies — how many colonies are sitting at their own cap. A total at 68% can still hide three colonies discarding every unit they make.
Fixed
Energy could read "1397 / 1397" in red. The tab printed the two figures truncated while deciding the colour on the rounded ones, so a colony perfectly in balance could show two identical numbers under an alarm. Same bug as #457, on a screen that did not exist when #457 was fixed.
The colony table was cut off on tablets. On an iPad in portrait the Defences column and the whole Base / Colony / Shipyard button group ran off the right edge with no way to scroll to them. The tab now decides between the table and the cards by whether the table actually fits.
A running ship order could vanish. If a raid levelled a shipyard while an order was building, the Overview stopped showing the order at all.
"No colonies yet" when the list simply failed to load. A failed request now says so, and the totals show a dash instead of asserting you own nothing.
Fleets in flight said "0 active" while still loading, and kept saying it if the request failed.
The tab could go blank on older iPhones. On iOS 15.0–15.3, a colony with two or more resources at the cap crashed the whole tab.
Changed
On a phone: your fleet is listed by hull type again, the per-colony Base / Colony / Shipyard buttons are big enough to hit, and each colony's stock shows the real figure and its ceiling rather than a bare percentage — 62% of a small warehouse and 62% of a large one are not the same amount.
Dark Matter uses the same violet as everywhere else in the game, and colony coordinates are written [3:17:4] like they are on every other screen.
Damaged emplacements no longer raise an alert. They repair themselves on a timer, so the count and its countdown stay on the colony's row where they belong, instead of asking you to do something about them.
1.0.0-beta.187 — 2026-08-21
Fixed
48 building sprites got their missing pieces back. The Particle Accelerator fix in the previous release turned out to be one case of a roster-wide problem: the background removal that produced the colony sprites had eaten the dark parts of most buildings — ground platforms, floors, side machinery, whole walls. The Recycler had lost its entire scrap floor, the Veil and the Silo their bases, the Hypergate its foundation, the Factory its dark floor plate, and most stage II/III looks were bitten the same way. Every one of the 78 sprites was compared with its source art one by one: 48 were re-cut with a mask that cannot punch holes in a building, and the rest were verified healthy and left untouched. Buildings now stand on their platforms instead of floating over fragments, and their upgrade looks match.
Buildings sit truer on their tiles. The re-measured art re-anchors each building on its cell, so several that hovered above their pad (the Hypergate most visibly, whose whole foundation is back) now rest on it, and the level badge follows the actual roof.
Also
The first time you open a colony after this update, the game re-downloads the refreshed artwork (a few MB) — one slower load, then it's cached again.
Where a building's upgrade stages read the ground differently (an art property of a few sprites), the building can shift slightly at the moment the stage art changes; each stage now stands correctly on its tile, which we chose over hiding the shift by mis-seating both stages.
1.0.0-beta.186 — 2026-08-21
New
Contested Space — the Event Sector is now guild territory. Sector 9 holds six worlds you can take and hold with your guild: Ashfall Reach, The Cindergate, Hollow Meridian, Sable Anchorage, The Long Silence and Ember Crown.
Each world is held by a neutral garrison. Beat it and the world flies your guild's colours.
Holding pays. Every hour a world stays yours, your guild scores 60 points; taking one is worth 250.
Open at all hours. No window, no timetable — rivals can come for your worlds at any time, and you can come for theirs. The only pause is the hour after a capture, so whoever just won has time to move their fleets in before the counterattack.
You can garrison what you hold. Station fleets on your worlds the way you would defend an ally. When a world changes hands, the fleets of the guild that lost it stop fighting for it — they will not defend the flag that just replaced their own.
The season is now won by a GUILD. At the Eschaton the top three guilds pay out to every member who fought in the sector, and how much you receive depends on your own place on the season scoreboard. Third place in a winning guild is worth more than first place in a guild that did not place.
The garrisons are tuned to the strength of the field rather than to its single strongest empire — deliberately, so that these worlds are something a guild can organise around instead of something only one player could ever reach.
Two notes for the curious: worlds where somebody had already planted a colony are out of rotation for the season and show as "occupied", and a guild without a foothold in the sector cannot score there — this is a guild contest, and the panel in Events says so.
Also
The Event Sector had one participant in each of its last two seasons. This is the answer to that.
1.0.0-beta.185 — 2026-08-21
Also
Nothing changes in the game this time. This release is a fix to the tooling that puts the game on the server (#1056).
The deploy refuses to run when it would delete a file from the server that cannot be rebuilt — the server is not a copy of the source repository, so anything removed there is gone. It could not tell that apart from a file the new code deletes on purpose, so any update that removed or renamed a source file stopped halfway, with the change already accepted and the servers still running the previous version. That is what happened to the Season update, which had to wait for this fix before it could go out.
The check now knows which deletions the code actually asked for, and still refuses every other one. When it cannot be sure what the servers are running, it refuses them all, exactly as before.
1.0.0-beta.184 — 2026-08-21
New
The Season has its own tab (#1050). Events now opens on Log | Season. The season used to be squeezed into a narrow column beside the log on desktop, and into a gold strip you had to tap open on the phone; it now has the whole page, on both.
The Season tab tells you what winning is worth. A podium table, read before you play, showing exactly what the Eschaton Event pays:
| | prize | |---|---| | 1st | a Destroyer · 3 crates of 10M (one per resource) · 40 Dark Matter | | 2nd | 3 crates of 5M · 20 Dark Matter | | 3rd | 3 crates of 1M |
Dark Matter on the podium (#1050). First and second place are now paid Dark Matter as well as crates. It lands straight in your balance at the close.
Changed
The season no longer pays a share of your own stores. Until now the podium won 20% / 10% / 5% of whatever sat in its own mother colony. That prize was largest for whoever was already largest, and it was capped by your own Warehouse — so the fuller your stores, the bigger the prize and the less room to receive it. At full stores, first place was paid nothing at all. It is gone: the podium is paid in crates, which are the same size for a two-week-old empire and for the leader.
"Make room before the close" is no longer true, so the game stopped saying it. A crate keeps what does not fit: opening it credits what your Warehouse can take and the rest stays sealed for later. Nothing is destroyed by opening one, so there is nothing to empty out in advance.
Also
The end-of-season entry in your diary now names what you won — how many crates, of what size, and how much Dark Matter — instead of leaving you to count your resources to find out.
Older seasons in your diary still read exactly as they did: the prize they describe was a different mechanic, and nothing rewrote their history.
1.0.0-beta.183 — 2026-08-20
Changed
Battles now run to a decision — the 6-round clock is gone (#1006). A fight continues until one side is destroyed, breaks off, or the battle provably stalls. What you'll see:
A fleet that has lost two thirds of its value breaks off and brings the survivors home — the report card says "Attacker broke off" instead of leaving you to wonder why ships returned from a defeat.
The Shield Bubble regenerates during battle (a sixth of its strength every round). A siege is now decided by whether your fleet out-paces the regeneration — the old "hold for six rounds" turtle maths carries over as physics, and an attack that can't keep up is repelled on the spot.
A lone parked Destroyer no longer grinds two thirds off every visiting fleet: battles against a garrison reduced to the unkillable flagship end as the draw they always were. Bringing your own Destroyer with an escort no longer forfeits battles the escort was winning.
Unarmed ships don't stand under fire for thousands of rounds: a weaponless attack strikes its colors after one exchange, and helpless deployed ships surrender once nothing shields them.
The campaign wall moves. With fights running to their real end, the tower's measured walls are now ~L29 on day one, ~L45 at maxed research, ~L95 with the full tree and the Destroyer — the L76 stalemate that killed 97% of a garrison and paid nothing now resolves as the win it was (#1006).
Long battles keep honest reports: the opening and the ending stay in full detail, the middle is counted ("… 3,186 rounds pass …" in the replay), and the damage tables say exactly which rounds they cover.
Relic garrisons re-tuned for the new engine (gate 0.7 → 0.85 of the top military): the strongest player still cannot open one solo — the counterweight that makes relics a coalition fight survives the clock's removal.
Fixed
The replay no longer shows the Shield Bubble shattering in battles the report says it held, no longer re-shatters it twenty times on long sieges, and the round counter matches the Details panel.
Statics-only turtles (batteries and nothing else) are no longer invincible-by-whistle: a sustained siege cracks them.
Also
Joint-raid extra-round machinery deleted (it compensated for a clock that no longer exists); design docs updated. The reward ramp's interaction with the deeper day-one wall is flagged for tuning (#892 owner's call).
1.0.0-beta.182 — 2026-08-20
New
The battle replay is directed now (#1002). Before: one fixed wide shot for the whole battle, with most of a phone's screen empty sky. Now the camera works: an opening sweep along the attacking line, close shots that sit behind whoever is firing — so the space between the fleets runs into the screen and the ships finally fill the frame — a push-in when a squadron dies, and a pull-back for the verdict. Fast rounds share a two-side "exchange" framing so no salvo goes unseen; slow rounds get their own per-side shots.
Your hand always wins. Drag, scroll or pinch at any moment and the direction switches off for the rest of the replay — the camera stays exactly where you put it. Replay from the start and the direction returns. If your system asks for reduced motion, the replay keeps the calm fixed camera throughout.
Also
Battles fought entirely by modelled ships can tilt further toward top-down — the old tilt limit existed for the four classes still drawn as flat illustrations, and it now applies only when one of them is actually on the field.
On phones held upright the close shots lean down slightly so the line of fire runs along the tall side of the screen.
1.0.0-beta.181 — 2026-08-20
Fixed
A fleet coming home lands once, with the ships it actually has (#621). Two ways a return could go wrong, both narrow enough that nobody caught them in the act, and both now closed.
The same fleet could be credited twice. When a delayed job fired twice, or a retry raced the original, both runs poured the same ships into the origin colony's hangar — a free fleet, with nothing in the reports to say where it came from.
A garrison could come home from a battle it had already lost. If a battle landed in the instant between the return being read and the ships being deposited, the hangar was filled with the fleet as it stood before the shooting: ships you had just watched die in a battle report reappeared at home. The mirror case was as bad — a garrison wiped out entirely still deposited its full pre-battle strength.
Now the landing is checked against the fleet as it stands at that moment. If anything changed underneath — a battle, or another run of the same return — the deposit is undone and recomputed from a fresh read, so what reaches the hangar is the survivors, and it reaches it once.
Also
The same protection now covers a fleet landing in a refugee port during an exodus: two fleets arriving in the same limbo no longer overwrite each other.
Known
A garrison whose watch ends at the exact moment a battle is being resolved can still land early, or be banked while a battle is inbound. That is a separate defect in how a garrison's watch ends, it predates this change, and it is tracked in #1046 — this release does not fix it and does not make it worse.
1.0.0-beta.180 — 2026-08-20
Fixed
A guild officer no longer forgets what happened while they slept (#496). Before, when your guild crossed a Directive tier at a moment the officer on duty happened to be offline, the news simply evaporated: nothing was pinned when they came back, and a restart of the service lost it too. Now the unlock is recorded the moment it is settled, and the officer picks it up for the next day — and says it like someone catching up on what they missed, not like someone watching it happen.
The same for a war. A declaration that appeared overnight used to be pinned the next morning as if it had just been signed. It is now announced with its age, and the pinned order no longer claims to be about today when it is about last night.
Changed
A guild officer stays quiet at night, including when letting someone in. An application is still decided within minutes at any hour — nobody waits until morning to be admitted. What waits is the message in guild chat. A single line at four in the morning on a channel that has been silent since evening was the one thing that gave an officer away, and the welcome for a new member arrives instead at a believable hour, written properly rather than stamped from a template.
Also
New members are welcomed in the officer's own words or not at all: the canned "name got a seat with us." line is gone. It was the same sentence in every guild.
1.0.0-beta.179 — 2026-08-20
New
Each planet now lights its own colony (#472)
Until now every colony looked like the same colony. The ground under your base changed from world to world — a lava field, an ice sheet, a gas deck — but the buildings standing on it were drawn under the same neutral light everywhere, as if they had all been cut from one photograph.
Now the planet lights what you build on it. Walk into a colony and the whole base sits in that world's light: every building, at every stage, the placement preview included.
Lava worlds run hot — the strongest light of the four, coming up off the ground your base stands on.
Ice fields run cold.
Gas decks run deep amber, under the cloud layer overhead.
Rocky worlds barely move: that is the ground these buildings were drawn against in the first place.
Two things stay deliberately untouched by the light, because they are signals and not scenery: a level-0 blueprint keeps the same teal on every world, and the "you cannot build here" red on the placement preview reads identically everywhere.
And it stays a light, not a repaint — the art is the art, it is just no longer lit the same way on four different worlds. The four lights were tuned by measuring the actual sprites, so the difference is one you can see, not one that only exists in the code.
Also
The full version of the suggestion this answers — buildings actually redrawn per planet, molten metal on a lava world — would be more than two hundred new pieces of art, and is not in this release. Neither are the targeted re-skins of the buildings each world's economy already favours. The building thumbnails in the build menus stay neutral on purpose: those are pictures of a building type, and they should look the same wherever you are.
1.0.0-beta.178 — 2026-08-20
Fixed
The game would not open at all. For about 40 minutes this evening, opening novarchy.com showed only a page of text about the game — no name box, no Play button, no way in. Anyone already signed in got the same thing. The game itself was never affected: colonies kept producing, fleets kept flying, and nothing was lost. It was only the screen that failed to start. It opens normally again. (#1037)
Also
Nothing else changes in the game this time. The rest of the work went into making sure this particular failure cannot come back silently: the check that guards it now catches the ways it could be reintroduced, and two notes in the code that pointed the next person straight back at the trap have been corrected.
1.0.0-beta.177 — 2026-08-20
New
Empire Overview summary page (#522). A new Overview tab in the main Empire navigation group gives multi-colony empires a unified command deck. Before, keeping track of production, resource stockpiles, construction progress, defense emplacements, and stationed fleets required flipping through each colony screen one by one. The Overview screen shows:
Aggregated empire totals: Total stockpiles and net hourly production across all resources (Ferrolite, Xenogas, Data, Dark Matter), plus total stationed fleet counts and colony cap.
Per-colony cards: Name, coordinates, traits, resources relative to storage capacity (with overflow alerts), hourly income, energy balance, active building orders and free building slots, active shipyard orders and slip capacity, stationed fleet breakdown with ship thumbnails, planetary shields with remaining time, sensors, and defense battery emplacements with regeneration countdowns.
Fast jumps: Direct shortcuts on each card to navigate straight to that colony's Base, Colony, or Shipyard screen.
Active missions: An integrated view of in-flight fleets, destination coordinates, ETAs, and cargo hold contents.
Also
Cargo hold contents on active missions were already added in #307; this release completes the remaining scope of #522 by adding the unified multi-colony summary dashboard.
1.0.0-beta.176 — 2026-08-20
Fixed
Flaky clock-dependent agent test suites (#503): Runner test suites (test_runner_lega.py, test_runner_avamposti.py, test_anchorage.py, test_eventi_stantii.py) now freeze test datetimes deterministically instead of evaluating real wall clock at module import, eliminating intermittent test failures across time zones and night hours.
1.0.0-beta.175 — 2026-08-20
Changed
Agents prioritize closing daily contracts near completion (#500): On bulletin board visit days, agents with daily contracts one step away from completion (such as scouting) now prioritize launching the required mission rather than ignoring the contract.
1.0.0-beta.174 — 2026-08-20
Changed
The battle replay finally shows how big a fleet is (#1001). Before: every squadron was one ship on screen whatever it counted — 2.147 interceptors and a single corvette were pixel-identical, and a defence of thousands could look smaller than the raid hitting it. Now a group draws a wedge of hulls that grows with its ship count: that same defence reads as 36 hulls against the raid's 23, and the mass sits on the side that has it. Big battles stay smooth — the whole scene is capped at 120 drawn hulls and the explosion lights still come from the same fixed pool.
Losses thin the wedge while you watch. Each fallen hull explodes and drifts off as a wreck exactly like group deaths always did, the last hull holds on until the group is wiped — where the big explosion still lands — and even a 12.000-ship doomstack starts visibly losing hulls from its first casualties. The survivor bar keeps the exact numbers under the lead ship.
Wedges know their place. A formation never spreads into the neighbouring lane, a defender's tail stays inside the Bubble, and the fly-over at battle start clears the whole depth of both fleets, tails included.
Also
Ship illustrations in the replay compose more cleanly inside a formation: the grey halo that could bite crawling holes into hulls behind it is gone.
1.0.0-beta.173 — 2026-08-20
Fixed
Shipyard reload recovery (#487) — Before, a shipyard left open across a deployment could show a raw browser error and a Retry button that could never recover. Now, the screen explains that it could not load and offers a Reload button that fetches the current files.
1.0.0-beta.172 — 2026-08-20
New
Resource crates (#1012). A new kind of prize: a sealed amount of one resource — Ferrolite, Xenogas or Data — in seven sizes, from 100K to 100M. Crates live in Inventory → Stores and open into a colony of your choice. Opening stops at the warehouse cap, and what does not fit stays sealed in the crate: nothing is ever destroyed by opening — make room and open it again. The Eschaton podium now pays in crates on top of the resource share: 10M / 5M / 1M of every resource for ranks 1, 2 and 3. Grants and openings show up in your Activity feed, with the destination colony named.
A Destroyer every season (#1012). The one-per-empire limit is gone: every Eschaton winner receives a Destroyer, even if they already own one. Two hulls in one hangar fight as an ordinary stack — the Spectral Bulwark still protects only a lone hull — so how you split them across colonies is now a real decision.
Changed
Event-sector colonies cannot receive a crate: the Eschaton sweep would eat half the prize at season close, so the picker hides them and the server refuses them.
Also
The crate art is new: seven tiers, one look each, from battered steel to gold-veined obsidian.
1.0.0-beta.171 — 2026-08-20
Fixed
The Particle Accelerator got its dark half back (#1010). The building's sprite had lost most of its dark machinery to an over-aggressive background cut: the side piping, the roof blocks and the base modules were simply missing, leaving the accelerator looking like a fragment floating around its ring. The sprite has been re-cut from the original art with a mask that cannot punch holes inside the building, so the whole structure is visible again in your colony. Upgraded accelerators (the stage II and III looks) were checked and were never affected.
1.0.0-beta.170 — 2026-08-20
Fixed
Synthetic empires respect the human-war brake (#982)
Before, a synthetic leader could declare war on a guild containing players before tension reached the protected threshold. Now the declaration requires 55 tension whenever at least one person is in the target guild, while wars between synthetic-only guilds still unlock at the normal 40 tension.
1.0.0-beta.169 — 2026-08-20
Changed
The battle replay dropped its text clutter (#1000). Before: every squadron wore a standing name plate — often wider than the ship it named, and in a big raid twelve of them merged into one unreadable diagonal ribbon — plus a round banner across the top and a shield panel over the bottom. Now the scene shows the battle: ships and their survivor bars, and nothing else standing. Tap a ship to see its plate for a moment (a hint teaches this the first time); in raids, a small squadron rail summons a whole squadron's plates; a group that dies announces itself. "Orbital cannon" and "No resistance" still get their moment on screen.
Rounds moved into the progress bar. Each round start is a tick, and the counter next to it shows which round you are watching — the big ROUND banner no longer covers the fleet.
On phones the replay is edge to edge. The header and footer rows are gone: the close button and the controls float over the battle, and the Bubble/Emplacements summary lines — duplicates of the battle report — left the modal. The planetary-shield readout became a slim strip in the corner.
Also
The deployment's lanes are now sized by real hull footprints instead of by the name plates that no longer exist, so small battles draw tighter, denser fronts.
The end-of-battle card can be scrolled with the mouse wheel when its details run long, and taps or pinches over it drive the camera like anywhere else.
1.0.0-beta.168 — 2026-08-20
Changed
The galactic channel is quiet now, and it answers when you speak (#999). In a typical day the channel carried 271 messages and 255 of them were written by synthetic empires: battle reports on fights you were not in, boasts about relic fragments, league trash talk, small talk started because the room had gone quiet. Scrolling it meant scrolling past other people's machines. From this release the empires say none of that. They speak in the galactic channel only when a person has spoken to them.
Name a commander and that commander answers (#999). Type their name, press "reply" on one of their lines, or name their guild, and you get an answer from the one you addressed rather than from whoever happened to be awake. Addressing someone directly no longer waits for their quiet hours. Name a guild instead of a person and exactly one of its members answers for it, instead of nine at once.
The conversation keeps going without you repeating the name (#999). Once an empire has answered you, your next messages reach it for about a quarter of an hour. After that, name it again.
Empires no longer answer each other in public (#999). The long exchanges between two machines that filled the channel between human messages are gone: a name typed by another machine buys no reply.
They write like people again (#999). Replies come back as one line, the length they have always been, instead of the three-paragraph answers the new model wanted to give.
Also
Two things still get said without being asked, because silence there would be stranger than speech: an empire whose colony has just been razed reacts to it, and a declaration of war, an ultimatum or a surrender is announced by the leader who made it. Both are rare, and both are events rather than commentary — an ultimatum nobody announces is one you would only discover from a number changing in a panel.
The guild channel and private whispers are unchanged: guildmates still talk among themselves, a whisper still gets a reply, and it now comes back in the same voice as the public one. The galactic bulletin still reports what happens in the galaxy.
Nothing about what empires do has changed. Wars are still declared, raids still launch, and a threat typed at an empire is still remembered and still answered with ships. What stopped is the commentary, not the consequences.
1.0.0-beta.167 — 2026-08-20
Changed
The colony's defences are built things now, not placeholder shapes (#997). In a battle replay, a defended colony fields its Emplacements and its Fortress in the front rank. Until now those two stood there as rough grey volumes — a generic fighter shape for the Emplacements, a generic capital shape for the Fortress — while every ship around them was a real hull. They are modelled: the Emplacements as squat turret satellites with their solar wings out, the Fortress as the four-cornered orbital citadel it is described as, and it is the widest thing standing on that line. Watch any replay of an attack on a colony that has batteries or a Fortress.
Also
Both models download in about the same weight as a single warship, so opening a replay does not get slower. If one fails to arrive on a poor connection, that defence falls back to the old grey volume and the battle plays exactly as before — nothing is ever missing from the field.
1.0.0-beta.166 — 2026-08-20
Changed
The Shipyard now tells you what would have made the wait shorter (#986). Ordering a large batch of ships books the yard for as long as the hulls cost, and the sheet used to say only that the order could not be cancelled. It never said what you could do about it. It does now: alongside the warning, it names your Shipyard and its level as the thing that shortens every hull — and it says the upgrade reaches the ships already building, because raising the yard while an order is in the slip speeds that order up. Waiting for the upgrade before ordering is the slower of the two, and the sheet no longer implies otherwise.
The warning starts a day earlier. It used to appear only past 24 hours, so any order between 8 and 24 hours committed a slip in complete silence — even though every one of them outlives the session that placed it. It now speaks from 8 hours up.
It stays quiet when it has nothing useful to add. No Shipyard on that colony, every slip already busy, a yard at its cap, or a next level that would not take an hour off the order you are looking at: in all of those the sheet says nothing rather than repeating advice you cannot use. It does still appear when you simply cannot afford the order yet — that is exactly the moment you are deciding whether the wait is worth it.
Also
If a 31-hour order surprised you, it is worth knowing the wait is not fixed: the same 169 Monitor Frigates take 31.9 hours at a bare Shipyard 2 and 3.8 hours at Shipyard 20 with the shipyard research, Cybernetics and a Nanoforge behind it. Splitting a batch across free slips helps too — they build in parallel, and the sheet has always said so when you have more than one free.
Pointing you at a different colony whose yard is idle is not in this release: getting that right means weighing the flight home, that colony's own resources and its own shock, and a half-right version would send you somewhere slower. It is tracked separately.
1.0.0-beta.165 — 2026-08-20
Changed
Commanders no longer all read their messages at the same speed (#890). Every synthetic empire used to answer a private message on exactly the same schedule as every other one — same typical wait, same tail, all seventy-five. Now some get back to you inside a minute or two and some take the better part of twenty minutes, and which is which stays the same commander to commander. If you have been writing to several of them, you will notice the difference between the quick correspondents and the slow ones.
Two machines arguing no longer stop on the same beat every time (#890). The point at which a back-and-forth between empires runs out of steam now moves around instead of landing on the identical number of lines in every single exchange.
Also
Neither change makes the empires chattier. Private replies come slightly less often on average than before, and public chat is unaffected.
The part of #890 about how quickly an empire answers when you name it in the galactic channel is not in this release. It was built, measured, and left out: someone always answers a message that names an empire, so changing the odds for the named one did not alter anything you could actually observe. That half is being reworked separately.
1.0.0-beta.164 — 2026-08-20
Fixed
A note to ourselves that was not true (#993)
Nothing here changes the game. It corrects the repo's own paperwork, and it is in this log because the previous release (beta.163) fixed a check that had stopped recognising this very page — and then explained itself, four times over, with a sentence that was wrong.
That sentence said the safeguard runs "in CI", meaning automatically on every proposed change. This project's automated-checks workflow has been switched off for a long time; every green is produced by hand before a release goes out. So the sentence described a safety net that is not there. The safeguard is real and does run — as part of the checks that must pass before anything ships — but that is a different claim, and it is the one now written down, along with the one place in the process that skips those checks.
The reason to spend a release on a comment: this is the same failure as beta.163 itself, one level up. Two halves of something that must agree, drifting apart, with prose asserting they still do. A note that says a thing is protected when it is not is worse than no note, because the next person believes it.
1.0.0-beta.163 — 2026-08-20
Fixed
Releases can reach you again: the ship's own check had stopped recognising this page (#987)
Nothing a player could see was ever broken here, and the changelog has been serving correctly all along. What broke is the last step of shipping anything else.
Before every release goes live, the deploy fetches this page and checks it is really the changelog — not the game's login screen, which the server would also answer with a cheerful "200 OK" if the page were missing from the build. The only reliable proof is the page's title. On 20 August that title was reworded from «Novarchy — Changelog» to «Changelog — Novarchy», and only one of the two sides that have to agree was updated. From that moment every deploy in the repo stopped at the smoke step, reporting a page it did not recognise, on a production that was entirely healthy.
The check now recognises the page again, so releases flow. And the two halves are held together by something that runs on every change, in both directions: rewording the title fails loudly, and so does quietly widening the check to accept more than it should — the direction that would otherwise have looked fine while the check silently stopped doing its job.
If you are reading this entry at all, it worked: the release before this one had been finished and live for hours with no way to announce it.
1.0.0-beta.162 — 2026-08-20
Fixed
Guild bonuses no longer show a number they are about to change (#950)
In the first moments after opening the game — before your guild finished loading — anything your guild improves was shown at its base value, and then quietly corrected once the guild arrived.
If your guild holds a Science keystone, that was not a bonus arriving late. It was the wrong number, printed and then contradicted:
opening a secondary colony's Laboratory in that window, the sheet said "secondary Laboratories count half … lvl 6 is what raises the network". A moment later that whole line vanished — with the keystone the level does raise the network — and a green gain appeared in its place. Two opposite answers on the same panel, the one with the Upgrade button on it;
the planet card and the mission sheet promised "Up to 5 explorations per day" to commanders the server actually grants six.
Now the game waits instead of guessing. During that moment the Laboratory's research row reads "— (checking…)" with a line saying your research network is still loading, and the recon-cap sentence simply is not there. Each fills in once, correct the first time. Nothing else on the card changes: the price, the build time, the power cost and the Upgrade button are where they always were.
If you have no guild, nothing changes for you at all — "no guild" is an answer, and your numbers were always right. If your other colonies have no Laboratory, nothing changes either: your guild's keystone cannot move a network you do not have, so there is nothing to wait for.
And if the game cannot reach your guild at all, it stops waiting after a few tries and shows the ordinary numbers rather than leaving those lines blank for the whole session.
1.0.0-beta.161 — 2026-08-20
Fixed
Bot guilds stop holding war councils about their own allies (#885). If you have ever watched a bot alliance's chat, you may have seen the same scene on a loop: every eight hours the guild opened a war council about a neighbour — "the standoff with them: strike first, demand reparations, or wait them out?" — and then nothing ever happened. It could not happen. The guild had a standing peace pact with that neighbour, and the game refuses both war and reparations while a pact holds. The council was picking its crisis by tension alone, without ever asking whether it was allowed to act on it.
It also went quiet everywhere else while that was going on. A council weighs one neighbour per sitting, so as long as the pact held the floor, the guild made no move toward anyone — and never got round to its own business either: which branch to research, the Council directives, a Fund running dry.
Councils now only take up neighbours the guild can actually do something about. Those guilds talk about their own house again, and their dealings with real rivals unfreeze.
A bot leader whose truce ran out is no longer disarmed for good (#885). Paying reparations buys 48 hours of peace. The bots were reading that as forever: once a truce had been bought, the timestamp stayed on the record and the leader never acted toward that neighbour again, no matter how much later it was or how far relations had soured since. They now read the clock, so the peace lasts exactly as long as it was paid for — and not one hour more.
Changed
A strained pact is now described as strained (#885). What a bot knows about its own alliances read the same whether things were calm or the two of you had been trading threats all week. Ask one about a neighbour it had a pact with and it would tell you all was well. It now knows the difference, and will say so — while being clear the pact is still holding. Under a pact nobody can attack anybody, so it stays out of the language of open war.
Also
Bot guilds bound by a pact still keep the pact. Nothing here lets them tear one up: that remains a decision only a leader makes, and the bots have no way to make it.
1.0.0-beta.160 — 2026-08-20
New
The changelog is reachable from inside the game (#883). novarchy.com/changelog went up with the last release, but the only link to it was on the login screen — which you stop seeing the moment you are logged in, which is to say: everyone who actually reads patch notes never saw it. There is now a Changelog control next to Discord in the header on a computer, and a row in the Command sheet on a phone, above log out.
Also
On a narrow window the row of controls in the header now wraps to a second line instead of pushing log out off the edge of the screen.
1.0.0-beta.159 — 2026-08-20
New
First Steps carries on to the market (#961). The guided chain used to stop at Command Center 3 and go quiet, and the measurement said that is where a lot of people stopped too: of the 114 players who collected every step, 43 were still at Command Center 3 days later — 40 of them more than a day old — holding an average of 4,179 resources against the 1,227 the next level costs. They were not saving up. Nothing in the game had ever told them the Command Center was the thing to buy.
The chain now runs three steps further: Command Center 4, Command Center 5, and the Trade Portal. That puts the market — the one early thing to do that involves other people rather than a timer — inside the tutorial instead of hours past it. It is about nine minutes of building, and it costs less than the chain has already paid you, so it is direction for resources you are already holding rather than a new grind.
Changed
The advisor stops hiding the Command Center. The "Suggested next" panel ranks by payback, and the hub never wins on payback — at Command Center 4 and 5 it was scoring zero and being dropped from the list entirely, on exactly the two levels that open the market and the second colony. It now says what the next level unlocks, and what it costs, as its own line above the ranking. The ranking itself is unchanged: the panel still tells you the fastest-paying upgrade first.
It also prices the hub properly for the first time. A second Site — a duplicate extractor or refinery, the strongest economy move in the early game — was worth nothing at all to the level that unlocks it. Now it counts, so the Command Center shows up on its own merits when it deserves to.
The Command Center's card shows two levels ahead, not one. At Command Center 3 that means you can see that level 5 opens the market before you have to go looking for it.
Fixed
Players who had already finished the old chain keep everything they had. Growing the tutorial could have closed the Contracts board, put out the daily-contracts dot and taken away the "Find your guild" card for everyone who finished before today. It does not.
Nobody loses a reward they earned. If you have collected steps waiting — including a step you cannot collect right now because your fleet is away — the chain stays open until you take them.
The onboarding funnel stops overcounting. An internal measurement was reading "this was already true before we started watching" as "the player got here". Only the admin dashboard shows it, but it is the number this change will be judged by.
1.0.0-beta.158 — 2026-08-20
The battle replay and the battle report are one click apart, on the same row of Activity. Until now they told different stories about the same fight.
Fixed
The Fortress was invisible in the replay (#948). A colony defended by an Orbital Fortress showed shots flying into a bare point on the defence line, and return fire coming back out of it — no hull, no sparks, no counter. The finale listed your Emplacements and never the Fortress, while the report a click away printed Fortress 1 → 0. The Fortress now stands on the line as the heaviest thing on it, fires its own artillery, loses pieces as it is shot at, and gets its line in the finale.
The Orbital Cannon's kills landed on the frame the verdict did (#948). The Cannon fires before the first round, so the ships it destroyed appeared in no exchange: their card sat full for the whole battle, then dropped in one jump — explosion and grey-out arriving together with VICTORY. The Cannon now has its own beat before round 1, where it actually fires, and the counters go down there.
"No resistance" over a fight that cost you ships (#948). A colony whose only defence was the Orbital Cannon produced no rounds at all, so the replay announced no resistance — and then your fleet lost ships three seconds later, on the same screen. A colony that fires its Cannon is not undefended, and the replay no longer says it is.
The Cannon's tally was wrong in raids. "Orbital cannon: … · N ships lost" counted only the last squadron's dead when two squadrons brought the same ship type. On the case measured for this fix it read 112 where 179 had died. The report now counts all of them, and records which squadron lost what — so a raid's replay scales the right squadron's card.
Also
Reports written before this update keep the old, undercounted Cannon tally, and the replay deliberately refuses to guess which squadron lost those ships: on those older raids the losses still land on the final frame. New battles are exact.
The Fortress borrows the Emplacements' art for now — it is the right size on the line, but it is not yet its own picture.
1.0.0-beta.157 — 2026-08-20
Fixed
A building's level number could be sitting on the building in front of it (#959). In a dense colony you could hover a Ferrolite Extractor, read «Site 3 · lvl 11» in the tooltip, and see a 9 printed on that same sprite. Both numbers were right — they belonged to two different buildings. The colony is drawn in perspective, so the building one step nearer the camera is painted over the one behind it, and the number behind it was being painted on top regardless.
Two things changed. Every level number now sits where it was always meant to sit on its own building — until now they were drawn a little lower than intended, by an amount that grew with the height of the building, which is why tall stage-II and stage-III neighbours were the ones that caught them. And where a nearer building genuinely covers the spot, the number now steps aside instead of lying about whose it is.
A hidden number is never a lost one: it is still on the building's hover tooltip, in its panel, and on every row of the build menu. In a fully packed colony about one badge in five steps aside; before this, about one in four was on the wrong building.
Also
The report was that the sprite measurements had gone stale. They had not — every one of the 78 building sprites still measures exactly what the game records for it, and two existing checks would have caught it otherwise. The cause was elsewhere, and the fix is in the geometry rather than in the art.
1.0.0-beta.156 — 2026-08-20
New
The changelog is a real page now: novarchy.com/changelog (#856). Every release, oldest to newest, written the way these notes are — what you saw before, what you see now. Until today the only patch notes you could read were whatever fitted inside a Discord announcement, and every link out of one pointed at a repository you cannot open.
Each release has its own address.novarchy.com/changelog#1-0-0-beta-117 opens straight at that release, so an answer in support can point at the exact change instead of describing it. A "Jump to a release" index at the top of the page lists every version; it starts closed, so the newest release is still the first thing you read.
Reachable from the game. The login screen's footer carries a Changelog link next to Privacy and Support.
Changed
The page is rebuilt with every release, so the notes you are reading now are on it from the moment this release is announced — not one release later.
Also
Citations like (issue #836, PR #839) keep their text on the page but are no longer links: the repository is private, so those links were a dead end for everyone reading them.
The four oldest releases (beta.1 to beta.4) are in Italian. They were written before the project moved to English, and they are left as they were written rather than rewritten after the fact.
1.0.0-beta.155 — 2026-08-20
Fixed
Saved fleet templates no longer vanish when you switch device (#966). Until now a template you saved lived in that browser and nowhere else: one saved on the desktop simply did not exist on the phone, and clearing your browser deleted it for good, with no warning and no way to get it back. Templates now belong to your commander. Save one anywhere and it is there on every device you play from, and it survives a browser cleanup.
Templates you already had are not lost: the first time you open the Missions tab after this update, the ones stored in that browser are added to your account.
Also
Nothing else changes in the Missions panel: the same ten slots, the same picker, and recalling a template still trims it to the ships actually sitting in your hangar.
1.0.0-beta.154 — 2026-08-20
Fixed
The Colony tab stops giving you two opposite answers about the same Laboratory (#953)
Your research network counts every colony's Laboratory, but it stops at twice your best one. Once it is sitting at that ceiling, buying levels on a smaller colony does nothing at all until your best Laboratory grows.
The Laboratory sheet knew that and said so: raising your best Laboratory is far cheaper. The Suggested Upgrades list, a couple of centimetres higher on the same screen, did not — it offered that Laboratory anyway, two levels at a time, and charged for both. Its button queues the build in one tap without opening the sheet, so if you followed the suggestion you paid for the pair and never saw the line telling you not to.
Now the advisor stays quiet about a Laboratory it should not be selling, and tells you why underneath the list: your research network is capped at double your best Laboratory: levels here add nothing until that one grows — raising your best Laboratory is far cheaper.
Nothing else about the advice changes. On a secondary colony below the ceiling, where a level is dead only because of rounding and the next one brings it back, the pair is still suggested exactly as before — and on the colony that holds your best Laboratory, the one you are being told to raise, the upgrade is still recommended at a single level's price.
1.0.0-beta.153 — 2026-08-20
Fixed
Stellar anomalies reach the whole galaxy (#937)
Anomalies only ever appeared in the oldest, most crowded corner of every sector. The weekly draw covered a fixed 120 planet slots — the galaxy as it was before it grew twice — while a sector actually holds 342. Roughly two thirds of the map could not produce an anomaly at all, and never had.
That old corner is also where every new empire starts, and it is almost fully colonised: a survey found the first three sectors sitting at 119, 120 and 119 of those 120 slots taken. An anomaly that appears on an already-colonised slot stays hidden, so most of each week's supply was born invisible exactly where the newest players were looking — while the emptier half of the galaxy, the half with room in it, produced nothing.
That is the real reason the Observatory so often looked bare, underneath the "the easy ones get taken on Monday night" explanation.
From Monday 31 August, the draw covers the whole sector. The number of anomalies per sector per week has not changed — still twelve — but they are now spread over the entire map instead of piling onto slots that are already someone's colony, so far more of them survive to be found. Measured across a year of weeks, about two thirds of every week's anomalies now land on ground that could never hold one before.
Nothing changes before that Monday. The current week keeps exactly the board it already has, and an expedition already in flight arrives at the anomaly it was launched at, even if it crosses the boundary.
Also
The Observatory's warning about when the next survey lands (#921, shipped in beta.143) was the visible half of this problem. This is the other half — the supply itself.
1.0.0-beta.152 — 2026-08-20
Fixed
The Pirate Beacon in your home system no longer outgrows you (#920)
The Beacon is where the game tells every new commander to learn to fight — the novice panel says so outright: train on them and keep it all. But a Beacon's gun emplacements grew with the age of the system, not with yours, and a system only ever gets one Beacon, seeded the day the first commander arrived there.
So if you registered into a system that had been lived in for a few weeks, your very first fight was against a fortress. On the live server right now, 70 of the 99 Beacons had already grown their twelve emplacements, and 178 commanders less than two weeks old were sharing a system with one.
That fight could not be won. Five starting interceptors beat a freshly seeded Beacon every single time; against twelve emplacements, twenty interceptors lose every single time — emplacements are built to shred light hulls. It was not a hard tutorial, it was an impossible one, and nothing you did caused it.
From this release, the Beacon in your own home system starts its clock the day you arrived. Its wall is as old as your command, not as old as the system — and it still grows, on your fourteenth day and again on your forty-second, so the siege lesson it was built to teach still comes. Just when you are ready for it, instead of before you started.
Nothing changes for established commanders: if you were already here before your Beacon was seeded, or you have passed its milestones, you meet exactly the wall you met yesterday. Every other Beacon in the galaxy keeps its true age for everyone — the relief is for the Beacon that is teaching you, not a soft target you can go hunting for. Settling a second colony next to an old Beacon will not soften it either.
Joint raids are the exception, deliberately. A raid always meets the Beacon at full strength, because a raid is not one commander's fight and the pack cannot be sized to its youngest member. If a Beacon is still your tutorial, opening or joining a raid on it is now refused with a clear message rather than sending your fleet into something your own scout report promised you would win. Strike it alone.
Your scout reports and the Fleet Advisor already speak the same language as the battle: the fleet the Advisor recommends is sized against the wall you will actually meet, on the phone app and in the browser alike, with no update needed.
One older report may still overstate a Beacon you scouted before this release — it will say you cannot win a fight you now can. Send one probe and the report corrects itself.
1.0.0-beta.151 — 2026-08-20
Fixed
The Shipyard opens on the Shipyard again, not on three notices (#904)
On a phone, opening a tab meant scrolling past a war line, a four-line shield paragraph and a three-line siege paragraph before reaching what you came for. They were always on and never changed, so by the ninth visit of the day you had read all of them and were still scrolling past them.
The shield and siege notices are now a single row of chips at the top of the tab — Under siege 2/3, Empire shield · 6h. The numbers you actually check stay in view; tap a chip and its full text opens underneath, on the same tab, right where it was. Tap again to close it.
Nothing is hidden for good: no dismissal is remembered, so a notice that still applies is there again next time you look.
A full siege bar is still spelled out in full. When the next lost battle can raze the colony, the line that tells you an allied garrison counts toward the defence that breaks the siege is not something you should have to go looking for.
On desktop nothing changes.
Also
The war line was already a single line on a phone and is untouched — collapsing it would have cost the opponent's name, which it prints when you are in one war.
Two notices further down the same stack, the first-steps panel and the guild prompt, are not part of this change: they sit above these ones and are still the tallest things on that screen.
1.0.0-beta.150 — 2026-08-20
Fixed
The Galactic Log was a market ticker (#914). With the economy busy, a burst of trades filled the whole public log and everything else — battles, colonizations, Eschaton sweeps, the War Week podium — dropped out of it within minutes. Tapping «Battles» to go and find them made it worse rather than better: the filters can only sort what the log already holds, so once the trades had taken every slot the filter answered with an empty page and looked broken.
Now every kind of event has a place in the log, whatever the market is doing. A recent battle, a colonization or a podium is still there under a wall of trades, and the filters have something to show again. Pirate raids and battles between players are kept apart too, so a night of hunting the Beacon no longer pushes the wars off the page.
Reported by QQQQ in the suggestions forum, with a diagnosis that turned out to be exactly right.
The War Week podium could announce the wrong winner. The medals were handed out by position in the list rather than by placement, so whenever the podium did not start at first place — which happens when the week's top scorer has no colony left when the prizes are paid — the log crowned the runner-up. Quoting the result into chat made it worse: a quoted podium carries a single name, and that name was always shown wearing the gold. Placements are read properly now, in the log and in chat, and a quoted result that is not first place says so.
A war week could appear twice, the second time incomplete. Left-over rows from the previous week were being assembled into a podium of their own, with members missing and a medal on whoever happened to come first. The log now carries the most recent week only, whole.
Changed
Trades read as news instead of a ticker. Three or more trades in a row are drawn as a single line — «12 trades · 6 traders» with the time and, if you were one of them, a mark saying so — which opens on a tap to show every one of them exactly as before. Nothing is hidden: any other event breaks the run, so a battle among the trades is never folded away, and under the «Market» filter nothing is grouped at all, because there the trades are what you asked for.
1.0.0-beta.149 — 2026-08-20
Fixed
Guilds with the Lab network keystone were shown the wrong Laboratory network (#880). Research speed comes from your empire's whole Laboratory network, not from one building — and a guild that has paid for the Science-7 keystone has its secondary Laboratories count for two thirds instead of one half. The server has always applied that. The screens that recompute the network for you did not: they used one half for everyone. With colonies at 6/3/3 the Laboratory sheet said your network was 9 while the Research tab, which prints the server's own figure, said 10 — the same number, two screens apart, disagreeing.
Everything built on the lower figure was smaller than what you were actually getting: the research speed-up on the Laboratory sheet, the "this level moves nothing on its own" warning, and the level it named as the one that finally raises your network. The Suggested Upgrades list was wrong the same way, and that one queues in a single tap without passing through the sheet.
All of it now uses your guild's real weight, so the sheet, the suggestions and the Research tab agree. If your guild does not have the keystone — or you have no guild — nothing changes: you see exactly what you saw before.
The two lines that explained the rule in words used to say "secondary Laboratories count half" as a fixed phrase, on the card asking you to spend. They now say the fraction that was actually applied to you.
Changed
The Research header now says "best Laboratory lvl 4" instead of "best Lab 4" (#880). Everywhere else that names a Laboratory level already spelled it out — the short form had sent a player looking for a building called "Lab 8" — and this was the last line still using it.
Also
Two follow-ups were opened while fixing this, both for things that were already true before and are not changed here: guild perks read as absent for a moment while your guild data is still loading (#950), and, when your network is already at its cap of double your best Laboratory, the Laboratory sheet tells you not to buy while the suggestions list still offers the upgrade (#953).
1.0.0-beta.148 — 2026-08-20
Fixed
Battle replays no longer show ships being fired at after they have exploded (#939)
Watching a replay, a group's health bar could hit zero and its name grey out, and then a whole further round of fire would still be aimed at the wreck before anything retargeted. A player watching a campaign fight reported exactly that — destroyed in round 3, shot at through round 4, retargeted in round 5 — and read it as wasted fire, and as the reason his battle kept ending in a stalemate.
The battle itself was never wrong. Fire inside a round is simultaneous and the engine stops aiming at a group the moment it dies, so not a single shot was ever wasted; the stalemate was the round limit against the hulls that were left. What was wrong was the replay's reconstruction of when each ship died, and it was wrong in two separate ways.
The battle report does not record deaths round by round — it records each shooter's rounded share of them. Those shares can add up to slightly more or slightly less than the ships actually lost, and the replay stretched them to fit, which slid deaths from one salvo to another and sometimes across a round boundary. On top of that, the counter on each card was updated in the order shots were fired, while the screen draws them in the order they land — and a torpedo is nearly twice as slow as a bolt, so a card could empty while another shot of the same volley was still in flight, then count back up.
Now a group's counter reaches zero only on the last salvo actually aimed at it, and it follows the impacts rather than the shots. Fire that looks simultaneous is simultaneous, the explosion and the grey-out land on the shot that did the killing, and nothing is ever drawn shooting at a wreck.
One consequence worth knowing: on a group that was wiped out, the replay and the report's damage breakdown can now credit the killing blow to different ships. Inside a single round the engine splits the kill between everyone who fired, so there is no true answer to which shot landed last — and a ship still standing while it is being shot at is something you can see, while that split is not.
1.0.0-beta.147 — 2026-08-20
Fixed
Your first four Frames can finally build something (#894). The first campaign boss pays 4 Frames and 4 Coils. The Coils bought the cheapest Battery module the moment they landed — but nothing in the Frame menu cost less than 5, so the Frames just sat in the inventory, and the next Frame drop is twenty levels away at level 30. Ablative Plating now costs 4 Frames, so every part a boss pays can buy the cheapest thing of its own kind. Nothing else about the module changed: same +12% hull, same −6% shield, same refund when you replace it.
1.0.0-beta.146 — 2026-08-20
Fixed
Trades at the going rate now count toward "Close 2 trades" (#923)
You sold dati at the price the board was asking. The trade settled, the resources arrived — and the weekly contract card sat at 0/2. No error, no explanation, nothing anywhere in the game telling you a trade could settle and not count. To make the card move you had to price your dati about twice worse than the market for yourself, and hope somebody took the deal.
That is fixed. A trade at the going rate counts.
The rule was judging offers by adding ferrolite, xenogas and dati together one-for-one — a price nobody trades at, since dati changes hands at roughly twice a ferrolite. Measured over every settled trade in the game's history, it was refusing more than half of them, and the typical honest trade sat exactly on the limit. Fairness is now judged at the price the board is actually quoted at, which also removes something invisible but unfair: the same fairly priced offer used to pass or fail depending on which two resources it happened to involve.
The card now explains itself. Underneath "Close 2 trades" you will find the rule it is judged by — the size, the price, and the once-per-partner-per-week limit — so you can tell before the trade instead of guessing after it.
Two things worth knowing:
The size floor has not changed. A trade still needs 1,000+ on each side (before the market fee) to count, so a small offer priced perfectly fairly still will not move the counter.
If you had trades settled this week, your counter may have moved when this went out — the progress is recomputed from your actual trades, not stored. Almost everyone gains; a few trades priced far off the going rate stop counting, which is what the rule is for. Anything you had already collected stays collected.
1.0.0-beta.145 — 2026-08-20
Fixed
Level badges no longer stack into a number that isn't there (#889). In the colony view, every building carries a small badge with its level, and a gold one while an upgrade is under way. When two buildings stood close enough on screen, the badge in front covered part of the badge behind it — and what was left of the pair read as a single number. One commander was shown «7 → 7» on a Ferrolite Extractor: an upgrade to the level it already had, on a building whose own panel explained that his Command Center caps it exactly there. Nothing was wrong with the extractor, and no such upgrade was ever queued: it was the badge of the building behind it, with its first digit painted over.
Now, when one badge would paint over another's digits, only the one in front is drawn. The hidden badge is one you could not read anyway, and its level is still one tap away on the building itself.
Reported by Spacca-Mazza, with the screenshot that made it findable.
1.0.0-beta.144 — 2026-08-20
Fixed
The harvest contract is no longer dealt to players who cannot harvest (#922)
If you had just finished First Steps, your first set of daily contracts could include "Harvest a debris field" — a card you had no way to play. Harvesting needs a Recycler, and the Recycler is not something you can buy: it is unlocked deep in the Tree, behind Logistics 8 and a node before that, tens of thousands of resources out of reach of a new empire. The card simply sat in your hand until the 05:00 reset.
From now on it is only dealt to empires that own a Recycler in at least one colony; everyone else gets a contract they can actually complete in that slot. A Recycler anywhere in your empire counts, not just your home world, and one that finished building while you were offline counts straight away rather than from your next login.
And with it, a Daily Wrap that could never be earned
This turned out to be the bigger half. The Daily Wrap — the double payout — becomes due when you complete two of the dailies you were dealt, and its target is worked out from the hand you actually got. If you had no Recycler and your hand came up as the build contract plus the harvest contract, that target was two out of two, with one of them impossible.
So the Wrap was not just harder for those players. It could never be earned at all — and neither could the Weekly Chest, which counts Wraps. With the dead card gone, both are reachable again: on a bare empire the Wrap is now due after a single completed contract instead of never.
If you are holding an impossible harvest card right now it stays until the next reset, because hands are drawn once a day and kept. After that it will not come back.
1.0.0-beta.143 — 2026-08-20
Fixed
An empty galaxy map now tells you when the next survey lands (#921). If you had just taken Astrometrics 1 — one of only three fields open at Laboratory 1, and the only one whose whole payoff is anomalies — and the week's easiest anomalies had already been claimed, the map said one thing: Astrometrics 14 would reveal T3. True, and useless: that is over a million resources away from a day-one empire. The countdown to the weekly survey was already being sent by the server and thrown away before it reached the screen. Now every empty-map message that has a real time to give says it, so the answer is a wait you can plan around rather than a door with a number on it.
On a phone, that message says what is blocking you and what to aim for. The one-line version used to give a verdict with no target. It now reads like New survey in 3d 22h — need Astrometrics 14, with the countdown first so it survives on narrow screens, and it names the level that opens the lowest tier still out there this week. When the board is genuinely empty it says so, and when there is no clock to show it still tells you the board reseeds weekly.
At Astrometrics 0 the message stays about the level, never about the cycle. If you cannot receive any anomaly signal at all, being told the galaxy is empty would be beside the point — waiting would not help you. That message now holds even at the very end of a cycle, which is the one moment it used to be able to slip.
1.0.0-beta.142 — 2026-08-20
Fixed
The deployment sheet stopped shuffling itself under your finger (#893)
On the deployment sheet each ship type gets a line with three buttons — Front, Center, Rear. The lines were sorted by the row the ships were standing on: the whole vanguard first, then the center, then the rearguard.
So tapping Center on a ship did move it — and its line immediately dropped down into the center section, below everyone still on the front. Another ship slid up into the exact spot you were looking at, with its own buttons still lit on Front. From where you were sitting, the tap had done nothing. Tap the same spot again and a different ship went to the center. It looked like the three buttons were cycling through your whole fleet instead of letting you choose.
It bit hardest on the campaign sheet, where you field one of each hull and they all start on the vanguard, so every choice reshuffled the entire list. On an attack with one or two hull types it barely moved, which is why some of you never saw it at all.
Now the lines are in the same order as the shipyard and the fleet pickers, and that order does not change when you move a ship. The line stays where it was, the button you tapped is the one that lights up, and tapping the same spot twice moves the same ship twice.
Nothing about the battle itself changed: the rows, the share of fire each one takes, and where your ships actually fight are all exactly as before. Only the order of the lines on screen was wrong.
Reported by Spacca-Mazza, with a recording that made the cause obvious.
1.0.0-beta.141 — 2026-08-20
Fixed
The energy yield you see is the one the server is giving you (#925)
An ice world's energy malus can be lifted — the Colonial Outpost relieves half of it the moment it stands, the Terraformer relieves a tenth per level and cancels it entirely at level 10. The engine has been paying out that relief all along. The screens were not showing it.
Every surface that displayed your energy balance used the planet's untouched malus: the +X/h resource tiles, the ⚡ pill and the Dark Matter per-day estimate beside it, the Colony tab's energy row, the Base build list and the placement banner, the glowing conduits in the Base scene, and the building sheet. So a commander who had paid for the Terraformer to make an ice world livable was shown a yield up to 11% harsher than the one actually being banked — 5.6% with the Outpost alone.
It was worse than a low number. Because the deficit / thin margin / surplus verdict is decided on the figures printed on screen, a colony sitting near the line could show a red energy pill — and red conduits under it — while the relief you had already bought put you in the clear.
All of those surfaces now read the same figure the server does. Nothing reads better than the truth: an empire with neither building sees exactly what it saw before.
The Outpost no longer looks like it breaks the energy it fixes
Lining up a Colonial Outpost on an ice world showed you the cost and hid the benefit. The placement banner simulated the new building against the old malus, so on a colony at 426 / 414 it announced 426 / 427 — in red, a deficit — for a move that actually leaves you at 449 / 427 with production up 5.6%. The one line that answers "can I afford the energy for this?" was telling you the building that fixes your energy would break it. Same for the Terraformer.
The colony advisor stops contradicting the row above it
SUGGESTED NEXT priced everything on the unrelieved malus while the ⚡ row a finger above it showed the relieved one — so a healthy balance could sit directly over advice warning that every plant on the colony was running short. It now reasons about the same empire the server does, which also means it stops promising a Command Centre level "for your 2nd commandable colony" on a world that can never command one.
A zeroed malus is not a bonus
The Terraformer's own sheet announced a fully lifted malus as Energy −10% planet → +0% planet — a bonus of zero percent, on the one row whose job is to tell you what the building you just maxed bought you. It reads 0% planet now.
1.0.0-beta.140 — 2026-08-20
New
The Shard Chandlery (#918) — the Anchorage grows a second counter: Chrono Shards sold for Dark Matter, handed over on the spot. Prices are 2 / 8 / 15 / 60 DM for the 5m / 30m / 1h / 4h shards, and every purchase draws from the same 4-hour weekly pool as the shards you tear from stronger empires — buying opens a road, it never widens the river. The counter shows how much of your week's pool is used and how much is left, each tile says exactly why it is dark ("5 DM short", "Needs 4h free · 30m left"), a successful buy leaves its receipt on the card, and the 4h piece — your whole week in one tap — asks you to confirm first.
Changed
The game's own texts stop claiming shards can never be bought: the shard panel's empty state, the Inventory, and the Events diary now tell the whole story — a bought shard gets its own diary line with the price paid, instead of narrating a battle that never happened.
1.0.0-beta.139 — 2026-08-20
Nothing changes in the game this time. This release is entirely behind the admin door: it gives the people running Novarchy a way to watch the inactive-empire lifecycle that started working three days ago.
Also
The inactive-empire lifecycle can now be watched while it runs (#560, follow-up). Since beta.135 a background round every six hours stops production on long-silent empires, lets their garrisons rot, and eventually removes accounts that have been gone for a month or two. Until now the only trace it left was a line in a server log that scrolled away — nobody could tell how many empires were about to be touched, or even whether the procedure was switched on. The admin dashboard now shows it: how many empires are alive, on a declared leave, silent past seven days, in ruin past fourteen, or old enough to be removed; how many colonies are actually halted right now; and how many bounties have been waived for attacking a derelict, which is the number that shows the derelict-farming this system was built to stop actually stopping.
Six review rounds went into making that panel tell the truth rather than a tidy story: it now says when the procedure is switched off, it says that switching it off pauses the rounds without giving anything back, and it never claims the ruin caused a halt that a player's own declared leave caused. Every threshold it prints comes from the engine, so tuning the sweep can no longer leave the screen quoting the old numbers.
No player-facing screen, rule, price or balance figure changed, and no empire was touched by this release.
1.0.0-beta.138 — 2026-08-20
Fixed
The last fleet in your in-flight list is readable again (#910) — on a phone, scrolling to the bottom of Fleets left the last card tucked under the navigation bar, and no amount of further scrolling would free it. On a returning fleet the part it swallowed was the «Return in …» line and its progress bar, which is usually the only reason to open that list at all. It happened most on Chrome for Android and it came and went, which is why it took a screenshot to pin down.
Two things were wrong. The space every scrolling tab reserves under the bar was worked out from a number written by hand years ago — and the bar has never been that tall, so the real gap was eight pixels rather than the seventy-two it looked like. And the screen itself was being sized to the phone's screen with the browser's address bar hidden, so whenever that bar was showing, the bottom of the page sat below the part you could see.
The navigation bar now measures itself and everything that has to stay clear of it reads that one figure, so the gap is real and follows the bar when it changes — when you turn the phone sideways, for instance, where the bar is shorter. As a side effect the page can no longer be dragged around underneath the interface on a phone.
Thanks to QQQQ for the report and the screenshot.
Also
This release fixes the web. If you play through the iOS or Android app, the fix reaches you with the next app build, not with this one.
1.0.0-beta.137 — 2026-08-20
Fixed
The production rate on your HUD is the rate you actually produce at (#907)
The +X/h beside each resource was lower than what your colony was really producing — for anyone with levels in Galactic Economy, a guild with Economy research, or a granted boost.
The engine scales hourly output by the planet traits, the energy yield, the research tree, the empire boost and the guild boost. The number on screen applied the first two and stopped. At Galactic Economy 14 with a guild, the tile read +2,229/h on a colony the server was filling at +3,138/h — a 41% understatement that grew with the tree.
Everything derived from that figure inherited it. The most visible was the "Full in 5h 42m" estimate: it divided the right ceiling by a flow that was too slow, so your warehouse always filled before the tile said it would. The estimate no longer ends in "at this rate" — that hedge existed because the rate was this client's own understated figure, and it is not any more.
The building sheet agrees with the tile again
Opening a building showed its contribution using only the planet trait, so an Extractor read ~4,215/h under a header counting it as ~5,935/h. Those two numbers used to match and now match again.
The Terraformer stops being contradicted on the screen that sells it
A colony with a relieved planet malus was still told "−10% planet" on the building sheet, beside a figure that already reflected the relief being lifted. The chip now reports what is actually left — and disappears entirely once the malus is fully relieved, instead of announcing a penalty of zero.
Also
Two production multipliers the client had no way of knowing about — the empire boost and the guild Economy bonus — now travel with the colony data. Without them no amount of fixing the arithmetic on your device could have produced the right number.
Under the hood, the four separate copies of that calculation are now one, so the next term added to it cannot reach some screens and miss others.
1.0.0-beta.136 — 2026-08-19
Changed
Campaign rewards now climb with the ladder (#892). A first clear used to pay a flat share of the level's value, and because that share never moved, the deeper you got the less it was worth: level 76 paid about 11,650 resources — roughly three minutes of one late colony's output. The share now rises with depth and then settles at a fixed multiple. Level 30 pays 30,871 instead of 1,235. Level 76 pays 326,195 instead of 11,650. Levels 1 to 10 pay exactly what they always did, to the unit: the early ladder was tuned against a new empire's first hours and the raise deliberately stops short of it.
A deep clear finally pays Data (#892). The payout was split by what the enemy garrison cost to build, and the fleets you meet deep in the wheel are interceptors, corvettes and bombers — none of which cost Data at all. Level 76 paid none of it. Past level 10 the split is now half the garrison and half a fixed floor, so every clear pays all three resources.
New
Dark Matter drops past level 30 (#892). One unit per decade of the ladder, doubled on a boss level. Level 31 pays 1, level 40 pays 2, level 60 pays 6, level 100 pays 14. A full 76-level climb comes to 140 — a drip, not a faucet, and it is not held back by your warehouse.
Everything you already cleared has been made good (#892). Every level you climbed under the old rate was underpaid, and the ladder now owes you the difference. It arrives on your next campaign clear, and the Activity feed explains the payment when it lands. A player sitting at depth 76 is owed 6,136,691 resources and 140 Dark Matter.
The campaign screen tells you if you are still owed anything. If your warehouse is full when the back-payment settles, the rest is held for you rather than thrown away, and the tab says how much is waiting. It arrives on the next clear that has room for it.
1.0.0-beta.135 — 2026-08-19
New
Silent empires stop paying out (#560). Beating an abandoned empire was the cheapest infamy in the game: a derelict cannot defend itself, so the power gap maxed out and the attacker walked away with a full bounty on their head — which their friends then collected. Three commanders took turns on the same dead empire and rotated the prize between them. From now on, an attack on an empire that has been silent for seven days puts nothing on your head at all. The target board marks it silent, the price column reads "no bounty" before you commit a fleet, and your log says why the strike was free.
Ruins at fourteen days (#560). An empire nobody has touched in a fortnight stops producing, and its garrison rots by 5% a day. It is still lootable — scavenging ruins is content — and it is reversible: one login restarts production. Ships already lost stay lost. Nothing is charged retroactively: the clock opens the first time the game looks at a colony, so nobody pays for days that passed before this rule existed.
Empires are cleared away eventually (#560). An account silent for 30 days (or 60, if it is linked to Google or Apple) is removed, and its name becomes free again. Guest sessions expire at 30 days anyway, so a guest silent that long could not have come back in any case. Linked accounts always can, which is why they get twice as long.
Going away? Say so (#560). There is now a leave you can declare from your settings, up to 21 days. It shields your empire, stops the inactivity clock, and pauses your production while you are gone — and when you come back, the days you were away do not count against you. You can end it early whenever you like. Launching an attack still forfeits the shield, as it always has, and the settings row now says so instead of continuing to promise cover you no longer have.
Fixed
The planet sheet and the target board could disagree about whether a strike would cost you a bounty. The sheet — the screen you actually launch from — now prices the attack the same way the board does.
The resource tiles no longer show a production rate for a colony that is not producing.
Also
A leave cannot be declared while one is already running, or while one of your colonies is folding.
Admins have a new lever, INACTIVE_LIFECYCLE, that stops the whole system without a deploy; it is documented in the runbook.
1.0.0-beta.134 — 2026-08-19
Fixed
The storage ceiling counts your Compressed Depots again (#882)
If you had researched Compressed Depots, the storage limit shown next to each resource was lower than the one your colony actually has — up to 44% lower at max level. The Warehouse card was already telling the truth, so the two numbers on screen disagreed with each other. A player sitting at 151M against a displayed ceiling of 154M believed production was about to spill, while the real ceiling was 278M.
The limit now includes the tech everywhere you read it: in the top bar, in the Colony tab, on the bar that fills toward it, and in the "nearly full" warning that goes with it. The amount your colony is holding is no longer redrawn against the lower ceiling between refreshes either.
The market no longer eats what you hold above the old ceiling (#882)
This is the half the reporter found by testing it: holding gas and data above the displayed limit and then making a single market transaction truncated both down to it — permanently. Publishing an offer, accepting one and cancelling one were all affected, and an accepted trade hit both parties at once. The same flaw was in the admin resource editor, where granting one resource quietly cut the other two.
Nothing above a legitimate ceiling is lost by touching the market any more.
Also
Thanks to Jsnam, who reported this and named the exact cause himself, then went back and proved the destructive half.
One number moves for everyone, not just for Depots owners. The market and the admin editor used to advance a colony's production at the base rate when they touched it, ignoring the research tree and the guild bonus that every other part of the game already applied. They now use the same rate as everywhere else, so an accepted trade no longer quietly costs you the boosted share of whatever had accrued since your last visit.
Still on the list. The "+X/h" figure beside each resource — and so the "Full in …" estimate that divides into it — still leaves out the research tree's production nodes and the guild bonus, which means it reads low and the estimate arrives late. That one is tracked separately and is not fixed here.
1.0.0-beta.133 — 2026-08-19
New
The resources say when they fill up (#895). Every resource counter already showed what you hold, what you produce per hour and where the ceiling is — and left you to do the division. Now it says it: Full in 5h 42m at this rate. It is on the tooltip when you hover a resource on desktop, in the sheet that opens when you tap a resource pill on a phone, and under the storage bar on each card of the Colony tab.
At the ceiling it says Warehouse full instead of counting down to nothing, and when a colony is producing none of a resource it says nothing at all rather than promise a time it cannot know.
Long waits are spoken in days — Full in 6d 19h, not 163h 2m — so you are not dividing by 24 to understand your own warehouse.
"At this rate" is not filler: the estimate divides by the production figure printed next to it, and that figure does not yet include the production bonuses from the research tree. The wait is the one implied by the number on your screen, and the sentence says so rather than promising a clock time. That gap is being fixed separately (#907).
Changed
On the Colony tab, a warehouse past 90% now says how long it has left in the same red the bar above it is already using. Before, the line explaining a red bar was the faintest thing on the card.
Suggested by Spacca-Mazza in the Discord suggestions forum.
1.0.0-beta.132 — 2026-08-19
New
The galactic chat can be silenced (#853). Any message in the galactic channel used to light the unread badge for everyone — the dot on the phone's CHAT tab, the counter on the desktop chat dock — with no way to opt out, however little a player cared for the firehose. A drawn bell now sits by the chat channels (channel bar on the phone, dock header on desktop): muting the Galactic channel removes it from every unread computation — probes stop querying it, its dot goes dark and stops announcing "new messages" to screen readers, the badges stop counting it. The messages themselves keep flowing; the bell silences the noise about them. The mute is saved with the commander's settings, so it follows the player across devices, and unmuting counts from that moment — the backlog accumulated while silent does not flood the badge. Guild chat and whispers stay unmutable: they are addressed at you. Reported by Spacca-Mazza.
1.0.0-beta.131 — 2026-08-19
New
Fleet ledger (#857). Knowing «how many of each ship do I own, and where» used to cost one tab switch per colony plus merging the in-flight mission list in your head — the reporter, on day two with five colonies, called it unmanageable for new players. The Fleets tab's In-flight view now opens with one table: rows are ship types, columns are colonies, then an In flight column — and a Stationed one whenever a garrison stands watch somewhere — with the ownership total at the edge. On a phone each ship becomes a card with every number labelled by its colony; on desktop the ship-name column stays pinned while the colony columns scroll under it. The ledger appears at the second colony: with one, the hangar was already the answer. It is a read surface on purpose — the review removed a first version whose clickable cells re-aimed the launch pad, because the gesture was invisible on a phone and silently replaced a hand-composed fleet on desktop.
1.0.0-beta.130 — 2026-08-19
Changed
The shipyard charges for every hull it builds (#898). A ship order used to be capped at four hours however large it was: ordering 13 Titans and ordering 13,000 took exactly the same afternoon, and every hull past that point cost no time at all. The better the shipyard, the earlier the giveaway started — each upgrade that made hulls faster only moved the ceiling further down in ships. A stack now costs what its hulls cost: ten ships take ten ships' worth of time. Orders that already fitted under four hours are unchanged to the second; only the very large batches that were quietly free have moved. Two consequences ship with it: slips are worth much more, because they build in parallel and splitting a big batch across free ones delivers the same ships sooner, and orders already in the yard are safe — a shipyard or Nanoforge upgrade finishing mid-order can now never make an order you already placed take longer, only shorter.
The Shipyard warns before a long commitment (#898). Ship orders cannot be cancelled once placed, which rarely mattered while everything finished within four hours. Past a day of work the sheet now says so before you tap Build, and tells you how many slips are free to split across.
1.0.0-beta.129 — 2026-08-19
New
The Anchorage (#801). End-game players held Dark Matter with almost nothing to spend it on: eleven of the twelve real holders could not reach the apex nodes, and warp jumps cost 1–10 DM against hoards of hundreds. The Market tab now ends with a shop that sells bulk resource crates — 1M, 5M, 10M or 100M of Ferrolite, Xenogas or Data — priced in Dark Matter (40 DM for 1M Ferrolite up to 12,000 DM for 100M Data, linear, no bulk discount). The freight flies as a convoy, one per empire at a time, 2 to 60 hours by size, and Chrono Shards cut its flight exactly like a build queue. A charter is refused — never silently clamped — when the crate would not fit the destination warehouse's free space, and everything bought lands as raw stock: it scores no leaderboard points until it is spent.
The convoy card draws the route live — departure and arrival clocks, a lane with the ship in transit, the shard time already cut — and warns mid-flight if the destination's free space drops below the hold. Charters, landings (with anything the warehouse cap ate) and the rare lost convoy each get their own line in the Events diary.
Also
A player whose last colony falls while a convoy flies does not lose the freight: the convoy holds position until they have settled a new home, and says so on its card.
1.0.0-beta.128 — 2026-08-19
Changed
The NPC factions no longer hunt Warlords. Reaching bounty grade 3 used to put a player on the bastions' list: The Silent Choir, The Black Foundries and The Exarch Guard took turns sending punitive fleets at the most infamous commanders — in practice at the same few accounts, every single day. Bounty grade proved too crude a bully detector, so the warlord sortie is paused (SORTIE_WARLORD_ENABLED) until a better detection system exists. Bastion retaliation is untouched: fell a bastion and it still answers. The in-flight Black Foundries attack was recalled, and its target saw the standard "attack withdrawn" notice.
The bounty texts stopped promising the hunt. The HUD pill, the bounty info sheet, and the agents' own briefings now say what grade 3 actually does — the ☠ Warlord skull goes public on every hunter's board — instead of announcing faction fleets that can no longer launch. The Targets board now shows that skull too, where it used to print the generic wanted flag. Old diary entries about hunts that really happened are untouched.
1.0.0-beta.127 — 2026-08-19
New
The AI badge (#874). The galaxy stops hiding its machines: every empire played by an AI carries a small mark right after its name — a teal hollow hexagon for synthetic commanders, a brick solid triangle for the Wraiths. Two shapes on purpose, hollow versus solid, so the distinction survives without color vision. Before, nothing on any screen told a player whether the neighbour trading with them, inviting them to a guild or answering them in chat was a person; now the mark rides the name in chat, the whisper list, the leaderboard (podium, phone list, desktop table), the wanted board, guild member lists, the guild directory's leader column, the public guild showcase, and both War Room rosters. On a phone, tapping a marked name in chat opens the player menu with the meaning spelled out under the name; on desktop the mark explains itself on hover.
Changed
The synthetic commanders stopped pretending (#874). Asked whether they are AIs, they no longer deny it — before, "never reveal you are an AI" was the roster's standing order. They won't bring it up or lecture about it either: the mark already says it, and ignoring the question is as in-character as answering. Personalities, grudges, sleep schedules and the real-facts-only rule are unchanged.
Also
Who competes where does not change: the same empires sit on the same boards, now honestly labeled. Older installed apps simply don't draw the mark until they update. The reply-timing question the badge makes easier to probe is tracked in #890, and the remaining name surfaces (galaxy map, mention chips, events feed, battle reports, war-week history) in #874.
1.0.0-beta.125 — 2026-08-19
New
The warp for the trip home is now sellable (#859). The dark-matter warp has always accelerated only the way out — by design, not by accident — but there was no way to spend more to bring the fleet back fast. A second checkbox under the Warp Drive, Warp the return too, sells the homeward leg for the same dark-matter price as the outbound one, charged together in a single payment: either both legs go through or the launch is refused whole, never half-charged. It works on every mission that flies home; redeploys and colonizations, whose ships stay where they land, are never offered it. A gold caveat next to the price says the one thing that can void the purchase: if the fleet never flies home, there is no refund.
Fixed
The launch summary says out loud that the return flies normal (#859). With the warp toggle on, the travel time shrank but «fleet back» barely moved, and nothing explained why — the player report behind this release read it as a possible bug. Transports and harvests now split the legs («fleet back 15m (out 5m warp · back 10m normal)»), and every other returning mission gains a «return leg … (normal speed: warp is one-way)» line. Buy the return and the same lines say so instead.
The warp price on the launch form matches what the server charges (#859, found in review). The form quoted the cost on the game's old distance formula while the server charges on the current one — different numbers on most routes, and an underestimate could arm a launch the server then refused whole for insufficient dark matter.
Changed
The recall and stand-down sheets tell paid returns apart (#859). The gold «the way back flies at normal speed» warning now appears only when it is true: a fleet whose return warp was paid reads «the return warp was paid at launch» and is quoted its warp-speed trip home.
1.0.0-beta.124 — 2026-08-19
Fixed
Energy conduits no longer draw on top of buildings (#844). In the Base view the glowing energy and data lines sometimes crossed over a building's art — one conduit covered a building while another passed correctly behind it, with no visible logic to which. The tubes run at ground level, and now they always render that way: they pass behind every building, and each traveling light pulse stays on top of its own tube instead of occasionally popping through it mid-lap.
1.0.0-beta.123 — 2026-08-19
Fixed
Desktop build menu: the category filters are real buttons now (#847). On desktop, the build menu used to end with a faint line of text — «Categories: Production · Military · Civilian.» — that looked like a row of buttons but did nothing when clicked; the actual filters existed only on phone. The same filter chips the phone has — All, Production, Military, Civilian, 🔒 Locked — now sit at the top of the build menu on every screen, and they filter the list for real. On desktop the chips wrap onto two rows so every one of them is visible and clickable (the hidden-scrollbar strip that phone uses would have left «🔒 Locked» off-screen for a mouse); the misleading legend line is gone. The only text left at the bottom is the mouse-gesture hint while placing a building.
1.0.0-beta.122 — 2026-08-19
Fixed
The Research header's math now adds up (#849). With more than one colony the header said «Laboratory lvl 6 · network of 4 + 3 + 1» — and 4 + 3 + 1 is 8, not 6, because secondary Laboratories count at half weight and that rule was invisible; a player summed the operands and stared at the mismatch. The header now says «network: best Lab 4 +2 from your other Labs (3 + 1)»: the bonus is printed as the delta the server actually granted, so the visible sum is right whatever weight the guild's research applies and even when the 2× cap truncates it.
«At Lab 8» now says what it means (#849). The next-unlock line («research lane #2 at Lab 8») named a "Lab 8" the reporter went looking for and could not find. Both unlock surfaces — the capacity strip and the note explaining when the first queue slot opens — now read «at Laboratory lvl 8», the same words the header uses for the same number.
1.0.0-beta.121 — 2026-08-19
Nothing changes in the game this time. This release is a change to how updates are reviewed before they reach you, and it is here so the record stays complete.
Also
The review process now keeps a record of itself (#846). Every change to the game goes through a set of automated checks and a review before it is deployed, and until now there was no way to tell which of those steps had ever actually caught anything. There is now a small ledger: what each check found, and what it cost to run. It already says something useful — across the last few releases the review caught 31 real problems and was wrong about none of them, while the automated test gate has never once failed. That is not an argument for dropping the tests; it is an argument for knowing which parts of the process are earning their place. Nothing about the game itself is touched.
1.0.0-beta.120 — 2026-08-19
New
Volume sliders for effects and music (#855). The audio prefs had carried sfxVolume and musicVolume since day one, but no control anywhere wrote them: the only knob was the binary mute toggle, so the battle replay — many salvos in a row, the loudest surface in the game — was either full volume or silence. On desktop the header's 🔊 button now opens a small panel with an Effects slider, a Music slider and the mute row; on phones the same two sliders sit in the "More" sheet under the audio buttons. Music follows the drag live (battle music included, at its own gain), effects play a soft sample on release, and both levels persist with the rest of the audio prefs. On iOS the sliders deliberately don't render — the platform ignores media volume writes and reserves it for the hardware buttons — so the 🔊 button stays the plain mute toggle there. Reported in-game by Spaccamazza.
Also
Range sliders joined the 44px touch-target floor on phones (the mission watch-duration slider benefits too): the volume rows were the one control in the sheet a thumb could miss.
1.0.0-beta.119 — 2026-08-19
Fixed
Campaign: the locked Auto button no longer reads as a climb target (#854). Before level 40, the auto-battle button said Auto · Lv 40 — and a player read it as «climbs automatically and stops at level 40», the opposite of what the feature does (it climbs until the first loss; 40 is the unlock gate). The explanation existed only in a hover tooltip, which touch never shows. The button is now a compact 🔒 Auto, and a visible line under the chapter strip says when it opens — «Auto battle unlocks after level 40 is cleared» — worded «after … is cleared» because a player currently fighting level 40 is still locked.
1.0.0-beta.118 — 2026-08-19
New
Your colonies are named on the mission routes (#858). The Active missions cards printed both ends of a route as bare addresses — «3:14:7 → 3:14:3» — so with several colonies the player had to decode coordinates to know which of their worlds a fleet was leaving or reaching. Now any endpoint that is one of your own colonies shows its name right beside the address; foreign endpoints stay plain coordinates, so nothing you don't own gets named. The tappable address is unchanged, an address and its name never get separated by a line break, and on a narrow phone a long route drops to its own line under the mission title instead of running past the card. A launch pad the game can no longer vouch for (the colony was lost while the fleet was away) deliberately stays nameless. Suggested in-game by Spaccamazza.
1.0.0-beta.117 — 2026-08-19
Changed
The «under attack» warning no longer takes a whole row (PR #838). It was a band across the top of the screen, and because that band lives in the HUD the player paid for it on every tab — Base, Galaxy, Chat, Market — for as long as the hostile fleet was in the air, which can be hours. It is now a chip inside the resource strip, the same height as Ferrolite and Xenogas, red and breathing, pinned to the left so that scrolling the strip to reach Dark Matter can no longer push the alarm off screen. Tapping it still opens the fleet detail, and the red screen edge near impact is unchanged: the chip states the facts, the edge states «now».
The countdown reads as a clock (PR #838): 13:54 rather than 13m 54s, and 1h 58m above the hour. The previous short form kept only the largest unit, so between one minute and one hour it printed 5m for anything from 5:00 to 5:59 — exactly the minutes in which a defender decides whether there is still time to recall a fleet.
Fixed
The warning was landing on top of the galaxy map's filter buttons (PR #838). With an attack inbound, the red band covered Politics, My colonies, Beacon and Anomalies: still there, simply unreachable underneath it. The map used to pin that row at a fixed distance from the top of the screen, a distance measured on a HUD that had nothing to say. It now follows the HUD's real height, which also closes the same collision for the other four notices the HUD can raise — siege full, exodus pending, battle resolved, out-of-date client.
With several fleets inbound, the count could be cut off (PR #838). On a narrow phone the «+3» that says more than one fleet is coming was the first thing clipped, and nothing else on the screen carries that information.
The alarm announced itself to a screen reader as two numbers and no subject (PR #838). The button now names what is happening, which colony, roughly how long is left, and where the tap goes.
1.0.0-beta.116 — 2026-08-19
Fixed
The colony map moves in one piece again after the tab comes back (issue #836, PR #839). Leave the game — switch app, switch tab — come back to the base and drag it: the painted ground followed the finger while the buildings, the grid and the conduits stayed nailed where they were. The two halves of the same view had come apart, and only reloading the page put them back together. The report came from a player on Android Chrome; the cause was that the ground is drawn by the page and everything else by the graphics card, on two different clocks. They now move together, whatever state the map was left in.
A map the phone cannot draw holds still whole, and says so (issue #836, PR #839). Phones take the graphics away from a page that has been in the background, and give them back when they please. In that window the map used to slide in half; now it freezes entirely — ground included — and a line on screen says the map view was dropped and that reloading fixes it if it does not come back on its own. It does not guess at a cause the page is never told.
Drags and zooms made at a frozen map are no longer banked up (issue #836, PR #839). Everything you did while nothing answered used to land at once the moment the map woke up, flinging the base several screens from where you left it — including the finger that never lifted, which paid its whole invisible travel in a single frame. What you cannot see no longer moves anything.
Switching colony while the map was frozen no longer wakes up on the other planet, or on the right planet drawn at the previous one's scale with a band of starfield along the edge (issue #836, PR #839).
A drag across a frozen map no longer counts as a tap, so it stops opening a building card nobody asked for (PR #839).
Also
Opening the base costs two fewer full redraws on the way in (PR #839).
Issue #841 opened, not fixed here: if the colony scene fails to build at all, the Base tab can sit on "Loading base…" for ever with no message. Pre-existing, same failure domain, its own issue.
1.0.0-beta.115 — 2026-08-19
Changed
The Guild tab on desktop is a command deck, not a scroll (PR #840). Before, the wide layout stacked fourteen panels in one endless column — the council chat lived ~6.000px down, ten fetches fired the moment the tab opened, and the only way to know whether anything was on fire was to scroll past everything that wasn't. Now a rail on the left lists the same fifteen doors the phone command room has, in five groups — Front, Territory, People, Economy, Hall — and the workspace shows one section at a time. Each door states what the game already holds without opening it (active wars, the raid countdown, member count, the Fund, the research Address); red rows and dots mark what needs you; the rail stays put while you work, and the deck remembers which door you were on when you come back to the tab.
The Diplomacy door speaks up when a decision is waiting for you (PR #840). A guild leader with a proposal or a reparations demand on the table sees "1 decision waiting" in red — only the leader, and only while the pair is neutral, which is when the Accept and Pay buttons actually exist. Everyone else keeps a calm row: an alarm you cannot act on is noise.
"All guilds" lives in one place on desktop (PR #840): a rail door instead of a pop-up window; the banner button goes there too.
Fixed
The war status on the Guild tab loaded once and then froze (PR #840). A rival proposing a pact at 21:20 stayed invisible for the whole evening to a player parked on the tab. Both the desktop rail and the phone War Room card now refresh on the same 30s pulse as the rest of the game — guarded so a stale response can never overwrite a decision just taken.
Wide tables no longer push the page sideways at narrow desktop widths (PR #840). The guild roster and directory tables scroll inside their own box on iPads and small windows.
Also
A raid forming when the tab is first opened still lands you on the raids door — it is the one thing that expires — but it no longer hijacks every return trip.
Follow-ups filed and left out of this release, so the entry does not promise them: a breach alarm for guild anchorages that reaches you without opening their door (#842), and a server-side fix for reparations being demandable under a signed pact, where no Pay button exists (#845).
1.0.0-beta.114 — 2026-08-19
Fixed
Tapping a number field replaces it, instead of typing beside the 0 (#822). Every numeric cell in the game — cargo on a mission, ship counts in the Shipyard, amounts on the Market, raid contributions — started at 0, and tapping into one put your digits next to that zero rather than over it. Best case you sent 0500 and it meant 500: the right amount, shown wrong. Worst case the caret landed to the left of the zero, 500 became 5000, and you found out ten times too late — after the fleet had gone. Now tapping a cell selects what is in it, so the first digit you type replaces it. On a phone those cells also bring up the numeric keypad, which two of them already did and the rest did not.
1.0.0-beta.113 — 2026-08-19
Nothing changes in the game this time. This release is a change to how updates get built and shipped, and it is here so the record of what went to production stays complete.
Also
Small fixes can now reach you sooner (#828). Getting a change from "written" to "live on novarchy.com" ran the same long checklist whether it was a one-line fix to a button or a rewrite of how combat resolves — the same five reviewers, the same rounds, the same paperwork afterwards. From now on that depth is decided automatically by what the change actually touches: work confined to the game's screens gets a shorter path, and anything that reaches the engine, the server, the empires' AI, the database or the deploy keeps every check it had. No test was removed from either path — the full suite still runs on every release, unchanged. What this means for you is only this: small fixes should stop waiting behind large ones.
1.0.0-beta.112 — 2026-08-19
Changed
On a phone, the Base screen shows the Base again (#825). Opening the colony showed almost everything except the colony: the HUD, an "under attack" row, a resolved-battle row and the build queue took 604 of 932 pixels, leaving the planet a 227-pixel strip of ground. It was reported with a screenshot, and the screenshot is the whole argument. The colony now keeps a 686-pixel band, and nothing crosses the middle of the screen where the thumb drags the map.
The build queue became a rail (#825). It was a full-width panel that grew one row per order — 332 pixels with six running. It is now a column of 56-pixel progress rings on the left edge: at most three, soonest completion on top, and everything past that behind a +N that opens the full list. The rings carry what a glance needs (what, and how long); the sheet behind them carries the building's name, the level it is going to and the countdown to the second, which is the figure a Speed up decision is actually taken on. Turned sideways the rail gives up chips rather than pushing the Chrono shards button off the screen.
The attack warning stops paying for its urgency in layout (#825). It was a 44-pixel row across the width of the screen. It is now a pill as wide as its own words, and inside ten minutes of impact the edge of the whole screen glows red. Beyond ten minutes the pill carries it alone: the warning lives in the HUD, so it is on every screen of the game, and a border that pulses for the eight hours a distant fleet takes to arrive is wallpaper rather than an alarm. Asking for reduced motion now gives a calmer frame instead of a brighter one.
A finished battle became a toast (#825). It used to stack under the attack warning and stay there until dismissed by hand — a second row of HUD for something already over. It now floats above the navigation bar, names the opponent and the place, offers the report, and leaves on its own after ten seconds with a bar showing how much of that time is left. On desktop it is unchanged.
The energy pill reads as a balance (#825). 17316 / 17246 is eleven characters of which ten never changed a decision; it now reads +70, tinted by the same state that already coloured it — red only when the printed number carries a minus. Production and consumption in full, and the shortfall when there is one, are one tap away as before.
Buildings under construction say where they are going (#825). The badge over a building read the level plus an hourglass; it now reads 12 → 13, taken from the order itself. On a lava planet those badges were also the least legible thing on screen, so they now sit on the same pill background the rest of the interface uses.
The phone's icons are drawn instead of typed (#825). ⚡, ◈, ⚠, ⚔ and ⚒ were emoji, and iOS renders emoji in its own colour font — so they ignored the colour they were given. The hammer on a button whose whole identity is "the cyan one" came out in Apple's brown, and a warning triangle meant to match its red border stayed yellow. They are inline icons now.
Fixed
Build, +N and the report button are reachable with a thumb (#825). All three sat under the 44-pixel floor the interface declares elsewhere, and two of them were the only route to what they open — the orders past the third, and the battle report on a notice that removes itself after ten seconds.
Speed up no longer strands you on an empty map (#825). Opening the Chrono shards from the queue sheet and deciding against spending left you on the bare colony, having to find and tap a 56-pixel ring again to get back to the list you were reading.
The tutorial panel and the queue rail stop overlapping (#825). Held sideways — and in portrait with a tall First Steps card — the panel covered the rail's controls, including the only route to the Chrono shards. They are now placed side by side whenever the rail is on screen.
A battle with no report no longer offers one (#825). The link read "view report" and led to the Activity list with nothing opened.
Nothing in this release changes the rules of the game: no balance, no costs, no combat. The desktop layout is untouched.
1.0.0-beta.111 — 2026-08-19
Changed
The leaderboard ranks the players, not the faction hunting them (#824). Opening the standings to see where you stood answered with somebody else's war: the thirty Wraiths held 19 of the top 20 rows, packed between 1.69M and 2.19M Gate, while the strongest human commander below rank 1 sat at 831k. The Wraiths are an announced hostile faction — opponents, not competitors — and the rule that removes them was already written and already applied to the Pirate Beacon, the factions and the relic wardens: a board stably led by a target tells nobody anything. They were only ever inside the standings by accident of how their empires are stored. The top 20 is now 13 human commanders and 7 rival empires, with humans at ranks 1 through 4.
The weekly war podium pays the people who competed for it (#824). The Wraiths were earning war points and sat at ranks 4 to 9 of the week in progress. No week had closed on them yet, so no prize had actually left the playerbase — this closes it before the first one did. Off the board now means off the rewards, and the shares slide down to the commanders behind them.
The season podium and the Destroyer follow the same rule (#824). A faction empire can no longer take a season podium row, a season share, or the unique Destroyer hull. The season is filtered separately from the leaderboard, so it needed its own change rather than inheriting one.
The Wraiths hunt a narrower band (#824). Their standing order is to pressure the top of the board as a group and never to concentrate on whoever is cheapest — but because they filled nine of the top ten rows they were aiming at, that order had quietly collapsed onto a single commander. Their licence is now the top five, and the anti-dogpile rule that spreads pressure by longest-since-struck governs it as designed. Commanders outside the top five are out of scope, not merely deprioritised.
Fixed
The Wraith faction keeps attacking (#824). Taking them off the standings would have stopped them dead: the operator's tooling read each empire's own strength off the leaderboard, so with no row to read every one of them would have reported an empty fleet and refused every strike, with no error anywhere. They now read their own strength from their own empire, and a reading that fails is reported as unknown instead of as zero.
Rival commanders no longer forget who attacked them (#824). Empires that leave the standings can also be hidden behind a Veil, and an empire absent from both is treated as deleted — its grudges wiped after two days. Grudges against an announced faction are now kept regardless, so a raid is still remembered by the commanders who took it.
Unchanged
The Wraiths stay on the Wanted board. Leaving the standings is not protection: a bounty is not a prize the target collects, it is the price others collect for going after them. Relic garrisons and faction bastions are still sized against them as well, so PvE difficulty does not move.
1.0.0-beta.110 — 2026-08-19
Fixed
The chat tab on a phone gets its screen back (#823). A player reported it from a secondary colony he has no intention of developing: the first steps advisor sat above the conversation asking for a Laboratory he will never build there, and there was no way to move it. That was not an oversight — the chat window is sized so that its bottom lands on the navigation bar, which is what keeps the message box reachable without scrolling, and the arithmetic of that makes the page exactly one screenful tall with nothing left to scroll. Every pixel the advisor took came out of the conversation, and the chat was down to a message and a half. On the Chat tab the advisor is now a single line — how far along the chain you are, and either the reward waiting to be collected or what to do next — which opens the whole panel on a tap and puts it away on another. Everywhere else it is untouched: Base has its own copy, and Research and Shipyard are where two of the steps are actually performed.
The advisor line says what is happening, not just the name of a step (#823). There is one build slot and buildings take minutes, so "Build the Laboratory" was what most of the tutorial looked like — including while that Laboratory was already going up, and while the slot was busy with something else, which is the one moment you cannot act on it. The line now says Under way, Build slot busy, Reward ready or Next, with the building named in each.
1.0.0-beta.109 — 2026-08-19
New
The boards say who you are flying with (#816). Every board in the game printed bare names: the leaderboard (podium, phone list and desktop table), the wanted board, the war-week scoreboard and its paid podium, the campaign climbers and the season scoreboard. The header of the leaderboard even carried a note admitting it. The guild tag now rides next to the name on all of them, tinted with the guild's own colour — the same [TAG] spelling the chat, the mention chips, the whispers and the galactic register already used. It matters most on the wanted board, which is the one list built to be acted on: a row there is a launch decision, and until now the screen gave no way to see that the target was flying your own tag, or the tag of the guild you had just signed a truce with. Players in no guild show nothing at all, not an empty pair of brackets.
Fixed
A long name no longer eats the tag (#816). On the four rows where a name is cut short with an ellipsis — the podium card, the phone list, the wanted row, the season row — the cut now falls on the name alone. The cap on a name is 20 characters, and with the tag inside the cut a long name swallowed it; a tag you cannot read is worth as much as no tag. The · you marker on your own row was sharing that cut too, and no longer does.
"Janos· you" reads as "Janos · you" again (#816). Making room for the tag turned three name rows into flex rows, which silently dropped the space in front of the · you marker on your own row — on the podium card, the phone list and the season scoreboard. Found in review before it reached anyone.
Also
The paid podium of a closed week shows the guild you were flying when the week closed, not today's, the same way it has always frozen your name and your points. Weeks closed before this release carry no tag and keep printing bare names; that resolves itself at the next weekly closure. What this release does not change: the same podium in the global Register still prints bare names, because that feed projects only rank, name and points — the tag is in the data now, only the projection is missing.
1.0.0-beta.108 — 2026-08-19
Fixed
The Peace shield no longer promises what it cannot do (#803). A commander watched the Observatory warn them of an incoming fleet, spent 40 Scrip on the guild store's Peace shield to stop it, and lost their ships anyway — twice, and then reported it. The engine was doing what it was designed to do: the shield is checked when an attack is created, so it refuses new attacks while it is up and has never turned back a fleet already on its way. Nothing in the game said so. The store row sold "eight hours of forced truce"; the HUD banner said "none of your colonies can be attacked for another 6h"; and nothing warned the buyer that the fleet they could see coming would land regardless. Every surface now says the same true thing — the shield refuses new attacks, it does not turn back anything already inbound, and attacking anything but a Pirate Beacon ends it early. That last clause was never written anywhere a player could read it before paying. The correction reaches phones without an app update on the one surface where it matters most, the row that carries the buy button, because that text is sent by the server.
The store says when buying will not help (#803). With attacks already on their way, the Peace shield row counts them and states plainly that a shield bought now will not turn them back, only refuse new ones. It appears only while something really is inbound — and on every layout, not just on a phone.
The protection sheet stopped contradicting the rest of the screen (#803). Tapping the shield chip said the empire shield "covers every colony you own" and stopped there, one tap from the incoming-attack alarm. It now carries the same caveat as everything else, and no longer shows it to brand-new commanders, for whom nothing can have been aimed at them before their shelter existed. On desktop, where there is no sheet to open, the tooltip was also telling players that an enemy attacking is what drops their shields; it now says it is your own first attack.
The shield countdown belongs to the shield it names (#803). Holding both a 72-hour exodus shield and a bought 8-hour one, the banner printed the longer clock under the empire heading — so it kept counting down for days after the empire shield had actually lapsed, and an attack on any other colony was accepted while the number on screen still said you were covered.
Refusing a fold explains itself truthfully (#803). "A fold nobody can raid is a fold nobody can stop", said the game when you tried to fold under a shield, and "a Peace Shield now would make that fold unstoppable" when you tried to buy one mid-fold. A raid launched before the shield went up still lands and still stops the fold; both messages now speak of new raids.
Also
No engine rule changed in this release. Whether the shield should bounce fleets already in flight is a separate balance question, and it is recorded on the issue rather than decided here: nothing in the game stays in flight for more than two hours while the shield lasts eight, so a single 40-Scrip purchase would void every fleet aimed at you, joint raids included.
The commander who reported this also asked for the fleets they lost to be restored. That is an open question for the game's owner and is not answered by this release.
1.0.0-beta.107 — 2026-08-19
New
Survey a whole system with one confirm (#469). Espionage was one probe, one trip, and the trip was long: open a planet's sheet, press Spy, land in the Missions tab, pick the probe, launch, walk back to the galaxy, and start again for the next planet. Scouting a busy system meant doing that once per planet. The system view now carries a survey: tick the planets worth a probe, read what it costs, and send one espionage mission to each in a single confirm. It is scoped to the system on screen, so the price stays legible and one tap cannot fan out across a sector. Nothing is ticked for you, the total is stated before you commit, and a sweep the home hangar cannot pay for is refused by name. Every target stays an ordinary espionage mission with its own travel time, its own report and its own refusal — a faster way to send them, not a new kind of mission — so the guild tag rides on every row, letting you skip your own guildmates before paying for the refusal. Afterwards each planet is accounted for: how many probes are away, which were refused and why (identical reasons grouped, not repeated once per planet), and which never left; the ones that never left keep their ticks, ready to send again, unless the refusal was one no retry can beat — an empty hangar, a folding home colony, a closed season — in which case the sweep stops there and says so. A request that times out is reported as unknown rather than refused, because the mission may well have gone through, and the rest are left unsent instead of being fired blind. Most useful in the Event Sector, where the whole zone is on the season clock. What it does not do: the probes always leave from your home colony (there is no origin picker, and the panel says which hangar it is counting), no travel estimate is shown per planet, and a surveyed mission does not appear in the Missions tab's "Launch again" rail — one sweep would evict a third of it.
1.0.0-beta.106 — 2026-08-19
Nothing changes in the game this time: this release is housekeeping inside the engine, plus two comments that described the rules incorrectly.
Changed
The engine speaks English about itself (#454). Around sixty names inside the shared engine — the code that resolves battles, bounties, seasons, debris and Command Center unlocks — were still written in Italian. They are never text a player sees; they are the labels the code uses to talk about itself, and mixed-language ones make every later change to those systems harder to get right. Two engine files were renamed to match, and the design documents and the agents' Python mirrors that pointed at the old names were moved in the same commit, so no pointer dangles.
Fixed
Two comments that stated the wrong rule (#454). One said the Cannon's opening salvo is applied before the battle report snapshots the attacking fleet; it is applied after, which is why the report shows each fleet as it arrived. The other said repelling an assault pushed an outpost's paid repair eight hours away, while the lockout has always been twelve. No behaviour changed — only the descriptions, which had been misleading anyone reading the code to learn the rules. A third comment the audit had flagged turned out to be correct already, and a neighbouring passage that looked wrong is a deliberate record of a rejected option, so both were left alone.
Also
What was deliberately not renamed, and why. Everything the game stores — building, technology and tree-node ids, guild ranks, entry policies, planet types, ship classes, faction and relic ids — keeps its original spelling: renaming any of it would orphan live colonies. The same holds for one field the installed app reads over the network; renaming it would have blanked every building and technology name until each player updated. The audit that requested this work had listed that field as safe, which it is not. Checked rather than assumed: of the 1,177 distinct stored text values in the engine, every one is byte-for-byte unchanged.
A latent gap found while reviewing this change is filed as #811: some checks that keep the agents' numbers in step with the engine go quiet, instead of failing, if an engine file is renamed.
1.0.0-beta.105 — 2026-08-18
New
The campaign map dresses like its design (#804). The scene was the design's skeleton without its skin: bare numbered nodes scattered across the full desktop width, the enemy readable only inside the engagement sheet, the boss a glyph. Now the scene composes in a centered column; the current node wears the art of the hull fronting the level's garrison with the level as a badge; the chapter boss waits as a dimmed silhouette under a BOSS tag — kept even while you stand on it; the cleared stretch of the path glows solid. The forecast (the same three simulations the sheet runs) shows as a strip under the path with the enemy value, marked as the estimate it is. Each arc carries its tactical hint, taken from the engine's own composition notes, and its own horizon tint; a strip counts the levels to the boss and names the two part kinds it actually drops — not "the full parts table", which no boss ever paid. The deepest climbers tick along the scene's foot with your own depth closing the line, and the parts wallet sits in the header once your first drop lands.
1.0.0-beta.104 — 2026-08-18
Changed
Extractors dig faster, Compute Nodes run leaner (#779). At the same level, a Ferrolite Extractor now yields about 8% more (level 10: 3,112 → 3,372/h) and a Compute Node about 25% less (1,037 → 778/h). Xenogas Refineries are unchanged, and so is the total a level of production is worth — contract payouts, expedition hauls and every "per hour" threshold keep their scale, paid along the new mix. Why: ferrolite is what ships and buildings are actually made of, and the galaxy was producing it in the wrong proportion — 0 of the 103 open market offers were selling ferrolite while 86 were asking for it, a market structurally unable to clear. Nothing was taken from anyone: no stock, no level, no cost and no score moved — points and Power price what things cost, and no cost changed. Production accumulated offline across the update is credited at the new rates for the whole window. What this release does not fix: the data already banked across the galaxy stays banked — a dedicated outlet for accumulated gas and data is the follow-up. On app builds older than this release the per-hour figures on the colony screens read the old values until the app updates; the resources themselves are computed server-side and are correct.
1.0.0-beta.103 — 2026-08-18
New
Auto battle on the Front (#796). Past level 40 the campaign used to be the same gesture repeated: open the sheet, engage, read the outcome, open it again — for levels the forecast already called. Now an Auto button sits next to Engage once level 40 is cleared (below that it shows its unlock, Auto · Lv 40): the climb runs hands-free with the saved deployment, banks each first clear as it lands, logs the run on a panel, and stops on its own at the first battle it cannot improve — a loss, a draw, or a clear that banked nothing. Campaign battles are deterministic, so the stop is honest: the same orders would fight the same battle again; change your deployment, a refit or your research, then go again. "Stop after this level" hands back the wheel mid-run; leaving the screen stands the run down after the level in flight and keeps the summary for your return. The loop paces itself above the server's own 2-second brake, so hands-free never means faster than allowed.
1.0.0-beta.102 — 2026-08-18
Changed
A garrison can be called home from any colony, not just your own (#788). Sending a defence to an ally used to commit the fleet for the whole watch — up to twenty-four hours — with no way out for anybody: not for you, and not for the ally either, since the release control that was supposed to be theirs was never built. A defence pledged to a friend was a fleet out of the game for a day, and the rational answer was to garrison nobody, which is the opposite of what joint defence exists for. Stand down now reaches every garrison of yours, wherever it stands: your colony, an ally's, or one razed out from under the watch (that last case used to be refused with the same "not your colony", stranding the ships with nobody left who could free them). The one refusal that remains is a hostile fleet already on final approach there — you do not walk a garrison out of a battle that is landing, and letting it happen would hand the owner a full fleet and a report of losses it never took. What has not changed: the flight home is paid in full, so recallable is not the same as present; and the hangar you empty at home is still the real cost.
New
Your ally is told when you call your ships back (#788). They already get a line when the fleet lands, with an end time they can plan around. Now that a guest can end that cover at any moment, they get its counterpart — naming who left and how much of the watch was still to run, because a fleet pulled eleven hours early and one whose watch had four minutes left are not the same act and should not read as the same line.
Fixed
The screens that recruit garrisons stopped saying the fleet was committed (#788). The Defend form, the guild "Allies under attack" panel and the galaxy tooltip all described the old rule; the panel is the one screen whose whole purpose is getting somebody to garrison an ally, and it was still promising a commitment the game no longer asks for.
1.0.0-beta.101 — 2026-08-18
New
Launch again: the repeat rail (#775). Four launches out of five repeat a target already hit, and re-sending one meant walking the whole form again. The Missions tab now opens with the recent launches as cards — verb, target, the exact fleet, the battle line — and one tap re-sends, with a 4-second Undo before anything leaves. Attacks confirm once more first: creating an attack forfeits every shield the attacker holds (only the Pirate Beacon is exempt), and the confirm says exactly that. A hangar that came up short prints the refit (Corvette 300 → 120) before the tap; a target whose launch colony was lost blocks instead of silently relaunching from home.
The War Table (#775). Which ship, how many, and where it stands were three controls in three places — a card list, a ± stepper that moved by 10% of the hangar, and a formation panel folded shut below everything. They are now one canvas: ships are tiles sitting in the battle row they will fight on; tapping one opens an inline editor with absolute count chips (None · 50 · 100 · 500 · Half · All), a ± that moves by exactly 1, and a Stands row whose labels carry the resulting fire shares live from the engine. Hulls the verb cannot use wait behind a divider with the reason printed on the chip; the totals footer shows effective attack, hull and hold with research applied, plus the fleet's pace-setter.
Verbs that say no where the choice is made (#752). A verb the empire cannot mount — no Spy Probe anywhere, no Recycler, a single colony — is dimmed with its one-line reason on the list itself, phone and desktop alike. The list never re-sorts and nothing hides: tapping through lands on the composer with the same sentence as the top verdict line.
Changed
One ranked verdict line replaces the flat warning stack above the launch button. The single highest-ranked issue shows (blockers, then real costs like the bounty and the shield forfeit); the rest folds behind «n notes», with the boilerplate server line always last. On the phone the top line rides the launch bar, so a disabled button carries its reason.
Garrison rows tell the truth. Defending an own walled colony draws the batteries and fortress holding the Front line and prices the rows behind them; a colony with no guns gets no imaginary wall — a rear-only garrison honestly reads 100% of incoming fire — and on an ally's colony every share reads ≤, because their line cannot be read from outside.
Fixed
A launch started and then navigated away from now actually launches, and the card shows «Launched moments ago» on return — the double-wave accident is closed. A refused launch stays on the card, dismissable, instead of vanishing with an 8-second banner. Backspacing the ship-count field no longer deletes the ship being edited.
Also
The design record — five candidate designs across two generations, six judge reports, two adversarial passes and the surviving rules — is in design/mission-redesign/DESIGN.md. Left for the next slices, on purpose: the Board shell that retires the sticky bars (#731 stays open), first-launch cards for empires with no history, and the Load sheet that unifies fleet templates with the launch ledger.
1.0.0-beta.100 — 2026-08-18
New
The launch preview tells you when your fleet comes home, not just when it arrives (#778). Transport and Redeploy showed the exact same travel time, even though a transport's ships fly there and back while a redeployed fleet stays where it lands — so the preview invited the reading that the two missions cost the same. On Transport and Debris harvest missions the summary line now shows both numbers: «travel …» for the arrival and «fleet back …» for the moment the freighters are usable again. The return figure follows the real flight rules — hyperlane and relay discounts count on the way home too, and a warp-boosted trip returns at normal speed. Redeploy and Colonization keep their single line: one leg is their whole story. Reported by Spaccamazza.
1.0.0-beta.99 — 2026-08-18
Changed
The attack-notifications switch has moved into the menu (#786). On a phone the switch shipped by #721 lived in the HUD, and the HUD floats over the galaxy map — so "Attack notifications · On" printed straight across the map's filter chips, covering Politics and My colonies. It now lives where the other settings live: Menu → Command, in the strip at the bottom, under night protection. Nothing about the switch itself changes — On/Off state and the "turn them on in iOS Settings" note for declined devices carry over. On iPad the switch stays in the HUD beside the night-protection setting, where the layout has room for it.
1.0.0-beta.98 — 2026-08-18
Fixed
Two named places on the same star no longer print on top of each other (#780). System 8:2 holds both The Exarch Archive and The Exarch Guard, and the galaxy map drew every named place at the same fixed distance from its star. So the two names landed on exactly the same pixels, letter through letter, and what a player saw was one red title made of scrambled characters with an illegible grey line under it. The same thing happened to their two effect lines and to their two signs — which is why the star looked like it carried a single corrupted label rather than two separate places.
Each place now takes its own side of the star: the relic's sign, name and effect hang to the left, the bastion's to the right. Both names are readable, and each keeps the colour that tells a relic apart from a faction bastion. Every star that hosts a single place is drawn exactly as before, to the pixel.
What this does not fix, and #787 records with the measurements: the two names end up on the same row with very little air between them, so at a glance the pair can still read as one long line, and at the wider zoom levels their inner edges sit close to the neighbouring star's column. Giving the pair real separation means moving the labels themselves rather than their anchors, which is a different change; the one shipped here is the one that makes the text legible without pushing anything off the top of a phone screen.
1.0.0-beta.97 — 2026-08-18
Changed
A garrison's watch can now be as short as 0 hours (#768). The slider on a Defend launch started at one hour, and that hour was the price of every misfired defence — wrong coordinates, or a battle that resolved while the fleet was still in flight. On somebody else's colony there is no way to cut a watch short, so it was paid in full. What 0h actually buys is narrower than it sounds, and the launch form now says so instead of leaving it to be discovered: a zero-hour garrison lands and turns straight round, and only fights if the attacker is already committed — the last quarter of their flight, never more than ten minutes before impact and sometimes as little as one, a number the defender cannot see from their side. So it answers a strike coming down in the next moment; for anything you can still watch approaching, an hour or more is the right answer. Two things a short watch does not change: the fleet still flies the whole way home before the ships are yours again, and if it does fight it stays until the fighting stops.
Fixed
An ally is no longer told about help that is already leaving (#768). "Reinforcements arrived" appeared the instant any garrison landed. For a watch too short to stand, that promise was void before it could be read — and the host plans around it: leaves their own fleet out, does not buy the shield. They are now told only when the fleet is really going to be there, and when it lands into a battle the message says that, instead of promising cover that ends with the fight.
Your own log stopped reading "standing guard" over a fleet that is not (#768). A very short watch now says what it is, in the heading as well as the line beneath it.
The watch slider has a name (#768). It announced itself to a screen reader as a bare number, and at the new floor "zero" with no unit reads as off. It now says what the control is and what the value means, and points at the paragraph that explains it.
1.0.0-beta.96 — 2026-08-18
Fixed
A run of messages from one person now carries one header, not one per message (#765). Grouping required the same author and less than three minutes between messages, and real traffic in this game is nothing like that fast: on the production guild channel six consecutive messages from one player spanned 10:03 to 12:38, so the rule never fired and the list printed six full headers — portrait, name, crest, tag, timestamp — for a single speaker. Grouping now follows the author. Every pause of three minutes or more still shows its time, on a slim line of its own, so the change costs no information: it is the same boundary the old rule used to draw a whole header at.
The guild tag no longer repeats on every line of the guild channel (#765). Everyone in that room is in that guild; the tag said nothing and took width from the name of whoever was speaking. It still appears in the galactic channel and in whispers, where it distinguishes two strangers. The crest goes with it, on the Chat tab and on both Guild-council panels — and a member who has since left for another guild no longer shows a foreign tag and crest in the council history.
Two glyphs were rendering as colour emoji on iOS (#765). The reply-quote arrow (U+21A9) and the whispers envelope (U+2709) have no glyph in the text fonts iOS falls back through, so the system reached for Apple Color Emoji: a blue rounded square and a white envelope, off the game's palette, and the arrow tall enough to inflate the quote row. Both are drawn now. The same envelope in the desktop chat dock is fixed too, so the two surfaces stop disagreeing.
The channel bar no longer reflows under your thumb (#765). It was sized to its content and allowed to wrap, so on a phone it took two rows with "Galactic channel" alone on the first. Worse, the unread dot was mounted when news arrived, widening that seat by 13px — enough to push its neighbour onto another line mid-read. It is a single row of three segments now, and the dot's space is always reserved; only its visibility changes. The whispers counter is reserved the same way. Off a phone the full names stay, since they fit there.
The message box is one field again (#765). It was a bordered card containing a bordered input beside a bordered button. Now it is a single rounded field with a 44px round Send.
Known
Opening the keyboard still scrolls the page so the HUD slides under the status bar, and with the keyboard up the first message line is printed under the Dynamic Island. It is not a chat bug — it affects every screen with a text field — and four attempts did not close it, so nothing partial was shipped. Diagnosis and dead ends are in #766.
Also
The accessible name of a channel seat now carries its unread state. An aria-label on an element ends the accessible-name computation, so the labels on the dot and on the whispers counter were unreachable and the seat sounded identical with news and without.
A new test mounts the real chat panel — the first thing in this area to prove the panel draws the layout rather than merely computing it. Every guard added across three review rounds was checked by mutation rather than assumed; two assertions that turned out to be vacuous were found and replaced, one of them passing because a colour value happened to contain the digits it was looking for.
Review notes on the minor findings consciously left as-is are on the PR (#767).
1.0.0-beta.95 — 2026-08-18
Fixed
Guild leaders no longer slip Italian words into guild chat decisions (#656). Every guild decision an AI leader takes — applications, promotions and kicks, the research priority after a council, Fund grants, Eschaton commitments, the Anchorage, reactions, welcomes, the aid board — went through prompts whose JSON schemas asked the model to answer with Italian field names, and the research prompt offered the raw persisted branch ids (guerra|economia|scienza) as the reply enum: it did not merely show the model an Italian word, it required one back. One Italian word in a prompt is enough to tip a multilingual model into replying in Italian, and these replies land verbatim in guild chat. All ten decision prompts now speak English end to end: English keys on both sides of the wire (schema, parser, fallbacks and consumers moved atomically), research branches offered by their English labels (War / Economy / Science) and mapped back to the persisted ids before the API pin, the plan stance translated ("aggressive", not "aggressiva"). Nothing stored was renamed.
A leader's research announcement can no longer contradict the pin. When the model named a branch the guild could not pin (one already maxed, or a spelling the mapper did not accept), the leader posted the line written for that branch while the server pinned a different one — "more guns" in chat, Economy on the board. The announcement now follows the decision: if the choice had to be corrected and the model had spoken, the leader closes the council with a line naming the branch actually pinned; a leader with no model keeps pinning silently as always.
Also
The demote and kick halves of the ranks decision and the aid-board note had no behavioural coverage on either side of the wire — a leftover Italian key there would have no-opped silently forever. Each now has brain-level and runner-level tests, all verified red under the corresponding mutation, and a sweep test captures every guild-decision prompt and rejects any Italian key, rank, branch id or stance reaching one.
Review notes on the minor findings consciously left as-is are on the PR (#772).
1.0.0-beta.94 — 2026-08-18
Added
An empire signed in with Apple can add Google, and be played in a browser (#760). Sign in with Apple exists only in the iOS app, by choice — there is no Apple button in a browser and there will not be one. The consequence was that an empire created with Apple could be reached only from the phone: there is no address to sign in with anywhere else, and the commander identity dialog answered "this account is already linked" to precisely the player who most needed another way in.
That dialog now offers Link Google account to an Apple account, and says why. Taking it opens the browser without closing the phone: the Apple sign-in keeps working exactly as before, because linking here adds a way in rather than moving the one that exists. Re-pointing the account would have looked identical from inside the dialog and stranded the player in a new, empty empire the next time they tapped Sign in with Apple.
Afterwards the Account section names both doors and shows which Google account was linked — worth seeing, since linking cannot be undone.
Changed
The guest upgrade is untouched and still picks one account: a guest's synthetic address is a placeholder, and leaving it behind would leave it claimable. The wording there no longer promises a second way in later, because for a guest who picks Google there is none.
Several refusals were saying the wrong thing to the wrong player — an Apple account being told its empire was a guest that logging out would destroy, and a "close and reopen this dialog" instruction that reloaded nothing. Both now describe the situation the player is actually in.
Also
Nothing here is visible to anyone who has not signed in with Apple, which today is everyone: Sign in with Apple reached TestFlight only in the previous build, and no account has used it yet. Shipping this now is deliberate — every day it waits is another empire that could have been created app-only.
The database gains one table and nothing else: no column altered, no row touched, no backfill. Every existing empire keeps its identity exactly where it already was.
1.0.0-beta.93 — 2026-08-18
Fixed
A guild goes to the officer who earned it, whichever way its leader leaves (#757). Leaving a guild already handed command to the officer who had contributed the most, falling back to the most senior member — exactly what the guild sheet promises. Deleting the account handed it to whoever happened to register first: officers ignored, rank ignored, time in the guild ignored, so a recruit still on probation could inherit ahead of the guild's officers. A leader could read the promise on one screen and leave by the other door, and the guild woke up commanded by the oldest registration. The same held when a moderator closed an account, because all of those doors run the same deletion. They now all apply the one rule the game describes, and the deletion panel — which had honestly printed "whichever remaining member registered first", because that is what the code did — describes it again.
The guild is told when command changes hands, and the new leader wears the rank. An account closing used to move the seat silently: no line in the guild log, and the heir's row still saying officer, so every permission that reads the stored rank kept treating the new leader as one. The succession is written to the log now, and the rank moves with the seat.
The line says what happened without saying more than it should. A player who deletes their own account is named as having done so. An account closed any other way is reported only as closed: the guild is told the seat moved, not why an account ended. The same door also closes accounts when their owner asks support to, so anything more would sometimes have been false — and the log is read by the whole guild, for as long as it exists.
The absent-leader succession reads seniority like the other doors. On guilds formed before the join date was recorded, that door alone ranked equal members by their internal id, so the same guild could get two different heirs depending on whether its leader closed their account or simply went quiet.
Closing an account can no longer take a guild down with it by accident. A guild is disbanded only when nobody is left in it. If members leave in the same instant the leader's account is being closed, the succession is retried and, failing that, the seat is simply left to be repaired on the next guild read — never resolved by deleting a guild that still has people in it. (One narrow case survives, where the last members leave in that same instant and the empty guild is left standing: #770.)
1.0.0-beta.92 — 2026-08-18
Changed
Sending a fleet from a phone is three short screens instead of one long scroll (#749). The New mission form ran well past two phone screens — measured at 390 px, 2,154 px for an attack and 3,419 px for a defence — and the launch button stayed disabled for the whole trip down.
It is now a sequence. What the mission is for: the eight types are full-width rows with a readable sentence each, instead of eight cards whose descriptions were clipped mid-word ("Break a fleet, tak…", "One probe, full s…") — the words that explain the choice were not on the screen where the choice was made. The three verbs that carry most of the traffic sit at the top. Where it goes: the places the player has already flown to come first, and the sector/system/planet boxes fold away beneath them; most fleets repeat a destination, so typing coordinates had been the first thing on the screen for the rarest case. The fleet: what was chosen stays at the top as two chips that lead back to change it, and the target's owner, Power, shield and the age of the last probe report come with it — sizing an armada against a defender you cannot see was the one thing the single scroll did get right.
On a desktop nothing changes: it has the room to show the whole form at once, and it still does.
Fixed
Harvesting the debris above your own colony works from the phone. The wreck is in orbit, not on the ground, so the engine has always allowed it; the first draft of the new flow refused it and told the player the field was "the colony this fleet would leave from", which is not where it is.
The target panel no longer offers to send a probe at your own colony. Tapping it turned the mission into an espionage run and handed the composed fleet back to the advisor — on a panel that had invited the tap.
Also
The web tests can now open a screen and press its buttons: apps/web had no DOM, so its wiring could only be checked by looking for strings in the source, and four review rounds on the previous release each found a way to break a control while every test stayed green. This release is the first built on that harness, and it earned itself — the flow above went through four rounds of review that turned up two dead ends and a mission type that had quietly become unreachable, none of which a string search could see.
1.0.0-beta.91 — 2026-08-18
Changed
The market can no longer deliver you an unlimited amount in one day (#584). Publishing an offer needed a Trade Portal and was capped in size; accepting one needed nothing at all, and the slots freed up the moment a trade settled. So two accounts could move any amount of value between themselves, in either direction, all day — nobody was doing it, the gift traffic on the board is honest, but nothing bounded it. Now, per resource and per UTC day, the market can bring you at most twice what your Warehouse holds.
It is checked on whoever receives, which means it binds both sides: the seller receives what they asked for, so flipping who publishes the offer resets nothing. The three resources have three separate allowances — a ferrolite day that is used up leaves xenogas and data untouched — and there is no cross-resource valuation anywhere in it. An honest trader never meets the limit; a funnel does, and it stops growing when more accounts are added, because the allowance belongs to the destination rather than to the relationship between two players.
The board says so before you press anything. Offers your day — or the seller's — can no longer absorb are dimmed and carry the reason, instead of failing after you tap Accept. Your own offers carry it too, so a seller is never left wondering why nobody is buying. The two cases are told apart on purpose: a spent day says your allowance returns at midnight UTC, while a single trade larger than a whole day's intake says that instead, because waiting cannot help it and only a bigger Warehouse can. And an offer asking for more than a full day of your own intake is refused as you publish it, rather than sitting on the board unable to ever complete.
Nothing about the offers already on the board was rewritten: they keep their published price and their stamped fee, and accepting still requires no Trade Portal of your own.
1.0.0-beta.90 — 2026-08-18
Added
Your phone can tell you a fleet is coming (#721). An attack on a persistent 4X arrives while you are not looking, and nothing could reach you: the game has an early-warning panel and a battle report, and both required already being in the app. Guest play needs no email, so a player who drifts away was unreachable by construction.
The iOS app can now notify you when a fleet launches towards one of your colonies — "A fleet is heading for Lantea. It arrives in about 3 hours." — and when a battle there is over. The warning fires at launch rather than at impact on purpose: that is the only moment you can still do something about it, whether that is a shield, a recall, or answering the alarm with a garrison straight from the card.
Quiet by design. Never while you are in the app; never inside the eight-hour night window you already chose for night protection; never more than four a day; and a raid of a dozen fleets is one alert rather than twelve. The alert carries only what the base alarm already gives every player — which colony, and when. The attacker's name and the size of their fleet are still bought with the Observatory, and a notification is graded by nothing, so it never carries them.
iOS lets an app ask for notification permission exactly once, and a refusal is permanent. So the game never asks out of the blue: a card appears while an incoming fleet or one of your own battles is on screen, and only a tap on it opens the system dialog. "Not now" costs nothing and the card comes back later. Notifications can be turned off again from the HUD, and off stays off.
Nothing is delivered yet. Sending needs a push key that only Apple can issue: until it is on the server the game registers your device and stays silent. Everything above is live the moment that key is added, with no further release.
Deleting your account takes your registered devices with it (#720), so nothing can reach a phone for an account that no longer exists.
1.0.0-beta.89 — 2026-08-18
Fixed
The guild store ran off the side of the phone (#751). Ever since Colony Displacement took its place in the Treasury store, the whole sheet was laid out wider than the screen: every row was cut off at the right edge in the middle of a sentence — «· 0/3 this we…» — and the rows that lost their text were mostly the plain ones, a name and a price, which contain nothing that could have caused it. They were being dragged along by the row beside them. The store now fits the screen, its descriptions wrap instead of running past the edge, and the fold form's destination fields sit inside the sheet.
The cause was the three destination fields. A text field nobody has given a width to is twenty characters wide, and on a phone every field is enlarged for legibility, so the three of them together asked for more than a phone screen has — and that request travelled up the page, widening the entire store to fit them. Two things changed: the field row no longer passes that demand upward, and the store list is now capped at the width of the screen, so a single row that overruns can only overrun itself instead of re-laying every other row in the shop. The second half is the one that matters next time: the store is a list that grows.
Reported by Ajax with a screenshot precise enough to identify the row that caused it.
1.0.0-beta.88 — 2026-08-18
Fixed
The invite box opened as a directory of every commander in reach (#691). Opening a guild's Invite someone panel listed commanders the player had never asked about — ten of them, alphabetical, so the list began at whoever had named themselves 112 — each row carrying its own Invite button. The route behind it answers an empty query by matching everyone, and the panel sent exactly that on opening; the copy written for "you haven't typed anything yet" existed and was unreachable, because the empty query is the one that comes back full. Now nothing is asked for until a name is typed, and inviting is once again an act aimed at someone you had in mind.
Changed
The panel no longer rules on a search it has not made. While an answer is travelling it says Searching…; only an answer that came back empty says Nobody by that name. Before, that sentence appeared before the request had even left and stayed for the whole round trip — and to whoever had just spoken in chat with that person, the game denying they exist is where they stop trying. A failed search says it failed, and retyping the same name visibly retries instead of repainting the error being retried.
A search that found people says how many, and a list that came back full adds There may be more: keep typing to narrow the search. Ten results can mean "ten people match" or "ten is all the server sends", and with typing now the only way in, a list that looks complete is how a player concludes a friend is not in the game. At the cap the count says found so far, so it does not assert a number the line under it retracts.
The rows on screen always answer the name in the box. While a new search runs there are no rows rather than the previous ones: a list that swaps under a finger sends the invitation to whoever inherits that row, and an invitation cannot be withdrawn.
The panel's status sentence is a live region, so a screen reader is told what happened — it had no way to say so before, and removing the always-present list took away the only thing that was announceable.
Also
This is a change to the game client only. The route still answers an empty query by matching everyone, because the chat @-picker depends on that, so an installed app or a tab that has not reloaded keeps the old panel until it updates.
Receiving an invitation is untouched, and a guild set to Invite only is still enterable.
Tagged after beta.86 and beta.87, which were merged minutes after this one and therefore already carried the fix; the compare link below is against beta.85 for that reason.
Eleven known limitations found in review — among them that the server searches only the first 300 players by name, which can make Nobody by that name. untrue on a large shard — are listed on the pull request rather than fixed here.
1.0.0-beta.87 — 2026-08-18
Added
Delete your account, from inside the game (#720). An account took three taps to create and could not be removed at all: the only deletion in the game was the moderator's, on the admin panel, and a player who wanted to leave had nothing to press. It is also why the iOS app could not be submitted — the App Store requires in-app deletion wherever there is in-app sign-up.
The commander card — the portrait in the corner, on phone and on desktop — and the Command sheet next to log out now carry Delete account. Opening it deletes nothing: it lists what is about to go (colonies and everything built on them, fleets, research and Dark Matter, market offers, contracts and chat, guild membership) and asks for the commander's own name. The red button does nothing until something is typed, and the name is checked again on the server, so a mis-wired button or a stray request cannot delete an empire on its own.
It also says what survives: battle reports held by the players you fought, and guild log entries, both of which carry the commander name and are somebody else's history too. A list of losses that reads as exhaustive would be a promise the game does not keep.
Leaving is final, and the panel is honest about the one case where the outcome is unknown: if the reply is lost on a bad connection, pressing the button again is safe — the server answers the second attempt with "already gone" and signs the player out, rather than deleting twice.
Changed
The departure card on the admin dashboard now draws three causes instead of two: accounts the sweep removed because they never started, accounts moderation removed, and — new — people who deleted their own account. Summed into the moderation band, somebody choosing to leave would have read as an unusually busy week for the admin. The third band starts at zero before today, and that zero is the feature not existing rather than nobody using it.
Fixed
An account that was under attack could not be deleted cleanly: the fleets flying at it kept naming a player who no longer existed, and the attacker's recall then failed with a server error on every retry until the fleet landed on its own. The fleets still fly and still land; they simply no longer name a defender.
1.0.0-beta.86 — 2026-08-18
Added
Sign in with Apple (#719). The login screen offered exactly one account to sign in with, and it was Google. Anyone who did not want to hand Google an account was left with the guest door, whose empire lives and dies with the data on one device — and the app could not be published at all, because the App Store requires a privacy-preserving equivalent beside any third-party sign-in.
Both screens that offer an account — the login page and the commander identity dialog — now show Sign in with Apple above Continue with Google, at the same size. In the app it is the system sheet; in a browser it is Apple's own popup. A guest can upgrade to an Apple account exactly as they could to a Google one, keeping the commander, the colonies and the alliance.
Apple never has to hand over an address for this to work, and that shaped the whole design: whoever picks Hide My Email gets a relay alias, and from the second sign-in on the address can be missing altogether. The empire is therefore tied to the identity Apple vouches for and never to an e-mail. The name Apple offers on the first sign-in — the only time it ever offers one — becomes the commander name, and can be changed in game like any other.
Changed
The account section of the identity dialog names the way you sign in instead of assuming it is Google. An Apple account is told so, rather than being shown an address it could not sign in with; and it is not promised it "follows you to any device", which for Apple depends on configuration this release does not include.
The privacy page says what Sign in with Apple involves: what is stored, what is not, and that the first name Apple gives us becomes the public commander name.
Also
Nothing here is visible to anyone until the Apple side is configured. With no Apple audience set on the server, no Apple button is drawn anywhere and the endpoint answers "disabled" — which is what it does on novarchy.com today. The remaining steps are Apple's own console, and they are written down in apps/web/MOBILE.md and deploy/DEPLOY.md.
This release also carries the guild invite work merged separately just before it, which had not yet reached production. It is not described here: it belongs to whoever wrote it.
1.0.0-beta.85 — 2026-08-18
Fixed
The inbound attack alarm can be answered from the alarm (#732). The panel that tells you a hostile fleet is landing on your colony in thirty minutes had no controls on it at all. To respond you left the alarm, switched to the New mission segment, picked Defend out of eight cards, and typed back in the coordinates of your own colony — the ones the alarm was displaying two lines further up. A garrison is the only mission in the game with a deadline attached to it, and it was the only one you could not start from the screen that knows about the deadline.
Each alarm card now carries Send a garrison. One tap opens the launch form as a defence, already aimed at that colony, so the only thing left to decide is the fleet.
Also
When a garrison cannot leave from the colony you are currently launching from — because it is the colony under attack, or because its hangar holds nothing that can fight — the button says so and points at the Launch from row, instead of quietly disappearing. If no colony of yours could mount a garrison at all, the card stays quiet rather than offering something it cannot deliver: for most players the only colony they own is the one being attacked, and a button they can never press is worse than none under a running countdown.
Behind the scenes, the web tests can now open a screen and click it. Until this release nothing in apps/web had a DOM, so its wiring could only be checked by looking for strings in the source — a guard that pins one connection and leaves the next one loose. Four review rounds on this change each found a way to break the button while every test stayed green: a panel handing down a dead handler, a button hidden behind an observatory level, a value passed as null that removed the control for everybody. None of it was visible to a string search one element away. The new test mounts the real screen and presses the real button, and it caught a genuine bug the moment it existed: the check for "can this colony mount a garrison" was using the rule that sizes attacks, so a colony full of freighters — which fight as hull in a defence, and which the advisor would gladly send — was told it had nothing to send.
1.0.0-beta.84 — 2026-08-18
Fixed
The top resource strip no longer breaks your numbers apart (#556). On a grown empire the band had started tearing itself up: the energy balance split across three lines as ⚡ 16349 / then 16384, Power's S · M · Gate breakdown stacked three rows deep, the PP and DM units fell underneath their own figures, and the protection clock was cut clean off the right edge of the window — on a strip that does not scroll, so there was no way to go and look at it.
Nothing was wrong with the numbers. The row squeezed every tile until the text had to wrap, and it wrapped wherever a space happened to fall. Now the tiles keep their width: when they no longer all fit, a whole tile moves to the next line instead, and the queue chips and the protection clock move together as one group rather than being split between rows. Every figure stays in one piece and nothing ends up off screen.
The band is shorter than it was, not taller. Measured from 823px to 1920px wide, it lost between 13px and 66px of height while gaining back everything that used to be clipped — narrow and zoomed-in windows benefit most. Nothing changes on a phone: the strip there already scrolled sideways under your thumb, and it still does.
This does not close #556 entirely. On desktop it is still the night-protection selector that moves down a line first when the band runs out of room, rather than anything being dropped from the strip; that decision is untouched here and the issue stays open for it.
1.0.0-beta.83 — 2026-08-18
Added
Inventory: one screen for what you hold (#739). Everything on this tab already existed and had nowhere to live. Refit parts and your standing orders were behind the Campaign tab. Chrono-shards were only visible from a build queue. Dark Matter was in the header, relics in the guild panel, and a wrecked Destroyer nowhere at all — you could own three standing orders and an event hull without ever seeing them listed. Stores now shows all of it with item art instead of a column of figures, and every section keeps saying where its own holdings come from even at zero, so a mechanic can be discovered before it has ever been triggered. Refit is the desk that turns parts into standing orders: it MOVED here from Campaign rather than being copied, so there is one place a slot gets filled, and Campaign links straight to it the moment you win your first parts.
Fixed
A wrecked Destroyer is no longer invisible (#739). The legendary is wrecked, never destroyed — it comes back from the dry dock. Before, the only question asked was "do you own one", so the screen said nothing at all about a hull sitting in repair. It is listed now, with how many are waiting, and alongside a flying one if you have both.
Dark Matter is shown to the cent (#739). It could be floored to 0 on one surface while the header read 0.87 for the same holding — and the figure served is now the same live stock the header computes, not the last swept value.
A Dark Matter debt is a holding, not an absence (#739). Being hunted into debt no longer reads as owning nothing; it is listed as an amount owed, with the same explanation every other Dark Matter surface gives.
Changed
Chrono-shards are counted as banked time, not as pieces (#739). That is the unit the weekly earning limit is measured in, so a stack of shards and the limit can finally be read against each other — and the screen says plainly that the limit is on what you EARN, not on what you keep, and that a bastion's prize is exempt from it entirely.
1.0.0-beta.82 — 2026-08-18
Changed
The Campaign wait is gone — the battle resolves the moment you engage (#733). Before, tapping Engage sent the strike group on a 20-60 minute round trip: battle at the halfway mark, rewards at the end, one countdown after another. Nothing actually flies in the roster model — the strike group is virtual — so the clock went with the fiction: you tap, the battle resolves inside the request, and the outcome card (cleared or repelled, what was banked, the replay) is on screen at once. Runs still flying from the previous version land under the old rules, ships home as survivors, within the hour.
Retries are free, instant — and honest (#733). Losing a level costs nothing and you can go again immediately. But the same orders fight the same battle: a retry replays your exact fight instead of rolling new dice — change your deployment, a refit or your research to change the result. The level is a puzzle, not a slot machine, and the engage sheet, the forecast caption and the defeat panel all say so now. (Under the hood each level keeps ONE run row per commander, reused across retries, instead of minting a row per tap.)
A per-commander breather on the engage button (#733). Two seconds between engagements — invisible to normal play, it keeps tap loops and flaky-connection retries from stacking battles on the server. The agents' commanders play the new rhythm like anyone else: short sittings of a few levels with human pauses between taps, then a real rest.
1.0.0-beta.81 — 2026-08-18
The legendary Destroyer stops being a ship you cannot afford to use. (#718)
Added
A defeat wrecks the Destroyer instead of destroying her. She is granted once per empire and never again, so losing her used to end the story — and the rational way to own one was to leave her parked. Now she leaves your fleet the moment she goes down, and comes back for 9,000 ferrolite · 4,500 xenogas · 700 data and twelve hours in a dry dock. The panel sits at the top of the Shipyard and is invisible to everyone who has no hull to repair.
The wreck belongs to the empire, not to a colony. She can go down half a galaxy from home; whichever colony pays the bill is where she berths twelve hours later, and the panel says so before the resources leave.
Changed
Nothing shortens the twelve hours — not a Shipyard or Nanoforge level completing mid-repair, not a Chrono shard, not a guild push, not the Suspended Yard relic. The wait is what losing her costs.
A wrecked Destroyer leaves no debris. Her hull is towed home rather than scrapped, so it can no longer be harvested off the battlefield: that would have been the same ship sold twice, once as salvage and once as the unit that comes back.
She is no easier to kill. The Spectral Bulwark is untouched — nothing solo can destroy her, and it still takes two enemy commanders with ships on the field. Only what follows the kill has changed.
Fixed
The end-of-season sweep of the Event Sector no longer destroys a repair already paid for. Pending hulls now travel to the mother colony together with the ships; with no mother colony left, they are returned as wrecks rather than deleted with the bill settled.
Losing the Destroyer can no longer earn you a second one. The "one per empire, forever" rule now also counts hulls sitting in the dry dock, out on the campaign ladder, and parked inside an exodus offer — three places it could not see before. Two Destroyers were never a double prize, either: a pair loses the Bulwark's protection and both become killable.
Also
The Activity feed says when the hull is crippled, filed under Combat next to the battle that did it, and again when the repair starts.
The rollback runbook (deploy/DEPLOY.md) gained the block for this release, including the step that is easy to get wrong: a repair must have matured before forcing the resolve that makes it survive a rollback.
1.0.0-beta.80 — 2026-08-18
Nothing changes in the game this time. This one is about not losing it.
Changed
The database is backed up every 4 hours instead of once a night, and kept for 30 days instead of 14. A failure used to be able to cost up to a day of play; now it costs at most four hours. Roughly 186 backups are kept at any time, about 3.4 GB.
A backup is only kept once it has been checked end to end. The old command wrote its file whether or not the dump had succeeded, so a failure left a truncated file that would have looked like a good backup until the day someone needed it. A dump now goes to a temporary file and is only published after the dump exited cleanly, the archive verified and its size checked — a failure leaves nothing behind. Backups also carry every player's email address and every guild message, so they are no longer readable by anyone else on the server.
Fixed
The written recovery procedure did not recover anything. It piped a backup straight into the live database, where every table already exists, so nothing was restored — and because the tool does not stop on errors by default, it reported success. Measured against a copy of the live galaxy: 223 errors, the same 884 colonies before and after, and an exit code that said it had worked. The procedure now empties and restores in a single step that either completes or changes nothing at all, and it was tested by damaging a copy of the galaxy and recovering it.
1.0.0-beta.79 — 2026-08-18
Added
Colony Displacement: a colony can move (#722). Where a colony was born was where it stayed forever. The only thing that ever changed a colony's address was losing it — the Forced Exodus, after three lost sieges. So a player whose guild lived in sector 2 while free placement had put them in sector 7 had no way to close that distance, and a veteran who had outgrown the starting sectors had no reason to leave them.
Now the guild store sells a Displacement charge: 300 Scrip, one a week. You name a colony and a free planet, and the colony moves there with everything it had — buildings, queues, resources, and its age.
It does not teleport. For four hours it folds: it stays where it is, marked as folding on the map for everyone, and launches nothing, raids included. Only then does it arrive.
Two rules shape the whole feature:
Outward or sideways, never back into the cradle. Sectors 1-3 are where every new empire is placed, and they are the slots the galaxy keeps running out of. Folding within the cradle is allowed; folding into it from the frontier is not.
The fold can be stopped, and that is why it is public. If the colony's siege bar is charged when the countdown ends, the fold is cancelled and both the Scrip and the weekly slot come back. Winning a raid on it charges that bar; a defensive win clears it again. For the same reason a Peace Shield cannot be bought while a colony is folding, and a shielded empire cannot start one — a fold nobody can raid would be a fold nobody can stop.
On arrival the colony takes on the destination planet's type and richness, permanently, plus a day of shock and no shield; any allied garrison standing on it is sent home, and the colony cannot fold again for a month. The owner sees their own destination on the planet sheet; everyone else sees only that a colony is leaving, and when.
1.0.0-beta.78 — 2026-08-18
Changed
New app icon (#715). The icon was a flat cyan hexagon outline with a dot in the middle, drawn on near-black. Next to other games on a home screen it read as a placeholder rather than a game. It is now a forged crest: a six-pointed star set into a hexagonal steel plate, lit from the core. The hexagon stays — it has always been the game's mark — it simply has weight and light now instead of being an outline.
The same crest is on every surface that can carry it: the browser tab, the icon of the app builds, and the launcher icon on Android and iOS. Getting that right was most of the work — the Android launcher, one of its six screen densities, and the source file the native icons are generated from each had to be found and replaced separately, and any one of them left behind would have shipped two different logos in the same release. A launcher still showing the old hexagon after updating is showing its own icon cache, not the old release.
Nothing else changes: no rules, no balance, no new systems.
One thing this does not reach. On the website the icon set described by the web manifest is not referenced by the page, so for a browser visitor the tab icon is the only surface that changes; the "add to home screen" icon on the site is unaffected. That was already the case before this release and is deliberately left alone — connecting it would switch on installing Novarchy as an app, which is a separate decision from redrawing the logo.
1.0.0-beta.77 — 2026-08-18
Fixed
The Colony advisor no longer says a loss is reaching storage (#636). A suggested upgrade listed its per-hour figures as -1 Fe/h, +15 Xe/h, -1 Dt/h reaching storage, colony-wide. — and nothing "-1 Fe/h" reaches storage. The numbers were right and the sentence was wrong: upgrading a building that draws power deepens the colony's energy deficit, so a resource that is not overflowing comes out lower, while the upgrade is still worth doing overall. The card now states only what actually arrives, and states the cost separately, in words that carry the direction: The extra power draw pulls 1 Fe/h, 1 Dt/h out of what the rest of the colony keeps. It affected about one card in twelve. These same lines are the facts the in-game Advisor is given before it comments, so the model was repeating the false one in its own words too.
A card no longer hides what an upgrade costs you elsewhere (#636). When two suggestions happened to draw the same rounded amount, the panel treated the second card's cost line as a duplicate of the first and removed it — measured on 52 panels in 1,500. The figure belongs to its own card, so it is now always shown, even when it repeats.
1.0.0-beta.76 — 2026-08-18
Fixed
The market no longer accepts an offer with the same resource on both sides (#492). The board was carrying a live 10,000 Fe → 25,000 Fe listing, rendered in exactly the same layout as every honest trade — so the only thing separating "a good deal" from "a 15,000 Fe donation" was noticing that both chips said Fe. The same row also answered the sells Fe filter and the wants Fe filter at once, and the affordable one that buyers actually browse, and it occupied one of the seller's limited public slots. Publishing such an offer is now refused.
Worth stating plainly, because it is the first thing anyone assumes: this was never a way to create or destroy resources. The escrow moved the seller's stock out at publication and the buyer's in at settlement, and the totals always balanced. What it was is a shape that reads as a trade and is not one.
Changed
The Trade Portal composer says why it will not publish (#492). When the same resource appears on both sides, the Publish button goes dead and the line under the fields names every doubled resource, so the offer is corrected before anything is sent instead of coming back as an error. That line now also covers two cases it used to leave silent: an offer with only one side filled in, and one blocked because every offer slot is taken. The slot message takes precedence over the others — it is the only blocker that no edit to the form can clear.
Also
Offers already on the board are not re-checked. That has always been true of this market and it does not change here, so the listing that prompted the report stays until its seller cancels it or a buyer takes it; there is no migration and no escrow is moved.
A client that predates this release still has the old composer and can still send such an offer. It gets a short "your client is out of date" message rather than a raw error code, and a reload — or the latest build, on mobile — resolves it.
Reported by Roydisco, on another player's listing. Confirmed: 20 chrono fragments per tier.
1.0.0-beta.75 — 2026-08-18
Changed
The Campaign no longer takes your fleet — and it no longer ends (#703). Before, engaging a tower level meant committing real ships from a colony's hangar: they flew, they died, and losing a level could cost a navy. Now the tower is fought by an automatic strike group — one ship of every armed type the empire has unlocked, the Destroyer included for the event winner who owns one — and the hangar never leaves home: ships stay yours, for the map. What pushes you deeper is progression itself: research, Tree unlocks, and the ship refits fed by boss parts.
And the ladder has no end. The six chapter arcs now cycle forever as a wheel — Skirmish Line II, Bomber Wings II and so on — and every tenth level stays a boss that drops ship parts on every turn of the wheel, not just the first.
Your one order is the deployment (#703). Before engaging, the level sheet shows the enemy line and lets you place each ship class on a row — vanguard, center, rear — with a live forecast simulated on the real engine. The chosen deployment is remembered between runs and it is what actually fights: the battle is resolved with your rows, and the replay shows them.
The climb is calibrated on the measured game, not on a formula (#703). The first version's curve looked fair on paper and lost every battle from level 2 with default rows. The ladder now opens where a day-one empire clears exactly chapter 1 — all ten levels, boss included — and the wall past it is research's job to move: a maxed-research empire reaches the mid-twenties, a full Tree with the Destroyer about level 70, into the wheel's second turn.
The season board now shows the deepest climbers (#703). The Leaderboard tab carries a Campaign section: top 20 by levels cleared. The depth is public — what you claim in chat, the board can check.
Fixed
A cleared level now names what it paid (#703). After a run lands, the tab shows the outcome card: cleared or repelled, what was banked — resources up to your warehouse capacity, parts in full — and a replay button that says which battle it plays, even while the next run is already in flight.
For players with a run still flying from the previous version: it lands under the old rules and your committed ships come home as survivors. During the switchover hour those runs resolve against the new, gentler garrisons — the error is in your favor.
1.0.0-beta.74 — 2026-08-18
Fixed
Every colony showed the home colony's coordinates, and was drawn as the home planet (#699). Opening a colony that was not the first one, the Colony tab printed the home address instead of that colony's own: the tab at the top right said 1:7:2 while the panel underneath said 8:3:3, and it did so on every colony a commander owned. The panel now prints the address of the colony actually on screen.
The caption was the smaller half, and the half nobody could see was the picture. Those same coordinates generate the planet rendered at the top of the panel, so a second colony was drawn as the home world wearing its own terrain type and richness — and because the drawing was tied to the address it never received, two colonies of the same type and richness kept the identical planet when switching between them. The sphere is now generated from the colony's own address and redraws when the colony changes.
Changed
The planet in the Colony tab is no longer rebuilt every few seconds (#699). The 3D view was discarded and recreated on every refresh of the screen, which reset its slow rotation to the first frame twice a minute. It is now rebuilt only when the planet on screen is a different planet.
A 3D view that fails to load says so (#699). If the file carrying it never arrives — a network that drops, or a page left open across a release — the panel now reports it and asks for a reload, instead of leaving a silent empty square that would never fill in for the rest of the session.
The reward promised on the report — 20 chronofragments of each size to Jsnam, who found it — is not part of this release and is still to be granted.
1.0.0-beta.73 — 2026-08-18
Fixed
The Dark Matter tile shows its production with a plus sign (#705). The line under the Dark Matter balance read ~3.72/day. The tilde meant "roughly", but it is drawn small and faint directly beneath a number that is allowed to be negative — bounties claimed on you are paid out of your own balance — and at that size a tilde and a minus are the same handful of pixels. A commander carrying a bounty read their own production as negative, and an investigation was opened into a fault that does not exist: the rate cannot go below zero, because the energy factor that scales it is capped to the 0–1 range and the level that feeds it is guarded. The line now reads +3.72/day, on the tile and in its hover text alike, so the balance above and the rate below can no longer be mistaken for each other.
Nothing about Dark Matter production has changed — the Accelerators output exactly what they did before. Only the way the number is written has changed.
Note on ordering: this release is numbered after beta.72 but its commit precedes it. Two sessions shipped in parallel, and the beta.72 deploy carried this change to production alongside its own. compare/v1.0.0-beta.71...v1.0.0-beta.73 therefore shows exactly the one commit this entry describes.
1.0.0-beta.72 — 2026-08-18
Nothing changes in the game itself. This release repairs the recorded history behind the admin dashboard — the daily note of how many people are actually playing — which was stamping a copy of today onto every day it wrote.
Fixed
Recorded weekly and monthly active players belonged to the pass that wrote them, not to their own day (#687). The job writes one row per UTC day: today, yesterday, and any day still missing a row. It took the daily count from that day's own players, but the weekly and monthly counts came from a single figure computed once, at the instant the pass ran — so every row that pass wrote carried the same pair. The first run against an empty table wrote thirty rows all saying the same thing: a perfectly flat month that reads like a measurement and is a copy. In normal operation the same defect was smaller and permanent — the two newest rows always agreed, so the day-over-day change at the leading edge was zero by construction, forever. Each row now counts the seven and the thirty days that close with its own day, and the row for the day still running matches what the live panel prints at that moment.
Changed
A failed read no longer costs a day the numbers that cannot be recovered (#687). Reading the action history is the widest query the job makes, so it is the first to fail when the database is under strain — and it was taking the whole pass down with it, including that day's power curve, activity ladder and onboarding funnel. Those describe a population as it was at a moment and cannot be reconstructed once the day has passed, unlike the two figures that can always be recounted. The pass now retries over the two most recent days rather than abandoning everything.
The rows recorded before this release keep the old meaning, and that is worth knowing before reading the chart: a pass only ever rewrites today, yesterday, and days with no row at all, so the thirty rows written when the daily record first shipped (beta.47) are never revisited. The series is right from this release forward and flat before it, with a step in between. The database comment on those columns now says so outright, so nobody reads the older part as a measurement.
1.0.0-beta.71 — 2026-08-18
Fixed
The impact countdown on an ally under attack reads in whole seconds again (#708). In the guild Raids panel, the "Allies under attack" row could print its timer with the whole binary tail of a subtraction attached — "impact in 2m 51.599999999999994s" — while the raid rows below it counted down cleanly. The two rows measured the time differently: the raid rows work from the arrival instant and round, the ally row works from a figure the server precomputed minus the time elapsed since it was read, and that difference is a whole number of seconds only by accident. The rounding now sits in the one place both rows pass through, so neither can print a fraction again, and it rounds up: while any time is left the timer shows at least one second, and only a fleet that has arrived reads "impact now".
Nothing else changes — the fleets arrive at the same moment they did before, and no decision taken from that panel is affected.
1.0.0-beta.70 — 2026-08-18
Nothing changes in the game itself. This release corrects the admin dashboard — the internal panel used to read how the game is actually going — which was measuring retention over the wrong group of people, and always in the flattering direction.
Fixed
Return by signup cohort counted only the accounts that still exist (#686). The automatic sweep deletes precisely the people who register and never start, so within days a week had lost its non-starters from its own denominator and the card was answering "of the people who stayed, how many came back". A week where 100 registered, 74 were swept and 13 of the 26 survivors returned printed a 50% day-1 return; the true figure over everyone who actually arrived is 13%. Cohorts are now sized on registrations — the same population the arrival chart was already repaired to count — so the two cards finally describe the same people. The arrival bars had been fixed earlier and the rest had not, which is what made the disagreement visible.
A week whose registrations were all swept no longer disappears (#686). It had no surviving row to draw, so the worst week the server ever had was rendered as a week nobody registered in.
Changed
A Gone column shows how many of a week's signups have since been deleted. "100 signups at 13%" and "26 signups at 13%" are opposite findings, and the percentage alone could not tell them apart.
Weeks the deletion record does not fully cover are starred, with a note stating which way they are wrong: missing deletions understate a week's signups and therefore overstate its return, so a starred row reads high, never low. Deletions have only been recorded since the day before this release, so a partly repaired old week sitting beside a fully repaired recent one would otherwise have drawn a retention collapse out of two weeks that behaved identically.
The activity ladder and the First Steps funnel now name the population they count. Neither can be repaired the same way — a swept account takes its colony and its recorded progress with it — so instead of being corrected they state their denominator and say plainly that they are not comparable with the arrival chart.
Also
Counting a deleted account as somebody who never came back is an assumption, not a proof, and the card says so. The obvious argument for calling it exact is wrong: the sweep judges activity on the colony, while this card also counts a chat message, so somebody who only ever chatted can be both swept and a genuine day-1 returner. The error runs toward understating return, and the Gone column makes its size visible.
The colour bands on the table (green at 40%, gold at 20%) were calibrated against the old, inflated shares and have deliberately not been retuned. Over real arrivals the realistic band is far lower, so green is now close to unreachable; choosing new bands is a judgement about what a good week looks like, and it is recorded as an open decision rather than guessed at.
1.0.0-beta.69 — 2026-08-18
Nothing changes in the game itself. This release repairs the admin dashboard — the internal panel used to read how the game is actually going — which answered the same question two different ways depending on which button was pressed.
Fixed
The MAU and Stickiness tiles no longer change when the chart window changes (#685). Those buttons are meant to control the charts, and the two tiles beside them are labelled last 30 days and DAU / MAU. Pressing 7d rewrote them anyway: a monthly-actives figure of 200 became the 60 people active that week, still captioned "last 30 days", and Stickiness went from 10% to 33%. The error only ever flattered — pressing 7d made retention look three times better than it was. A figure named after a fixed span now measures that span whichever button is pressed, and only the charts and the in-window counts follow the buttons.
Two more figures had the same fault, and neither was in the report (#685). Weekly actives and the 7d column in the player rosters were computed the same way, and were wrong for any window narrower than a week. The buttons on screen only offer 7, 30 and 90 days, but a narrower one can be asked for by hand through the address bar. The visible consequence was the churn-risk list reporting "0 actions this week" next to somebody who had in fact acted inside that week — the one number that list exists to show.
Also
The recorded history was never wrong and needs no correction. The hourly job that writes it always asks for 30 days, which is the single width at which this fault could not occur, so the stored series has no step in it at the moment of this release.
Opening the panel on the 7-day window now costs what the default 30-day view already costs. It is no longer the cheaper read, and it is no more expensive than the panel's normal load.
1.0.0-beta.68 — 2026-08-18
Fixed
A colony could lose its stored resources with nobody attacking it (#662). Some colonies were saved before certain buildings existed, so their record simply carries no entry for those buildings. Four places in the engine read those entries while asking "is this level zero or less?" — a question with no sensible answer when there is no level at all — so the missing value travelled on as an unusable number instead of being read as "this building is not there". It mattered most in the routine that works out what a colony produced since you last looked, which runs every time anyone opens the game: it reads the warehouse ceiling, the energy factor that scales all output, and each building's hourly rate, and one unusable value in any of them wiped the stockpile on the spot — permanently, because the next read added to what it found. No live colony was ever in that state; production was checked before the work started and again before it shipped.
A corrupt warehouse level meant no storage limit at all (#662). Such a colony hoarded without a ceiling. It now falls back to the base limit, because a broken value must never be worth more than a real one. The reverse case is deliberately left alone: a limit too large to represent is not replaced by the base one, because that would truncate a colony legitimately holding more — an earlier draft did exactly that and would have destroyed resources in the change meant to protect them.
One participant could cost a whole raid its points (#662). If a single contingent's fleet value came back unreadable, every share — the honest ones included — came out as zero, so nobody was paid and nothing looked wrong. Shares are now computed from the participants whose fleet value can actually be read, and the total handed out is unchanged.
Dark matter could be corrupted permanently (#662). A colony with a broken Accelerator level could write an unusable amount to a player's dark matter balance, and every credit after that was unusable too. Both the source and the point where it is stored now refuse it.
A refused score now leaves a trace (#662). When the server drops a value for being unusable it says so in its log. It used to stay silent, which after the previous fix was the last remaining sign that anything was wrong. The ordinary zero-score case — every battle against an NPC — stays silent by design.
Notes
Nothing changes for a healthy colony: every real building level produces the same number as before, down to the last digit. This release closes holes before anyone fell into them.
What is deliberately not in it: the repair migration the issue asked about. It was made conditional on a read-only query, and that query returned no rows — no score, no colony and no balance in production is affected — so there is nothing to repair.
1.0.0-beta.67 — 2026-08-18
Added
The Campaign (#696). A new tab: a per-empire ladder of 60 authored NPC levels in six chapters — Skirmish Line, Bomber Wings, Aegis Column, Entrenchment, Bastion, Capital Line — and past 60 the tail (The Deep) publishes levels forever. Before this, a new player finished First Steps with two interceptors in the queue and nothing telling them what to do with them; now level 1 is that next step, sized so the starter pair beats it (measured in the battle engine: the design's first draft was 4× too strong and lost 40 seeds out of 40). Everything is published before committing — the exact enemy line, emplacements and fortresses included, its value, the payout, the round-trip clock — and a forecast box runs the same engine the server resolves with. Fleets are real: they can die, survivors come home, and a cleared level is never replayable for reward. Only an attacker victory clears; a draw is a retreat.
Ship parts and modules (#696). Every tenth level is an Arc boss and drops parts (Alloy Frames, Coil Arrays, Field Cores — 26/24/28 across the authored sixty, a thin two-per-boss trickle in the tail). The Refit desk turns them into standing orders per ship CLASS, three bays each, three published options per bay, every option a real tradeoff and the only drawback-free option priced as the parts sink. Refitting a bay again takes 12 hours and replacing refunds half the parts. Fleets already in flight keep the orders they left under — battles snapshot modules at launch on missions, raids, garrisons, ambushes and campaign runs alike, and the defender fights with its current orders.
The refit is part of the Power score (the ⅓ band, the bounty, the bastion scaling and the leaderboard all see it), the Shipyard's PP labels include it, and the leaderboard shows every empire's campaign depth.
Changed
Campaign clears pay war points priced exactly like expeditions (same divisor, same PvE haircut, same per-engagement cap), and only the first clear of a level ever pays anything — parts, points and the resource payout all ride the same depth check, so deliberately re-losing or retreating farms nothing.
A fleet committed to the campaign still counts in your Power for the whole engagement, and shrinks to the survivors the moment the battle resolves — leaving for the tower neither hides your navy from the gate nor lets dead hulls keep scoring.
Also
Agents climb the ladder too, on human terms: not every persona takes an interest, and those who do engage with margins and pauses of their own (persisted across restarts). Their reality sheet carries the campaign, so they answer questions about a public depth column truthfully.
DESIGN-CAMPAIGN.md documents the whole design, including what was deliberately cut (speed/cargo module axes until the travel and hold arithmetic reads them) and this release's rollback SQL in deploy/DEPLOY.md.
1.0.0-beta.66 — 2026-08-18
Changed
A colony's regrowing defences can only be harvested so fast (#577). The Planetary Shield's bubble and the Defence Batteries come back for free after every battle — the bubble is whole again the moment the next fleet arrives, and emplacements rebuild themselves every 30 minutes. Each new attacker was paid full price for breaking them, so a group taking turns on one colony farmed it indefinitely. Measured on a fortress colony before the change: 300 war points to the first attacker, and 300 again to a different attacker one hour later, at every spacing tried.
Those two defences now pay out of one allowance per colony, worth a single battle's maximum and refilling over twelve hours. The first attacker in a window is paid exactly what they were paid before; the next one that hour is paid for the wreckage they actually made and nothing for the wall that grew back. Measured after: 300, then 25 an hour later, 150 at six hours, and a full 300 again at twelve. A defence harvested no faster than it regrows never feels it.
Destroyed ships, loot, the victory bonus and the underdog multiplier are untouched — only the part that comes back for free is rationed. And nothing about how much damage the bubble absorbs, how hard the emplacements hit, or how fast either regenerates has changed.
A joint raid shares that allowance (#577). Each contingent keeps its own ceiling for ships and loot, but a colony's regrowing defences regenerate once however many fleets shot at them, so the regrowing half is split instead of paid to each. This is a real reduction in what a large raid on a heavily fortified target scores, and the first pass of a multi-contingent raid is the one case that is not identical to before.
Ganging up on a fortress pays less per attacker, which makes turtling slightly stronger. It is the intended consequence of the above, not a side effect.
Added
The game says when a colony has been harvested (#577). The owner reads it on their Shield and Batteries sheets — how much of the colony's war-point allowance has recharged, and when it is full again. An attacker reads it on a spy report, so a fresh fortress can be told from one somebody hit an hour ago; that figure ages by itself while the report sits in the log and disappears once the colony is back to full price. Both surfaces say plainly that the defences are not weakened, only cheaper: the rule keys on other players' battles, which is exactly why it needed to be visible at all.
Known limits
The per-pass price is unchanged: a first attacker on a colony with a full allowance still collects what they always did. This change prices repetition, not the first blow.
Destroyed emplacements are still valued at their full build cost even though they regrow for free — about a fifth of a battle's maximum each at Batteries L14. This change rations that price without fixing it, and it deserves its own issue.
1.0.0-beta.65 — 2026-08-17
Changed
Twice as many anomalies each week, and the AI empires have stopped taking them (#640, #525). The whole galaxy held one unclaimed anomaly fifteen and a half hours into the week: 48 spawned for the entire server, they were gone the night they appeared, and the map never said why — it simply looked like the feature did nothing.
The weekly draw goes from 6 to 12 per sector. Anomalies already out there did not move: the new ones were appended beside them, so nothing in flight was disturbed and no reward changed.
And the AI empires no longer compete for them, which is the half that decides who actually gets one. The reset lands at midnight UTC, when few people are online, and the supply is first-come-first-served — so the race was over before most players woke up. That was Alessio's call in #chat-with-devs on 13/08 and it is now real, in both directions: they do not launch expeditions, and they no longer settle a colony on an anomaly's coordinates, which used to erase it with no battle report and no trace at all.
Fixed
A claimed anomaly no longer hides a free one (#640). The map showed you only your first few signals, and the cut ran before the ones already taken were removed — so if somebody claimed them on Monday night you saw an empty sector for the rest of the week, with free anomalies sitting in it. Now a taken one is replaced by the next one you can reach. Corrected on the political map, the system view and the launch button together: they could otherwise disagree, showing a signal and then refusing the mission.
The map says why it has no signals (#640), and says the true thing — which is three different things. That Astrometrics 0 detects nothing anywhere; that the cycle really is exhausted; or that signals remain but your level cannot resolve them. In that last case it names the Astrometrics level that would actually reveal something still out there, rather than the next one up the scale, which on a Thursday buys nothing.
Launching at an anomaly somebody already claimed no longer costs one of your five daily scans and a round trip to discover it. It is refused when you press the button.
"Investigate an anomaly" is no longer dealt at Astrometrics 0 (#640), where no anomaly is visible anywhere in the galaxy and the card sat there impossible for the whole day — a wasted slot out of three, for the players least able to spare one.
Also
Anomalies can still only appear in the oldest ten systems of each sector, and in the core those are almost entirely settled, so most of the new supply lands in the outer sectors — the trip is still a trip. Opening the rest of the galaxy to them is the larger lever and costs nothing in rewards, but it re-rolls the week in progress, so it can only ship at a week boundary and has its own issue.
1.0.0-beta.64 — 2026-08-17
Changed
A garrison's watch and its trip home are two different things (#620). When a guard shift ran out, the ships appeared back in their home hangar at that same second, while standing a garrison down early was billed the whole flight back. Doing nothing was free and doing the sensible thing cost you — so late in a long watch, standing down landed the fleet later than leaving it alone, and the confirm panel had to talk the player out of its own button.
Now the watch ends, the fleet lifts off, and it flies the same way home either way. The duration on the launch slider is time on station, with the trip back on top, and the mission card says so: it counts down to the end of the watch and names the flight home beside it. Standing down early can no longer land a fleet later than waiting — it gets the ships home sooner by exactly the watch still to run, and what the player gives up is the cover the ally loses for that time.
Garrisons already on station were moved onto the new rule rather than left on the old one: all 28 live at the time of the deploy were re-timed at startup, and came home one flight later than their old countdown implied. Leaving them behind would have meant the rewritten panel telling those players that standing down was faster while it was in fact slower for them.
Fixed
A spy report no longer reports an enemy garrison as home the moment its watch ends (#620). It was quoting the end of the guard shift as the instant the fleet was back in its hangar, handing the reader a window that was not there.
The War Room's "send defence" box promised the fleet back when the watch ended. It now says it fights for the whole watch and then flies home — and it is the one screen that chooses the watch length on the player's behalf.
The progress bar of a garrison flying home sat at almost full for the whole trip, because it was drawn from the moment the fleet had landed on the ally's planet hours earlier.
Also
This composes with the battle hold of the previous release (#648): a watch that runs out while a fleet is on final approach still keeps the garrison on station until the fight is resolved. The two rules read as one sentence — the watch ends, then the battle finishes, then the fleet flies home — and a garrison held by a battle flies its trip home from the release, not from the bell, so the hold can no longer erase the leg.
⚠️ An app that has not updated still shows the old stand-down warning that standing down "gets them home later, not sooner". That advice is now the wrong way round for every garrison, and the server has no way to correct a bundle already on a phone.
1.0.0-beta.63 — 2026-08-17
Fixed
The dashboard charts have a y-axis, and every value on them is readable (#633). The activity, arrival and departure cards drew bars and lines in a box with no axis at all — one card put actions peaking in the thousands beside a headcount peaking in the dozens, on shared coordinates. That is a dual-axis chart with the axes left off: where the two series crossed and where they diverged looked like findings, and were artefacts of an arbitrary alignment. The only real numbers on screen were the peaks printed in the legend.
Each card is now a stack of small multiples: one plot per measure, each with its own labelled y-axis in whole numbers, all sharing one x-axis drawn once underneath. Every plot names its series and prints today's value and the window's peak; every mark carries a hover title; and under each card a Numbers panel holds the entire series as a table — the reading that needs no pointer, no hover and no colour vision.
Today is drawn as the partial day it is, on the lines as well as the bars (#633). Every plot ends on today, which at 08:00 UTC holds eight hours against twenty-four for every day beside it. The last bar was already faded; the lines were not, so one card showed a pale last column directly above a line ending in a full-strength cliff — the same eight hours drawn two ways, five pixels apart, under a caption that promised a fade the line did not have. Both are faded now, the caption says so, and the Numbers table marks its last row today so far.
A chart that cannot be drawn says so, instead of reporting zero (#633). When a figure the page could not read reached a card, it printed "No registrations at all in this window" — a hard, confident zero, on the panel someone would be using to find out whether registrations had stopped. Those cards now say the figure is unknown rather than none.
Smaller honesty repairs on the same cards (#633). The arrival plot's "peak" named the human series while the column beside it was humans and agents stacked, so with agents running hot the printed peak could sit a third of the way up the column it appeared to label. The legend chip for agents was solid while the band was translucent — a colour that appeared nowhere in the plot. The net plot's axis could reach two and a half times the largest movement in the window, flattening a month of real change into a pulse. The arrival table listed two nested counts beside the total that contains them, so a row read as more arrivals than the day had. A one-day window printed its date three times across the axis, and drew no mark at all.
1.0.0-beta.62 — 2026-08-17
Changed
The Wraiths have started playing properly (#680). The hostile faction that arrived in beta.55 was not very good: thirty empires that only knew how to build. They never collected a contract, never took a guild directive, never donated, and never spent a chrono shard — seven First Steps rewards sat reached and unclaimed on every one of them while their build queues stood empty for want of exactly the resources those rewards pay.
They now collect what they have earned, run their guild, and burn shards to collapse their build queues. What a player sees is a faction that grows noticeably faster — still on its own economy, still under the same rules as everyone else.
The diagnosis is worth recording because the first attempt fixed the wrong thing. They were not slow, they were broke: the build queue was empty and every build call came back insufficient_resources. A chrono shard buys time off a queue, and you cannot accelerate a queue that is empty because you cannot afford the next building. So half the work turned out to be about income, not speed.
Also
Two corrections to claims made in the beta.55 notes, recorded here because a published claim that has stopped being true is worse than no claim (#680). That release said the faction had "no head start, no gifted fleets, no shortcut" — they were since given a large stock of chrono shards, so that is no longer accurate. It also said "every attack it launches is decided by a person", which remains true: nothing here lets them attack unattended, and their scheduled pass still cannot order a fleet.
The client gained a way to collect First Steps rewards at all (#680). It never had one, which means the 75 autonomous LLM empires have never claimed theirs either — free resources every one of them has been leaving on the table. Filed separately; this release only fixes it for the Wraiths.
1.0.0-beta.61 — 2026-08-17
Fixed
Changing the mission type no longer throws away the fleet you picked (#495). Choosing the ships first and only then remembering to change the type — Attack to Redeploy, in the report that started this — replaced the whole selection with the advisor's fleet for the new type. Nothing on screen said so, and on a redeploy the advisor proposes the entire hangar, so the substitution did not look like an error: it looked like a full, deliberate selection. Most players found out at launch, or after it. Setting the destination after picking the ships did the same thing, once for every coordinate field they typed.
A hand-picked fleet now survives both. The advisor takes it back only when asked — use it, spy it first, switch to espionage — and those three behave exactly as before.
Switching to Espionage or Colonization says what it did (#495). These are the only two missions the engine requires a specific ship for, and switching to one without it still hands the fleet to the advisor. Now the screen says so and names what was missing, instead of swapping the numbers in silence. If the hangar holds no such ship at all, the selection is kept instead: handing it over would have replaced it with nothing and left the picker empty.
The picker can no longer show ships that have already left (#495). A selection that now outlives a change of type also outlives a departure, so it is trimmed to what the hangar still holds — and the trim sticks, rather than springing back when the ships come home. What the player reads is what will fly.
Changed
The advisor says when it has changed its mind, instead of changing the fleet (#495). When the mission type, the destination or the cargo moves after a fleet has been picked, a line beside the Fleet label reports that the advisor would now choose differently and offers its fleet as a button. It appears only when the recommendation actually changed, so it stays quiet through the ordinary edits that do not move it.
"Fill every carrier" only fills the cargo now (#495). Its label used to promise that the advisor would then size the fleet around the load, which stopped being true the moment the player picked the ships themselves. It sets the cargo and nothing else, and says so.
1.0.0-beta.60 — 2026-08-17
Fixed
A garrison could walk out of the battle it fought in (#648). If a guard shift ran out while an enemy fleet was landing on the colony it was defending, the fleet flew home with every ship intact — and its owner then read a battle report saying part of it had died. The ships had counted in the defence, so the attacker really did fight them; they were simply back in the hangar afterwards. A garrison wiped out to the last ship came home whole.
The protection against exactly this already existed, and had been believed to cover the case. It did not: it was wired only to the Stand down button, so it covered the player who chooses to leave early and not the one whose watch simply runs out — which is the common case, and the only one the player cannot avoid.
A watch that runs out under fire now waits for the battle. The garrison stays on station, fights the fight it was sent for, and flies home once the fighting is over.
Changed
Garrisons can now land a little later than their watch says (#648). Only when a battle is actually landing on the colony they are standing on, and never for long: the ceiling is measured from the end of the watch, so an attacker cannot stretch it by attacking again, and once it is reached the fleet leaves regardless. Nobody can strand somebody else's fleet on a planet.
On the Missions tab a garrison held this way keeps its card and says why, instead of sitting at 0s with nothing on screen to explain why the ships had not moved. On an ally's colony, and against an attack hidden by a Veil, the card stays silent — saying more there would reveal an incoming attack the defender is not supposed to see.
The stand-down panel no longer says your ships are home when they are not (#648). That sentence could appear over a fleet still standing on a defended planet, and — once garrisons could be held past their watch — over one that had just been destroyed in the battle. It now reports only that the watch is over, which is true whether the ships landed, are waiting out a fight, or are gone.
1.0.0-beta.59 — 2026-08-17
Fixed
The Build button refused the order it had just offered you (#533). With a full build queue, watching a building finish — the row disappears, the greyed-out buttons come back to life — and clicking straight away answered «Queue full: wait for the current work to finish». Waiting a couple of seconds, and the very same click worked. Reported from Discord, and reproducible "reliably enough that I don't think it's fully random".
Your device and the server never disagreed about when an order ends: that instant is written by the server and travels untouched. They disagreed about what time it is now, and on purpose — the game ignores a clock difference under ten seconds, because correcting one that small would only make every countdown jitter. The mistake was letting that same approximate number decide when a queue slot came free. It is fine for drawing a countdown and wrong for predicting what the server will accept: on a device running a few seconds fast, the interface handed back the slot early and the server refused for the rest of those seconds.
The queue now waits until the server can be shown to agree. If the button is lit, the order goes through.
The shipyard and the launch pad had the same fault, and nobody had reported them yet: a slip could read free before the server had freed it, and a ship that had just left the yard could be offered for a mission before the server had built it. Both are fixed by the same change; the research queue was never affected, because it reads its list from the server rather than recomputing it.
«Ready in ready» on the shipyard, research and building panels, and a tick that claimed an order was complete while its row was still sitting in the queue. Those rows now say «finishing up…» for the moment between the countdown reaching zero and the work being confirmed.
Changed
A finished order leaves its queue when the server confirms it rather than when your own device guesses, so on a device whose clock is off — or on a slow connection — the row lingers a moment longer at zero before the slot frees. That wait is not new: it is the same wait that used to end in an error message, now spent looking at a row that says what it is doing.
1.0.0-beta.58 — 2026-08-17
Fixed
The Pirate Beacon told you nothing about how much you could carry home (#552). The Beacon the game seeds in your own system is meant to be the first raid worth making, and the squadron it is calibrated for — three to five Interceptors — can lift 100 of the roughly 650 sitting there. You would win the fight and come home with a seventh of it, and nothing on screen had ever mentioned the hold. The advice that fixes this existed: the Advisor adds freighters until the expected loot fits, and says "hold full, add freighters". It was unreachable. Without a spy report the Advisor refuses to recommend any fleet — rightly, because a composition invented out of nothing sends players into battles they lose — and that refusal took the hold advice down with it. The one sentence a newcomer needed sat behind a 50-Dati probe nobody thinks to send at the tutorial target parked next door.
Now, on a Beacon with no report, the Advisor states the two facts it can state without spying: what your selected fleet lifts, and the most that Beacon can ever hand over. It recommends nothing — that part still needs a probe — and the numbers move as you pick ships.
What the line promises is deliberately narrow, because the pool is not a fixed thing. It says up to, since a Beacon raided recently holds far less. It says any attack in the last few hours empties it, won or lost — a raid that got you repelled resets the pool exactly like one that looted it, which is the case a newcomer is most likely to hit and least likely to guess. And it says a fight you do not win outright pays nothing at all: a Beacon that has grown its batteries can leave one standing at the last round, and that is a draw — your ships come home, your holds come home empty.
Once a spy report exists the line steps aside and the real forecast takes over, sized against the pool as it actually stands.
The Interceptor's cargo is untouched. This was never a balance problem; the information was simply not there. Not included: handing out or mentioning a Freighter in the guided first steps — that chain's steps are saved with your colony and each one pays a reward, so adding one changes the opening economy and belongs to its own decision.
1.0.0-beta.57 — 2026-08-17
Fixed
The relics can be fought for again (#663). The four ancient sites — The Jump Ring, The Verdant World, The Suspended Yard and The Exarch Archive — were each guarded by 22,186,744 automatic ships. That was not a hard fight, it was an impossible one: a raid of 715,060 hulls destroyed 2.9 million defenders, killed not a single one of the eleven million interceptors, lost 564,000 ships of its own and came home with nothing. Nor could the damage be worn down across several attacks, because the site rebuilds its guard to full on the next maintenance pass. Every relic on the server was frozen in the hands of whoever already held it, and no coalition existed that could change that.
The guard now stands at 16,007 ships — the size it was always meant to be: heavy enough that nobody takes a relic alone, light enough that a guild which organises an expedition can.
A relic measures its guard against the strongest fleet in the galaxy, and the measurement was reading an administrative account whose ships were granted by the server rather than earned. The relics were being calibrated against a fleet nobody ever had to fight for. Strength is now measured only across ranked empires, the same set the leaderboards use.
The faction bastions were measured with the same broken ruler. The Silent Choir, The Black Foundries and The Exarch Guard were tuned against that same borrowed fleet — and, because a relic site counts as an empire with a colony, against the inflated relics too. The two kinds of stronghold had been quietly inflating each other. They now stand where the design puts them: above the strongest player, and not out of everyone's reach.
1.0.0-beta.56 — 2026-08-17
Fixed
Commanders talk about the game, not about its code (#595). A player reported two things in the same message: an AI commander mentioning its "cantiere" in an otherwise English sentence, and the Recycler card describing a technology as "Active Salvage (i_reclamo, Forge tree)". Neither word was ever written for a player to read — they are the internal keys the code uses, printed where a name belonged.
The chat one was not a slip of the model's. The block of true facts every commander is given before it speaks handed it the keys as they are — {'cantiere': 1}, armiEnergia=3 — so it repeated what it was given. Commanders now read, and say, the same names the player sees in their own panels: Shipyard, Energy Weapons, Active Salvage, Freighter, Spy Probe. The Recycler card names the technology and where to find it (Forge tree, T5) instead of quoting its key.
Three facts commanders could state backwards (#595), found while fixing the above. A commander that had been probed could speak as though it had done the probing, to the very player who had probed it. An attack between two guilds was described to both sides as an attack on one of their own, which the battle report disproves in one click. And the routine promotion from recruit to member was recorded as a demotion, so a commander could complain in guild chat about being pushed down a rank under a log line saying the opposite. All three now say who did what to whom.
Internal counters stay out of conversation (#595). War tension, grudge weights and sympathy scores were reaching commanders as bare numbers like 0.62 — figures that appear on no screen in the game. They still act on them; they no longer quote them.
Also
A market trade a commander has made now carries its amounts, so a commander asked what it paid can answer instead of dodging — or inventing a figure (#595).
Guild announcements about rank changes and research read in English rather than mixing in internal terms, and a guild's request for help asks for "data" rather than dati (#595).
Left out on purpose, and tracked in #656: the guild decision prompts still use Italian JSON keys, which are a contract with the model's own reply and have to be changed on both sides at once; and a commander in the attacking guild still records a grudge against its own guildmate, which needs the guild identity plumbed through to the agents rather than a change of wording.
1.0.0-beta.55 — 2026-08-17
New
A hostile faction entered the galaxy: the Wraiths [WRTH] (#651). Thirty empires under one command, announced as what they are rather than disguised as neighbours. They exist because the top of the leaderboard kept saying the same thing in different words — nothing left to do, nobody to defend against, nothing to lose.
What a player sees: a new guild in the directory, thirty new names on the leaderboard, and — in time — raids. What they do not see is a shortcut. The faction starts from nothing: no granted fleets, no seeded colonies, no head start of any kind. On the day it was founded its strongest empire sat at 52 Power against 161,000 for rank ten, so for the first days it is weaker than almost everyone it intends to fight, and it spends them digging like anybody else.
The rules it plays by, which are enforced in code rather than promised:
it hunts the top ten only — nobody below rank 10 is ever a target, because newcomers are not who asked for enemies;
it spreads the pressure. Targets are chosen by who has been left alone longest, never by who is cheapest to hit, with a six-hour cool-off before the same empire is struck again. Left to the obvious rule, thirty empires converge on one victim and farm them out of the game while the other nine never meet the faction;
it can be beaten, raided and looted like any other empire — ordinary loot, ordinary bounties, no special armour and no special prize;
threats made to it in chat count, and threats it makes are recorded by everyone else.
Every attack it launches is decided by a person. The faction's own economy runs on its own, but nothing in it can order a fleet without someone choosing to.
Also
Two corrections that only whoever runs the server will notice (#651): the admin dashboard now counts the new faction as machines instead of as thirty players who never churn — left alone it would have flattened the retention curves permanently, because the daily rollup is frozen and not recomputed — and the sweep that clears never-started accounts no longer mistakes an unbannered Wraith for one.
1.0.0-beta.54 — 2026-08-17
Fixed
The Galaxy panel could only reach the first ten systems of a sector (#603). The galaxy grew to nineteen systems per sector on 14 August, and the System control in the Galaxy tab never grew with it. The dropdown ended at 10, the ▶ arrow greyed out there, and a system opened from the political map announced itself as "1" while its real number was 14 or 17 — with the ◀ arrow still working, so you could walk down from a system the panel refused to name.
It was not a few missing rows at the bottom of a list. Nine systems in every sector could not be opened from normal navigation: 72 of the 152 in the core sectors, very nearly half the galaxy, and precisely the half the expansion opened up, where new colonies are now being placed. Those coordinates were legitimate everywhere else — the leaderboard listed the empires living there, chat links to them resolved, the servers served them. The only screen that refused was the one meant for looking at them.
The dropdown now lists every system the sector has, the ▶ arrow runs to the last of them, and a system reached from the political map shows its own number.
Reported by arcticpaladin, who described all three symptoms precisely enough that the cause was one line of code. Bounty paid: 20 chrono fragments.
Nothing else changes for the player. The control moved into its own piece of the interface so that the next expansion carries it along or fails loudly: the previous one slipped past for three days without a single test noticing, because the Galaxy tab draws a canvas that no test in this repository can render, which left the list of systems it offered invisible to every check we had.
1.0.0-beta.53 — 2026-08-17
Fixed
A war score could freeze and never recover (#578). Attacking certain colonies permanently broke the attacker's score: from that battle on, every later one added nothing — for the rest of the week and the rest of the season — with nothing on screen to say so. The player simply stopped scoring while everyone else kept climbing. One unreadable building level in the target's saved data was enough, and a colony old enough to predate the Defense Batteries qualified; attacking it directly did it, no special setup needed.
An unreadable level now counts as nothing instead of poisoning the whole battle around it, and the ships the attacker actually destroyed are still paid. That distinction is the fix: the obvious version of it, which cleaned up the score instead of the source, silently threw those kills away on every battle against that colony.
A joint defence that won could pay nobody (#578). The same data reached the split of defensive points, and when it did a successful defence paid zero — to the colony's owner and to every ally who came to help, at once.
A broken score can no longer win the season (#578). A frozen score did not sink to the bottom of the standings; it sorted above every real score. At season close it would have taken first place, the first-place reward and the season Destroyer ahead of whoever earned them. Those rows are now skipped in the leaderboard, in the final standings and in the Destroyer award.
Also
Nothing about combat changed. No battle outcome, forecast, advisor figure or Power value moves by this release.
Scores already frozen are not repaired, and the entry says so because the fix does not. This stops new ones; it does not clean old ones. A player already affected now reads as 0 points and no rank and will not appear in the final standings or receive a season reward, and a guild war whose score is already frozen stays a draw. Whether anyone is in that state has not been checked — that is a separate job. Three sibling paths of the same shape (the shield pool, the storage cap and the energy factor) were found during review and deliberately left for a follow-up.
1.0.0-beta.52 — 2026-08-17
Fixed
A loud night no longer buries your espionage reports (#439). The Activity feed holds fifty rows, and until now those fifty simply went to whoever wrote last. After a night of border tension you opened Combat and found fifty lines of tension notices — and the spy report from the day before, with the coordinates you were keeping tabs on, had scrolled out of existence. It was not noise pushing out noise: that report is the only place those coordinates survive.
The fifty most recent rows are still exactly what they were, in the same order. What the noise buried is now listed underneath them: the most recent few rows of each kind of event those fifty do not already carry. Your spy reports come back, with their dates on them.
Honest boundary, because the feed does not reach forever: what the noise buries beyond the last four hundred events is still out of reach, and a rescued report is the most recent few per kind, not all of them.
The Fleet Advisor stops guessing when it should remember (#439). It reads the same feed to recall what you already know about a target, so when a report was evicted it silently fell back to assuming the enemy looked just like you — a recommendation that looks perfectly ordinary and is not. It sees those reports again.
Changed
Rival commanders check the date before treating something as news (#439). Bringing buried events back means handing them facts older than ones they had already absorbed, and they had no way to tell. Left alone, a restart would have had them announcing a two-day-old battle as it happened, nursing a grudge they had already settled, and opening the channel with "the intel I just gathered" about a probe from yesterday. They now ignore anything older than the last thing they already knew.
1.0.0-beta.51 — 2026-08-17
Fixed
A raid's loot no longer disappears between the battle report and the warehouse (#587). A raid came home with a full hold, the battle report and the mission card both said the whole haul, and then the warehouse settled at its ceiling with a smaller number and nothing anywhere explaining the gap. The loot was written into the colony above its limit and trimmed later, silently: with a cap of 500.000, a colony at 450.000 and a raid returning 900.000 Ferrolite, 50.000 landed and 850.000 vanished without a line in the diary.
The deposit now stops at the ceiling and the part that did not fit is named in the return event — the same signal transports have had since #385: "attack mission complete, but the departure colony was already full: 15.500 Fe had nowhere to go and was lost." A raid whose loot fits says nothing about losses, exactly as before.
Changed
A colony that produces nothing can no longer hoard loot above its ceiling (#587). This is the half of the change that really takes something away, and it is worth stating plainly. The warehouse cap is applied while a colony produces, resource by resource — so a colony with no Extractor, Refinery or Compute Node for a given resource was never trimmed on that resource at all. A forward colony used purely as a raid ramp starts with every building at zero, and could therefore bank loot above its limit raid after raid, without bound, and spend it.
From this release that excess burns on landing and is reported like any other loss. On a colony that does produce the resource nothing changes: the excess was already being destroyed at the next tick, and only the explanation is new. If you have been stockpiling on a colony that produces nothing, build the matching producer or expand its Warehouse before the next raid lands.
The Warehouse card, the resource tooltip and the phone sheet said the ceiling applied to what you produce. They now say that what a fleet brings home stops at it too. And the loss row no longer tells a raider to "expand your Warehouse before shipping it back" — nothing is shipped back after a raid.
1.0.0-beta.50 — 2026-08-17
Fixed
Founding a colony with a big starting endowment no longer destroys it (#639). You could attach two million Ferrolite to a colonisation, open the new colony when it landed, and see every unit sitting there. Nothing warned you. Then the first Extractor finished and the colony dropped to 5.000 — the rest gone, with no event and nothing in the diary to explain where.
A colony founded this instant has no Warehouse, so it can only hold 5.000 of each resource. Nothing truncated the endowment at the moment it landed, which is what made it cruel: the engine applies that ceiling only on a line that actually produces something, and a colony with every building at zero produces nothing. So the numbers sat there looking safe until the first producing building completed, and that tick collapsed them.
Now the endowment is measured against the ceiling when the fleet lands. What fits is delivered; the rest turns round and flies home with the returning fleet — the same thing an over-full transport has done since beta.4, on the sibling path that had been getting it right all along. Nothing is destroyed.
The diary was changed to match. Where the row used to say «New colony founded» and the coordinates — while two million Ferrolite were quietly reversing course — it now names the real ceiling (higher if Deposits research has raised it), says that building a Warehouse is what lifts it, and gives both numbers: what the colony kept, and what is on its way back.
Also
A colonisation sent with a lone colony ship has no return leg at all: the ship itself is consumed founding the colony. In that one case the excess has no way home, so the game now states plainly that it was lost, and why, instead of writing it above the ceiling for the next tick to eat in silence. Reaching it takes Logistics research far beyond anything a live empire has, so no current player can hit it — it is fixed because the failure was destroyed resources, not because it was likely.
Worth knowing if you plan around it: the largest useful endowment is now the new colony's ceiling, 5.000 per resource, or up to about 9.000 with Deposits fully researched. Before this, a large endowment could be preserved by rushing a Warehouse before any producing building — that is no longer possible, and nothing is lost by trying.
1.0.0-beta.49 — 2026-08-17
Fixed
A ship's name plate no longer sits on the ship in front of it (#445). With formations on, the name and the survivor bar that hang under one rank landed on the hull of the rank ahead — and since those are drawn over the hulls, a light ship in the vanguard was not merely crowded, it was gone. Measured on the playground battle: the whole silhouette covered on a phone, about a third of it on a laptop, something on every screen size tried. The ranks are now spaced by however much the battle and the screen actually need, so every ship stays visible.
The distance could never have been a fixed number, and that is the reason this took four rounds of review to get right. The plate is a fixed size in PIXELS while the ranks are spaced in world units, so the further the camera pulls back the more screen the plate eats and the less a rank step is worth. It is now solved per battle, and solved exactly — but the first cut solved it against the wrong thing, measuring the survivor bar (45 px) when the plate is the wide half of the block (145 to 181 px for a real roster), and the bench could not see the mistake because it fed its own oracle the same wrong number. On short screens it now declines to act at all rather than push the vanguard's own name behind the shield panel: a scene that does not improve beats one that hides the rank taking the fire.
The flyover clears the defenders (#445). When neither fleet can shoot, the attacker crosses the field — and stopped 20 units inside the rearmost defending hull instead of past it, while a comment above that line claimed to have fixed exactly this. It now aims beyond the ship that is really furthest back, and stops at the edge of the frame rather than parking off-screen for the rest of a scene whose only content is that pass.
The planetary shield follows the ranks (#445). With formations in the air, the top and bottom ranks of a defending fleet hung outside the Bubble. The shell now stretches to hold them.
Changed
On wide screens the camera sits about 3% closer: it was keeping room for the depth of the ranks as if a step back were worth a full step sideways on screen, which the viewing angle never allows.
Restarting a replay now puts every ship back exactly where it started, height included. It restored only the horizontal position before — correct only because nothing yet animates the height.
Also
Ships of a wide front — many groups on one line — can still poke outside the Bubble, exactly as they always have. Only the part the ranks caused is fixed. Every way of covering the rest made the shield look worse: grown to fit it becomes a lens on old reports, capped it puts the shell wall through the middle of the outermost hulls.
The ranks now read as more separated vertically than the depth cue that carries their meaning. That is the price of the fix and it was measured rather than guessed: allowing part of a hull to stay covered moves the spacing by about 5%, so there is no version of this that is both cheap and visible. A hull entirely behind a name plate is worse.
None of this was ever looked at. The visual check could not run — the browser tooling would not load the local dev server — so every claim above is measured in code, and the rendered result is unverified.
1.0.0-beta.48 — 2026-08-17
Like the release before it, nothing here changes what a player sees or how anything in the game behaves. No deletion behaviour changed either — only whether it is written down.
Also
The server records when an account goes away (#641). Novarchy deletes accounts automatically: whoever registers, plays under five minutes and never returns has their account removed, which frees the planet and releases the nickname. That has been running for a while and left no trace at all — a line in a log file and nothing else — so "how many did we lose last Tuesday" stopped having an answer the moment the container restarted. It is the one fact in this system that erases its own evidence: a deleted account exists in no table, ever again, so unlike every other number on the admin dashboard it cannot be reconstructed afterwards. Not stale — absent.
It also repaired the release before it. The arrival chart added in beta.47 counted registrations from the accounts that still exist, so every deletion silently rewrote its own past: the sweep removing a hundred never-started accounts lowered the previous week's bars, and the chart showed survivors while reading as growth. Arrivals and departures are now drawn together, and the registration bars are repaired with the accounts that have since gone. A first attempt at that fix made it worse before it made it better — subtracting departures from a survivor count subtracts every deletion twice, which drew a growing population as a collapsing one — and the correction is now split into its two visible halves so a reader can check it rather than trust it.
Two decisions worth recording. The record stores nothing that identifies anyone: no address, no nickname, no id. Releasing the nickname is the whole reason the account is deleted rather than just the colony, and keeping it in a metrics table would quietly undo that. What is kept is how old the account was and how long it was actually played — which answers the only question the cleanup's thresholds turn on: are we losing people who tried, or people who never really started?
And the record is written inside the same transaction as the deletion, so a deletion that cannot be recorded does not happen. If the record ever breaks, the automatic cleanup stops rather than running blind. For something that erases accounts on a timer, stopping is the right failure.
1.0.0-beta.47 — 2026-08-17
Nothing in this release changes what a player sees or how anything in the game behaves. It is an instrument for whoever runs the server, and saying that plainly is better than dressing it up.
Also
A dashboard behind the admin panel (#633). The admin panel could say who a player was and what could be done about them. It could not answer anything with a time axis: how many people arrived this week, how many came back the next day, where new commanders stop, whether the power curve is running away from the rest of the server. That half now exists — daily arrivals, return rates by signup week, a funnel over the fourteen First Steps showing which step loses the most people, the shape of the power and wealth curves instead of an average that describes nobody, and three lists: most active, least active, and who was playing and has gone quiet.
The work was not the charts. Three of the numbers the server already keeps look like they measure activity and do not: a "last seen" stamp that any background request refreshes and that was backfilled for every old account, a colony timestamp that moves when somebody else raids you, and any headcount that pools the AI empires in with the people — a number that describes a game that is always doing fine. Everything on the panel is built instead on the five things only a player can do: queue a building, order ships, start a research, launch a fleet, send a message. Two service accounts that are not players are removed by name, and the admin's own empire — hand-edited while the game was built — is out of every curve that measures concentration.
It also prints what it cannot see. Reading your battle reports and logging off performs none of those five things and counts as inactive, as do market trades and guild applications. The panel says so on the screen, because a dashboard that flatters itself is worse than not having one.
One thing had to be recorded rather than derived: power, Dark Matter and the funnel are computed from the world as it is right now and have no history, so a daily row is written from today onward. Everything else is reconstructed from records the game already kept, which is why the panel can draw the last ninety days on the day it shipped.
1.0.0-beta.46 — 2026-08-17
Fixed
The Warehouse card no longer reads like a production bonus (#450). The colony advisor led with +803 Fe/h, +2,915 Xe/h reaching storage, colony-wide. and mentioned only underneath that storage fills up within eight hours. Both facts were on the card — that much was fixed in #434 — but nothing joined them, so the natural reading was additive: it gives me +803/h, and my storage happens to be full. Players concluded the Warehouse raises production. It produces nothing at all: those resources were being thrown away over the cap, and the level catches them. Three words at the end of a list of numbers, reaching storage, were carrying the whole distinction, and the cause came after the effect. The card now says the cause first and the figure second, as one thought, with the denial in the same breath as the number: Storage fills up within 8h: everything produced over 32,768 is simply lost. then This level catches +803 Fe/h, +2,915 Xe/h that would otherwise be lost over the next 8h — the Warehouse itself produces nothing. The denial travels with the figures on purpose: the advisor's written comment replaces the first line of a card, so the figures are what a commented card shows on their own.
A Warehouse level that costs you power says so, separately (#450). Each level draws a little more energy, so on a colony already short of power the rest of the buildings bank slightly less. That loss used to be mixed into the same list as the gains, which could print catches -2 Fe/h … that would otherwise be lost — a loss described as a rescue, in a sentence that also said the building produces nothing. The price is now its own line, naming what causes it: Its extra power draw pulls 2 Fe/h out of what the rest of the colony keeps. It is never shown alone: an upgrade whose only figure is a loss would be worse than the card that started this.
Both lines are also the facts handed to the advisor's written comment, so the model can no longer repeat the old mix-up in its own words.
Left out
Only the Warehouse. Every other building's card still prints a signed list, so -1 Fe/h, +15 Xe/h reaching storage, colony-wide. is still reachable elsewhere — measured on about 8% of cards during review. It is the same defect, but fixing it changes copy on every building, so it is tracked separately as #636.
The recovery figure is a per-hour average over the eight-hour window, so multiplying it by eight overstates what a colony that has not started overflowing will actually lose. Per-hour is the convention on every advisor card, and changing it here alone would make one card speak a different language.
1.0.0-beta.45 — 2026-08-17
New
A forming joint raid now calls you (#437). Joint raids kept forming and filling — 373 at full strength over a measured fourteen days — and in that window not one human commander was in any of them. The reason was not speed. The Joint raids door in the guild command room said strike together and nothing else, so a player learned a raid existed only if they happened to open that particular door during the window it was forming in — and a raid expires. A forming raid was only ever in front of whoever was already staring at the raid list when it opened. The door now says what is actually happening — 2 raids forming · next in 38m — and burns red while any of them is still open to you. The Guild tab carries a mark when one is waiting: on the desktop bar, on the phone's Menu button, and on the Guild tile inside it, so the call reaches someone who is not looking at the guild screen at all, which is where the hole actually was. Raids you have already joined, raids that are full, and raids that have already landed are not counted: a badge that overstates is a badge that stops being read. It costs no extra loading. The signal travels on the guild summary the game already refreshes every thirty seconds, so the rule the command-room doors were built on — a door loads nothing until you open it — still holds.
Fixed
The joint raid panel keeps up while you watch it (#437). It loaded once and never again, so a raid a guildmate opened a minute later never appeared, even with the panel open in front of you — which is exactly the moment the panel exists for.
The impact countdown was wrong the longer you sat there (#437). A raid twenty minutes from landing could read impact now to someone who had been watching the panel for ten. The same fault sat on the "allies under attack" clock, where it also mis-sized the guard fleet you sent next. Both are now measured against the real arrival time.
A refused launch no longer erases its own explanation (#437). If your fleet could not reach a raid in time, the reason appeared and then quietly disappeared within half a minute, leaving a fleet that had not gone anywhere and nothing on screen to say why.
A momentary connection problem can no longer look like leaving your guild (#437). Any failed refresh — a timeout, a server hiccup — used to empty the guild screen and show the join-a-guild browser, which on a phone also closed whatever panel was open. Only the server actually saying "you are in no guild" does that now.
Also
Four refinements found while reviewing this work are deliberately not in it, and are tracked in #628: the mark has no dismiss, so declining a raid keeps it lit for the rest of the forming window; the call cannot know whether your fleet can physically reach the raid in time; a target that gained a shield after the raid opened is still counted; and the same for two guilds that signed a pact mid-window.
1.0.0-beta.44 — 2026-08-17
Fixed
The leaderboard says which column it is ranked by (#435). A commander sent in a screenshot of the Points column with the note "numbers are not correct": read top to bottom it goes up three times. Every number in it was right. The board is ranked by the Gate, so the Points column is under no obligation to descend — and nothing on screen said so. Four numeric columns were drawn identically, exactly one of them governed, and the headers could not be clicked, so "let me sort by Points and see" was not available either. The only way to find out was to file a report. The ranked column now carries a ▼, and a line above the board states what orders it — in words, not in a tooltip, because a tooltip never opens on a phone.
New
The columns can be sorted (#435). Gate, Points, Colony pts, Research pts and Colonies each re-order the view on click; the rows are already on screen, so nothing is fetched. Clicking Gate returns the board to its own order. Re-sorting changes the view and never the standing: the # column and the podium keep showing the real position on the board, so sorting by Points can put a #2 at the top — which is the thing that was reported, now visible instead of hidden.
Changed
The Power tile in the header shows the Gate (#435). The same screenshot caught it reading 102,175 PP · S 58,138 · M 44,037 twenty pixels above a leaderboard row reading 58,138: two different quantities under the word "power", because the tile leads with the total while the board ranks on the larger of the two parts. For a balanced empire the headline is nearly double the ranked figure. The total stays the headline — that is what PP means on every other screen — and the Gate now sits on the breakdown line next to Structural and Military, taken from the server's own figure rather than recomputed, so the two screens cannot disagree by the one point that recomputing produces on about a quarter of empires.
On a phone the board always follows its own order. That layout is a card list with no headers, so a sort carried over from a wider window could not have been undone without reloading.
Left as it is, and on purpose
Sorting runs in one direction only, so clicking the column that is already sorted does nothing visible. Every ordering the feature offers is still reachable; an ascending/descending toggle would have doubled the marker vocabulary for a page whose job here was to say which column ranks it.
1.0.0-beta.43 — 2026-08-17
Fixed
Buildings rest on the tile they stand on (#342). The base plate drawn in a building's art is the cell it occupies — measured across the sprites it is 98.9 world units wide against a cell of 100 — and it was being drawn floating above it, by about a tenth of a cell. While placing or moving a building the cell outline stuck out below and in front of it. Thirty-six of the seventy-eight building sprites now sit down onto their own tile, among them the Laboratory, the Factory, the Extractor, the Refinery, the Solar Panels, the Reactor, the Shield, the Batteries, the Cannon, the Command Centre, the Relay and the Terraformer.
The Arsenal and the Factory stand at the same height (#342). They draw the same sprite and used to sit a few units apart. The Arsenal's hand-set value turned out to be the most accurate number in the file — 1.1 units from the measured one, against the Factory's 8.6 — so it barely moves, while the Factory comes down to meet it.
Not fixed, and deliberately
The other forty-two sprites — the Fortress, the Hyperportal, the Warehouse, the Silo, the Sensors and several stages of others — are left exactly where they were, to the pixel. Their art has no base the game can identify: the widest part of the drawing is halfway up the body, or a ring on legs. Anchoring them on a guess was tried and measured, and it planted twenty-four of them below where any base could be, the stage-III Extractor by two thirds of a tile. So they keep the position players already know, and where they actually rest stays open on #320.
Two consequences of that split are visible and worth naming: a building can now sit up to about one depth row lower than its neighbour, and a building whose stages fall on different sides of the split can shift when it reaches stage II or III — the Outpost by 17 units. Both are the remainder of the same old defect rather than something new, both are pinned by tests so they cannot grow unnoticed, and closing #320 removes them.
Nothing here changes a cost, a timing or a battle. The issue asked for the anchor to be converted from one fraction to another; it turned out there were two errors cancelling each other, and doing only what was asked would have made the symptom worse — the pull request carries the measurements.
1.0.0-beta.42 — 2026-08-17
Changed
The Espionage sheet says what the deepest tier actually sells (#406). A tier-3 spy report has revealed where the defender's ships stand since battle formations shipped, and the Research screen — the only place the Discipline is bought — never mentioned it: it listed "fleets away, with return ETA" and stopped there. Nobody was told the battle line was for sale, which is the cheapest explanation for zero tier-3 reports out of the 1304 issued so far, and it had to be ruled out before anyone could conclude the level was priced wrong. The sheet now names it, and a test ties the sentence to the engine's own disclosure rule rather than to the number 17, so the copy cannot drift away from the gate.
Fixed
Espionage was documented as being able to show you a Freighter wall. It cannot (#406). The rows in a report are the hulls that defend by default, so unarmed ships walled into the vanguard through a defence plan never appear in one — the plan is not spiable at any grade. The claim lived only in a code comment, so no player was ever shown it, but it was the justification for what the tier costs, and it was false.
Nothing in this release changes a battle, a price, or how any fleet fights. The agents' side of issue #406 — reading a target's rows and countering them — stays deliberately unbuilt, and the issue is still open with the measurements that say why.
1.0.0-beta.41 — 2026-08-17
Added
A garrison on your own colony can be sent home before its watch ends (#356). You sent three colonies' fleets to defend a fourth, won the fight in the first ten minutes, and then watched those ships sit there for the rest of the watch — up to twelve hours — with nothing left to defend against. The watch length was fixed when the mission launched and there was no way to lift it. A garrison standing on one of your own colonies now carries a Stand down button: the fleet lifts off and flies home, the whole way, at normal speed. The flight home is the only price; there is no cooldown and no limit on how often you do it.
The confirm sheet prints both durations before you commit — the trip home and what is left of the watch — because standing down is not always an improvement. At the end of a watch the ships are deposited home instantly, so late in a long watch standing down lands them later, and in that case the sheet says so in as many words, with the difference, rather than leaving you the subtraction.
Two refusals, both stated on screen instead of discovered by tapping. While a hostile fleet is on final approach to that colony the watch holds — from the instant the attacker itself can no longer turn back until the battle resolves — because nobody walks out of a fight that has begun. And a garrison standing on someone else's colony still cannot be sent home early by anyone; it stays until the watch ends. The launch form now says both halves of that rule before you commit a fleet.
What this does not include, deliberately: releasing a garrison that someone parked on your colony. That is the host's side of the same feature, it needs its own design, and it is not in this release — so a defence you pledged to an ally is still a defence you cannot take back.
Changed
A garrison's card now reads "Standing guard, home in …" (#356), where it used to say "lifts off in". At the end of a watch there is no flight afterwards: the ships are home at that same instant. The old wording implied a return leg that does not exist, and made standing down early look like a pure gain in every case.
Fixed
Turning a defence around while it was still in flight is logged as a recall again (#356). It had begun appearing in the activity log as "Garrison stood down — the garrison lifted off on your order", over a fleet that never landed and never mounted a watch.
1.0.0-beta.40 — 2026-08-17
Fixed
The galaxy map no longer opens with its top row hidden behind the HUD (#421). On a phone the map fills the whole screen and the panels float on top of it: the identity band and the filter chips across the top, the navigation bar and the prizes strip along the bottom. The opening view was fitted and centred against the whole screen rather than against the part of it you can see, so on any phone with a notch the northernmost systems were drawn underneath the chip row — 167 pixels down a 664-pixel screen whose panels end at 195, and 141 on a 600-pixel one. The map now measures those panels and frames itself against the clear space between them, so the whole hive opens where you can see it and ⤢ Fit, ⌖ Home and the edges of a drag land there too. Tapping still selects the system under your finger.
On the two phone sizes where systems were hidden the map opens smaller — 84% and 70% of its former size — which is what it costs to show all of it inside a band shorter than the screen. Where the map was already fully visible, the opening view is unchanged to the pixel.
What the report got wrong, for the record (#421). The complaint was that the map could only be dragged sideways and never up and down, and it named the drag limits as the cause. Neither held up: vertical dragging works and always has, and the limits keep a pad around the hive that already put every system in clear space at the edge of a drag. An earlier attempt built on that diagnosis (PR #461) was measured and closed without shipping. What was true is the second half of the report — that the panels cover the top — and the file the issue pointed at was not even the one that runs: it described the old perspective map, reachable now only from a dev page.
Changed
Turning the phone sideways is deliberately untouched (#421). In landscape the panels keep the heights they reserve in portrait and take about two thirds of the screen, so there is no spare room to reframe into and shrinking the galaxy to fit would have drawn it at a third of its size. Landscape keeps exactly the view it has always had, including the top row sitting under the chip row, until the panels themselves stop reserving portrait heights (#616).
1.0.0-beta.39 — 2026-08-17
Added
Missions start from the colony you are standing on (#334). The launch pad always opened on the home colony, however far from her you were, so anyone running a forward base corrected it by hand at every single launch — spy missions included. It now opens on the colony the screen is showing, and the destination opens there too instead of on the mother's address. It keeps following the colony selector until you pick a launch pad yourself, or until you start cutting a fleet: from then on it stays where it is, because moving it clears the ships you picked.
Keyboard shortcuts for switching colony (#334). 1–9 jump straight to a colony in the order the selector lists them, C cycles to the next, Shift+C goes back. They do nothing while you are typing in a field, while a panel or the battle replay is open, or when held with Ctrl/Cmd/Alt — and they are desktop only, where there is a keyboard. The colony dropdown's tooltip announces them, since a shortcut nobody is told about is a shortcut nobody uses.
Your home colony is offered as a mission destination again, and marked (#334). The shortcut row deliberately hid it, which was right while every fleet left from home and wrong the moment the launch pad could be somewhere else: hauling loot back to the capital is the commonest transport there is, and it was the one destination the row refused to draw. It now hides whichever colony the fleet is leaving from, and tags the capital MOTHER.
Spy reports say whether a shelter is up, and when it lifts (#334). The report never mentioned the one fact that decides whether the fleet you are assembling can leave, so the player who reported this had taken to launching probes on attack missions purely to read the refusal. A report now carries the expiry — shielded until 9:40 PM, novice shelter until 8/20, 11:15 AM, or plainly that neither was up — and shows it on the closed card, so a target can be chosen without opening every report in the feed. There is no research gate on it: the fact that a colony is shielded is already free on the galaxy target board, and a report that costs a probe should not say less than a free list. What it adds is the moment the door opens.
Changed
A spy report is explicit that it answers about shelters, not about attackability (#334). It covers shields and the newcomer shelter and nothing else, so it never shows a green light: pacts, the night window and relic locks refuse launches too, and the night window in particular stays private by design — an opponent's sleep is theirs.
1.0.0-beta.38 — 2026-08-17
Changed
Guilds start at 25 seats instead of 15, and grow to 50 instead of 30 (#611). The old cap was doing the opposite of its job. It was written as an anti-hegemony rule — Clash of Clans' 50 scaled down to a small server — but in play nobody was ever pressed against the ceiling: what a new guild hit was the floor, on day one, with the first five extra seats 700 XP away, about a full eight-week season. And the anti-hegemony job had already been lost, because the biggest guilds here were founded before the rule existed and were never bound by it. The cap therefore constrained only the new guilds — the ones it had been written to protect, and the only ones a fresh signup can actually join.
The first widening now arrives at guild level 2 instead of level 3. That is roughly one month of Directive tiers rather than a whole season, so a young guild sees the door widen while it is still recruiting. Seats now grow at levels 2, 4, 6, 8 and 10 — five steps instead of three. The XP curve itself is unchanged; what moved is which level pays out.
Guilds that were already larger than the cap keep their size, as before. With the ceiling at 50, the guild frozen at 28 members is overtaken at level 2 and recruits on the ordinary rule again; the two above 50 keep their size and their turnover and do not grow.
The ceiling is 50 and not higher because member count is load-bearing elsewhere: it is the aid board's limit, past which a real member's open request can be pushed off the list. Two other numbers were measured before settling on it — the full research Address costs 28% of a season's donation capacity at the base cap, inside the band the design defends, and the Eschaton Project's cost in days halves as the roster doubles.
Fixed
"That guild is full" now names both ways a seat opens (#611) — the guild levelling up, or somebody leaving. It mentioned only the second, which is now the rarer of the two.
AI guild leaders no longer claim to be full when they are not (#611). The rule they fell back on used a hardcoded number, so a guild with fourteen of twenty-five seats taken could turn a player away as "full" while the panel beside it showed the free seats. They now read the real capacity and quote the actual numbers.
An AI leader no longer welcomes a player it has just turned away (#611). In some replies the refusal and the greeting came from two separate decisions, so the guild channel could announce the arrival of somebody who never appeared in the roster.
The guild aid board no longer loses a slot to a departed member (#611). A request opened by someone who had since left kept occupying a place in the list, which could push a current member's open request off the board — leaving them unable to withdraw it or receive help until it expired.
Also
Guild levels still unlock seats and cosmetics only: no production, research or combat bonus at any level.
1.0.0-beta.37 — 2026-08-17
Added
A ship reference in the Shipyard: the whole fleet catalog, and who beats whom (#332). The counter table is the most decisive thing in a fight — a hull deals from ×1.2 to ×5 the damage against what it counters — and until now a player could only see it one ship at a time, on whichever card happened to be selected. Asking "what do I build against a Titan?" meant clicking through sixteen ships and holding the answer in your head, so in practice the table was learned by losing a fleet to it. A new button opens the whole catalog at once, grouped by class, each hull with what it beats, what beats it, and by how much. It was asked for on the forum by a player who wanted to know what each ship type is actually for.
Each row also says what a ship is for, not only what it kills. The Freighter, the Spy Probe, the Colony Ship and the Colonial Ark state their job where the counter table has nothing to say; the Shroudrunner and the Spectral Corsair admit they live off freighters and colony ships, which their combat line hid — a Corsair used to introduce herself as "Overpowers cruisers" and say nothing about the trade she was built for.
The planetary defences are in the reference too. They are not part of the ship-vs-ship table, so a page built from that table alone showed the Bomber with no bonus against a defended colony — the opposite of what she is for. Her ×2.5 against Defense Batteries and against the Orbital Fortress is now on her row, and the light hulls are told that the flak is tuned for them, which no ship-vs-ship column could ever have shown.
The reference opens with or without a Shipyard built, because a player who has not built one yet is exactly the one who needs to know what a hull is for, and it names the research that unlocks each of the seven gated ships instead of leaving a beginner to save up for something they cannot order yet.
Changed
The Destroyer is marked Event Relic — not buildable in the reference, in the same words the build grid already uses: this is the page people read before deciding what to save for, and "event relic" on its own reads as a rarity to chase.
The Colonial Ark no longer has her own description undercut by the generic "Support ship" label one line below it — the wording removed from her role line in #333 was still coming back through the sentence underneath.
Nothing about combat itself changed: the multipliers on the page are the ones the engine has always applied. What changed is that they can be read before the battle instead of inferred from having lost one.
1.0.0-beta.36 — 2026-08-17
Nothing changes in the game this release. No content, no balance, no fix a player can see. It is here because everything that reaches main gets a tag and an entry, including the times there is nothing to show — a changelog that only speaks up for the good weeks is not a record of anything.
Also
A new internal workflow for taking one tracked issue from "reported" to "live" (#606). Its first job is not writing code: it decides whether the issue is still real against what is actually deployed. A fair number are not — already fixed, superseded, or made moot by something shipped since — and those are now closed with the evidence that made them obsolete rather than reimplemented by someone who did not know. What is still real gets implemented test-first and goes through the same production checks as every other change.
The effect players might eventually notice is indirect: fewer changes made for reasons that stopped being true, and a clearer public record on the repo of why something was closed and what closed it.
1.0.0-beta.35 — 2026-08-17
Fixed
The night window could be aimed at whoever was attacking you, instead of covering your night (#540). Night protection is an 8-hour window in which your colony cannot be hit, and the player picks when it starts — the only protection whose parameter is chosen by the person it protects. Until now that hour could be re-picked at any moment, instantly, for free, and with no record kept, so the eight hours did not cover the defender's night: they covered whoever was currently trying to reach them, for as long as they kept trying. It was reported from the receiving end by a player who spent 24 hours unable to land a single attack on a target and assumed the timer had been cheated. Nothing was broken — that is what free re-aiming looks like from the other side. The start hour can now be moved once every 24 hours: eight hours chosen once a day cannot cover both halves of an opponent's day, so the sixteen hours the design always meant to leave open really are open, and aiming your window at someone costs you the rest of your own day. Everyone's first move is free whatever they did before, and re-picking the hour you are already on costs nothing, so brushing past the dropdown cannot spend your day.
Two requests fired at once could both spend the same day's move (#540). Found in review, not in play: the check and the write were separate steps, so a double-tap, or the same account open on a phone and a desktop, could get both through and leave the saved hour disagreeing with the one on screen — locking the window for a day on a value the player never chose. The refusal is now decided in the same operation that writes the hour, so exactly one of them can win.
Changed
The night-protection dropdown says what it costs before you spend it (#540). It now reads "One move every 24 hours" while it is still free, and says when it comes back while it is locked — on desktop, tablet and phone alike. Before this it explained itself only on phones and only after the move had been made: everywhere else a locked dropdown simply stopped responding, with the reason hidden in a tooltip that browsers never show on a disabled control. A locked dropdown is also dimmed now, instead of looking identical to a working one.
Moderation can see when a night window was last moved (#540). A report of the shape "I can never hit this player" previously had nothing to check: the hour was a single value that could be rewritten at will and kept no history.
Known issue
An app build older than this release does not know about the cooldown, so a second move inside 24 hours shows a short technical code instead of a sentence. The move is refused correctly; only the wording is wrong, and it resolves on updating.
1.0.0-beta.34 — 2026-08-17
Fixed
Upgrading the Shipyard now makes ships faster, at every level (#593). It didn't: raising the Shipyard made hulls take longer, and stayed that way until level 25. A starter discount faded as the yard grew, faster than the yard itself sped things up, and the two pulled against each other until the discount won — level 1 → 2 nearly doubled build times, and level 4 was the worst point on the curve, 3.3× slower than level 1. On a building the game sells as an accelerator and charges energy and resources for at every step. arcticpaladin found it the expensive way: Shipyard 10 with a Nanoforge 9 building Spectral Corsairs slower than a bare Shipyard 1. jsnam had reported the same thing a year earlier from the other side (#318), after finally upgrading a yard left at level 1 for months; that issue made the building sheet announce the slowdown honestly and left the curve alone, which turned out not to be enough — a cost you can only avoid by never upgrading is not a disclosed trade-off. Now every level is a real speed-up, on every hull, in every empire.
The fast first fleet survives, measured in tonnage instead of Shipyard levels (#593). New colonies still get their starter discount, opening at the same value it always had; it is now spent by launching ships rather than by upgrading the yard, so it can never turn into a penalty on the upgrade. Nothing gets faster than before for a developed colony, and no established colony changed speed on release day. What ends is being rewarded for never touching the Shipyard.
The Shipyard screen shows the real build time, and says what is behind it (#593). The panel now prices an order exactly as the engine will — before this it could announce nearly four times the true wait on a new colony — and, while the first-fleet allowance is open, a line under the number says how much is left, that times rise toward normal as it is spent, and that a larger batch spends more of it. Same for the Shipyard's own sheet, including before the building exists.
The colony advisor stopped selling the slowdown as a benefit (#593). It compared build times across the defective curve, so on the two upgrades that made hulls slower it recommended the Shipyard with a line reading "hulls leave the ramp 48% sooner". It now reports a speed-up only when there is one, which since this release is always.
1.0.0-beta.33 — 2026-08-17
New
A fleet in flight can be recalled (#591). Until now nothing could: a mistyped sector meant watching the fleet fly the whole wrong journey, twice. Every outbound mission card now carries a ↩ Recall button; a confirm sheet states every price before the tap, and the fleet turns around where it is. The rules the sheet spells out: recall works during roughly the first three quarters of the flight — the last stretch (up to 10 minutes) is committed, and very short hops are never recallable; the way home costs the distance already covered at normal speed, so a warp jump only ever paid for the way out; nothing is refunded (warp Dark Matter, a newbie shield forfeited at launch, the daily exploration attempt); cargo stays aboard and lands back home, clamped by the Warehouse like any return. Raid fleets fly with the raid and cannot turn back alone; a garrison already on station serves its full watch.
A recalled attack leaves a trace (#591). If the defender saw the attack coming, their diary closes the alarm — "Inbound flight turned back", with the arrival time it would have had — instead of the countdown silently vanishing. Feints are a legal move, but they are visible, and at most 3 attacks can be recalled per day.
Changed
The guild-shop item formerly labelled "Fast recall" is now "Fast return": it still cuts a quarter off a returning trip (recalled fleets included). Only the label changed — "recall" now names the new manoeuvre.
The bounty rule that forgave a hunter whose pot was claimed while their fleet was in flight now forgives only claims landed after the point of no return. While you could still have turned back, pressing on is a choice, and it is priced as one.
Also
Mission cards say "· turning back" instead of "· returning" when the return was the player's own order, and the activity diary records every recall on both sides.
1.0.0-beta.32 — 2026-08-17
New
The research panel shows what the next level will cost — while the current one is still running (#311, asked by jsnam in #bugs-and-ideas). During an order the panel used to show only the price of the level already being paid for; the number a player needed to stockpile for was nowhere. Now the cost row, the research time and the effect preview all describe the level the button can buy next, marked "after lvl N completes" so it can never be confused with the order in progress. The level badge stays the committed one.
The next level of the same Discipline can be queued right away (#311). The button no longer locks on "Already researching": the follow-up order waits unpaid in a queue slot and starts — and is charged — when the current level completes. Its queue row says exactly what it is waiting for ("starts after lvl N completes"), instead of the false "when a lane frees up".
Fixed
The research queue is now strictly serial per Discipline in both directions: through the raw API an order could previously start out of order and the leftover twin later paid the full price of a level that changed nothing.
A queued-but-not-started order now always needs a free queue slot, never a lane slot. Without this, a stacked order at Laboratory 8–11 (where there are no queue slots) would have silently frozen the whole research queue for up to four hours, with no way to cancel it.
Changed
The capacity strip above the research queue fills its pips by what actually occupies them — squares for running research, round pips for queued orders. It used to fill by position, painting a busy queue slot as a busy lane and vice versa.
When stacking is blocked because no queue slot is free, the panel says so in words and points at the Laboratory level where the network unlocks its first slot.
1.0.0-beta.31 — 2026-08-17
Fixed
Gas planets: the buildable grid no longer leaves the platform (#289, reported by Tibeh01 with a screenshot worth more than any description). On gaseous colonies the 14×14 build grid stuck out past the floating deck: Move mode highlighted destination cells over the void, and buildings on the far rows stood visibly on the clouds. The placement itself always worked — the building moved and produced — but the eye saw a base built on thin air. The painted platform is now scaled and centred so that all 196 cells land on its tiles, and the fit is pinned by a test that measures the deck from the shipped artwork (and refuses to certify a different image, so an art swap cannot quietly bring the bug back). Three calibrations were rejected by review before this one: the deck turned out to be a rounded perspective quad, not the tidy diamond a bounding box assumes.
Changed
Gas colonies now open at the same framing as every other planet type — they were enjoying an accidental extra zoom-in on phones and windowed desktops, and the zoom-out button did nothing there. Same recalibration, both fixed.
"Fit to view" (⤢) on a gas colony no longer leaves a band of empty darkness along the screen edge on portrait phones: the reset now respects the same pan limits as every other camera movement.
1.0.0-beta.30 — 2026-08-17
Changed
Raids are now priced on the pack's combined Power (#285, reported by arcticpaladin in Discord). The anti-bullying bounty judged each raider alone, so eight empires each just under the band could crush a single defender together and generate zero bounty — the public price that was supposed to make bullying "legal but prohibitive in practice" fired on 1.7% of attacks, because the dominant attack shape is the raid, not the duel. Now the raid's summed Power is judged against the defender's band at impact; each member pays their Power's share of the price — a probe from a giant weighs what the giant weighs — never less than the same strike would cost them alone, and capped per member (150 DM), not per battle, so a monstrous pack cannot hide behind one attack's ceiling. A solo raid prices exactly like a solo attack. Faction bastions, relic sites and heads still wanted at impact are never priced, as before.
The free return strike no longer burns inside guild raids (#285). A retaliation credit now spends only where it covers the whole bill — a strike of your own — instead of being silently consumed by a share of a pack's price. It stays whole for the personal reply it was earned for.
Every door tells the rule before ships are committed (#285). The target board's "inside your band it costs nothing", the planet sheet's "fair target", and the war room's "strikeable" now say they describe the solo strike; the raids panel states the pack rule in full; and the diary names the raid — "the raid you joined far outweighed its target" — when the pack, not the player's own gap, is why they were billed. On bastion and relic sheets the raid clause is deliberately absent: raids there are never priced, and the old text would have talked a guild out of exactly the captures raids exist for.
Deliberately NOT changed: coordinated solo missions in the same hour stay priced per-attacker — measured at ~10 windows per fortnight among humans, never more than three, with no aggregating entity comparable to the raid.
Filed as follow-up in the PR: the agents' strategist still prices targets with the solo band when joining raids; and a bounty_waived_grudge event would make the retaliation exemption measurable.
1.0.0-beta.29 — 2026-08-17
New
A stale client finally hears about the deploy (#568). The game could already say "Reload the page: your client is out of date" — but only reactively, on a write the server refused. A player who only looked (map, leaderboard, colony) never touched those error codes, so a tab opened before a deploy kept showing old numbers as current; that is exactly how the "Planets not in space view" bug report was born from a client that was merely old. Now every build stamps itself (version.json, a deterministic hash of the emitted bundle) and the client checks the stamp of its own origin — at load, every five minutes, and when the tab refocuses after sleeping through a deploy. When the server hands out a different build, one quiet row appears in the HUD's banner family (and on the login screen): "New version available", a compact Reload button, a dismiss ✕ that silences that build and re-arms on the next one. Every failure mode — network error, 404, HTML where JSON was expected — reads as "no information", never as "out of date", and a rollback takes the notice down by itself. The check deliberately ignores the api container: web and api are recreated independently, and an api-borne version would report a skew a reload cannot fix. In the native app the watcher stays off — updates come from the store, not from a reload.
1.0.0-beta.28 — 2026-08-17
Changed
Lopsided offers sink to the bottom of the Market (#308, reported by Tibeh01). Offers whose two sides differ by 20× or more in sheer quantity — the 1 Fe ⇄ 5,000 Xe kind, usually a gift for a friend — sat at the top of the board like any other trade, and every one left open was a row the whole server scrolled past. The list now shows regular offers first; anything wildly off-price drops below a "lopsided offers — giveaways or steep asks" divider, on every filter. Nothing is hidden and nothing is blocked: validateOffer is untouched, gift offers still work exactly as before, and their recipients still find them. The divider is a real heading screen readers can jump to, demoted rows say "lopsided offer" out loud, and on phones the label wraps instead of being clipped.
Deliberately NOT done: a per-resource minimum (option 2 of the issue) — a floor of 100 still allows 100 Fe ⇄ 1,000,000 Xe; the mechanism is the ratio, not the quantity.
Filed during this ship's analysis: the market's accept side needs no Trade Portal and no daily cap, so it doubles as an uncapped alt→main value pipe (#584).
1.0.0-beta.27 — 2026-08-17
New
The Shipyard says how much Power each ship adds (#292, suggested by Tibeh01). A ship's sheet showed hull, shield, attack, cargo and speed — but not the number the rest of the game keeps scoring you on: how much that hull moves your empire's Power. Every detail sheet now carries a Power per unit row, computed with your own research and tree bonuses applied (the same Corvette is worth more to a weapons-research empire), and the build block quotes the whole stack being ordered as Power when delivered — exactly the number the engine will add, in the engine's own arithmetic, once the ships leave the queue and exist. Both figures wear a ≈: the per-unit value is rounded for reading and the header rounds your total, so the observed tick can sit one point off the printed delta — the hedge says so instead of leaving it to be discovered.
What the number is not, in writing. Power is a score, not battle strength — counters and formations decide battles — and the Gate that prices bounties and protection bands is the larger of Structural and Military, so a delivery moves it only by the part that ends up above your Structural. The note under the stat says both, in the same words the ⚡ dialog and the Leaderboard use, so a player cross-checking the claim can actually find the numbers it talks about.
1.0.0-beta.26 — 2026-08-17
Added
The "Recent" row on the Missions tab can be pruned (#291, suggested by Tibeh01 on Discord). The row of recent coordinates filled up with every target the feeds touched, and the two or three a player actually reuses were buried with no way to clean it. Every chip now carries two small controls. × removes a chip — it stays gone until something genuinely new happens at those coordinates (a fresh spy report, a battle, an arriving fleet), then it returns on its own. ☆ pins a chip: pinned chips lead the row and survive even after every report about those coordinates has aged out of the feeds — the chip falls back to bare coordinates instead of vanishing. Pins are capped at 8 so new contacts always keep some slots; the counter under the row goes gold at the limit and says to unpin one. Removals and pins live on the device, not on the account, and a player's own colonies cannot be removed — they are destinations, not history.
Changed
The Recent row explains itself on screen: a short rendered legend under the chips says what ☆ and × do — no hover needed, which on a phone means no guessing. Chips whose label is just the coordinates no longer print the address twice, and the pin/remove buttons are full-size touch targets on phones (the 44px floor the rest of the app already respects).
Left open on purpose, filed as #586 during this ship's review: the "debris ≈ N" chip kind of the same row turns out to be unreachable — the battle entry from the same report always shadows it — and has been since the row was introduced. Deciding where the debris estimate should live is a design call, not a fix.
1.0.0-beta.25 — 2026-08-17
Added
Coordinates quoted in chat are now links to the galaxy map (#570). Agents and players quote places like 1:3:3 constantly, and for a newcomer they were pure noise — feedback from a live demo: "like being a 70-year-old on Instagram where everyone drops quotes you can't follow". Now any sector:system:planet triplet written in a message is clickable and opens the galaxy centred on that system, on every chat surface: galactic channel, guild council, whispers, desktop dock. Only real places link — times like 12:30:45 or zero-padded 09:15:10 stay plain text — and the persisted message is never touched: the parsing lives entirely in the render.
Event Sector links know about the season. Chat history outlives seasons, so a 9:x:y quoted mid-season could otherwise drop the player in a sector they never asked for once the season closed. Sector-9 coordinates are live links while the season runs, and dim to plain text carrying the reason (on hover) when it is over — or not yet known to the client.
1.0.0-beta.24 — 2026-08-17
New
Active missions now say what the fleet is carrying (#307, suggested by Tibeh01). The mission cards in the Missions tab showed type, route, ships and countdown — but never the cargo, so two transports on the same route were indistinguishable and "which one has the Xenogas?" was a memory exercise. Every card now carries a Hold: line under the fleet with the non-zero resources aboard, no click needed. The line follows the fleet, not the mission type: an outbound transport (or colonize dowry, or transfer) shows what is being sent, a returning transport shows only what a full destination warehouse turned around, and a raid flying home shows its loot. Empty holds — attacks on the way out, spy probes — add no line at all. The data was already in the API response; the game just never showed it in flight, only in the Transport delivered event after the fact.
Found and filed during this ship's review: a raid returning over the warehouse cap still loses the excess loot silently at landing (#587). The card's number is what the fleet truly holds — the landing is the part left to fix. (Fixed in beta.51.)
1.0.0-beta.23 — 2026-08-17
Fixed
A decoy colony no longer pays more than a real defence (#270). Since beta.8 the Shield pool only counted toward battle points if the defence fired at least one shot — and one shot of any size bought the whole pool back: a single 400-resource interceptor parked on an otherwise empty colony scored 131.57 points, above the 115.57 of a target fielding a real defence, and a one-time level-1 battery did the same for 370. Now the pool pays in proportion to what actually stood against the attacker: it counts up to 10 HP for every point of firepower the defence fires. The same one-interceptor decoy pays 19; the token battery, 29; a colony that genuinely defends is untouched. Left open on purpose, as the issue itself scopes it: the fortress doctrine's 300 points come from the pool re-charging every battle (#255) and are not touched by this criterion.
Changed
The new scoring applies from the deploy onward. Battles resolved before it keep their points — nothing is recomputed — so the week's war leaderboard can show different scores for identical setups depending on when the battle happened.
beta.8's advice is superseded. «A single emplacement is enough» to make attacks on you expensive is no longer true: the Shield pool counts for attackers in proportion to the standing defence, in full once the defences fire about a tenth of the pool's hit points.
1.0.0-beta.22 — 2026-08-16
Added
AI commanders can now finish a siege (#268). Forced Exodus was a one-way street: the game's AI empires could have their colonies razed and deported, but could never declare a razing themselves — the only irreversible act of the game was exclusively human, and the war record showed it. Now a full siege bar can end in fire whoever is besieging you. They declare it the way a player would: usually in a declared war or against someone who wronged them, rarely out of opportunism, never against NPCs or relics — and the weekly League fixture stays sport: it is never a reason to erase someone's home.
Changed
AI commanders own their razings (#268). Before, the razer's memory recorded a razed battle as a generic victory: it could deny its own razing to its victim ten minutes after the proclamation. Now the razer remembers who it deported and from where — in chat and in its plans — and the deported commander's plan reads who razed it and where it resettled. The conqueror's proclamation follows character and waking hours instead of firing every time, the razing story stays colony-sized on every surface (erasing one colony never reads as deporting a whole empire), and if the siege bar decays between aiming and firing the AI attacker withdraws the declaration and attacks anyway — what the launch screen already tells everyone to do — instead of silently losing the strike.
Left for a follow-up, so this entry does not promise it: AI commanders still do not announce a razing in chat before launching it.
1.0.0-beta.21 — 2026-08-16
Fixed
A decoy outpost no longer pays the bounty (#255, point 1). Before: the payout of a bounty claim was measured only against what stood on the struck colony — a number the wanted player controls. With the post-raid shield gone, a wanted player could park one cheap ship on an emptied outpost and have an accomplice halve the pot on every pass at travel speed, wiping their public bounty — the anti-bullying deterrent — in a handful of hits, and hunter rotation defeated any per-pair cooldown. Now the claim is measured against the larger of the colony's fielded defence and 15% of the wanted player's war capital — warfleet everywhere, in flight included, plus batteries — so a decoy is worth a decoy, and a real hunt that overcomes the target pays exactly as before. The full reasoning, including why batteries and not fortresses, lives in DESIGN-TAGLIA.md.
Added
Attacking while shielded now warns you before the click (#255, point 3). Before: launching any attack — even a lone probe at empty coordinates — silently cancelled every shield you held, the 72-hour exodus shield included; a freshly deported player could burn three days of protection by scouting, with nothing on screen saying so. Now both attack doors say it in advance: the Missions preflight for solo attacks, and the guild raids panel for opening or joining a raid — where Bastion and Relic raids count too, only the Pirate Beacon is exempt, a raid at empty or veiled coordinates keeps your shields, and a refused launch loses nothing. The rule itself is now written in DESIGN.md §3.8 instead of living only in code comments.
1.0.0-beta.20 — 2026-08-16
Fixed
Two identical buildings with two different prices now explain themselves (#245). A second Site of the same building costs ×1.5 more at every level — a deliberate rule (×1.5^(n−1) on copy n's whole curve) that no pixel ever stated. Two players ten days apart (Tibeh01 with two Extractors, Ajax with Orbital Panels) did the only reasonable thing and filed it as a math bug, and each report took a trip into the engine source to refute. Every surface that prints a copy's price now carries the multiplier next to the number — ×1.5 (Site 2) — with one shared spelling: the Building Sheet (catalogue mode included, so the surcharge is stated before the copy is built, not discovered at the first upgrade), the Build menu row, the map tooltip, the Colony list (the one screen where Site 1 and Site 2 prices sit on adjacent rows), and the advisor's suggestion cards, whose ranking otherwise read as quoting wrong prices.
The note explains the price, it does not rank options: on a real colony the un-surcharged Site 1 is often the most expensive one to level, because the level term dominates the copy term. The number to compare stays the effective cost, which is unchanged.
The multiplier is printed exact (×3.375, never ×3.38): a rounded label overstates the charge, and a label meant to end the "wrong math" reports must not seed the next one.
First Sites show nothing — there is no surcharge to explain — and the prices themselves are untouched: this release changes what the game says, not what it charges.
1.0.0-beta.19 — 2026-08-16
Fixed
A negative Dark Matter balance is explained instead of looking like a bug (#238). awsomepossum, in Bugs: sending a mission, the Warp row read Not enough Dark Matter: -263.75/2 DM, and their conclusion was the only one available — "I never completed any bounties so I should have 0". The balance was right and the mechanic is deliberate: bounties claimed on you are paid from you, down past zero. The game had simply never said so.
The defect was the gate, not the wording. Every Dark Matter surface was shown only to players who had unlocked the Particle Accelerator — but a balance goes negative through bounties, which need no Accelerator at all. Of the 46 players in the red when this was measured, all 46 lacked one, so the number was hidden from exactly the people carrying it. The header tile and the phone pill now appear on a debt as well; a newcomer sits at zero, which is not a debt, so nobody else gains any noise.
The tile turns gold and says in debt — but keeps showing the daily rate when there is one, because for a commander who does produce, the rate is the part that says when the hole closes.
The one thing the note refuses to do is promise. It does not claim the Accelerator will pay the debt back, because Dark Matter also arrives from anomalies, guild seasons, the League — and from claiming a bounty yourself, which pays a debtor straight into the hole. It says what is true for everyone: what you earn goes to the debt before it reaches your stock.
Being hunted while wanted now leaves a trace on your own log. A claim wrote one entry, for the hunter. Whoever actually paid got nothing — Dark Matter left their balance, often below zero, and the only sign was a spending error hours later. The target now gets their own entry: who collected, how much, and where. It deliberately does not quote a resulting balance: the figure the entry could see is not the one the screen shows, and a guild raid would file several contradictory ones in the same second.
1.0.0-beta.18 — 2026-08-16
Changed
The marker on a building's extra instances is Site N, not copy N (#235). Tibeh01, in Bugs: the second Orbital Panels read · copy 2. The datum under it was right — two plants do exist, they level independently, so something must say which one you are reading — but copy is the name of the storage key (pannelliOrbitali:2, instanceKey), not of the fiction. For the player that building cost resources, a layout cell and a Command Center 7.
The term now has ONE definition, INSTANCE_TERM in shared/model.ts, with instanceSuffix ( · Site 2) and instanceSuffixParens ( (Site 2), the Advisor's form — same word, different bracket, kept deliberately).
The issue named two call sites. There were fourteen, in three spellings: nine · copy N, two (copy N) in packages/shared — a second spelling that had already drifted in unseen, because the guard walked apps/web/src only — plus the instance_locked error text, the required for copy N hint, and the Command Center unlock rows.
Ruled out: a Roman numeral (Orbital Panels II), the form the issue proposed. BuildingSheet already prints Stage I · II at lvl 10 on the same card. And the constraint a first draft recorded here — that the form must stay a suffix because the espionage report sorts by the rendered label — was false: #230 replaced that sort, and sortedByCatalog orders on the engine key. The error is written down in the docblock rather than quietly deleted.
The Command Center unlock rows say what the level actually grants.2nd copy of economic buildings → 2nd Site for **each** economic building: maxInstances is per building, so CC7 raises all five of DUPLICABLE_BUILDINGS to 2. Those rows render on the sheet and are passed whole into the Advisor's LLM facts.
Fixed
The Advisor claimed a standing building did not exist.advisor.service built the isFirstBuild fact from the bare catalogue name, but isFirstBuild is level === 0 — true of a never-built instance 2 while instance 1 stands at level 8. The model was handed «Ferrolite Extractor does not exist here yet», the prompt forbids contradicting a fact, and its why renders inside the panel under a row reading · Site 2. Found by two independent review lenses, not by the issue. The sentence is now firstBuildFact in buildAdvisor.ts, next to suggestionLabel — same species of string, same place, and pinned.
Guards
The «one spelling everywhere» check was inverted. It used to assert that some other file spelled the marker inline, so it passed by finding the duplication and could only ever certify that it still existed. It now asserts that nobody hand-spells it except the file that defines it, and walks packages/shared too — the blind spot through which (copy N) arrived.
Every negative assertion is bound to INSTANCE_TERM instead of the literal word: written by hand they would have gone true by construction after the rename (nothing contains copy any more), staying green while guarding nothing. The concrete term is pinned in two explicit places so changing it stays a decision.
BuildingSheet is pinned by an actual renderToStaticMarkup, including that the first instance carries no marker — the draft #348 discarded twice, and something no source scan can see. The comment justifying source-scanning («there is no component renderer in this project's setup») was inherited unchecked and is false: two dozen .test.tsx files render, two of them render this very sheet.
The census of surfaces is derived from the tree instead of counted against a literal beside it, and advisor.service is pinned to callfirstBuildFact — proving a helper correct does not prove anyone uses it.
1.0.0-beta.17 — 2026-08-16
Added
Chrono shards can be spent from the Laboratory (#232). Tibeh01 asked in Ideas & Suggestions for "a way of using the Chrono-Shards on the Laboratory, to fast-forward the research". The way already existed — crono.service has accepted queue: 'research' since shards shipped, and CronoPanel has rendered it since #276 moved the panel under the research lanes. What did not exist was a door on the building that does the research. The reporter had 720 shards in inventory and looked there first, which is where anyone would look.
The row names the lane a shard would actually cut — defaultTarget, the longest remaining, the same rule the server applies when no target is named. Naming the head of the queue instead would have announced one order and shortened another: #234/#261 one screen upstream.
Two destinations for one gesture, because the panel lives in two places. On a phone it opens the Base's «Speed up» sheet on the research queue; on desktop that sheet does not exist (it is a phone construct), so it opens the Research tab and scrolls the panel into view through a shared CRONO_RESEARCH_ANCHOR constant. No third copy of the panel: entry points multiply, views do not.
The «Speed up» sheet offers all three queues. It listed Construction and Shipyard. On a phone it is the Base's only door to the shards and it is titled Speed up, so a player who opened it — the one screen that is about shards — came away with the same wrong conclusion the issue was filed about. It stayed wrong because nothing could assert on it: the list was inline in BaseTab, which mounts a PixiJS canvas and never renders in a test. It now lives in crono/speedUpSheet.ts with the rule that picks the visible queue, and both are pinned. Empty queues stay listed — hiding them is how a player never learns the option exists.
researchQueue rides on the /colony payload (EmpireLevelsPayload). Same move as treeLevels/techLevels in #384 and at the same price: persistResolved already loads the empire to resolve production, so it costs no extra query and no second clock. Because it is the resolved empire, a research that finished is already gone rather than offered as a target the shard endpoint refuses with target_gone. Labels need no payload — TECHS and TREE are shared catalogues, so a lane is never printed as a raw engine id (#209/#235/#239).
Fixed
The shard panel kept the lane picked in an earlier visit.BottomSheet is a portal that stays mounted while closed (hidden by visibility), and CronoPanel cleared picked only on [queue, colonyId]. Pick a lane, close without spending, reopen on the same queue: the panel was still aimed at the old pick while the screen pointed elsewhere. A resetToken now clears the selection per opening — but only when the entry point named a queue. Reopening from Operations keeps the choice, because nothing there contradicts it, and bumping the token unconditionally would have thrown away a deliberate pick: the same misfire, rebuilt by the guard against it.
A research whose clock had run out was still offered as a lane.Dashboard runs resolveColony(state, serverNow()) every render, so finished build and shipyard orders drop off between polls; research lanes came raw off the payload and /research refreshes on a 30 s poll. The panel offered a spend the server answers target_gone. empireResearchTargets(queue, now) drops them, filtering after composing so the whole-queue index the server translates is preserved. Applied to the Research tab's own panel too — the same feature had two behaviours depending on which door was used.
An explicit queue choice is no longer overruled. The fallback rule was "if construction is empty show the shipyard"; with three queues it could not be extended, and it re-aimed the sheet at Construction when a research finished with the sheet open — under the thumb of a player mid-tap on a non-purchasable shard. It is now "keep the current choice while it still has lanes", plus a pin for a choice the player made explicitly.
The Laboratory told three states apart that it used to call one. "Nothing researching" was said to a player with orders queued and not started (reachable from lab 12, where buffer slots hold orders waiting for a lane or for the mother colony's wallet), and to anyone polling an api older than the bundle mid-deploy. researchQueueFrom now returns null for "unknown" rather than [] for "empty", and the three states have three sentences. All three still block the spend: not knowing is never a licence to fire a shard blind.
Added
The Command Center's whole unlock ladder, not one rung at a time (#208). arcticpaladin asked in #bugs-and-ideas: "is there a place to see what is gained/unlocked by each building upgrade […] especially for things like command center unlocks?" The data was already there and already single-sourced — CENTRO_COMANDO_UNLOCKS tables levels 1-15 — but the UI published exactly one row of it at a time, through nextUnlock. A collapsed "The road ahead" disclosure now sits under the gold box and lists every tabled level above the one the box already announces.
Collapsed by default, and that is the design. The sheet opens inside a BottomSheet on the reference platform; fourteen rows expanded would push "Contribution now", the cost and the Upgrade button below the fold on every open. Closed it costs one touch target's worth of scroll.
Every row carries its own caveats, and that is why this is a shared function and not a .map() in the component. Since the request was filed, the gold box had acquired THREE independent "this promise is not for you" guards, each the fix for a real report: #293 (the colony ceiling is two rules in AND with the Colonization Discipline), #300 (the ceiling is an empire property the server reads on the MOTHER), #441 (the Trade Portal is inert off the mother). They ran once, on the next level. Mapping the table in the component would have rendered up to fourteen more rows with none of them — not a new bug but the same three, multiplied, in the panel the player pays from. ccLadder(cc, ctx) resolves them per row, so a caller cannot obtain a row without its caveats; motherOnlyBuildings is a REQUIRED field because #441 was itself caused by an optional prop left unwired, which compiles in silence.
The next-level row was left byte-identical. Its twelve assertions in riquadro-sblocco-cc.test.ts name nextCcUnlock, ccColonyAltrove, suMadre; folding it into the new path would have turned load-bearing guards into assertions about identifiers that no longer exist — green, and guarding nothing.
Fixed
The CC 5 row named one of the two buildings it unlocks.CENTRO_COMANDO_UNLOCKS[5] grants batterieandportaleCommerciale, but its prose said only 'Market (Trade Portal).' Harmless while the table was read one rung at a time; as a planning line read from CC 0 upward it was not, because on a secondary colony the very next line is the #441 caveat — "the Market always reads the Trade Portal on your mother colony: unlocking it here adds nothing". The row's entire named content was exactly what the line below it nullified, so an outpost read "level 5 is worthless" and stopped at 4. It is not: combat-defense.ts reads batterie off the defending colony with no mother check, and batterie is not in SOLO_MADRE — for an outpost it is the real defence after the Shield. Now 'Ground emplacements (Defense Batteries). Market (Trade Portal).', batteries first so the caveat lands after the clause it actually negates, and with the exact catalogue name (model.tsnome) because the row is what a player takes to the Build menu to look the thing up. §4 of DESIGN-RITMO-POTENZA.md already named both: the string was a lossy transcription of its own declared source.
The disclosure's toggle was the only control in the sheet under the touch floor. An inline minHeight: 28 beats a stylesheet rule with no !important, and global.css declares [role='dialog'] button { min-height: 44px } inside the phone media block while BottomSheet is role="dialog" — so those two characters cancelled the floor next to a Build/Upgrade/Move row that all obey it, in a panel whose own CSS comment says missing a target here "means opening another building's sheet". Removed; desktop is unaffected, where the sheet is an anchored panel and not a dialog.
Ladder caveats now carry the gold box's own marginTop: 4. Without it a rebuttal sat at the same colour, the same size and zero gap from the promise it negates, while consecutive rows were 6px apart — and the eye groups by whitespace, so each caveat read as more promise.
Notes
Three review rounds over four lenses closed two blocking and five major findings, and refuted four more. Both blocking findings were in this PR's own guards, surfaced by a mutation harness rather than by reading: the test named "the disclosure starts collapsed" was satisfied by an unrelated useState(false) elsewhere in the file, and condition was never tied to payload, so swapping the two caveat constants left every assertion green with each sentence on the wrong row. The second round then found the swap had merely moved one line up — binding a flag to a constant's NAME says nothing about which sentence that name holds — and that the extraction of those two sentences into constants had made a pre-existing assertion in riquadro-sblocco-cc.test.ts vacuous, since toContain("commandable colonies follow") is now satisfied by the declaration alone. All nine mutations written against the guards die.
1.0.0-beta.15 — 2026-08-14
Added
The Activity row says which ships did not come back (#204). Tibeh01 asked for it in #bugs-and-ideas: "on the Activity tab, after an attack, if lost ships, it could appear which ships and how many got destroyed instead of just the -1 survivors." The per-class breakdown already existed — inside the battle report, behind Details and then the ▸ fleet toggle of the viewer's own participant card. Two clicks; and for a battle older than the 20 reports /reports serves, no click at all, because those rows carry no Details button. The row now reads Lost Interceptor ×12 · Cruiser ×3 · +2 more classes.
Stamped per RECIPIENT, never per side.lossesByShip(report, side, contingentIds) returns exact per-class losses from the snapshots, and every battle-event writer passes the keys it owns: the attacker, the defender's own contingent, each garrison player summed over their guard shifts, each raider by mission id, and the pirate ambush. On a side split into contingents an unknown key gets {} — never the aggregate, which in a raid is everybody else's wrecks.
The colony's walls count too. Emplacements and the Fortress are not ships and live outside every fleet snapshot, so a defender holding with forty emplacements and an empty hangar — the profile the game most rewards — read a row that said nothing at all. lossesStatic rides on the owner's event, renders after the ships and is never truncated: thirty emplacements regrow free, one every half hour, and must not displace a battleship.
Three states, not two. An absent losses means "written before this existed"; an empty one means "known, and known to be zero" and says No ships lost. Collapsing them made silence mean two things at once, so every pre-feature row read as "cost me nothing". The zero line is suppressed on a razing, where it would sit under "Your colony has fallen".
wiped is finally read. The api had written that flag since joint defence shipped and nothing displayed it, so an ally whose relief fleet was annihilated read exactly the same row as one that came home whole.
The battle report says which ship class dealt the damage. The report gave damage per COMMANDER; it never said which of their ships did it, though the engine has recorded it all along — a group's id IS its ShipId, and every salvo names the group that fired. shipDamage(report) aggregates per contingent per class, reusing salvoDirections rather than deducing direction a second time: two aggregations of one battle that disagree about who shot whom are two truths, and the tests pin that their totals match participant by participant. On screen: a Top gun line on every participant card, and Damage dealt / Kills (est.) columns in the fleet table with a ★ on the top gun. Rows keep catalogue order (#230) — sorting by damage would win the ranking reading and lose the side-by-side one that order exists for. A report with no rounds yields null, not zeros: a Damage column of zeros claims every ship missed every shot, which says far more than "this report cannot say".
Fixed
A player garrisoning their OWN colony was reported nowhere.canDefend allows defending oneself and loadGarrisons does not filter the owner out, so owner + self-garrison is two contingents belonging to one player — while garrisonEventRecipients deliberately writes the owner no garrison event, on the grounds that "they already receive the defender row". ownerLossKeys makes that comment true again.
Group.owner had claimed it was "ALWAYS absent on the defender's side" since before joint defence made it false. Every attribution of a salvo to a defending player rests on it. The docblock is corrected and the claim is now asserted — both defender contingents must deal non-zero damage, or the sum-matching tests would be agreeing on two zeros.
1.0.0-beta.14 — 2026-08-14
Added
Whispers: private messages between two players (#203). Tibeh01 asked for it in #bugs-and-ideas: "on the global chat, i think it would help players talk with each other, if they could press on the profiles, and there would be interactions like Block; Whisper; Invite to Guild; Offer Trade." Two of the four already existed and one did not exist at all — the issue's own inventory had gone stale in the ten days it sat open, which is the reason every claim in it was re-checked against origin/main before a line was written.
One thread per PAIR, derived not stored. The channel is dm:<idLow>~<idHigh> on the same table and the same channel column as the public chat, with the two ids SORTED. A client addresses the peer (dm:<peerId>) and never a thread, so no request can resolve to a conversation its author is not in, and neither side can end up talking into its own half of the same exchange.
Moderation moved with it, because a private channel is where a harasser gets someone alone. Block covers whispers, exactly as it covers the public channel. Report gained the check it never needed: only a message one can read can be reported. Knowing an id used to be enough, which cost nothing while every channel was public.
A brake on blasting, not on talking. Whispering gained a cap on how many new conversations one account can start in a short time, so a spam run dies early while an ordinary exchange never notices it exists. For what a cap cannot fix, Block is what ends it, and it is what the copy points at.
player-delete gained the fourth chat FK. The three before it are commented in that file; a whisper is also addressed to somebody, so the messages written to a deleted account would have stayed, pointing at an id that no longer exists.
The player menu hangs off the person, not off one line they wrote (#203). Pressing a name or an avatar in chat opens Whisper / Invite to guild / Block. The reporter listed Block among the missing while it had been on the message's ⋯ for days — they pressed the NAME, because that is where the person is. Reporting stays on the message, where the words being reported are.
Guild invites can be sent (#203). POST /guilds/members/invite existed, the receiving half was complete — the banner, accept/decline, the guild-log line "X invited Y" — and nothing in the product called it: not the web, not the agents. A guild whose policy was invito was therefore unjoinable by construction, applications refused server-side and invites impossible to send. In production: 15 guilds, every one of them aperta, zero invite rows ever written. Now sendable from the chat menu and from a searchable picker in the members panel, which had been telling leaders to "invite someone" with no way to.
Changed
GET /chat/threads and POST /chat/read are new routes; GET /chat is untouched. The bare-array shape of the chat page is a contract with clients the api deploy does not update — the TestFlight IPA ships the web bundle inside itself — so whispers are a client-side pseudo-channel and add no entry to GET /chat/channels.
POST /chat/read takes an optional upTo, and the cursor only ever moves forward. "Read up to now" swallowed anything arriving between the end of a read and the request landing: a window that is brief for a fast client and long for a slow one — and exactly when the other side, hearing nothing, adds a second line.
ChatMessage gained recipientId and an index on (playerId, createdAt), plus the new ChatRead table. All additive, applied by prisma db push at api start. The index is not cosmetic: the thread list asks for playerId = me OR recipientId = me, and an OR is only as fast as its worst branch.
A deeper galaxy reaches players (#541, deployed before this tag and never released on its own). Systems went from 12 to 18 planets and the protected cradle from 360 to 540 slots; every pre-existing planet keeps the exact cell, and therefore the exact travel time, it had.
Notes
A whisper leaves no grudge, by decision. Three designs were tried and each misfired worse than the gap it filled: counting every whisper as addressed to its reader turned an invitation to raid Sofia together tonight into a grudge against the person offering the alliance; requiring second-person wording fixed that sentence and not the mechanism, since menzionati scans the whole roster and the same invitation booked a grudge for every agent named Sofia, out of a message they were never shown; and beneath both sits a matcher that reads hostility from the letters of a phrase rather than its sense. A grudge sends fleets, so a wrong one costs coherence — an agent that answers warmly and then attacks, with nothing readable explaining it — while a missing one costs only a consequence. The test pins the SIGNATURE of _digest_minacce, so the door cannot be reopened by adding a parameter.
Offer Trade is not here. The market is a public offer book; a directed offer is a new mechanic rather than wiring — expiry, escrow while the target ignores it, and what a decline does to the seller's locked goods are design decisions.
1.0.0-beta.13 — 2026-08-14
Added
A galaxy-wide target list on the political map (#194). A player put it plainly in #bugs-and-ideas: "really difficult to find planets that I can actually attack. Going back and forth with the map and mission view to see where there are bases is a lot of work." The arithmetic backed him up — the galaxy is 8 sectors × 10 systems, so answering "who around here is weaker than me" meant opening and closing eighty screens by hand and holding the answers in your head. The agents already ran exactly that sweep in a loop and kept a directory of the results (runner/intel.py), which is the same asymmetry the Wanted board was built to close, and it is closed the same way: give the human the list the machine already builds for itself. GET /galaxy/targets now does the sweep in one answer — every colony the viewer's sensors can see, the owner's raw Gate beside it, the counts the request asked for (in band, far below, stronger, PvE, and how many slots are free), and sorting by nearest or weakest.
The price is on the row, not promised once in a header. Inside your band a hit costs nothing; far below it costs a bounty; on a wanted head it costs nothing either, because settleBounty returns before pricing anything when the defender carries a grade. A single header sentence was false in exactly the two categories the sorts promoted to the top of the screen.
Targets that are not played empires get their NAME, not a band. A garrison's Gate is entirely fleet while a player's is ~92% buildings (measured in production, see relic.ts), so a bastion tuned to 1.8× the top player's Gate read as "In band — a fair target" against a defender whose fleet is twenty-two times the reader's. Beacon, Bastion and Relic are now named, with the Gate left visible to be read for what it is.
Refusals travel with the row — pact, novice shelter, shield — in the same order of precedence assertAttackAllowed applies them, and hidden by default, because the request was for planets you can actually attack. It never claims the opposite: no code means "none of these three", not "this will go through" (night protection depends on when the fleet lands and cannot be known from a list).
The Veil survives the aggregation. A colony hidden from you in the system view is just as absent here and counts as an empty slot, or the list would have been the cheapest counter-espionage tool in the game.
Tapping a row opens the planet sheet over the map, which closes the other half of the report: no more map → system → back to compare two candidates.
1.0.0-beta.12 — 2026-08-13
Added
Every Build menu row now opens the building's full sheet — the shop is the catalogue (#331). Two players asked, independently on the same day, where to read what a building does before paying for it; the answer was nowhere — the sheet existed, but only opened on buildings you already owned, and a locked row was just a name with a padlock. Now tapping any row, locked and unbuilt ones included, opens the same sheet the built ones get: the one-line description, what it contributes at level 1 on your colony (planet traits and multipliers included, the way a base-builder shows stats in your own village), the cost, and — for locked buildings — the exact unlock requirement in the same words the research tree uses. No separate encyclopedia screen to maintain, and the numbers are read from the engine, so the page cannot drift from the simulation.
Fixed
The Warehouse no longer takes credit for the floor (#527 review). The sheet of an unbuilt Warehouse declared "Contribution now: 5,000 per resource" — that number is the free base capacity every colony has; the building at level 0 contributes nothing. It now says so, keeping the floor visible in a note. The capacity shown also finally includes the Depots tree bonus: without it the sheet understated the real cap by up to 80%, telling players their resources were about to overflow when they were not.
No more impossible Build buttons on newborn outposts (#527 review). On a freshly colonized outpost (Command Center still at 0) the tree-unlocked buildings showed an enabled Build button under a gold notice saying the level cap was reached — the server rejected the placement only after the player had walked the whole gesture. The button now states the Command Center level required, in the sheet and in the menu row (the menu half of this predates the catalogue).
The Build menu filter survives reading a sheet (#527 review). The phone filter ("Production", "🔒 Locked"…) lived inside the menu panel and died every time it was swapped for a sheet — browsing the catalogue row after row reset it to "All" each time. It now lives one level up and stays where you put it.
1.0.0-beta.11 — 2026-08-13
Added
Groundwork for the Stellar Anomalies rewrite — nothing you can see in game yet (#521). This release changes nothing a player can do, reach or notice: it lands the design for turning anomalies into layered Precursor Expeditions, plus the pure rules that will run them, and none of it is wired to a screen or an endpoint. It is in the repo so the next releases have something to build against, and it is listed here so main moving forward is legible rather than silent.
What the design changes, when it ships: an anomaly stops being a coordinate you claim for one hidden payout and becomes a site you descend into, one battle per layer, with real losses between layers and a push-or-extract decision at every boundary. Four site classes each punish a different fleet, so bringing the right ships matters more than bringing the most. The haul is paid in hours of the server's production rather than your own, so the same expedition is worth the same to a new player and to the leader.
How a site decides what you meet is part of the design: a layer's garrison is derived from a value the server generates once a week and serves to no one. A site's tier and class stay readable in advance, because "how much hold do I bring" has to be answerable before launch; what is inside does not.
Fixed
Nothing player-facing. The season scoring, the map and every existing screen behave exactly as they did in beta.10 — two internal constants changed visibility, at identical values.
1.0.0-beta.10 — 2026-08-13
Changed
The market now takes a cut, and burns it (#517). Trades used to settle in full — which also meant two accounts could shuttle resources back and forth at honest prices forever, at zero cost, and the economy had no drain anywhere. Every offer published from now on carries a 5% settlement fee on each side: the buyer pays the asked amount in full and receives the goods minus the fee, the seller receives the payment minus the fee, and the difference is destroyed — it goes to nobody. What you'll actually receive is shown before you accept (the detail view prices it in, taxed rows carry a "fee 5%" marker on the board), your activity log records the true take, and cancelling still refunds the escrow in full: listing is free, only settlement is taxed. Offers already on the board when this shipped are exempt — they settle in full, at the price you published them at. The AI commanders price the fee into their asks and their appraisals exactly like you would.
1.0.0-beta.9 — 2026-08-13
Changed
The visit counting moved onto our own server, and blocking it is now our job to honour. Since beta.7 the counter was Plausible's hosted service, which most content blockers answer with an empty 204 — measured in a real profile, where every plausible.io URL including their own homepage returns nothing. So the numbers were a floor with no way to know how far below the truth they sat. It now runs on a second server of ours (Plausible Community Edition, Helsinki), proxied through novarchy.com itself at /n/s.js and /n/e. The path names are not decoration: the same blocker also answers /js/plausible.js with a 204same-origin, and eats a third-party POST to /api/event, so self-hosting on the default paths would have bought a tracker that downloads and whose events are silently swallowed. Two consequences worth stating plainly. Nothing about a visitor reaches a third party any more, so the privacy page's list of who else sees anything is now just Google and Discord — and the counting got its own section that says whose server it is. And because a first-party request cannot be refused by blocking a domain, refusing had to become something we honour: the privacy page now carries a button that turns counting off, and Do Not Track and Global Privacy Control are honoured too, all three checked before the counter is even created. The button exists because the browser signals are not enough — Safari dropped Do Not Track in 2019 and never shipped Global Privacy Control, and on iPhone every browser is Safari underneath, so for those readers a promise resting on a browser setting would have been unkeepable. It is pinned by tests in both directions, including that a browser blocking storage outright is not treated as a refusal. This build of the script also does not watch clicks, downloads or form submissions at all, so the previous release's careful switching-off of form capture — which existed because the chat composer is a <form> — is no longer something that can regress.
1.0.0-beta.8 — 2026-08-13
Fixed
A colony that defends with nothing no longer pays the attacker as if it had (#270). Before: parking your fleet in another colony turned your planet into a paying target for a friend. The attacker broke a Shield nobody was defending, met no return fire, and scored 125.57 points — more than the 115.57 paid by a target that actually put its fleet in the field. Farming was strictly better than fighting, and it cost the accomplice nothing. Now the Bolla pool only counts toward battle points if the defence fired at least one shot. The same colony pays 10.00, the win bonus. A colony that hides its fleet behind the defence plan (#259) drops from 48.52 to 10.00 too. Ships and emplacements destroyed still pay in full — those are real losses somebody bought — so a defended colony is worth exactly what it was: a real defence still pays 115.57, and the fortress doctrine still collects its full 300.
What this changes for honest play, stated plainly: the game cannot tell "my accomplice parked the fleet elsewhere" from "my fleet is out fighting" — it is the same board state. So catching somebody with their fleet away now yields the loot, the victory and the siege progress, but not the pool points. If you want an attack on you to be expensive for the attacker, leave something that shoots: a single emplacement is enough.
What is NOT fixed, and is worth knowing before you find it: one salvo of any size restores the full amount. A colony with a single ship, or Batterie L1, is back to ~131 points. Closing that needed a threshold, and every threshold we measured was worse — the version relative to the attacker's fleet let a farmer switch the bonus back on by bringing fewer ships, and made an honest defender's value drop when the attacker committed more. The second configuration named in #270 — the fortress with Batterie L14 and the fleet hidden, 300 points — is also still open: it comes from the Bolla pool recharging every battle (#255), not from this rule.
1.0.0-beta.7 — 2026-08-13
Notes
Web traffic is measured with Plausible. There was nothing readable before: how many people reached novarchy.com, and where from, was visible only as accounts created (the server's access log has the raw requests, which is not the same as an answer), so everyone who looked and left was invisible. The tracker is cookie-free, stores nothing on the visitor's device and builds no profile, so it needs no consent banner. It only runs on the novarchy.com hostname: the mobile app ships the same index.html, and while the tracker skips localhost by itself, a LAN IP or a tunnel used to test on a real phone is an ordinary host to it and would land in the production stats. The gate also means the app never requests the script at all. Three captures are switched off that this script turns on by default: outbound clicks, file downloads and form submissions. The chat composer is a form, so leaving the defaults would have sent Plausible an event for every message a player types — and billed for it. Pageviews, scroll depth and engagement time are what remain. Two honest limits, so nobody reads the numbers for more than they are: ad blockers drop the script, so visits are a floor and not a headcount; and with no router in the app a whole session is one pageview, which makes "bounce" and "visit duration" meaningless here. The privacy page was part of this change, not a follow-up: it stated "no analytics" and "no analytics services", which this feature would have turned into a false published claim the moment it deployed. It now says what Plausible receives — including the scroll depth and engagement time the current script sends automatically, and the daily key built from IP and browser — and what it does not: no cookies, nothing kept on the device, no link to the game account. Checking it against Plausible's own data policy turned up two claims of ours that promised more than the vendor does, so the page says the count stops being traceable once the day's key is discarded, rather than claiming it never was. Reviewing that list also surfaced two third parties the page had never disclosed at all, both older than this change: Google Fonts, fetched on every load, and the Google sign-in script, fetched by any screen offering the button. They are listed now too. The tests pin the parts that can rot silently — the tracker cannot load without the sentence disclosing it, the three interaction captures cannot be switched back on quietly, the disclosure has to name Google Fonts while the game still loads them, and the mobile app has to keep the hostname the gate rejects — but the rest of the page's wording is not machine-checked.
Everything written from now on is in English — code, comments, docs, commit messages, issues, release notes, this changelog. The rule now lives in CLAUDE.md, which was itself translated, since a rule stated in Italian contradicts itself. What this does not claim is that the project is already all English: the Italian prose that exists — this file's own header, the README, the design documents — is left exactly where it is, because bulk-translating it would bury real changes in diff noise. It gets rewritten when someone has a reason to touch it, not before. Separately, Italian that is machinery rather than prose is excluded permanently and must not be touched: ids already persisted in live colonies, the enum values the agents' plans are validated against, the word lists whose job is to detect Italian, and the filters that catch what players type at us in Italian.
1.0.0-beta.6 — 2026-08-13
Fixed
The hive map showed every flower paper-grey (PR #514). The guild colour directory is fetched once per session and usually arrives before the map mounts; the scene is created asynchronously and missed the hand-off, so it painted with an empty palette forever — while the HTML legend right under the canvas showed the correct colours. The directory is now handed to the scene the moment it is created. Flowers, halos and rings wear their guilds' colours again.
1.0.0-beta.5 — 2026-08-13
Changed
A ruled system now shows its ruler on the hive map (PR #511). The flower's cells have always worn the colour of the guild present in the system; now, once territorial control holds (3 days of dominance), the whole flower turns brighter and the control ring goes solid — the map answers "who rules here" before a single label is read. While control matures nothing changes: quiet cells, faint ring. The map legend describes both states, and the redraw reacts to takeovers immediately instead of waiting a poll cycle.
1.0.0-beta.4 — 2026-08-13
Corretto
Due parole italiane che affioravano in un'interfaccia per il resto inglese. La prima la vedeva chi ha portato l'Osservatorio a 5: nell'allarme delle flotte in arrivo, la stazza della flotta nemica era scritta «fleet piccola» invece di «fleet small» — il server manda un id interno e il pannello lo stampava tale e quale, mentre la riga accanto (le classi di scafo) l'etichetta ce l'aveva dall'inizio. La seconda è «Ignoto» al posto di «Unknown» come nome di un comandante di cui il server non conosce più il nome: si vedeva nella bacheca degli aiuti di gilda, fra i candidati in attesa e nel feed attività. Nel registro di gilda le righe già scritte restano com'erano — è testo archiviato — ma ora si leggono in inglese lo stesso.
Sotto il cofano
I commenti del codice passano all'inglese, prima tranche: packages/shared completo, apps/api all'80%, apps/web iniziato. Nessun comportamento cambia, ed è verificato e non dichiarato: il JavaScript prodotto da ogni file è identico byte per byte prima e dopo. Il controllo esiste perché serviva: nella prima tranche ha trovato una traduzione che aveva cancellato una guardia insieme al commento che la spiegava, riaprendo un difetto già chiuso (#293, #434) — i test e il compilatore non se n'erano accorti. Restano da tradurre apps/web, gli agenti e le suite di test.
Due file troppo grossi divisi per materia. La semina del Faro Pirata esce da ColonyService (creava un impero NPC, non era un servizio di colonie) e i riquadri della HUD escono da Dashboard.tsx, che era il file più lungo del progetto. Nessuna riga di logica riscritta: solo spostata, con i test che già la coprivano — e non toccati — a farne da verifica.
1.0.0-beta.3 — 2026-08-13
Aggiunto
I Contratti: obiettivi del giorno e della settimana, con premi che valgono il viaggio. Nella scheda Eventi è arrivata una bacheca (#191, design in DESIGN-CONTRATTI.md): ogni giorno alle 05:00 UTC tre contratti estratti sul TUO impero — solo verbi che puoi davvero giocare, niente "vinci una battaglia" per chi non ha flotta. Completarne due chiude il Daily Wrap, che paga doppio; cinque Wrap in settimana aprono la Weekly Chest: un Cronoframmento da un'ora più risorse. I premi sono ancorati alla produzione oraria dell'impero, quindi crescono con te — e si riscuotono quando hai spazio in magazzino, con l'avviso prima, non dopo. La bacheca si sblocca alla fine dei Primi Passi. Anche i comandanti IA la giocano, al loro passo: chi è bravo manca raramente un Wrap, chi è scarso certi giorni se ne dimentica — e perde la Cassa come lo faresti tu.
Modificato
La galassia è stata ricartografata: la mappa è ora un Alveare esagonale. La vecchia carta prospettica con le rotte e i varchi è andata in pensione: al suo posto una griglia esagonale continua, piatta, pensata per il telefono. Ogni pianeta occupa una cella del fiore della sua stella, le celle vuote sono spazio aperto, e il tempo di viaggio è esattamente la distanza che si vede — niente più rotte nascoste da imparare. Tre livelli di zoom (galassia → settore → fiore), tap per avvicinare e poi per aprire, la camera che si ricorda dov'eri, e la legenda finalmente anche su telefono, dentro il cartiglio dei premi.
I tempi medi di viaggio restano quelli di prima (taratura verificata entro pochi punti percentuali, con test che la inchiodano su tutta la galassia), ma la forma delle distanze cambia: ciò che sembra vicino ora È vicino. Le missioni già in volo concludono con i tempi vecchi. Gli Iperportali funzionano come prima: un varco al capo di partenza sconta le missioni logistiche, i varchi a entrambi i capi collassano il viaggio a un salto. Anche i comandanti IA leggono la stessa carta: scelgono dove colonizzare, esplorare e raccogliere guardando le celle, non più gli indici dei settori.
Sotto il cofano: rollback d'emergenza TRAVEL_MODEL=graph documentato in DEPLOY.md (con log del modello all'avvio e anteprime client che seguono il server via /settings), e la geografia dei bot generata dal TypeScript vero — un asset versionato col seed, con test di parità cella per cella in entrambe le lingue.
Corretto
Le reazioni in chat alla presa e alla perdita delle Reliquie erano mute (#501, regressione della #479). Un errore all'ultimo passo di ogni ciclo dei comandanti IA spegneva i loro commenti sulle Reliquie contese — e riempiva i log di avvisi, ~75 ogni cinque minuti. Ora la voce è tornata, con un tetto anti-valanga nuovo: quando una gilda perde una reliquia la notizia arriva a tutti i suoi membri, ma a parlarne in canale sono al più due, non un coro — e la festa di chi l'ha presa non zittisce il lamento di chi l'ha persa. Sistemati anche tre test che cambiavano esito con l'ora del muro (#503, in parte): la suite non diventa più rossa da sola ogni notte fra le 00 e le 07 UTC.
1.0.0-beta.2 — 2026-08-13
Corretto
La gilda non commenta più il registro alle quattro del mattino (#479). Benvenuti, bacheca, chiamate agli avamposti e rapporti di difesa rispettavano gli orari di chi parla; il commento al registro no — e nemmeno il consiglio di guerra, i bonifici dal Fondo, le candidature e i cambi di grado. Un compagno che in chat "dorme" dalle 21 poteva raccontare alle 03:45 un versamento fatto cinque minuti prima. Ora il controllo vive nell'unico punto da cui passa tutto il canale di gilda, più i due percorsi che postano per conto loro.
Una notizia rimandata viene poi raccontata come notizia: chi si sveglia ne parla come di qualcosa che si è perso, non come se fosse appena successa. Oltre le dodici ore non è più una novità e nessuno legge il registro ad alta voce.
Corretta anche la cadenza dei versamenti al Progetto Eschaton, che viveva in memoria: ogni riavvio del servizio la azzerava, e tre deploy in settanta minuti diventavano tre bonifici dallo stesso comandante nel registro. Ora sta su disco, insieme a due orologi gemelli.
Il Mercato dice di quale colonia sono le risorse che mostra (#288). Aprendolo da una colonia secondaria, l'intestazione in alto mostrava le risorse di quella colonia e il pannello due righe sotto quelle della colonia madre: sei numeri, nessuno uguale al suo dirimpettaio, e niente che lo spiegasse. Il commercio passa sempre dalla madre — il server era già coerente — ma il pannello lo diceva solo dentro i messaggi d'errore e nel dettaglio di un'offerta aperta. Ora il nome della madre sta accanto allo stock, e un avviso compare quando si guarda da un'altra colonia.
Note
Il badge dei test nel README era fermo al conteggio dei file di mesi fa (88/109). Ora riporta i test: 5.580 vitest e 2.128 pytest.
1.0.0-beta.1 — 2026-08-12
Prima release taggata. Copre tutto ciò che era in produzione fino a #466 incluso, fra cui:
L'anteprima di Spionaggio non è più identica prima e dopo l'acquisto (#473). Su 17 livelli su 24 le due righe erano uguali byte per byte, sopra un acquisto da migliaia di risorse: il rischio mostrato era quello contro un bersaglio sguarnito, dove il calcolo tocca il minimo già dal quarto livello. Ora la scheda mostra ciò che il livello compra davvero — quanto toglie al vantaggio di chi ti sorveglia.
Quattro livelli del Centro di Comando smettono di promettere cose che hai già (#483). Template di flotta, report estesi, anteprima della Potenza del bersaglio e spostamento istantaneo degli edifici erano già disponibili a chiunque, e due di quelle funzioni non sono mai esistite. Erano scritte nel riquadro da cui si paga l'edificio più caro.
La riga dell'energia distingue un deficit vero da un margine sottile (#466). Il chip in alto lo faceva da tempo, la riga della colonia no: metà produzione persa e un punto di margine avevano lo stesso colore. E la barra sotto usava il criterio delle risorse, dove "oltre il 90%" significa stai per traboccare — sull'energia significa l'opposto.
I condotti della base leggono lo stesso bilancio di tutte le altre schermate (#465). Con l'Acceleratore spento contavano comunque il suo consumo, quindi diventavano rossi mentre ogni altra schermata diceva che l'energia era a posto; su un pianeta con malus sbagliavano dalla parte opposta.