Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:37
· 79 commits to main since this release
Immutable release. Only release title and notes can be modified.
1db2323

Borea v0.3.0

Borea is the community content manager for Kitten Space Agency: find mods, install them with their dependencies into separate instances of the game, and launch through StarMap.

Website | Discord | Content index | Source and issues

Coming from v0.2.x

Click "Update now" on the Home banner, or run borea update-self.
Your instances, mods and settings stay as they are.

Highlights

  • Borea keeps one copy of each mod release and links it into every instance that uses it, so a mod you already have does not need to be downloaded twice.
  • When the game crashes after it started, Borea tells you, names the mod if one caused it, and opens the crash log for you.
  • Discover scrolls smoothly now, even when you scroll fast through a long list.
  • Mark your favorite mods and packs, and find the mods you already use in your other instances.
  • Save the game settings of an instance as a preset and start new instances from it.
  • Borea remembers your GitHub sign-in, so you stay signed in after a restart.
  • Mod authors can now write and publish mod packs right from the App.
  • Stewards of the content index can review, merge and moderate the index without leaving Borea.
  • Experimental: on a Mac, Borea can play the Windows build of KSA through a Wine wrapper such as Sikarugir.

For players

Shared mod files
  • Borea now unpacks each mod release only once, into Static Mod Files in your library folder, and links every instance to that copy. A second install of the same release does not need to download or unpack anything again.
  • When you remove a mod from one instance, only its link goes away. Borea deletes the stored copy once no instance uses it anymore.
  • Some mods write into their own folder. When Borea notices that, it gives every instance its own copy of that mod and tells you which mod it was, so one instance cannot change the files of another.
  • If you prefer a separate copy of every mod in every instance, turn off "Share mod files between instances" in Settings, General.
  • The instance page counts linked mods in its size, so the total still tells you how much room the instance takes.
  • Moving your library folder moves Static Mod Files along with it. On Windows, moving the library to another disk now also works when an instance holds a linked mod.
Discover and mod pages
  • Mark mods and packs as favorites from their "..." menu. Favorites get a small star, and "Only favorites" in the Show filters lists just them.
  • "Installed in other instances" in the Show filters shows the mods you already use elsewhere. Combine it with "Hide already installed" to see what you have in another instance but not in this one yet.
  • The search field says what it searches, such as "Search 20 mods".
  • In a long list, "Back to top" at the bottom takes you straight back to the search and the filters.
  • Hold the middle mouse button in any list or page and move the mouse to scroll, as in a web browser. The back and forward buttons of your mouse move between pages.
  • Free-form tags now read like the curated ones, for example "Space Station". When a row has more tags than fit, a chip such as "+2" names the rest.
  • Some mods need a step from you, before you play or when you remove them. Their mod page now shows those steps, and the install asks you to confirm them.
  • When a release can no longer be downloaded from its host, Borea stops offering it for new installs and updates. The Versions tab still lists it, with the date it went away.
  • Clicking "+" or Install without an active instance now tells you what to do, with a button that opens the Library.
  • Fast scrolling no longer stutters. Borea reuses the rows that scroll out of view instead of building them again, so a list stays smooth also when you scroll quickly from the end back to the top.
  • A scrollbar grows as soon as your pointer is over it, and shrinks again as soon as the pointer leaves.
  • Long lists use less memory, and a list keeps its scroll position when you come back from a mod page.
  • Buttons and links behave the same everywhere: the hand cursor on everything you can click, links that turn purple under the pointer, text in the center of the purple buttons and of the search fields, and tooltips that explain a number or a date that stands on its own.
Instances
  • The Mods, Manual installs, Log and Game data tabs are now tables. The less common actions of a mod moved into its "..." menu, and the menu explains when an action is not available.
  • Every instance has the same "..." menu, on the Library, on its Home card and on its own page, including "Back up all saves". Deleting an instance now asks first.
  • "Save settings as preset" in the instance menu keeps the game settings of that instance. When you create a new instance, you can start it from a preset, and Settings, Game lists your presets so you can delete old ones.
  • "Let Borea manage" now checks what the mod needs before it takes it over, and can install a missing required dependency in the same step.
  • The Manual installs tab explains which mods the game loads and why Borea leaves them alone.
  • Home shows two full rows of recently updated mods.
Saves and vehicles
  • Rename a save or a vehicle from its row menu. Borea changes both the name the game shows and the folder on disk.
Mod packs
  • A pack pins exact versions on purpose. Borea now tells you when its mods have newer releases, such as "1 of 3 mods has a newer release", but it never changes what the pack installs.
  • "Copy forum list" on the pack page copies one line per mod, in the format the forum rules ask a pack thread to use.
  • When a pack install stops, Borea tells you which mod stopped it and why.
  • When a pack pins a release that can no longer be downloaded, Borea warns you before the install.
Launching and when something goes wrong
  • When the game closes unexpectedly after it started, Borea tells you, names the mod if one caused it, and "Open log" takes you to the crash log. If the game crashed while Borea was closed, you see the message once at the next start.
  • When StarMap restarts itself to load new mods, Borea now follows the restarted game. Play and a backup restore of that instance wait until you close it.
  • When StarMap stops right after the start and names a mod file by its path, Borea now tells you why instead of showing "Something went wrong".
  • The error bar at the bottom of the window has a solid background now, so its text stays readable.
  • On Linux, Borea adds itself to your application menu at the first start, and from then on starts from there without a terminal. On Windows, Borea no longer opens a console window when it restarts after an update.
KSA on a Mac in a Wine wrapper (experimental)

KSA has no macOS build, so some players run the Windows build on their Mac inside a Wine wrapper app such as Sikarugir. Borea now supports this, but it is new and has only been tested by a few people, so please tell us how it works for you.

  • Game detection finds the game and StarMap inside wrapper apps in /Applications and ~/Applications, and one folder below them, such as ~/Applications/Sikarugir, where Sikarugir saves its wrappers.
  • Play starts StarMap through the wrapper, with the instance you chose, and "Play without mod loader" starts KSA through it too.
  • Borea tells StarMap where the game is in the form that Windows programs inside the wrapper understand, such as C:\Program Files\Kitten Space Agency, also when an older Borea had written a macOS path.
  • StarMap needs the .NET runtime for Windows inside the wrapper. When it is missing, Borea tells you which version you need and how to install it in three steps: download Microsoft's installer, install it through "Install Software" in the Configure window of the wrapper, and click "Check again". Borea never downloads or installs anything into the wrapper itself.
  • Launch arguments cannot be passed through a wrapper, so an instance with launch arguments is refused with a message, and only one game at a time can run through the same wrapper.
  • When the game crashes inside a wrapper, Borea does not show the crash message yet.
  • On Linux, Borea does not try to start a Windows build of KSA and tells you why.
Updating Borea
  • "Update now" runs as a task in the Tasks drawer, where you can follow the download. If an update fails, the task says why, and the build you have keeps working.
  • When you change the update channel in Settings, or turn "Check for updates at start" on, Borea checks for a new release at once, without a restart.
GitHub sign-in
  • When you sign in to GitHub in Settings, Borea keeps the sign-in in the secure credential store of your system and signs you in again at the next start. Turn off "Stay signed in on this computer" if you do not want that, and signing out always deletes it.

For mod authors

  • Mod packs in the listing editor: start a new pack, pick its mods from the index, make the next version of a pack you already listed, or turn one of your instances into a pack. Borea opens the pull request for you, and the first version of a new pack also records you as its owner.
  • Version bounds with one or two numbers, such as min = "0.5", now work in a listing (RFC 0072), and the editor finds releases tagged 0.5 or v1.
  • "Stamp older releases from version" in the listing editor sets since under [releases] (RFC 0079), so the index also stamps releases older than the newest one.
  • The free tag field accepts capitals and spaces, and stores the tag in lowercase with - between the words.
  • The listing editor reads the prefix of your forum thread by its id, so it still picks the right tag when the forum renames a prefix.
  • The steps your listing asks for, before play and when the mod is removed, are now shown to players on the mod page and in the install confirmation.
  • Borea shares mod files between instances. If your mod changes files in its own folder, Borea gives every instance its own copy of it from then on. Keep the files your mod writes outside its own folder, so all instances can share it.
  • When the game crashes in your mod, Borea names your mod in the message, so players know whom to tell.
  • On a phone, the share page of your mod shows "Copy link" instead of the Borea buttons, which only work on a computer.
  • The share page of your mod shows the images of its description at once when they are on GitHub, and asks the reader first only for images on other hosts.

For stewards of the content index

  • After you sign in, Borea checks whether your GitHub account is a steward of content-index or content-index-releases, and Settings shows it under your login.
  • The Steward page lists the pull requests that wait for a steward. You can review one in Borea, with its diff, a preview of each document and the ownership proof, and approve, request changes, comment, merge or close it. Every action asks for a confirmation first.
  • From the page of a listing or pack you can mark it as disputed, delist it or retract a pack version, and the Status tab lifts such a state again. Each change opens its own pull request, which mentions the owner.
  • The Reports tab lists open takedown requests and disputes, and the Watcher tab lists open watcher issues.
  • "Amend releases" on the content page of a listing yanks releases or changes their bounds, and shows a preview before anything is sent.

For translators

  • Put a Resources.<language>.resx file into the Languages folder of the Borea data folder, and Borea shows your texts at the next start, without a build. Turn on "Mark untranslated texts" in Settings to see which texts still need a translation.

Command line

  • borea settings set shared-store off turns shared mod files off, and borea settings show tells you whether they are on.
  • borea instance rename-save and borea instance rename-vehicle rename a save or a vehicle.
  • borea instance backups shows the size of each backup, and borea instance restore-backup refuses while KSA or StarMap runs.
  • borea instance take-ownership now stops when a required dependency is missing and names it. Add --with-dependencies to install it first, or --without-dependencies to go on without it. A script that took over such a mod before now needs one of the two.
  • borea show prints the install and uninstall steps of a listing and the date a download went away. borea install, borea remove, borea loader install and borea loader uninstall print the steps after their result, and --json includes them as arrays.
  • borea pack install names the mod that stopped a pack install and says why.
  • borea launch through a Wine wrapper on a Mac says which .NET runtime is missing and where to get it. Run it again once the runtime is installed.

Good to know

  • This version is tested with KSA 2026.9.22.5482.
  • The game's own Restart button in its settings still only closes the game when you started it from Borea. StarMap cannot find its configuration after that kind of restart. Just start the game again from Borea.
  • On Windows 10 and on Windows 11 before version 24H2, you may see a console window flash up for a moment when you start Borea. Borea is a single program file that is both the App and the command line, and these Windows versions show a console for such a file before the App window opens. Windows 11 24H2 and later do not. On macOS, Borea still opens from Terminal for now.
  • Every request Borea sends names Borea, its version and a link to the Borea repository, as the Ahwoo forums ask of tools that read them.
  • Borea is a community project by the KSA Modding team. It is not made by RocketWerkz.

Downloads

File SHA-256
Borea-0.3.0-linux-x64.tar.gz e5f72b8d2b172de5dc1893851c7a90db254531e87136cd24a0670a83b6b6184b
Borea-0.3.0-macos-arm64.tar.gz aa1d170ce308b2a83c5775ddfdef99e156586fe7ccf6d9eee14282cb1d33b9ca
Borea-0.3.0-win-x64.zip f65bf778d63a91338cc9922f1090dec9018053be521dd2b68091bb2757f57d91
Borea-0.3.0.cdx.json 82bfc352d9c2a12549a983785e5cc305967d0383dd6aaa88462f1c9e04071684
Borea-Cli-0.3.0-linux-x64.tar.gz e8a05c0f1a32cabcfb208756138376e2fd13004f75487a19598c62ecda937ae8
Borea-Cli-0.3.0-macos-arm64.tar.gz 88de2ea2ef7bbbb91d4bbd686d3c364b9975c129c52eba4482df6dab87fae345
Borea-Cli-0.3.0-win-x64.zip 631d38cd88aaf8546b13d8f09c523468cd27c112168fae5e4df8d7b177059758
Borea-Cli-0.3.0.cdx.json 61f245508dc11a46ddccd8ce9225e81d442fc7435d27a2eab033916715952c14

Each platform has two archives.
The App archive, for example Borea-<version>-win-x64.zip, contains the program borea.
Without arguments, borea opens the desktop App, and with arguments, it runs a command.
Most users want this archive.
Archives whose names start with Borea-Cli- are a smaller download that contains only the command line.

The builds include the .NET runtime and are self-contained, so there is nothing to install first.

Each archive contains borea (borea.exe on Windows), LICENSE and THIRD-PARTY-NOTICES.txt, in a folder named Borea, or Borea-Cli for the CLI archive.
The App archive also contains BRANDING.md, because the Borea logo in the App is not covered by the MIT License.
Put that folder where it can stay, for example %LocalAppData%\Programs\Borea on Windows or ~/.local/share/Borea on Linux, because Borea updates itself into the folder it runs from.

First start

These builds are not code signed, so the first start might take an extra step on Windows and macOS. The README has the long explanation.

Windows. Right-click the zip, open Properties and select Unblock.
Then unpack the App archive and start borea.exe, or run .\borea.exe --help in PowerShell in the unpacked folder of either archive.
Without that step, Windows shows "Windows protected your PC". This is because the file might not be downloaded often and is not signed. Select "More info", then "Run anyway".

Linux. Unpack the App archive and run ./borea for the App, or run ./borea --help in the unpacked folder of either archive.
After the App has started once, Borea is in the application menu and starts from there without a terminal.
Both need the ICU and OpenSSL libraries of your distribution, and only the App also needs the X11, ICE, SM and fontconfig libraries. Most desktop installs already have them. See Readme.

macOS. Unpack and start Borea from Terminal, not from Finder: tar -xzf <file>, then run ./borea inside the new folder of the App archive for the App, or ./borea --help inside the new folder of either archive.
The macOS builds are for Apple silicon. Intel Macs are not supported.

Provenance

To check that a file came from this workflow:

gh attestation verify <file> --repo KSAModding/Borea \
  --signer-workflow KSAModding/Borea/.github/workflows/release.yml

Borea-0.3.0.cdx.json is the software bill of materials for the App archives, in CycloneDX JSON.
The App contains the command line, so this list includes the NuGet packages of the App and of the CLI.
Borea-Cli-0.3.0.cdx.json is the software bill of materials for the CLI archives and includes only the packages of the CLI.
Each list includes the version, license and hash of every package.
Each list is attested only to the archives that it describes, and you can use this command to prove that it belongs to one.
With --format json, the output includes the attested list.

gh attestation verify <archive> --repo KSAModding/Borea \
  --signer-workflow KSAModding/Borea/.github/workflows/release.yml \
  --predicate-type https://cyclonedx.org/bom

Signing will come in the future and is tracked in #76.

What's Changed

New Contributors

Full Changelog: v0.2.1...v0.3.0