Skip to content

Elite Dangerous Colonization Assistant v2.9.0

Choose a tag to compare

@oernster oernster released this 01 Jul 23:22
· 113 commits to main since this release

Release-notes

User-facing changes

A real startup experience, and no more empty first page

Previously the app opened the browser the instant it launched, so on a fresh
or slow start you landed on a blank page and had to wait for the backend to
catch up. Now a splash screen appears immediately, showing the application
icon, the author, the current version and a live status line with a progress
indicator.

The splash animation stays smooth the whole time. The readiness checking was
moved off the interface thread, so the progress indicator no longer stutters
or freezes while the backend is starting.

Startup no longer takes minutes

The most significant fix: the installed app could sit on "starting the local
backend" for two to four minutes on every launch. The cause was that the
backend rebuilt its view of your entire journal history before it would
answer any request, and it did this on every start even though that history
was already saved locally. The application now becomes ready first and does
that ingestion in the background: a one-time full backfill on a brand new
install (with the UI filling in progressively as it works), and only a small,
bounded catch-up of the most recent journals on subsequent launches. Live
updates while you play are unchanged. In practice startup goes from minutes
to effectively immediate.

Note for a first-ever run against a large journal folder: your sites now
appear progressively over the first minute or so rather than all at once,
because the history is backfilled in the background while the app is already
usable. Repeat launches show your data immediately.

Help menu: About and Check for Updates

The tray menu gained a Help submenu. About shows the app icon, version,
author, copyright, the licence summary, credits to every bundled open source
component and their licences, and a tongue-in-cheek acknowledgement of the
world's caffeine suppliers. Check for Updates opens the project's releases
page in your browser.

Properly identified executables

Both the application and its installer now carry correct Windows file
metadata (product name, author/company, and a version that matches the
release). Windows file properties and security prompts now identify the app
correctly instead of showing blanks.

Internal and packaging changes (mention briefly or omit)

Simpler, tidier build pipeline

Windows packaging is now two clear steps, one to build the application and
one to build the installer, replacing the previous tangle of build scripts
and a batch file. All build intermediates and the staged payload are kept in
a single ignored working area, and the finished executables land in dedicated
output folders instead of cluttering the project root. What the installer
produces, how it installs, repairs and uninstalls, and the release asset name
are all unchanged.

One source of truth for the version

The version now flows from a single file into everything that reports it: the
running app, the About dialog, the splash, the installer and the executable
metadata. A stale hardcoded version that had drifted out of sync was removed.

Quality gate: 100% backend coverage

The backend test suite now enforces full statement and branch coverage on the
testable surface, with the interface and process-orchestration shell
deliberately scoped out and its logic extracted into testable pieces. Tests
use real implementations and hand-written fakes only, with no mocking
libraries. The critical startup behaviour (that readiness is never blocked by
journal ingestion) is locked in by a dedicated regression test.

Documentation refresh

The developer build guide was consolidated and de-duplicated, a dedicated
testing guide was added, the setup guide was rewritten from an obsolete
scaffolding document into a real one, and the top-level readme now indexes the
whole documentation set. The architecture documents were updated to describe
the new startup flow and packaging.