Files
corrosion-admin-panel/docs/reference-repos/adainrivers/release-notes/0.3.12.md
Vantz Stockwell 651a35d4be
All checks were successful
CI / backend-types (push) Successful in 10s
CI / frontend-build (push) Successful in 15s
CI / agent-tests (push) Successful in 39s
CI / integration (push) Successful in 22s
docs(reference): import Dune: Awakening server-manager references
Phase 2 references for the host-agent Dune adapter, moved out of volatile /tmp
into docs/reference-repos/ (per Commander). Three upstream projects, .git +
node_modules + compiled binaries stripped (16MB source). Nested AI-instruction
files (.claude/, CLAUDE.md) removed so they don't pollute Corrosion sessions.

- icehunter/    dune-admin (Go+React) — 4 control planes; SETUP_DOCKER.md is the
                closest analog to our agent's Dune docker control plane (compose
                lifecycle, docker logs, RabbitMQ-via-exec, dune Postgres schema)
- adainrivers/  Rust/Tauri desktop — SSH+k8s BattleGroup control, maintenance
                daemon, in-game admin console (Rust idiom reference)
- the4rchangel/ Node web UI replacing battlegroup.bat — matches the Commander's
                Hyper-V self-host path + game-config schema

See docs/reference-repos/README.md for the full index + how we use each.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 21:08:05 -04:00

5.2 KiB

0.3.12

First release of the Welcome Package automation: a per-player onboarding flow that runs on the on-host management service, detects new players from the game Postgres database, inserts configured backpack items directly into the game database, and can send a separate welcome whisper through the existing MQ chat path. Includes a Visual + JSON editor in the desktop app, a SQLite-backed package ledger, and several follow-up fixes from internal review.

This is the first tagged release since v0.3.9. All 0.3.10 / 0.3.11 / 0.3.12 work ships together.

Reinstall step

After updating the desktop app, open each server's Management Service card and click Install / Update so the refreshed on-host dune-server-service binary is pushed. The Welcome Package tab will not function until the host service is at v0.3.12.

Added

  • Welcome Package tab in the management view, with separate toggles for the welcome message (whisper) and the item package.
  • Package contents editor for item rows. Each row inserts the configured itemName (Unreal FName / row name) and quantity into the player's backpack; durability defaults to 1.0.
  • Optional raw JSON mode on the package contents editor. Toggle the checkbox to swap the visual editor for a textarea you can paste / hand-edit, so a long package can be saved and restored without re-clicking every row. Switching back to the visual editor parses and validates first; an invalid textarea keeps you in JSON mode with an inline error so a typo cannot silently drop items.
  • Welcome whisper support: configurable source player, message body, and a separate "Send test whisper" button that works even when the automated welcome message is disabled. Whispers publish on chat.whispers using the live-tested player-sourced shape.
  • Single transaction item grants: all configured item rows are inserted into the player's backpack in one Postgres transaction. The package ledger is marked granted only after that transaction commits.
  • Full water-container grants: known fillable containers such as Literjon and Decajon include embedded fillable stats for a full water container.
  • Recent welcome grants table in the Welcome Package tab, backed by the daemon ledger. Failed rows show the error and a Retry button that clears the failed record so the next scan re-attempts the grant; granted rows are never cleared, so a retry can't duplicate a package.
  • Manual welcome scan button in the Automated Tasks tab so a test pass does not have to wait for the next poll interval.
  • scripts/rebuild-release.cmd helper for local release rebuilds: workspace tests, frontend build, musl service cross-compile, bundled binary copy, and Tauri NSIS in one shot.

Fixed

  • welcome_package_items_json (legacy alias) no longer clobbers welcome_package_actions_json when both are sent in the same PATCH /api/config request. The legacy field is only applied when the canonical field is absent.
  • welcome_package_version mismatches now return 400 "currently fixed to v1 and cannot be changed" instead of accepting the value and silently dropping it. Echoing the same v1 value remains a no-op so the existing UI save flow still works.
  • Removed the old MQ item-grant path, planned item ids, water-refill actions, and empty-backpack wait. Item packages now wait only for the player's backpack inventory row to exist.
  • Dropped the inline 30-second wait_for_item_quantity poll inside process_grant_item. The direct DB transaction is the confirmation point, and missing backpacks do not create ledger rows until a later scan finds the backpack.
  • Welcome automation no longer waits for the game DB online_status flag before running. Item grants are DB-backed, and welcome whispers are attempted from the configured chat identity without an online-grace gate.

Changed

  • Renamed the welcome automation toggles to "new players" in the UI so the wording matches the worker's actual scope.
  • Split welcome message automation from welcome package grants so each can be enabled independently. Sending a manual test welcome whisper no longer overwrites unsaved tab state.
  • The welcome whisper now runs on its own worker at a 60-second cadence instead of riding the 2-second package scan. A cheap local check skips accounts whose whisper is already confirmed before any Postgres chat lookup, so the fast item-grant loop no longer pays for a per-account chat query every tick.

Notes

  • Welcome Package timing on a fresh player: the service scans every 2 seconds while welcome automation is enabled. Once the service sees the account and its backpack inventory row exists, item insertion can happen on that scan.
  • The package ledger is keyed by (player_id, package_version, account_id). Recreating a character under the same FLS id creates a new account_id, so the welcome package can be granted again to the new character. Editing the item list while keeping the same welcome_package_version will not re-grant rows already marked granted for that account. The welcome_package_version field is currently pinned to v1 server-side; "re-grant everyone" via a version bump is not yet wired up.
  • This experiment only grants backpack items. Progression unlocks should stay out of direct DB writes until the game-owned tables and side effects are fully mapped.