Commit Graph
130 Commits
Author SHA1 Message Date
ДмитрийandClaude Sonnet 5.5 adefa84885 docs: record approved Portable Characters decisions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 07:13:25 +05:00
ДмитрийandClaude Sonnet 5.5 efd4b8bbf2 feat(portable): local canonical storage for portable characters (Phase 1)
Adds crates/coa-core/src/portable: UUIDv7 identities, namespaced content ids,
the v1 portable character model (validated, bounded, canonical), compressed
hashed snapshots, a union-only collection set, and a SQLite (WAL) store with
revisions, stale-revision rejection, rollback-as-new-revision, configurable
history, realm/item mappings and forward-only migrations.

No realm database, network or UI is touched; no existing behaviour changes.
45 new tests. Format documented in docs/PORTABLE_FORMAT.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 07:13:14 +05:00
ДмитрийandClaude Sonnet 5.5 9e84763f14 docs: Portable Characters Phase 0 audit and Phase 1 plan
Audit of the real characters schema (163 tables), save/load paths, CoA-specific
state (character_settings, wardrobe/vanity collections), id domains to remap,
running-realm hazards, Manager integration points, risks and open decisions.
Includes the exact proposed plan for Phase 1 (local canonical storage).
No production code.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:40:50 +05:00
ДмитрийandClaude Sonnet 5.5 0527e045ba docs: VPS infrastructure baseline (Phase -1)
Record how the OVHcloud VPS used for the future registry/relay was set up:
hardening, firewall policy, Docker layout, health check, recovery path.
No IP addresses, keys or credentials are stored.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:40:50 +05:00
Corfirean cd3a963f70 Merge pull request #21 from Corfirean/codex/fix-update-startup
Release Manager 0.6.4: fix server startup and resume failed validation
2026-10-05 14:07:36 +05:00
Дмитрий 6c771fae20 feat: allow launching installed server and client without updates v0.6.4 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
Corfirean 07ec22798f Merge pull request #19 from Corfirean/codex/release-all-pending
Release client-only connections and scaling controls in Manager 0.6.3
v0.6.3
2026-10-05 03:26:16 +05:00
Дмитрий 5d865fcaea Prepare Manager 0.6.3 with remote clients and scaling settings 2026-10-05 03:15:05 +05:00
Дмитрий a67d51804b Expose partial LFG and open-world leech module settings 2026-10-05 03:09:02 +05:00
Дмитрий 7c096a4844 Merge remote-tracking branch 'origin/codex/client-only-mode' into codex/release-all-pending 2026-10-05 03:09:02 +05:00
Corfirean b90b377fc3 Merge pull request #17 from Corfirean/codex/reliable-server-updates
Recover failed updates and validate release database schemas
v0.6.2
2026-10-05 02:38:57 +05:00
Дмитрий a02130f587 Prepare Manager 0.6.2 release 2026-10-05 02:31:56 +05:00
Дмитрий 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
Дмитрий f05f94ba01 Document standalone client connections 2026-10-05 01:24:01 +05:00
Дмитрий c39a7a0ac7 Let players download and update clients without a local server 2026-10-05 01:23:31 +05:00
Дмитрий e8367354ef Record update stages and migration results for support diagnosis 2026-10-05 00:14:15 +05:00
Дмитрий 461fa035d0 Validate race-class starts and protect existing character visibility 2026-10-04 23:58:51 +05:00
Дмитрий 3edc600f97 Recover database and file updates together after failures 2026-10-04 23:55:15 +05:00
Дмитрий c3d87e1ff2 Keep bot settings release note within changelog limit 2026-10-04 20:40:54 +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
Дмитрий 2e3fb24e1a Run release socket tests without parallel timing contention v0.6.1 2026-10-04 15:43:50 +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
Дмитрий 162bfd1e04 Release Manager 0.6.0 with Chinese localization, realm sync and Linux preview v0.6.0 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
Дмитрий 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
Дмитрий beb3b03010 Merge branch 'review/pr4' 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
v0.5.0
2026-10-03 11:12:04 +05:00
Дмитрий e7113f3ceb Test the content-scaling master switch against the bundled catalog 2026-10-03 07:24:21 +05:00
CorfireanandClaude Sonnet 5.5 831685dbd7 Changelog fragments (changelog.d) and the shared rules for people and AIs
Rules and format: https://github.com/Corfirean/coa-server-build/blob/main/changelog/GUIDE.md

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 07:05:52 +05:00
CorfireanandClaude Sonnet 5.5 50b48e8af5 Changelog fragments (changelog.d) and the shared rules for people and AIs
Rules and format: https://github.com/Corfirean/coa-server-build/blob/main/changelog/GUIDE.md

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 07:05:07 +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
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 dffb4811aa fix(update): add the new module config keys before the update's check start
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 21:45:56 +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
Fabien F. d638bf3304 fix: snapshot ids, file modes and path case on Linux
- config snapshots: two snapshots of the same scope in the same millisecond
  shared one folder. A restore snapshots the current state just before reading
  the snapshot it restores, so on a fast disk the snapshot being restored was
  overwritten with the current files and the restore did nothing. Each snapshot
  now gets its own folder (numeric suffix when the name is taken). This was the
  intermittent failure of snapshot_restore_roundtrip_is_byte_exact_and_undoable.
- package extract: restore the execute bit on ELF binaries and #! scripts (the
  archive carries no modes). No effect on Windows.
- fsx::starts_with_ci: case-insensitive on Windows only; /srv/CoA and /srv/coa
  are different folders on Linux.
- registry test: use a root path that is a root on the running OS.

cargo test --workspace on Linux: 157 passed, 0 failed.
2026-10-02 18:40:07 +02: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>
v0.4.0
2026-10-02 21:32:43 +05:00
CorfireanandClaude Sonnet 5.5 cc5363b385 Release 0.4.0: modules page, one settings panel, collections, account delete, bot economy switches
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 20:41:25 +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