19 Commits
Author SHA1 Message Date
Дмитрий f4e36f21eb Merge remote-tracking branch 'origin/master' into codex/reliable-server-updates 2026-10-05 02:31:00 +05:00
Дмитрий 65c9945626 Validate release databases and require full schema contracts 2026-10-05 01:56:36 +05:00
Corfirean f13398bbd7 Merge pull request #13 from lostmind84/feat/linux-b2-container-db
feat: database access through the container for Docker installations
2026-10-05 01:45:07 +05:00
Дмитрий 3edc600f97 Recover database and file updates together after failures 2026-10-04 23:55:15 +05:00
Дмитрий 146b1c50b9 Release Manager 0.6.1 and preserve Docker lifecycle compatibility 2026-10-04 15:43:29 +05:00
Дмитрий c02c635463 Fix settings input, client launch, server repair and simultaneous realms 2026-10-04 15:40:06 +05:00
Fabien F. 58b5ddeb07 feat: database access through the container for Docker installations
Db runs mysql, mysqldump and mysqladmin inside the database container with
docker exec -i when the server folder is a Docker installation, connecting over
TCP on the container's loopback like the repack's commands do on the host. The
password still travels only in MYSQL_PWD. Every caller keeps using Db unchanged
(accounts, backups, population, migrations, the RA service account), and the
host needs no MySQL client. The repack path is untouched: one line before its
tools are looked up. A stopped container or a missing one is reported as a
database that is not running.

Tested: 4 new tests (commands built for the container, no password on a command
line, repack unchanged, error classification), and a real run against the
Docker folder: SQL queries, a quick backup (156 characters tables), restore with
the previous database kept, a damaged backup refused, the RA service account
created by SQL, the world server console reached through its published
loopback port, an account created through it and listed by the Manager.
2026-10-03 21:21:26 +02: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
Дмитрий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 7d447b490f README: feature overview and screenshots
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 07:41:22 +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 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 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 f620f87432 v0.1.1: language picker on welcome screen, friendly errors for unpublished package / unreachable server, backlog notes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 12:27:21 +05:00
Дмитрий ed986383a2 docs: record the multilingual UI requirement (EN/RU/DE/FR/ES) in the backlog; drift detection ignores repeated keys 2026-09-30 10:42:23 +05:00
Дмитрий 157ba3e743 docs: record fork decision and the audited patch series 2026-09-30 08:51:13 +05:00
ДмитрийandClaude Sonnet 5.5 19024a3162 Signing: Ed25519 detached manifest signatures, release key, keygen/sign/verify tools; record owner decisions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 07:24:47 +05:00
ДмитрийandClaude Sonnet 5.5 c39ff556a3 Phase 0/1a: architecture audit and coa-core foundation (fsx, registry, manifest, logging, errors)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 06:59:11 +05:00