Commit Graph
105 Commits
Author SHA1 Message Date
Дмитрий 7d7bc530ec fix(client): preserve originals and verify race patch lifecycle 2026-10-13 06:14:32 +05:00
Дмитрий 7c866b116d feat(client): install custom race patches in player mode 2026-10-11 15:37:44 +05:00
Дмитрий 7557b347c5 Merge remote-tracking branch 'origin/master' into automation/immutable-channels 2026-10-11 01:31:22 +05:00
Дмитрий 9ae5fb471b Rehearse Windows updates and preserve complete MySQL recovery 2026-10-10 23:34:29 +05:00
Дмитрий 4c4d39f1de feat(races): synchronize custom races bot setting with playerbots excluded races 2026-10-10 20:55:27 +05:00
Дмитрий 376f1dbb46 Fix conditional settings hooks and release Manager 0.6.11 2026-10-10 07:49:41 +05:00
Дмитрий b0951dbee7 feat(races): update verified client assets to CoA Custom 1.5 2026-10-10 06:56:44 +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
Дмитрий 06ca748e80 feat(modules): add custom races module to catalog and UI 2026-10-08 14:13:43 +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 d85d86a3dc Recognise the coa-bots world server and explain the undo step
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 07:12:01 +05:00
ДмитрийandClaude Sonnet 5.5 0a050a40a2 Add start-after-update options and clarify the always-max-skills setting
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 07:11:08 +05:00
ДмитрийandClaude Sonnet 5.5 017b977bfa Same version is never an update; Repair lists the files that differ
An update is decided by version: files the owner edited at the same version no longer
open a keep/replace decision. Repair shows which files differ or are missing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 07:09:33 +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 f920ff8a59 Fix the stray window scrollbar, the Overview button overflow and show one card per realm
- The main area and the console log are now positioning contexts, so screen-reader-only
  text inside them can no longer extend the whole window (the second scrollbar in the update
  dialog and the window scroll on the Console database tab).
- The client button group on the server card wraps instead of leaving the card.
- With both worlds starting together, each realm gets its own card.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 07:04:29 +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
ДмитрийandClaude Sonnet 5.5 c6e8a34509 Make the update check survive damaged launcher state and an unavailable database
A crash during a launcher write can leave .state/*.json zero-filled, which made
every launcher start (and so the update check) fail with "Something went wrong".
Zero-filled state files are now discarded before each launcher verb, the check
degrades to a warning when the database cannot be inspected, and database start
failures carry the launcher's own output.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-08 06:56:03 +05:00
Corfirean 0b5f12941c Merge pull request #29 from Corfirean/feat/ahbot-auto-character
AH bot card: no character GUID needed
2026-10-07 06:53:31 +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
ДмитрийandClaude Sonnet 5.5 bbdad37e40 NPC Enchanter card: hint how to place and remove the NPC
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 15:40:23 +05:00
ДмитрийandClaude Sonnet 5.5 0ed4d5e268 AH bot card: shorter buyer hint
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:49:20 +05:00
ДмитрийandClaude Sonnet 5.5 b13ee55bb9 AH bot card: the buyer does not spend gold
The module never deducts money from the auction character when it bids or buys, so the hint no longer says the character needs gold.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:41:42 +05:00
ДмитрийandClaude Sonnet 5.5 51a45db8cb AH bot card: no GUID needed, the server creates its own auction character
The GUID setting moves to the advanced list and the card text and the seller hint no longer ask for a character.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:35:32 +05:00
Дмитрий 0d6d8a0db8 Harden server update history, recovery guards and repeated checks 2026-10-06 07:01:13 +05:00
Дмитрий 654b7cddd3 Keep SQUID settings usable with unknown metadata and preserve translations 2026-10-05 18:09:36 +05:00
Дмитрий f8301d7394 Read SQUID release settings and protect imported repack binaries 2026-10-05 16:56:46 +05:00
Дмитрий 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