* Share migration planning and execution across update phases
* Apply updates in one recovery-backed pass without nested server rehearsals
* Preserve applied core SQL and share account migration history across realms
The world refusing to start with the standard Data set (no CoA DBC) is now
reported as GameDataMismatch. A Settings card shows the folder in use and
changes it while the server is stopped, using the install checks.
Second part of the audit of every screen for a Docker server. What it found, and
what now happens:
- Play with friends. "Servers open" read the BindIP of the configuration files, which
the containers force to 0.0.0.0, so it was green on a fresh server while who can
connect is decided by the address the ports are published on (bindAddress in
docker.json). Opening and closing now edit bindAddress (and set
CoA.AllowRemoteClients), the open state is read from it, and enabling a mode no
longer fails on netsh / PowerShell after it already rewrote the files. There is no
firewall row on Linux (Docker publishes the ports itself); the Windows reply is
unchanged.
- The "private services" check (Friends and Diagnostics) could never fail on Linux: it
reads the Windows listener table. For a Docker server it is computed from how the
ports are published: the database never, the console only on 127.0.0.1, the game
servers on bindAddress.
- Console, Database tab: read a mysql log file that does not exist; it shows
`docker logs` of the database container.
- The Overview showed a service that had stopped by itself as "Stopped"; it now says
"Stopped unexpectedly".
- Settings: a Docker server that was added but never started had no
worldserver.conf and the page failed; it is created from its template. A talent
file path outside the Core folder is refused (the container cannot see it).
- Backups of configuration now include docker.json; verifying the files of an
imported Docker server looked for worldserver.exe and reported it missing.
- Linux locations: the friend package and the diagnostics go to the desktop folder
(from the user directories file) instead of /tmp, the problem report names the
distribution, and the size advice for companions reads /proc/meminfo instead of
assuming 8 GB.
Every Windows branch is the code that was there; the dispatch is the early return on
docker::is_docker (or the host flavor for the firewall).
The install commands ask coa_core::platform::flavor() once and hand a Docker
install to src-tauri/src/docker_install.rs; the repack arm of each command is
untouched (an early return and an extra optional parameter are all that changed
in lib.rs). New command install_environment tells the screen the kind of server,
the suggested folder (~/CoaServer) and why Docker cannot be used, if it cannot.
On Linux the install screen shows the game data folder (used in place, read-only)
and the server package (a folder or an address; there is no default address until
a signed Linux package is published), and disables Install until both are given
and Docker works. It shows Docker's own message with a "Check again" button when
Docker is missing, stopped or not allowed for the user. The Windows screen is
unchanged (checked side by side in the browser mock).
A debug build (tauri dev) accepts another package key named in
COA_DEV_TRUSTED_KEY, to try the installer on a package signed with a throwaway
key; a release build always uses the embedded key.
New text is English only for now (other languages fall back to it).
- Add UnsavedChangesGuard modal (Save/Discard/Cancel) when navigating between tabs
- Wire guard into ModulesPage and SettingsPage with floating action bar
- Implement crash parser and explanation engine in coa-core
- Expose list_crashes Tauri command and CrashItem API
- Add auto-restart on unexpected server crash with crash loop protection
- Add crash counter badge and CrashHistoryModal with human-readable explanations and full crashlogs
- Support all 6 locales (en, ru, de, fr, es, zh)
Version bump only. Collects: the update check no longer fails after a crash and no longer
starts MySQL in the background, the Wildcard table repair checksum error, same-version files
edited by hand are not an update, a stopped server stays stopped after an update, the layout
fixes, one card per realm, remove-server and backup-folder settings, the Accounts tab
(bot accounts hidden), a world server started from the coa-bots folder, and the new
SQUID bot Dashboard tab.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The dashboard now runs through a small launcher that avoids the immediate socket shutdown that
cut answers above 64 KB on Windows, supplies the missing level-builds file, removes history
files zeroed by a crash, is addressed as 127.0.0.1 and opens in the browser through its own
command. The realm drop-down is hidden while both worlds start together.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The Dashboard tab (shown with SQUID Playerbots) downloads the dashboard release of the
bots' release series, starts it on a free local port and shows it in the window. After an
update, a server that was stopped stays stopped unless the owner asked for it to start.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Backups can be stored in a chosen folder (new backups go there, older ones stay listed),
and a backups folder that is a link to another drive no longer fails the update's safety
backup check. SQUID settings that declare a fixed list of choices are edited as a drop-down
and validated against it.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Settings: a card removes a stopped server from the Manager (no files deleted).
- The Players tab is now Accounts in all languages.
- The five-minute background check no longer starts and stops MySQL on a stopped
server; only an explicit check may start it.
- A failed install keeps its marker until the folder is complete, cleans up after a
failure that happens after the move, and reports the launcher's output; install and
update errors have a Copy button.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Version bump only. Collects: one-click diagnostics and report routing, LAN
address selector, Auction House Bot card without a GUID, experimental Linux
Docker installer, and the fixes already on master since 0.6.5.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sharing on the local network used to take whatever address the Manager found
first, which is often a virtual adapter. The Friends page now lists the usable
IPv4 addresses of the computer (the automatic one marked) and accepts a custom
one. The choice is kept independently of the sharing mode, so it survives
restarts and switching to other modes. A chosen address that is not available
is reported instead of silently switching to another adapter.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- The diagnostic package now also holds crash reports and small crash dumps from
Core/Crashes, Windows' own crash records for the server programs (needed for
crashes that bypass the server's crash handler), the newest update journals,
the bot, supervisor and updater logs, and a view of which server programs run
and from where. The folder with the file opens after export.
- JSON files in the package keep valid JSON after secrets are removed.
- The problem report asks what the problem is about and opens the new-issue page
of the Manager, CoA Companions or SQUID Playerbots, preselecting the bot system
that is switched on. One button collects diagnostics and opens the report.
- Targets come from the module catalog; only their new-issue pages may be opened.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>