Commit Graph
55 Commits
Author SHA1 Message Date
Дмитрий 02843bb6d1 Check release compatibility and recover unhealthy updates automatically 2026-10-10 12:22:14 +05:00
Дмитрий 94fd5fb5b9 Resolve signed immutable server update channels 2026-10-10 12:05:14 +05:00
Дмитрий 374a3f9c23 feat(races): ship client integration in Manager 0.6.9 2026-10-10 06:35:01 +05:00
Дмитрий d20d5a6410 Merge remote-tracking branch 'origin/master' into feat/custom-races
# Conflicts:
#	src/screens/ModulesPage.tsx
2026-10-10 06:29:49 +05:00
Дмитрий 1228807eaf feat(races): integrate client patch installation and controls 2026-10-10 06:29:32 +05:00
Дмитрий 9099168927 Merge master and preserve Linux installation and crash history mocks 2026-10-10 05:47:39 +05:00
Fabien F. 45a699d2ca feat: install a new Docker server from the install screen (Linux)
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).
2026-10-08 17:28:52 +02:00
Дмитрий be68eb4341 Add unsaved changes navigation guard and server auto-restart with crash analyzer
- 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)
2026-10-08 18:58:41 +05:00
ДмитрийandClaude Sonnet 5.5 1acbcc2bb5 Fix the dashboard tab: large answers, damaged history files, browser link and realm drop-down
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>
2026-10-08 08:33:36 +05:00
ДмитрийandClaude Sonnet 5.5 838cc07e73 Add the SQUID dashboard tab and make a stopped server stay stopped after updating
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>
2026-10-08 07:33:07 +05:00
ДмитрийandClaude Sonnet 5.5 337418afe0 Add a configurable backup folder and drop-down bot settings
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>
2026-10-08 07:08:09 +05:00
ДмитрийandClaude Sonnet 5.5 072a657649 Remove-server card, Accounts tab, quiet background update check, safer install cleanup
- 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>
2026-10-08 07:01:20 +05:00
Corfirean f3fc14b55a Merge pull request #34 from Corfirean/fix/lan-address-selector
Choose and remember the LAN address friends connect to
2026-10-07 06:53:22 +05:00
ДмитрийandClaude Sonnet 5.5 8490dc9983 Let the person choose and keep the LAN address friends connect to
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>
2026-10-07 06:44:34 +05:00
ДмитрийandClaude Sonnet 5.5 b3c50a7b39 Collect all diagnostics in one click and route reports to the right project
- 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>
2026-10-07 06:21:11 +05:00
Дмитрий 0d6d8a0db8 Harden server update history, recovery guards and repeated checks 2026-10-06 07:01:13 +05:00
Дмитрий cfe0889a4f Fix embedded launcher startup and retry applied updates safely 2026-10-05 13:53:32 +05:00
Дмитрий c39a7a0ac7 Let players download and update clients without a local server 2026-10-05 01:23:31 +05:00
Дмитрий c02c635463 Fix settings input, client launch, server repair and simultaneous realms 2026-10-04 15:40:06 +05:00
Дмитрий 162bfd1e04 Release Manager 0.6.0 with Chinese localization, realm sync and Linux preview 2026-10-03 22:50:01 +05:00
Дмитрий 79d293e120 Merge branch 'review/pr5' into release/0.6.0
# Conflicts:
#	src-tauri/src/lib.rs
2026-10-03 22:45:53 +05:00
Дмитрий 46ba3fa3dc Merge branch 'review/pr9' into release/0.6.0 2026-10-03 22:45:37 +05:00
Corfirean 1bcef5f8c2 Add CoA / Wildcard realm profiles for v0.5.0 (#10)
* Add isolated Wildcard realm profiles and release v0.5.0

* Document realm validation and align npm lock version
2026-10-03 11:12:04 +05:00
Дмитрий c0c414f5a8 fix(report): open GitHub reports with the system URL opener (#8) 2026-10-03 06:22:49 +05:00
CorfireanandClaude Sonnet 5.5 5c21ef106d fix(config): an imported server gets the module config files it lacks at start and after an update
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>
2026-10-03 05:39:12 +05:00
Fabien F. e889e0a789 feat: the Manager starts and finds its folders on Linux
- 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.
2026-10-02 18:40:07 +02:00
ДмитрийandClaude Sonnet 5.5 31c08934ad Modules page: places held for Auction House Bot, NPC Enchanter and Playerbots with a Soon badge; module GitHub links from the catalog are allowed to open
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:07:25 +05:00
ДмитрийandClaude Sonnet 5.5 726b089f42 Modules page: square icon cards with status (early/beta/release), switch, GitHub and settings; companions, scaling, TBC and WotLK packs and client compatibility in the catalog; a module switched off hides its page. Accounts: delete an account with confirmation.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 11:26:09 +05:00
ДмитрийandClaude Sonnet 5.5 9444434734 Settings: full searchable list of every documented world-server setting (575), edited in place with a snapshot before each save
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 22:54:36 +05:00
ДмитрийandClaude Sonnet 5.5 81aacdf5bb Realmlist switcher next to PLAY, and a Modules page
- 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>
2026-10-01 16:10:45 +05:00
ДмитрийandClaude Sonnet 5.5 a79c26ed49 Report a problem: a tab that prepares a prefilled GitHub bug report
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>
2026-10-01 15:56:53 +05:00
ДмитрийandClaude Sonnet 5.5 a4c1080575 Tester suggestions: account management, install size and download volume, password show button, addon explanation
- 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>
2026-10-01 15:13:11 +05:00
ДмитрийandClaude Sonnet 5.5 645ffd8999 New servers and updated ones run the world on several threads: MapUpdate.Threads setting, one-time performance defaults, debug loggers lowered
- 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>
2026-10-01 13:14:41 +05:00
ДмитрийandClaude Sonnet 5.5 615b3e938d Game client: download and update through the Manager
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>
2026-10-01 07:52:58 +05:00
ДмитрийandClaude Sonnet 5.5 313d3e1c08 App logo (icon set, welcome screen, sidebar, page icon); despawn N bots to ease the load
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:41:20 +05:00
ДмитрийandClaude Sonnet 5.5 8686990a30 Companions: stop creating, take all offline, delete all (with a recovery point); bot module gets spawncancel and despawnall
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:28:58 +05:00
ДмитрийandClaude Sonnet 5.5 dd066f2094 Companions: progress bar while the server creates them (n of N added); offline creation shows a busy bar
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:24:27 +05:00
ДмитрийandClaude Sonnet 5.5 79846186ea Bots at start on the Bots page and the main card; adding companions raises the start limit; large batches are created offline with equipment when the server is stopped
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:10:22 +05:00
ДмитрийandClaude Sonnet 5.5 f7d29b09ef v0.1.6: companion templates, world speed, sharing guides, links, settings tabs fix; retry of the failed 0.1.5 build
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:00:49 +05:00
ДмитрийandClaude Sonnet 5.5 efacd4946e Companions: clear error when no template characters exist; requests made while stopped are created after the next start
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 22:54:21 +05:00
ДмитрийandClaude Sonnet 5.5 b4b1260099 Overview: world speed (ticks per second) from the server's own timing report
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 22:53:16 +05:00
ДмитрийandClaude Sonnet 5.5 db16d95558 v0.1.4: keep BindIP open for shared servers before every start, restart button after enabling friends mode
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 19:51:07 +05:00
ДмитрийandClaude Sonnet 5.5 a6ae4e78a3 Self-update in the background (install on close), module configs created from .dist, quiet-logging + table fixups in clean-base, backlog notes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 15:36:07 +05:00
ДмитрийandClaude Sonnet 5.5 c49d69df21 Self-update: Tauri updater + process plugins, Manager update card, release workflow (signed NSIS installer + latest.json)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:27:36 +05:00
ДмитрийandClaude Sonnet 5.5 f717794a71 Console: log tabs (world/auth/database/manager) with search and follow, guarded world console commands
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:25:17 +05:00
ДмитрийandClaude Sonnet 5.5 ce1861d88b Phase 10a: diagnostics, managed-file verification, redacted diagnostic package export
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 10:58:35 +05:00
ДмитрийandClaude Sonnet 5.5 1609c4f6bf Phase 9: Play with Friends (LAN/direct/private modes, exposure check, firewall rules, UPnP discovery, friend package, realm address reapplied after start)
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>
2026-09-30 10:54:18 +05:00
Дмитрий 28a42d1e35 Default package sources: base and stable releases of coa-server-build 2026-09-30 10:20:57 +05:00
ДмитрийandClaude Sonnet 5.5 d85050ff95 Phase 8: game client integration (read-only detection, backed-up realmlist change, isolated addon install, START & PLAY)
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>
2026-09-30 09:54:29 +05:00
ДмитрийandClaude Sonnet 5.5 9504e9133b Phase 7a: real population (players vs companions), hardware-aware companion sizes, RA bot spawn, Bots page card
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>
2026-09-30 09:35:24 +05:00