43 Commits
Author SHA1 Message Date
Дмитрий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
Дмитрий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
ДмитрийandClaude Sonnet 5.5 68050882b8 UI: translate settings editor; add tools/check-i18n.mjs; mock accepts event listeners
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:58:43 +05:00
ДмитрийandClaude Sonnet 5.5 fc7277e250 UI: translate server update card
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:56:23 +05:00
ДмитрийandClaude Sonnet 5.5 6ae1fccba8 UI: translate Console page
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:55:33 +05:00
ДмитрийandClaude Sonnet 5.5 3039906411 UI: translate Play with Friends page
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:55:08 +05:00
ДмитрийandClaude Sonnet 5.5 b5bfeb20e7 UI: translate Backups page
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:54:18 +05:00
ДмитрийandClaude Sonnet 5.5 0b975a7c42 UI: translate Diagnostics and About cards
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:53:28 +05:00
ДмитрийandClaude Sonnet 5.5 488a1a45c6 UI: translate Players, Companions, Client cards
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:52:50 +05:00
ДмитрийandClaude Sonnet 5.5 9dee0ce8b1 UI: translate Import and Install screens
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:51:51 +05:00
ДмитрийandClaude Sonnet 5.5 0a9be3d800 UI: i18n foundation (en/ru/de/fr/es), language picker, Shell/Welcome/Overview translated
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 11:33:09 +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
Дмитрий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
ДмитрийandClaude Sonnet 5.5 981ee4d4d9 Phase 6c: update commands and Settings > Server updates UI (preview, conflicts, progress, rollback)
Verified in the native window on the fixture: modified file kept by choice, new file added,
server restarted healthy, version bumped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 09:30:49 +05:00
ДмитрийandClaude Sonnet 5.5 e17c757d11 Phase 5: clean install (signed packages, split tar.zst, resumable verified downloads, staging + atomic commit, DB credential rotation), RA account creation, Install and Players UI
Verified: fixture packaged 2.2 GB -> 327 MB, installed in 18 s with rotated DB
credentials via the native UI; hostile archives, bad signatures and interrupted
downloads are rejected/resumed in tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 08:26:11 +05:00
ДмитрийandClaude Sonnet 5.5 217eec338a Phase 4: recovery points, zstd DB dumps, restore via staging schema + atomic table swap, Backups UI
Verified on fixture MySQL: backup, restore (previous schema kept), damaged
backup refused; live install untouched.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 07:40:01 +05:00
ДмитрийandClaude Sonnet 5.5 5b5255cca8 Phase 3: config engine (line-preserving parser, schemas, validation, atomic save, snapshots, merge, presets) and Bots/Server settings UI
Verified: 28 real config files round-trip byte-identical; native UI edit changes
exactly one line in template and generated conf; snapshot restore is byte-exact.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 07:33:54 +05:00
ДмитрийandClaude Sonnet 5.5 2e8803a067 Phase 1/2: Tauri shell, React UI (welcome, read-only import, overview with start/stop), e2e driver
Verified in the native window against a disposable fixture: import writes only
<folder>.manager + registry; start surfaces a human 'database update required'
message; stop returns to Offline. Live install untouched throughout.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 07:13:59 +05:00