94 lines
5.4 KiB
Markdown
94 lines
5.4 KiB
Markdown
# Agent changelog
|
|
|
|
## 2026-10-15
|
|
|
|
### 1.11.0 — Private player moderation configuration
|
|
|
|
- Advertise `moderation.configure` and accept separate generation-bound game
|
|
credentials through private create/rebuild configuration or the typed
|
|
`instance.configure-moderation` operation. Existing servers preserve startup
|
|
through a fixed include in their verified private bank configuration; servers
|
|
without a verified bootstrap require rebuilding.
|
|
- Keep moderation credentials out of file reads, logs, manifests, staged changes,
|
|
shared recipes and operation receipts. Configure loads only the fixed private
|
|
file, never restarts gameplay, and does not replay RCON after an unknown result.
|
|
- Controller coverage remains unavailable until the game moderation runtime
|
|
connects and reports its capabilities. Older agents retain normal launches.
|
|
- Package release artifacts for offline signing before publication; do not
|
|
publish unsigned artifacts.
|
|
|
|
## 2026-10-14
|
|
|
|
### 1.10.1 — Retain verified rebuild artifacts (EC #154)
|
|
|
|
- Retain the complete verified replacement file set before stopping the current
|
|
container, including inline files and private bank configuration, within the
|
|
existing 64 MiB operation limit. Staged-file comparison, replacement validation
|
|
and writing reuse those bytes without further artifact downloads.
|
|
- Keep prepared bytes local to the operation. Failed and held attempts discard
|
|
their files; later operations prepare a fresh set. Immutable specifications,
|
|
journal requests and container identity labels remain unchanged.
|
|
- Preserve checksum, path, per-file size, player-safety, bank-settlement and
|
|
generation checks. Add regressions for preflight failures, lost connectivity
|
|
after preflight, file-set limits and operation isolation.
|
|
- Package release artifacts for offline signing before publication. No protocol
|
|
change or controller migration is required.
|
|
|
|
## 2026-10-13
|
|
|
|
### 1.10.0 — Host temperature telemetry
|
|
|
|
- Read supported Linux hwmon CPU package/core, AMD physical die/CCD, NVMe and
|
|
Intel PCH temperatures with the Python standard library. Sensor failures,
|
|
faults and disabled inputs are skipped independently; unsupported hosts report
|
|
an empty list. AMD Tctl control offsets are excluded from physical readings.
|
|
- Include labeled, bounded sensors in heartbeats with the `host.temperatures`
|
|
capability. Physical device/channel identities survive hwmon renumbering.
|
|
- The controller shows current CPU readings and expandable sensor details, and
|
|
adds temperature history to Capacity. Fleet history has one CPU line per host;
|
|
individual hosts can add NVMe composite and chipset lines. History retains
|
|
minute peaks using the host-resource retention setting; missing data stays
|
|
unavailable and no thermal alerts or placement rules are introduced.
|
|
- Adds database migration 23. Existing agents remain compatible. Release
|
|
artifacts are packaged and the stale signature is removed. Offline signing
|
|
and host rollout are still required; neither was performed here.
|
|
|
|
## 2026-10-12
|
|
|
|
### 1.9.3 — Protect private bank configuration (EC #152)
|
|
|
|
- Exclude the generated bank config from file manifests and reject file reads,
|
|
staged changes, stale activations, rollback snapshots and log reads targeting
|
|
it. Creation and rebuilding still inject the private instance credential.
|
|
- Package and offline-sign this release, then update agents before resuming
|
|
drift recovery. Old private-file stages fail safely and require a fresh plan.
|
|
|
|
### 1.9.1 — Public game-bank endpoint
|
|
|
|
- Companion to [TWS scripts #13](https://gitea.thewrightserver.net/josh/tws-zombies-scripts/issues/13).
|
|
In `agent/ec_agent.py`, stop generating `tws_bank_url` in
|
|
`electric_cherry_bank.cfg`; continue injecting the private per-instance token.
|
|
Launch configuration still supplies `tws_server_id`. The host's enrolled
|
|
controller address and authentication remain unchanged.
|
|
- Recognize journals for `https://ec.thewrightserver.net/api/bank` and the legacy
|
|
bank URL derived from the enrolled controller. Reject other URLs and preserve
|
|
unresolved storage. Settlement still goes only through the enrolled controller's
|
|
authenticated, operation- and instance-scoped API. Original transaction IDs and
|
|
commit/cancel decisions are preserved across lost replies and retries.
|
|
- Compatibility: pair with T5/T6 bank scripts `2.0.0` and existing TWS plugins
|
|
`1.1.0+`. No new Python dependency, controller migration or protocol change.
|
|
Old scripts still fall back to the public endpoint when the dvar is absent.
|
|
- Deployment: package and offline-sign the release, update/restart host agents,
|
|
then rebuild through EC when a server's bank endpoint changes. Rebuild stops
|
|
the game and drains old decisions before starting the replacement or deleting
|
|
storage. An endpoint that already matches needs only a map restart for the
|
|
script update. Follow the [bank rollout procedure](../docs/guides/bank.md#upgrading-from-a-controller-derived-game-endpoint).
|
|
Packaging refreshes `static/agent/ec-agent.py` and `manifest.json` and removes
|
|
the old signature; a new offline signature is required before publishing.
|
|
No signing or deployment was performed.
|
|
- Regression coverage in `agent/tests/test_agent.py`: generated credentials,
|
|
public and legacy journals for both games, rebuild/removal, lost replies,
|
|
agent restart, unchanged identities and rejection of untrusted endpoints.
|
|
Live Windows/Plutonium endpoint migration and signed host rollout remain to
|
|
be validated.
|