diff options
Diffstat (limited to 'building_guide')
| -rw-r--r-- | building_guide/admin.md | 15 | ||||
| -rw-r--r-- | building_guide/concurrency.md | 14 |
2 files changed, 21 insertions, 8 deletions
diff --git a/building_guide/admin.md b/building_guide/admin.md index 9805ef7..01a2188 100644 --- a/building_guide/admin.md +++ b/building_guide/admin.md @@ -238,9 +238,13 @@ the game server and is configured in `config.yaml` under `admin_http` (plain HTT 1. Ensure your account YAML has `admin: true` (same as in-game admin). 2. Configure the admin server in `config.yaml`: ```yaml - admin_http: ":8080" # listens on port 8080, HTTP + admin_http: + enabled: true + port: 8080 # listens on port 8080, HTTP # or for HTTPS: - admin_https: ":8443" + admin_https: + enabled: true + port: 8443 ``` 3. Start the game server. The admin panel is available at `http://<host>:8080` (or `https://<host>:8443`). 4. Log in with your account name and password (same credentials as in-game). @@ -258,10 +262,11 @@ the game server and is configured in `config.yaml` under `admin_http` (plain HTT | Techs | `/editor/techs` | CRUD for technology definitions (buffs, drain rates, categories). | | Courses | `/editor/courses` | CRUD for agility courses (obstacle sequences, XP, fail damage). | | Modules | `/editor/modules` | CRUD for science modules (combat/utility/transport/enchant/processing). | -| Players | `/editor/players` | Browse character YAML files and view player state. | -| Flags | `/editor/flags` | View and edit global flags in real time. | +| Players | `/editor/characters` | Browse character YAML files and view player state. | +| Triggers | `/editor/triggers` | CRUD for trigger definitions. | +| Dashboard | `/editor/dashboard` | Server and world overview. | | Files | `/editor/files` | Raw file tree browser for all YAML files under `data/`. | -| Colors | `/colors` | Visual themer for every color the engine renders, split into **Player Colors** and **Constants** sections. Live preview on the right re-renders as you edit. Undo via "Reset all to defaults". | +| Colors | `/editor/colors` | Visual themer for every color the engine renders, split into **Player Colors** and **Constants** sections. Live preview on the right re-renders as you edit. Undo via "Reset all to defaults". | All CRUD editors support undo/redo (persisted to `data/.admin_history.json`), so changes can be reverted even across sessions. diff --git a/building_guide/concurrency.md b/building_guide/concurrency.md index a30e1a6..74bbdc7 100644 --- a/building_guide/concurrency.md +++ b/building_guide/concurrency.md @@ -22,8 +22,13 @@ Rules: - A FULL task queue applies backpressure: submitters block until the owner drains a task, and a full queue never bypasses the owner — running a task on the caller's goroutine while the owner keeps executing would break the - single-owner invariant. Only a STOPPED owner (graceful shutdown, after - admissions have closed) lets stragglers execute inline. + single-owner invariant. A STOPPED owner (graceful shutdown, after + admissions have closed) refuses the task and drops it rather than running + it on the caller's goroutine: `RunOnOwner` returns without executing the + closure, because running it there would mutate live state concurrently + with the shutdown sequence and after the final-save barrier. (Synthetic + tests that construct a Game without an owner run tasks inline on the + caller.) - Code already running on the owner must NOT call `Game.RunOnOwner` — it would deadlock waiting for itself. Owner-executed code calls functions directly. @@ -171,7 +176,10 @@ At startup (`game.New`), open records are compensated in two phases: pre-payout balance → re-apply (the player is owed it); at the post-payout balance → already durable, settle; anything else stays open and is surfaced for operator inspection — a liability is never silently - dropped. + dropped. Payouts written by current code are **Tracked**: the record ID + is stored in the character file's `open_payouts` evidence list, and + recovery proves durability from that evidence rather than from the + balance checkpoints (which remain only as a legacy fallback). 2. Open **wager** records (newest first, so each refund restores the balance the previous record's checkpoints refer to): file at the pre-debit state (credits AND chips) → void (nothing was charged); at |
