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)
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>
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>
A server without a module's active file (an old repack updated by the Manager) made two modules log a
'missing property' line on every world tick.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- main: set WEBKIT_DISABLE_DMABUF_RENDERER=1 on Linux unless the user did.
WebKitGTK's DMA-BUF renderer ended the process at startup with a Wayland
"Protocol error" (seen with an NVIDIA card on Wayland).
- data_dir: use $XDG_DATA_HOME (absolute only) or ~/.local/share on Linux
instead of the temp folder. Windows keeps %LOCALAPPDATA%.
- open_link: xdg-open on Linux, explorer.exe on Windows as before.
- tailscale_exe: look in the usual Linux locations.
Every Windows branch is the previous code unchanged.
- Named realmlists (e.g. Solo, PTR): a drop-down by the PLAY button switches the game client by writing the chosen text into every
locale's realmlist.wtf (the replaced file is saved first); add / edit / remove with a name and the realmlist text (or just an
address). First use offers 'Solo' (127.0.0.1) and, if the client held another realmlist, 'Previous'.
- Modules page: bundled catalog (modules/catalog.json) of the optional modules built into the server; switch each on or off (its
Enable setting), open its page on GitHub, edit its configuration with the module's own documentation. Nine modules to start with.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Form (summary, what happened, expected, steps) plus the Manager version, Windows version, install kind and server version filled in
automatically, a redacted diagnostics file to attach, and a button that opens GitHub's new-issue page with the standard template
(the full text goes to the clipboard when it is too long for a link). Nothing is sent from the Manager and no token is needed.
open_link accepts only this project's new-issue page for that.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Players page: list of the server's accounts with password change, access level (player/moderator/GM/administrator) and
rename (a rename also sets a new password because the login verifier depends on the name; refused while logged in).
Companion and console accounts are never listed.
- Install screen: size of the server from the signed package list (unpacked, download, peak) and the drive check uses it.
- Install progress shows downloaded / total volume and speed.
- Own show/hide button on password fields (the browser's one disappeared after leaving the field).
- Settings: one sentence on what the companion addon does.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Server settings page gains 'CPU cores for the world' (MapUpdate.Threads), translated in all languages.
- On the first start of an installed server (not imports) the Manager sets it to half the logical processors (2..8) unless
the owner already raised it, and lowers Logger.network / Logger.entities.player from debug to info; once per server.
- tools/sample_stacks.py: sampling profiler for a running worldserver (dbghelp + PDB), used to find what the world thread spends time on.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PLAY turns into UPDATE CLIENT when a tracked client is outdated; with no client linked
it offers choosing an existing folder or downloading from the community launcher servers
(resumable, hash-verified, free-space checked, progress and stop). Files the player changed
are kept on request or moved aside, never silently replaced. Existing clients can be adopted
from Settings. Fresh downloads get a realmlist for each installed locale.
Fixes zero-length files in the downloader (found by the live probe).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Verified read-only on the live server: database and console listen on loopback only; login/world are loopback until
the owner enables sharing. Elevation and router changes only happen on explicit action.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Verified in the native UI with a stub client: realmlist pointed and backed up, addon installed without touching
other addons, START & PLAY starts the server, waits for ready, then launches the client.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Verified: fixture received 'botcmd spawnleveled 12' over RA from the UI and the counts moved;
population query also read-only verified against the live server (33 companions online).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>