71 Commits
Author SHA1 Message Date
Дмитрий 6c771fae20 feat: allow launching installed server and client without updates 2026-10-05 14:01:37 +05:00
Дмитрий cfe0889a4f Fix embedded launcher startup and retry applied updates safely 2026-10-05 13:53:32 +05:00
Дмитрий a67d51804b Expose partial LFG and open-world leech module settings 2026-10-05 03:09:02 +05:00
Дмитрий c39a7a0ac7 Let players download and update clients without a local server 2026-10-05 01:23:31 +05:00
Дмитрий 3edc600f97 Recover database and file updates together after failures 2026-10-04 23:55:15 +05:00
Дмитрий d2496603e7 Configure both bot systems exclusively in the shared Bots tab 2026-10-04 20:40:36 +05:00
Дмитрий 2eea0e117c Add translated module settings and exclusive SQUID Playerbots controls 2026-10-04 20:26:39 +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
Дмитрий 85963b0bf0 Merge branch 'review/pr11' into release/0.6.0 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
Fabien F. 3da9628b79 feat: Docker runtime backend for Linux (start, stop, status)
A server folder with Settings/docker.json is a Docker installation: MySQL, the
auth server and the world server run in containers controlled through the
docker command line. Every other folder is a repack and goes through the
unchanged Windows code. driver::run, process::observe and layout::scan check
for the marker first and hand over to coa_core::docker.

- start: network, runtime image (libraries only, binaries are mounted from
  Core/), database healthy, world listening, then auth. A container that stops
  while starting reports the cause found in its log (DatabaseNotRunning,
  PortInUse, ...). New error code DockerUnavailable (docker missing, stopped,
  or not usable by this user).
- stop: world (180 s to save), auth, database; exit code 0 observed.
- observe: container state, health and port readiness mapped to the existing
  ServiceState. Readiness is a connection that stays open, because Docker's
  proxy accepts connections before the server inside listens.
- passwords go by environment, never on a command line; the remote console is
  published on 127.0.0.1 only; the server's own database updater is turned off
  (it needs a mysql client the image does not have and stops the server).

Tested: 18 new tests with an in-memory Docker, and a real run through
examples/drive: database, world (ready in 11 s) and auth started from a
package-shaped folder, stopped with exit code 0 and restarted.
Not included: installation, database setup, backups and SQL through the
container, updates, firewall/exposure, the client under Wine/Proton.
2026-10-03 12:44:20 +02: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 375be1b2c5 fix(nav): a module's page is hidden when the module is not on the server at all
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 05:18:14 +05:00
CorfireanandClaude Sonnet 5.5 1181b920d3 fix(modules): announced (Soon) modules stay greyed out, with no 'always on' note or settings
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 22:54:25 +05:00
CorfireanandClaude Sonnet 5.5 42dbdeae1f feat(client): updating the game client shows a progress bar on its button, no window over the app
A choice about files the owner changed appears in place below the buttons. First-time client setup keeps its dialog.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 22:49:36 +05:00
CorfireanandClaude Sonnet 5.5 53aa117ec2 fix(update): say 'up to date' when the version and files are unchanged instead of offering an update
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 21:32:43 +05:00
CorfireanandClaude Sonnet 5.5 209dbe37ac feat(ui): module settings open under their card's row; Other settings tab
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 17:07:39 +05:00
CorfireanandClaude Sonnet 5.5 89be57b4e4 feat(ui): one search, tabs and save bar on the Server page; no module legend
The collection switches and every other documented setting become tabs of the same
panel, are searched together with the curated settings and are saved by the same bar.
The Modules page drops the status legend; Playerbots is named SQUID's Playerbots.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 16:33:00 +05:00
CorfireanandClaude Sonnet 5.5 1f54fbf909 feat(modules): NPC Enchanter is a switchable early module
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 15:39:06 +05: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 b091061cc5 Appearances and collections card on the Server page; the compatibility part is no longer a card on the Modules page
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 11:36:42 +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 14173d7d7e Server settings: Achievement.RealmFirstBlockBots (bots cannot take Realm First achievements)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 06:21:51 +05:00
ДмитрийandClaude Sonnet 5.5 05397c4505 Import: when the chosen folder is the Core folder or an outer folder, offer the server's main folder; say clearly when it is a standalone AzerothCore server
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 05:31:28 +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 8f2b585641 Server settings: 20 more curated settings (drop rates by quality, talents, repair cost, auction cut, instances, professions, cross-faction, weather) in five languages
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 22:50:06 +05:00
ДмитрийandClaude Sonnet 5.5 d01e401f3c Layout fixes (fluid main card, password field), no emoji in reports, empty modules page; Release 0.3.1
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 16:30:12 +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 2c0bb2bac3 Settings: a running server update survives leaving the tab
The update's busy flag, progress and result were local to the Settings card, so switching tabs and coming back showed 'Update now'
again while the update was still running (and the server rightly answered 'another action is still in progress'). They now live in the
shared server-update store: the card re-attaches to the running update with its progress, and shows how it ended.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 14:05:56 +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 2317d46bda Client updates never overwrite renderer wrappers or config files; test that nothing outside the manifest changes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 07:56:40 +05:00
ДмитрийandClaude Sonnet 5.5 f1f2818525 Client setup dialog: drop the extra explanations, keep only the size
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 07:54:00 +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 0c376fdaf8 Main screen: server update check at start and every 5 minutes, UPDATE button instead of START when an update exists, progress, navigation dot; notes on client download
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 06:40:22 +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 5bbe5adff1 UI: dark slim scroll bars
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 23:16:11 +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 38b5b86be1 Translations: settings schema overlays (ru/de/fr/es), diagnostics, update steps, companion sizes, friends notes; dev mock for settings pages; docs/TRANSLATIONS.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 21:32:15 +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 4eda03ab63 v0.1.3: interface scales with the window, realmlist line per Friends mode, robust close handler
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 19:42:05 +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