WARGRID LEGEND. BIRTHDAY HUMAN.

Happy birthday
toooo you, Chris!

Another year older. Still chasing that perfect run.

No respawns for the cake. Grab a slice before the team does.

Don't be a noob. Celebrate Chrishan! →

WARGRID / RELEASE NOTES

Changelog

WARGRID’s documented history: features, improvements and fixes.

121 / 121 releases
Release index · 121

121 documented releases from v42 onwards. Dates require documentary evidence; missing dates and releases are not invented. A package entry does not confirm a production deployment.

v149Latest package

Homepage header trailer

Subtle video with a smaller mobile edition and image fallback.

# Direct linkDate source: CHANGELOG_V149_HEADER_TRAILER.md

Added

  • Optimized local muted trailer with pause/play.
  • Admin switch for header playback.

Improved & fixed

  • Pauses offscreen; uses a still image for reduced motion or data saving.
  • Streamed video responses with byte ranges and correct media types.

Notes

  • Existing content, colors and War features are preserved.
  • No new migration or EvoSC update.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V149_HEADER_TRAILER.md

# WARGRID v149 — Dezenter Trailer im Header — 25.10.2026 Deutsch: - Der bereitgestellte WARGRID-V3-Action-Trailer wird als optimierte Hintergrundfassung im Startseiten-Header eingebunden. Quelle unverändert; für den Hintergrund 30 Sekunden ab Sekunde 1, ohne den grellen Anfang und den schwarzen Schluss. - Lokale H.264-MP4s ohne Audiospur: Desktop 1280×720/24fps, 4.605.929 Bytes; Mobil 768×432/24fps, 1.922.988 Bytes. Beide mit vorangestellten MP4-Metadaten für schnellen Start. - Dunkle Verläufe und gedämpfte Farben halten Überschrift und Aktionen lesbar. Keine Änderung der bestehenden Website-Farbpalette oder des Competition-Bereichs. - Pause/Play-Taste mit Tastaturfokus; Pause gilt für den aktuellen Browser-Tab. Video pausiert außerhalb des sichtbaren Headers und bei ausgeblendeter Seite. - Reduzierte Bewegung, Save-Data und bekannte langsame Verbindungen verwenden nur das bestehende Headerbild. Video startet erst nach kurzer Verzögerung und nur bei geeignetem Gerät/Verbindungszustand. - Blockiertes Autoplay und Medienfehler lassen das Bild sichtbar. Das Video ist dekorativ und beeinflusst keine Anmeldung, Draft-, War- oder Ergebnisdaten. - Admin / Website content / Homepage: Trailer ein-/ausschalten; bestehendes Headerbild bleibt konfigurierbarer Rückfall. - Node-Auslieferung für MP4/WebM streamt statt die gesamte Datei in den Speicher zu laden; korrekte Video-MIME-Typen, Byte-Ranges, HEAD und Cache-Validatoren. - Kumulativ einschließlich v148/WarManager 0.18.2 und v147-Draft-Übung. Keine neue Datenmigration oder EvoSC-Moduländerung. English: - Optimized local background edition of the supplied WARGRID V3 trailer in the homepage header: 30 seconds starting at second 1, no audio, trimmed bright opening/black ending. - Desktop 1280×720/24fps (4.6 MB) and mobile 768×432/24fps (1.9 MB), fast-start H.264 MP4. - Muted color treatment, dark overlays, keyboard-accessible pause/play and per-tab pause preference. - Offscreen/hidden playback pauses. Reduced motion, data saving and known slow connections keep the existing image without loading the video. - Existing CMS image remains the fallback for disabled video, blocked autoplay or playback failures. Admin can switch the trailer off. - Static video responses stream single byte ranges with proper media types, HEAD and caching validators. - Includes all preceding release features. No new database migration or EvoSC module update.
v148

Closing the profile stays closed

No automatic War window after closing /profile.

# Direct linkDate source: CHANGELOG_V148_PROFILE_WINDOW_LIFECYCLE.md

Improved & fixed

  • Hidden windows leave periodic refresh tracking.
  • Consistent unsaved-change confirmation and ignored stale profile actions.
  • Independent War/player close tracking and reconnect cleanup.

Notes

  • Install WarManager 0.18.2 and restart EvoSC.
  • Locally tested with real PHP overlay classes; native in-game verification remains outstanding.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V148_PROFILE_WINDOW_LIFECYCLE.md

# WARGRID v148 — Profilfenster schließen — 23.10.2026 Deutsch: - WarManager 0.18.2: Das Schließen von /profile öffnet /war nicht mehr automatisch. - Profilöffnung schließt War-/Spieler- und Adminfenster über deren Zustandsverwaltung, statt nur das Bild zu verstecken. Timer-, Rekord- und Punkteupdates können die verdeckten Fenster nicht wieder öffnen. - X und Cancel laufen durch dieselbe Prüfung auf ungespeicherte Änderungen. Controller-Zurück führt aus der Verwerfen-Abfrage zurück zur Bearbeitung. - Verspätete Save-, Back-, Farb-, Reset- oder Weiterbearbeiten-Aktionen eines bereits geschlossenen/verdeckten Profils werden ignoriert. - Ein ausdrücklich geöffnetes War-, Spieler- oder Adminfenster ersetzt das Profil. Bereits erfasste Namensentwürfe bleiben beim Wechsel erhalten; Verwerfen löscht sie. - Ein verspätetes Schließen des Spielerfensters entfernt nicht mehr die Refresh-Anmeldung des aktuellen War-Fensters und umgekehrt. - Profilzustand wird bei Disconnect bereinigt; Reconnect räumt alte Fensterzustände auf. Mehrere Spieler werden getrennt behandelt. - Kumulatives Websitepaket einschließlich Draft-Übungsraum v147 und Map-Paging v146. Keine Datenmigration. WarApiBridge unverändert 0.3.0. - Lokal mit echten PHP-Overlay-Klassen und In-Memory-Framework-Adaptern geprüft; keine Behauptung eines live getesteten Trackmania-Clients oder allgemeiner Fehlerfreiheit. English: - WarManager 0.18.2 stops opening /war automatically when /profile is closed. - Opening the profile unregisters hidden War/player/admin windows from periodic refresh, preventing timer/record updates from resurrecting them. - X and Cancel share unsaved-change confirmation. Controller Back leaves the confirmation and resumes editing. - Late profile actions are ignored after the window closes or is replaced. Explicitly opening another panel hides the profile; captured previews remain available until discarded. - Stale close events cannot unregister the other currently displayed War/player panel. Disconnect/reconnect clears stale profile/window state per player. - Cumulative release including v147 draft practice and v146 map pagination. No migration. WarApiBridge remains 0.3.0. Install WarManager 0.18.2 and restart EvoSC. - Local PHP integration fixtures use the real overlay classes with in-memory framework adapters; actual in-game rendering/controller input still require verification.
v147

Try the captain draft safely

Local development practice using the real draft interface.

# Direct linkDate source: CHANGELOG_V147_DRAFT_PRACTICE.md

Added

  • Switch organizer, both captains and spectator in one window.
  • 2–30 sample players, alternating picks, animation and lineup confirmation.

Improved & fixed

  • Production and practice share pick validation.

Notes

  • Sample data only; no Discord notices or server actions.
  • Real multi-account login and synchronization require a separate integration test.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V147_DRAFT_PRACTICE.md

# WARGRID v147 — Draft-Übungsraum — 23.10.2026 Deutsch: - /dev-tools auf dev.wargrid.de und lokalen Testhosts: Übungsdraft mit 2, 8, 15 oder 30 Beispielspielern. - Gleiche Draft-Raum-Oberfläche, Spieleranimation, Suche, Teamlisten, Pick-Verlauf und Organizer-Steuerung wie beim echten Draft. - Zwischen Organizer, Captain A, Captain B und Zuschauer wechseln. Nur der Captain am Zug darf wählen. Beide Captain-Konten bestätigen, ersten Pick wählen, starten, pausieren, fortsetzen und fertige Teams sperren. - Die eigentliche Pick-Validierung wird unverändert als gemeinsame Funktion vom echten Backend und vom Übungsmodell benutzt. Serverseitige Kontoprüfung, Roster-Prüfung, Versionsschutz und Speicherung des echten Drafts bleiben bestehen. - Übungsdaten existieren nur im aktuellen Fenster. Neuladen oder Neustart verwirft sie. Keine echten Event-/Account-Anlagen, API-Schreibvorgänge, Discord-Nachrichten oder Serverübertragungen. - Link „Draft testen“ im Dev-Admin-Menü und im manuellen Draft-Bereich. Auf der Produktionsdomain ist der Test ausgeblendet; direkte Aufrufe zeigen einen Hinweis. - Der Test demonstriert die Bedienung. Zwei echte Konten, mehrere Browser, Datenbankkonflikte und EvoSC-Übernahme sind gesonderte Integrationstests, keine behauptete Eigenschaft des lokalen Übungsraums. - Kumulativ einschließlich v146 mit WarManager 0.18.1. Für den Übungsraum keine neue Datenbankmigration und kein zusätzliches EvoSC-Update. English: - /dev-tools on dev.wargrid.de and loopback hosts provides a local practice draft with 2, 8, 15 or 30 sample players. - Reuses the real draft room, player animation, search, teams, pick history and organizer controls. - Switch between organizer, both captains and spectator. Confirm captains, choose the first side, start, alternate picks, pause/resume and lock completed teams. - Production and practice share the actual pick-validation function. Real backend account/roster/revision checks and database persistence remain in place. - Practice state stays in the current window and resets on reload. No real event/account creation, draft API writes, Discord notices or server deployment. - Development links are available in admin navigation and manual draft controls. Production host hides the tool. - This demonstrates the interaction flow; it does not simulate real multi-account login, cross-browser synchronization, database contention or EvoSC handoff.
v146

Every map reachable in EvoSC admin

Independent pool/library pagination with safe row actions.

# Direct linkDate source: CHANGELOG_V146_MAP_POOL_PAGINATION.md

Added

  • PREV/NEXT controls and page counts for selected maps.

Improved & fixed

  • Rendered map UID stays authoritative after reordering.
  • Added maps open the last page; empty final pages clamp automatically.
  • Stale actions after a War switch are rejected; periodic redraw preserves UID input.

Notes

  • Install WarManager 0.18.1 and restart EvoSC.
  • Locally verified; Trackmania client visual check remains outstanding.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V146_MAP_POOL_PAGINATION.md

# WARGRID v146 — EvoSC Map-Verwaltung — 23.10.2026 Deutsch: - WarManager 0.18.1: Ausgewählte Maps sind vollständig über PREV/NEXT durchblätterbar, sieben pro Seite. Die Serverbibliothek hat unabhängig davon acht Maps pro Seite. - Durchgehende Nummerierung, Seitenanzeige, deaktivierte Randnavigation und verständliche Leerzustände. - Neu hinzugefügte Maps öffnen die letzte Poolseite. Entfernen der letzten Map einer Seite korrigiert die Seitennummer automatisch. - Entfernen verwendet die angezeigte Map-UID statt einer abweichenden Sortierung nach Datenbank-ID. Änderungen der Reihenfolge oder der Serverbibliothek lenken Zeilenaktionen nicht auf eine andere Map um. - Ungültige Zeilen, verschwundene Maps und alte Klicks auf einen inzwischen gewechselten War werden abgewiesen. - Gleichnamige Servermaps werden zusätzlich nach UID sortiert; Seitenauswahl gilt pro Admin. Schließen und Trennen räumen den Zustand auf. - Periodisches Neuzeichnen überspringt das Mapformular: UID-Eingaben und angezeigte Zeilen bleiben erhalten. Seitenwechsel und Änderungen laden die Liste neu. - Die Anzeige bevorzugt einen aktuellen War vor einem neueren abgeschlossenen Datensatz. Die Sperre des gestarteten Map-Pools bleibt wirksam; Blättern bleibt erlaubt. - Kumulatives Websitepaket einschließlich aller vorhandenen v145-Dateien, aktualisierter Moduldownloads, Node-Installer-Assets und Changelog. - Keine Datenmigration notwendig. Kein automatischer Produktions-Rollout. Das laufende EvoSC braucht das Modulupdate und einen Controller-Neustart. English: - WarManager 0.18.1 adds independent PREV/NEXT pagination: seven selected maps and eight library maps per page, continuous numbering, boundary controls and empty states. - Added maps open the final selected page; deleting its last row clamps the page automatically. - Row actions use rendered map UIDs instead of re-querying mutable offsets. Reordering cannot redirect removal to another map; server-library insertion cannot redirect an add action. - Missing rows/maps, out-of-range actions and stale actions after a War change are rejected. - Equal map names have a UID tie-breaker. Each admin has independent paging, cleared on close/disconnect. - Periodic redraw leaves map input and displayed row targets intact; explicit navigation and mutations refresh the list. - A current War is preferred over newer completed records. Started pools remain locked for edits and available for browsing. - Cumulative website release with updated module ZIP, node installer assets and public changelog. No data migration. Requires installing the updated EvoSC module and restarting the controller. - Verification uses the actual PHP overlay/repository with an in-memory framework/database adapter. Trackmania client rendering and a live EvoSC installation still need an in-game check.
v145

WARGRID v145 — private Zähleranzeige — 20.10.2026

Archived original release notes · v145

# Direct linkDate source: CHANGELOG_V145_PRIVATE_COUNTER.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V145_PRIVATE_COUNTER.md

# WARGRID v145 — private Zähleranzeige — 20.10.2026 - Private, kontogebundene Zähleranzeige für die ausdrücklich vorgesehenen bestehenden Konten, verfügbar auf öffentlichen Seiten und im Adminbereich nach Anmeldung. - Ein festgelegtes Bearbeiterkonto kann Einträge hinzufügen, beglichene Einträge abziehen sowie Stand und kurze Texte einstellen. Das zweite Konto hat ausschließlich Leserechte. Allgemeine Administratorrechte ersetzen diese Berechtigung nicht. - Persistente Speicherung, feste Kontobindung, serverseitige Prüfung, Versionskonflikte und Schutz gegen doppelte Übermittlung. Keine privaten Zählerstände im öffentlichen Changelog. - Eigene spielerische SVG-Grafik, kompakte und erweiterte Anzeige, mobile Bedienung und reduzierte Bewegung. - Additive Datenbanktabelle mit Runtime-Initialisierung und MySQL-Schema. Kein EvoSC-Modulupdate. English: Private account-bound counter with a dedicated editor and read-only viewer, persistent storage, server-side authorization and conflict handling. Includes compact/expanded presentation and a playful local SVG. Counter values remain private. No EvoSC module change.
v144

The complete documented release archive

Every available changelog, intermediate release and hotfix in one place.

# Direct linkDate source: CHANGELOG_V144_FULL_RELEASE_ARCHIVE.md

Added

  • Full original notes from every available release document, expandable per version.
  • Search across versions, titles and complete change descriptions.
  • Documented dates with sources and explicit labels for missing dates.

Improved & fixed

  • Compact release index instead of an oversized version bar.
  • Historical notes retain their source language; the interface supports English and German.

Notes

  • Missing records are not replaced with invented release information.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V144_FULL_RELEASE_ARCHIVE.md

# WARGRID v144 — vollständiges dokumentiertes Versionsarchiv — 20.10.2026 - Öffentliche Changelog-Seite um alle vorhandenen historischen Changelog-Dateien ergänzt, einschließlich dokumentierter Zwischenversionen und Hotfixes. - Vollständige Originalnotizen bleiben pro Eintrag aufklappbar und in ihrer Quellsprache erhalten. Keine gekürzte Zusammenfassung ersetzt die Originaländerungen. - Versionsnummer, dokumentierter Titel, belegtes Datum und Quelldokument werden angezeigt. Fehlt ein belegtes Datum, steht ausdrücklich „Datum nicht dokumentiert“. Dateiänderungszeitpunkte werden nicht als Release-Datum ausgegeben. - Suche über Versionsnummern, Titel und vollständige Originaltexte; kompakter Versionsindex und Direktlinks bleiben vorhanden. - Deutsch-/Englisch-Umschaltung der Oberfläche und neuen Versionszusammenfassungen. Historische Originaltexte werden als solche gekennzeichnet. - Datengenerator und Prüfungen kontrollieren, dass jedes vorhandene Changelog-Dokument vollständig im Archiv enthalten ist. Keine erfundenen Versionen für Lücken. English: The public changelog now includes every available historical source document, documented intermediate releases and hotfixes. Full original notes remain expandable in their source language. Dates require documentary evidence; missing release dates are explicitly labelled. Search covers versions, titles and original text. No database migration or EvoSC module update is required.
v143

Every update in one place

A public, bilingual overview of WARGRID development.

# Direct link

Added

  • New changelog page with German/English switching.
  • Direct links to individual releases and a permanent footer link.
  • Documented changes from v140 through v143, newest first.

Improved & fixed

  • Shared image header, restrained content width and readable release cards on mobile and desktop.

Notes

  • Entries describe release packages. They do not confirm a production deployment.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V143_PUBLIC_CHANGELOG.md

# v143 — Public changelog / Öffentlicher Changelog Deutsch: Öffentliche Changelog-Seite mit deutscher und englischer Fassung, versionierten Direktlinks, chronologisch absteigenden Einträgen v140–v143 und Footer-Zugang auch bei bestehenden CMS-Einstellungen. Vorhandener Bildheader, Schwarz-Gelb-Stil und responsive Inhaltsbreite. Keine neue Abhängigkeit, Migration oder Moduländerung. English: Public changelog with German and English text, per-release direct links, newest-first entries for v140–v143 and a footer link that also works with existing CMS settings. Uses the shared image header, charcoal/yellow styling and responsive content width. No new dependency, migration or module change.
v142

Your War and the admin action desk

Reach the right event, draft and result publication more quickly.

# Direct linkDate source: CHANGELOG_V142_EVENT_DESK.md

Added

  • Admin shortcuts with a prominent podium button and an actionable task list.
  • Private Your War panel with event selection, registration, draft team, captain and next action.
  • Event calendar with device time zones and single/multiple-event ICS export.
  • PNG result graphic with preview, team scores, WARGRID artwork and gold/silver/bronze placements.
  • Central checks for frontend/backend versions, Discord API, interaction configuration and server heartbeats.
  • Shared panels, actions, statuses and notices.

Improved & fixed

  • Personal participation is confirmed through account ownership, a verified login or an explicit captain assignment.
  • Event switches and late responses do not mix personal states; loading failures suppress unconfirmed actions.
  • Live access requires the exact server/War association, fresh reports and complete competition data.
  • Result links require existing public finals; podium deep links preserve the selected match after reload.
  • Calendar export handles Zurich daylight-saving changes and safe text formatting; result graphics preserve ties.
  • Unavailable operational data is not reported as successful. Duplicate legacy status displays were removed.

Notes

  • Calendar files are one-time exports. Download again after schedule changes.
  • Image export and podium publication are separate actions; there is no automatic Discord post.
  • Graphics use shared WARGRID car/driver artwork, not automatically detected individual skins.
  • 583 functional tests: 573 passed, 10 skipped. 295 browser cases passed.
  • Generated export contents were checked; native saving was cancelled by the local test browser and needs checking on the target device.
  • No new migration or EvoSC module change compared with v141.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V142_EVENT_DESK.md

# WARGRID v142 Kumuliert auf v141, 20. Oktober 2026. - Admin-Startseite mit direktem Podium-Zugriff, konkreten Aufgaben und zentralen Betriebschecks. Alte doppelte Bridge-/Statusanzeige entfernt; Hosting und Map-Anfragen bleiben separat bedienbar. - Privater, kontogebundener War-Bereich auf der Startseite mit Eventauswahl und kontextabhängiger Aktion. Keine Übernahme fremder Registrierungen über einen eingegebenen Login oder Gasttoken. Explizite Captain-Zuordnungen durch Organisatoren werden berücksichtigt. - Kalenderansicht und RFC-5545-Export mit Zurich-Sommer-/Winterzeit, Gerätezeitzone, stabilen Event-IDs, Text-Escaping und UTF-8-Zeilenfaltung. - Ergebnisgrafik als PNG mit Vorschau, Teamstand, WARGRID-Fahrzeug/Fahrer und Gold-/Silber-/Bronzeplätzen. Gleichstände werden vollständig übernommen; keine künstlichen Plätze oder Live-Ergebnisse. - Versionsabgleich der beiden ausgelieferten Bundles. Bot-Prüfung und Heartbeats werden als Momentaufnahmen bezeichnet; fehlende Daten ergeben keinen positiven Status. - Gemeinsame lokale UI-Komponenten, ohne globale Farb- oder Layoutumstellung. - Neue isolierte API-, Zustands-, Kalender-, Ergebnis- und Browserprüfungen. Keine neue Abhängigkeit, Modulversion oder Datenbankmigration.
v141

Cleaner directories and stable page rendering

More compact and consistent Players, Teams and Skins pages.

# Direct linkDate source: AUDIT-V141.md

Improved & fixed

  • Saved CMS titles, logos and images are included in initial HTML; failed or late refreshes do not replace them with defaults.
  • Restored Teams image header, compact team cards and expandable rosters.
  • Finer Players tables, compact filters, search and profile links.
  • Skin gallery with three cards on wide desktops, two at medium widths and one on small devices.

Notes

  • Existing skin images, approvals and downloads remain authoritative.
  • 280 browser cases passed; 561 functional tests passed and 10 were skipped.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V141_DIRECTORIES_AND_CMS_RENDER.md

# v141 — Directory refinement and first-render CMS - Pass the public CMS projection into the request-specific root layout on both the Node host and Worker render paths. Strip visitor-supplied bootstrap metadata before replacing it. Unpublished custom pages remain excluded. - Initialize the content provider from the server-rendered document. Preserve confirmed content on failed refreshes and discard out-of-order refresh responses. - Make the nested Teams page wrapper transparent so the shared artwork remains visible inside the v140 content inset. - Replace obsolete global team-archive row overrides with compact two-column cards and attached expandable rosters. Preserve search, server-scoped links and current-War administration. - Refine Players typography, controls, scored rows and registered-player cards. - Change the skin gallery to three desktop columns, two tablet columns and one mobile column with consistent preview proportions and restrained controls. - Add regression coverage for first HTML, concurrent rendering, forged bootstrap headers, public CMS filtering, failed/out-of-order refreshes, team search/rosters and player-directory navigation. - No schema, gameplay, EvoSC module, password, admission or download-authorization changes.
v140

Complete idle homepage and optional donations

A useful homepage between Wars and an admin-controlled donation link.

# Direct linkDate source: AUDIT-V140.md

Added

  • Donation toggle, HTTPS destination, button label and preview under Admin → Website content → Donate.

Improved & fixed

  • The standard homepage remains visible without an active War; old results are not automatically promoted as the current competition.
  • Live console, rotation and current rankings require a confirmed active War.
  • Shared page gutters, maximum content width and compact tablet navigation.
  • Failed website-configuration loading cannot overwrite saved content with defaults.

Notes

  • Published donation links appear in the appropriate header/menu placement and the footer.
  • Payments use the configured external destination; WARGRID does not process payment details in this flow.
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V140_HOME_DONATE_SPACING.md

# v140 — Vollständige Startseite zwischen Wars und optionaler Donate-Button - Den allgemeinen Startseiten-Hauptbereich auch ohne aktiven War wiederhergestellt. Eine kompakte Linkübersicht ersetzt leere Matchkennzahlen; eine allgemeine History-Karte ersetzt ein automatisch hervorgehobenes altes Ergebnis. - Live-Konsole, Rotation und aktuelle Rangliste bleiben an einen bestätigten aktiven War gebunden. Die bestehende explizite Podiumfreigabe bleibt erhalten. - Gemeinsame äußere Seitenränder und eine maximale Inhaltsbreite eingeführt. Die flächigen Bildheader bleiben erhalten. Tablet-Navigation vor dem Überlaufen auf das kompakte Menü umgestellt. - Donate-Schalter, HTTPS-Link, Buttontext und Vorschau unter Admin → Website content → Donate ergänzt. Wiederverwendung der bestehenden Website-Konfiguration, ohne Schemaänderung. - Veröffentlichte Spendenlinks erscheinen je nach Bildschirmgröße im Header beziehungsweise Menü und immer im Footer. Verlinkung mit `noopener noreferrer`; keine Zahlungsdaten in WARGRID. - Veröffentlichung blockiert, wenn gespeicherte Website-Inhalte nicht geladen werden konnten. Dadurch können Fehler beim Laden keine gespeicherten Inhalte durch Standardwerte ersetzen. - Regressionen für Leerlauf, aktive Matches, responsive Ansichten, Website-Konfiguration und Donate-Verwaltung geprüft; kumulierte Funktionen und Bilder bleiben im vollständigen Paket enthalten.
v139

v139 — Widgets und Seiten beruhigt

Archived original release notes · v139

# Direct linkDate source: AUDIT-V139.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V139_WIDGET_COHESION.md

# v139 — Widgets und Seiten beruhigt - Gemeinsame Layoutregeln in `app/widget-cohesion.css`, auf den Inhaltsbereich beschränkt. - Explizite Widget-Markierungen in Startseite, Events/Community, Draft, Servern, Skins, Teams, privaten Kontoeinstellungen und Admin-Workspaces. - Einheitliche Innenabstände, Widget-Köpfe, Tabellen, Formularfelder und Werkzeugleisten; angepasste Handyabstände. - Map-Karten von widersprüchlichen Legacy-Rastern befreit: tatsächliches Vorschaubild über linksbündigem Inhalt, lesbare lange Namen, persönliche Bestzeiten und Map-Leader. - Anmelde- und Captain-Widgets ohne doppelten Kopfeinzug. - v138-Bildheader, bestehende Farben, Statussignale, formatierte Spielernamen und aktive Draft-Markierungen erhalten. - Keine Änderung an API-Verträgen, Datenbank, Anmeldeentscheidungen, Scoring oder EvoSC-Modulen. - Vollständiger Build und kumulierte Dateien enthalten. Prüfungen und Installation: `AUDIT-V139.md` und `DEPLOY-V139.md`.
v138

WARGRID v138

Archived original release notes · v138

# Direct linkDate source: AUDIT-V138.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V138_SHARED_HEADERS.md

# WARGRID v138 - Gemeinsamer Startseiten-Headerstil mit breitem Bild und weichem Verlauf auf sämtlichen Seitentypen. - Vorhandene Titel, Bilder und Bedienelemente integriert; kein zusätzlicher Titelblock. - Eigene Profil-, CMS-, Map- und Serverbilder als Headerquelle erhalten. - Handy-Ausschnitte und seitliche Abstände vereinheitlicht; Server-Infobox auf Desktop neben dem Titel. - Eventwechsel unter den Event-Header verschoben. - Bestehende Farben, Pokale, Freigaben, Daten und Startseitenkorrekturen erhalten. - Keine Schema-, Modul- oder Zugangsdatenänderungen.
v137

WARGRID v137

Archived original release notes · v137

# Direct linkDate source: AUDIT-V137.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V137_TROPHIES_GALLERY.md

# WARGRID v137 - Podium auf Matchname, Spielername, Fahrzeug/Fahrer, Pokal und Punkte reduziert. - Eigene goldene, silberne und bronzene Pokale mit Platznummern hinzugefügt; Handyansicht kompakter. - Skin-Galerie ohne großes generisches Rennbanner; größere Vorschauen, kompakte Filter und kürzere Statusanzeigen. - Farben, Ergebnisse, Freigaben, Downloads und v136-Startseitenkorrektur erhalten. - Keine neuen Schemafelder, keine Modul- oder Zugangsdatenänderungen.
v136

WARGRID v136

Archived original release notes · v136

# Direct linkDate source: AUDIT-V136.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V136_PALETTE_IDLE.md

# WARGRID v136 - Startseite ohne Wettbewerb bereinigt: keine leere Übersicht, keine historischen Ergebnisblöcke oder Registrierungskacheln; Livekonsole, Rotation und Rangliste bleiben ausgeblendet. - Homepage-Podium benötigt eine ausdrückliche Admin-Aktivierung. Ergebnisse bleiben unabhängig davon in History erhalten. - Leeren Mindesthöhen-Abstand nur im bereinigten Startseitenzustand entfernt. - Event-, Galerie- und Podiumfarben wieder Anthrazit / WARGRID-Gelb; vorhandene Layouts, Assets, Status- und Spielernamensfarben erhalten. - Keine neuen Schemafelder, keine Moduländerungen oder Datenlöschungen.
v135

WARGRID v135 — Artwork und Änderungen

Archived original release notes · v135

# Direct linkDate source: AUDIT-V135.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V135_VISUALS.md

# WARGRID v135 — Artwork und Änderungen ## Darstellung Event- und Skinseite verwenden eigene CSS-Module, um die Kollision mit bestehenden globalen Community-/Kartenstyles zu verhindern. Die doppelte Eventüberschrift entfällt. Das Profil enthält keine Inbox mehr; E-Mail-Einstellungen sind unter `/me/settings`, die Aktivität bleibt im vorhandenen Glocken-Popover. Die neue Siegerbühne ist eine echte Datenansicht: Name, Team, Punkte, LR-Zähler, Profil-Link, Reihenfolge und Gleichstände bleiben dynamische HTML-Elemente. Nur Auto/Fahrer sind gerasterte Illustration. Die Admin-Freigabe wirkt unverändert je Server und War. ## Bilddatei und Herstellungsverfahren Datei: `public/assets/wargrid/wargrid-podium-driver-v135.png`. Mit dem eingebauten Image-Generation-Tool erstellt; der imagegen-Skill wurde angewendet. Transparenter Hintergrund mit Alpha, 1672 × 941 Pixel. Referenzen waren die vom Nutzer angehängte Trackmania-Podium-Szene und der gelb-schwarze WARGRID-Skin. Eine gemeinsame Grafik wird je Platz wiederverwendet. Kein zusätzlicher Dienst, keine API-Zugangsdaten und keine Laufzeit-KI werden benötigt. Finaler Prompt: > Use case: stylized-concept, reusable production web asset for a Trackmania winners podium. The user's two reference images show (1) a Trackmania winners platform and (2) their exact yellow and carbon black WARGRID stadium racing car skin. Create ONE high quality isolated 3D game-render grouping on a genuinely transparent background, with the yellow/black WARGRID open wheel stadium car from reference 2 and ONE full body human race driver standing beside it. Preserve recognisable car geometry, yellow upper body, carbon black lower body, four exposed tires, black aerodynamic wings, WARGRID lettering on side. Car points toward viewer-left, seen in front three-quarter view from modest elevated camera. Driver stands on the viewer-right of the car, clearly visible, wearing coordinated black and gold racing overalls, gloves and a fully closed glossy helmet with dark visor, relaxed celebratory hands at hips pose, no visible face. Whole car and whole driver fit comfortably with no clipping, consistent scale (driver roughly twice car height), premium photoreal game render, warm gold rim lighting with cool silver fill. Tight landscape composition suitable for repeating above each of three HTML podium plinths. Do NOT include a podium, scene backdrop, floor plane, fireworks, trophies, numbers, player names, labels, UI, watermark or baked shadows; only car and driver with clean alpha silhouette. Exact optional branding on suit/car: WARGRID. Transparent background is essential. Die Illustration interpretiert die Skin-Vorlage. Es ist kein automatischer Export individueller Spieler-Skins aus Trackmania. Es werden keine geschützten Skinpakete oder privaten Kontodaten dafür abgerufen.
v134

WARGRID v134 — Startseite nach War-Ende

Archived original release notes · v134

# Direct linkDate source: AUDIT-V134.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V134_IDLE_HOME.md

# WARGRID v134 — Startseite nach War-Ende - Konsole, Rotation, Live-Rangliste und Live-Spielerliste werden auf der Homepage ausschließlich für einen bestätigten aktiven War eingeblendet. - Laufender Gameserver mit freiem Fahren erzeugt keine War-Liveanzeige mehr. - War-Ende und Zeitablauf entfernen die Widgets und stoppen Konsolenpolling. Neuer War bringt sie wieder zurück. - Konsolenfeed an den tatsächlichen Server und die War-ID gebunden, alte Logs beim War-Wechsel verworfen. - Abgeschlossener Payload mit verbliebener activeWarId ergibt „No active War“ statt „War setup incomplete“. - Letztes Ergebnis, History, Podium und alle bisherigen Funktionen bleiben erhalten. - Keine Datenmigration gegenüber v133 und kein EvoSC-Eingriff erforderlich.
v133

WARGRID v133 — Result podium

Archived original release notes · v133

# Direct linkDate source: AUDIT-V133.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V133_PODIUM.md

# WARGRID v133 — Result podium - Neuer Admin-Tab unter Wars & events: letztes abgeschlossenes Match oder älteren War auswählen, Podium aktivieren/ausblenden und sofort die echte Darstellung ansehen. - Direkter Podium-Knopf je abgeschlossenem War im Archiv. - Dauerhafte Website-Einstellung je Server und War, unabhängig von EvoSC-Syncs. Zugriff nur für Administratoren; Änderungen werden protokolliert und gegen veraltete Revisionen abgesichert. - Öffentliche Startseite, Maps und History respektieren die Auswahl. Präsentationsrevision verhindert alte History-Cacheanzeigen nach dem Umschalten. - Gold-/Silber-/Bronzefarben gegen vorhandene globale Kartenstile abgesichert; Adminvorschau und öffentlicher Auftritt stimmen überein. - Alle v132-Dateien und Funktionen weiter enthalten. Keine Änderung der Modulversionen, keine Datenlöschung.
v132

WARGRID v132 — Community-Funktionen und Artwork

Archived original release notes · v132

# Direct linkDate source: CHANGELOG_V132_COMMUNITY.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V132_COMMUNITY.md

# WARGRID v132 — Community-Funktionen und Artwork Stand: 19. Oktober 2026. Grundlage ist die bereitgestellte `wargrid-app-small.zip` mit v131-Skin-Freigaben und dem korrigierten v130-Startseitenstand. Das Paket ist kumulativ und enthält Website, Backend, Worker, Module, SQL-Schemata, Quelldateien, Tests sowie `dist/` und `server-build/`. ## Was enthalten ist - Alle zehn bereitgestellten Motive liegen als lokal ausgelieferte WebP-Dateien vor. Action-Header auf der Startseite, Nachtmotiv im Footer, Canyon bei Maps, Dirt bei Servers und Stadium im Community-/Skin-Bereich. Die übrigen Nachtmotive verteilen sich auf die Unterseiten. Der Footertext steht rechts vom Wagen. Mobile Ausschnitte sind angepasst. Bestehende CMS-Standardbilder werden bei der Anzeige ersetzt; eigene hochgeladene Bilder bleiben erhalten. Echte Map-Vorschaubilder kommen weiter aus den Map-Daten. - Auf `/maps` gibt es die vollständige bestätigte Serverrotation ab der aktuellen Map, persönliche Favoriten und optionale private Discord-Hinweise für die nächste Map. Eine Meldung erscheint auch in der vorhandenen Activity-Glocke. - Zeitangaben sind Schätzungen und setzen die tatsächliche Serverliste, bestätigte nächste Map, einen aktuellen Timer und bestätigte feste Spielregeln voraus. Die bestätigte Chatpause zwischen Maps wird mitgerechnet. Unklare Daten erzeugen keine erfundenen Uhrzeiten. - Eventbezogene Map-Vorschläge, eine Stimme je Konto, Review/Shortlist, Captain-Stylewahl, Map-Picks je Team, Poolvalidierung, Sperre und Export. Die Variante „4 Styles pro Team + 2 Überraschungsstyles“ unterstützt private Organisator-Vorschläge ohne öffentlichen TMX-Link. Deren Namen/UIDs werden vor Eventbeginn für öffentliche Nutzer verdeckt. - Bestätigte Captains wählen ihre Styles und je eine Map pro gemeinsamem Style für ihre eigene Seite. Organisatoren dürfen die Auswahl verwalten. 20 Maps und maximal 2 pro Style sind die vorgeschlagenen Standardwerte. Der bestehende Spieler-Draft mit abwechselnden Picks bleibt enthalten. - Admin → Community & map formats: Eventformat und Spielserverregeln getrennt konfigurieren. Discovery: 8 Minuten vorwärts. Hunting: 18 Minuten rückwärts. Änderungen werden bewusst vor War-Start auf einen EvoSC-Draft angewendet. - Team-Skip-Abstimmung: Nur verknüpfte, aktuell fahrende Teammitglieder zählen. Jedes anwesende Team braucht mehr Ja- als Nein-Stimmen. Ein leeres Team blockiert nicht. Die Entscheidung ist an Server, War, Map und Beginn der aktuellen Map-Sitzung gebunden. Ein Befehl bleibt „queued“, bis EvoSC ihn bestätigt; Fehler und Ablauf werden kenntlich gemacht. - Abschluss-Podium auf Startseite, Maps und in der War-History. Punkte, LR1, LR2 und LR3 bestimmen die Reihenfolge; identische Ergebnisse teilen sich einen Platz. Fahrer ohne gefahrene Map erhalten kein Podium. - Fehlende Skin-Frontendquellen aus der hochgeladenen ZIP wurden wiederhergestellt. Die bestehenden Backend-Freigaben und der private Downloadschutz bleiben angebunden. Ein Skin benötigt weiterhin eine individuelle Freigabe pro Konto. ## Module und Daten Enthalten sind WarApiBridge **0.3.0** und WarManager **0.18.0**. Beide Download-ZIPs und das Node-Installerarchiv werden aus denselben Modulquellen gebaut. Die Bridge liefert die vollständige Dedicated-Playlist sowie bestätigte Community-Spielregeln. Der Manager führt Regeln und Skip-Befehle aus und stellt nach dem War gesicherte Timer-/Vote-Einstellungen wieder her. Die zehn `community_*`-Tabellen werden additiv angelegt. Die neue EvoSC-Migration legt `war-community-policy` an. Es gibt keinen Daten-Reset. Bestehende Anmeldungen, History, Skin-Freigaben und private Konfigurationen sind zu übernehmen. ## Bewusste Grenzen Zusätzliche Gameserver werden nicht automatisch gebucht oder bezahlt. Bereits registrierte Server können unabhängig das Discovery- oder Hunting-Preset erhalten. Ihre Wars und Ergebnisse bleiben getrennt; eine gemeinsame, serverübergreifend neu berechnete Gesamtwertung ist hier nicht enthalten. Ein Map-Pool wird erst nach Prüfung gesperrt und installiert. Für den Übertrag auf EvoSC müssen alle Map-Dateien bereits installiert und die richtigen UIDs beim Pick hinterlegt sein. Unveröffentlichte GBX-Dateien können über `/maps/request?event=ID` privat an Admins übermittelt werden. Eine Veröffentlichung auf TMX erfolgt weiterhin durch den Mapper/Organisator. Die Option für unveröffentlichte Eventmaps kennzeichnet diese Planung; sie veröffentlicht keine Datei automatisch. Dieses Paket wurde lokal geprüft. Produktive MariaDB, Discord und Dedicated Server wurden nicht verändert. Die Rolloutschritte stehen in `DEPLOY-V132.md`.
v131

WARGRID v131 — Skins mit persönlicher Adminfreigabe

Archived original release notes · v131

# Direct linkDate source: AUDIT-V131.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V131_SKINS.md

# WARGRID v131 — Skins mit persönlicher Adminfreigabe ## Neue öffentliche Seite - Eigener Menüpunkt und Route `/skins` mit responsiver Skin-Galerie. - Pro Skin: Vorschaubild, Name, Version, Ersteller, Modell, Beschreibung, Dateigröße, Downloadzahl und der zum eigenen Freigabestatus passende Button. - Anmeldung, offene Anfrage, Freigabe, Ablehnung und Entzug werden als eigene Zustände angezeigt. - Nur veröffentlichte Skins erscheinen öffentlich. Der Katalog startet ohne erfundene Inhalte; echte Skin-Dateien und Bilder werden im Adminbereich angelegt. ## Neue Verwaltung - `/admin/skins` bzw. **Admin → Skins & downloads**. - Skins als Entwurf anlegen, Angaben bearbeiten, Bild und ZIP hochladen, veröffentlichen und zurück auf Entwurf setzen. - Offene Anfragen anzeigen, tatsächliche Benutzer suchen und Freigaben pro Skin/Benutzer erteilen, ablehnen oder entziehen. - Versionsprüfung bei Verwaltungsänderungen verhindert, dass eine alte Browseransicht unbemerkt eine neuere Änderung überschreibt. - Nur vollständige Administratoren besitzen diese Verwaltungsrechte. ## Geschützte Auslieferung - Private Dateispeicherung außerhalb der öffentlich ausgelieferten Verzeichnisse; keine frei zugänglichen Paket-URLs im Katalog. - Jedes Downloadticket ist zufällig, einmalig, 60 Sekunden gültig und an die bestätigte Benutzeridentität sowie ihre konkrete Sitzung gebunden. - Der Server prüft beim Ausliefern erneut Sitzung, Veröffentlichung, Dateistand und persönliche Adminfreigabe. - Entzug, erneute Freigabe, Entwurf und Dateiaustausch reaktivieren keine vorher ausgestellten Tickets. - Atomare Verarbeitung und Protokollierung von Freigaben und Ticketeinlösung über die vorhandene MySQL-Transaktionsschnittstelle. - Account-IDs aus Formularen, Anzeigenamen oder unbestätigte Trackmania-Logins begründen keine Downloadberechtigung. - Strenge Ursprungskontrolle für neue Schreibendpunkte, tatsächliche Uploadgrößenbegrenzung und Formatprüfung für ZIPs und Bilder. - Ungültige Zeitwerte in gespeicherten lokalen und Trackmania-Sitzungen werden als ungültige Anmeldung behandelt. ## Deployment Fünf additive Skin-Tabellen und ein privates Uploadverzeichnis kommen hinzu. `WARGRID_SKIN_STORAGE_DIR` erlaubt einen festen privaten Speicherort. Datenbank und Uploadverzeichnis zusammen sichern und bei Deployments erhalten. Einzelheiten in `DEPLOY-V131.md`. Die v129-Startseite aus dem v130-Hotfix sowie die korrigierte Live-Rotation bleiben enthalten. WarApiBridge 0.2.8 und WarManager 0.17.2 bleiben in den Download- und Installerarchiven konsistent. Es kommen keine neuen Paketabhängigkeiten hinzu.
v130-hotfix

WARGRID v130 Hotfix — 18.10.2026

Archived original release notes · v130-hotfix

# Direct linkDate source: CHANGELOG_V130_HOTFIX.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V130_HOTFIX.md

# WARGRID v130 Hotfix — 18.10.2026 ## Auftrag Die Startseite von `WARGRID-v129-complete-20261018.zip` in den vollständigen v130-Stand übernehmen und die fehlende nächste Map unter „Live rotation“ korrigieren. ## Ursache und Reparatur Der Vergleich der Originalpakete ergab zwei zusammenwirkende Probleme: 1. `modules/WarApiBridge/` enthielt Version 0.2.8, während `public/downloads/WarApiBridge.zip`, die Kopie im fertigen Website-Build und `scripts/wargrid-node-assets.zip` noch Version 0.2.6 auslieferten. Dort fehlten `Classes/LiveMapSnapshot.php` und `serverNextMap`. Die alte Bridge leitete `nextMap` lediglich aus dem War-Pool ab. Die aktuelle API akzeptiert diesen Wert bewusst nicht als tatsächliche Serverrotation. 2. Sowohl die v129- als auch die v130-Startseite blendeten Map-Identitäten aus, solange kein vollständiger aktiver War vorlag. Der v129-Platzhalter verlangte zudem einen aktiven War, obwohl dieser bereits erkannt war. Die Bridge-Downloads und Installer-Archive wurden aus dem unveränderten 0.2.8-Quellcode neu erstellt. Der Website-Build enthält dieselben korrigierten Bytes. Alle 51 übrigen Einträge im Node-Archiv blieben bytegleich. WarManager 0.17.2 und sein Download sind unverändert. ## Startseite - v129-Komposition und Styles wiederhergestellt; schmale Displays und lange Namen/Punktzahlen bei der visuellen Prüfung berücksichtigt. - Aktuelle und nächste Map kommen aus frischen Servermeldungen, auch bei freiem Fahren, während der War-Vorbereitung oder ohne laufenden War. - Die tatsächlich gemeldete UID hat Vorrang vor widersprüchlichen älteren Feldern. Nur exakt passende, aktivierte Maps des aktuellen Live-War-Pools erhalten Poolpositionen und War-Rekordlinks. - Fehlende aktuelle/nächste Map, veraltete Meldung und ausgefallene Verbindung erhalten jeweils einen passenden Leerzustand. Fehlende Map-Identitäten zeigen kein fremdes Trackmania-Vorschaubild. - Bekannte Maps verwenden weiterhin ihre vorhandene TMX-Vorschau. Ein Vorschaufehler ändert nicht die gemeldete Map-Identität. - v130-Event-Links, eingefrorener Captain-Draft, Late-Entry-Sperre, Registrierungszahlen, Event-Wiederholung und History-Fehleranzeige bleiben erhalten. Roh gemeldete Maps außerhalb des War-Pools erhalten keine unauflösbaren Detail- oder falschen War-Rekordlinks. ## Prüfung und Verpackung `tests/module-package-integrity.test.mjs` vergleicht alle ausgelieferten Moduldateien und Versionen mit dem Quellcode. Der Test schlug beim Originalpaket wegen der fehlenden LiveMapSnapshot-Datei fehl und besteht mit den korrigierten Archiven. `scripts/package-module-assets.py` erzeugt die Modularchive reproduzierbar; `--check` prüft sie ohne Änderung. `scripts/package-v130.ps1` blockiert eine Veröffentlichung mit inkonsistenten Modul- oder Build-Downloads. Der neue Browserlauf `scripts/verify-home-browser-v130-hotfix.mjs` verwendet den echten Produktionsbuild mit lokalen Testdaten, darunter „Biggest Yekness“, War 27 und die gemeldete Server-ID. Prüfergebnisse und Grenzen stehen in `AUDIT-V130.md`. ## Installation Anleitung in `DEPLOY-V130.md`. Gegenüber v129/v130 keine neue Datenbankmigration. Eine bereits installierte alte Bridge muss über den bestehenden Modul-Updater oder manuell aktualisiert und EvoSC anschließend neu gestartet werden. Erst der neue Heartbeat bestätigt die laufende 0.2.8-Version. Ein reines Website-Update kann einer alten Bridge das fehlende Queue-Feld nicht hinzufügen. Es wurde kein Produktivserver aktualisiert und keine echte Datenbank, Spielserverrotation oder Discord-Konfiguration verändert.
v130

WARGRID v130 — neue Startseite

Archived original release notes · v130

# Direct linkDate source: AUDIT-V130.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V130_HOME_DESIGN.md

# WARGRID v130 — neue Startseite Vollständiges kumuliertes Release einschließlich v121–v129. Alle bisherigen Funktionen und der Captain-Draft sind enthalten. WarApiBridge bleibt 0.2.8, WarManager 0.17.2; keine neue Schema-Erweiterung gegenüber v129. - Neue Startseite passend zum Draft: Graphit, Gold, blaue und rote Teamkarten, klarere Typografie und direkte Sprunglinks zu Wettbewerb, Map-Rotation und Spielserver. - Hero mit den vorhandenen CMS-Texten und Bildern sowie der echten Live-Konsole. Die Konsole bleibt mobil bedienbar und beansprucht weniger Höhe. - Teamstände mit ausgerichteten Punkten, Anteilsbalken und lesbaren hohen Punktzahlen. Countdown, Teilnehmerzahl, Map-Anzahl und Serverstatus bleiben erhalten. - Neue Map-Karten und Ranglistenansicht; aktuelle und nächste Map kommen weiterhin ausschließlich aus der bestätigten Servermeldung. Fehlende Queue wird ausdrücklich als unbestätigt angezeigt. - Neu gestalteter Ergebnisbereich und Schnellzugriffe. Laufende Events, künftige Anmeldung, pausiertes Scoring, abgeschlossene Wars und fehlende Verbindung bleiben getrennte Zustände. - Hero-, Event- und Late-Entry-Links behalten die konkrete Server-/Event-Zuordnung. Während eines eingefrorenen Drafts erscheint keine Late-Entry-Werbung. - Event-Ladefehler haben eine Wiederholungsaktion; eine fehlgeschlagene History-Aktualisierung wird beim zuletzt verfügbaren Ergebnis angezeigt. - Bestehender PC-Beitritt, PlayStation-/Xbox-Einladungen, Kopieren, Beitrittshilfe, Activity-Glocke und Navigation bleiben nutzbar. - Responsive Ansichten von 320 bis 1440 Pixel, Tastaturbedienung und reduzierte Bewegung geprüft. Die neuen Styles sind auf die Startseite beschränkt. Installation: `DEPLOY-V130.md`. Prüfungen und Grenzen: `AUDIT-V130.md`.
v129

WARGRID v129 — Draft, Bedienung und gleichzeitige Änderungen

Archived original release notes · v129

# Direct linkDate source: AUDIT-V129.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V129_DRAFT_POLISH.md

# WARGRID v129 — Draft, Bedienung und gleichzeitige Änderungen Vollständiges kumuliertes Release einschließlich v121–v128. WarApiBridge bleibt 0.2.8, WarManager 0.17.2. Gegenüber v128 sind keine zusätzlichen Schema- oder Moduländerungen erforderlich. - Draft-Ansicht mit Fortschritt, blauem und rotem Team, Spielerzählern, freien Plätzen und durchsuchbaren Karten. Layouts für kleine Mobilgeräte bis Desktop geprüft. - Deutliche Anzeigen für den eigenen Zug, Zuschauer, Pause, Abbruch, gesperrte Teams und tatsächliche Serverbestätigung. Ein geschlossenes Deployment wird nicht als bestätigte Übernahme ausgegeben. - Erfolgreiche Picks bewegen die Karte erst nach Speicherung. Tastaturfokus bleibt nach dem Pick nachvollziehbar; reduzierte Bewegung wird respektiert. - Ereignisbezogene Anfrageverwaltung verhindert alte Poll-Antworten nach Eventwechseln oder Schreibvorgängen. Fehlende Verbindung, Timeout und unklare Schreibantworten erzwingen eine erneute Statusprüfung. - Login und Registrierung behalten den Draft-Rückweg. Der Rücklink in den Eventplaner öffnet das richtige Event und den Bereich Captains & teams. - Adminformulare zeigen die Draft-Sperre und schützen den Teilnehmerpool. Änderungen an Captains und Registrierungen werden zusätzlich direkt in den Datenbank-Schreibbedingungen abgesichert. - Captain-Kandidaturen brauchen die eigene Accountsession oder den Registrierungstoken. Ein fremder Name oder Trackmania-Login genügt nicht. - Deployment bewahrt ungespeicherte Einstellungen beim Polling, erkennt Änderungen anderer Admins und verhindert deren versehentliches Überschreiben. Unvollständige manuelle Teams blockieren die Übertragung. - Konkurrierende Scheduler können einen bereits beanspruchten Übertragungsvorgang nicht wieder freigeben. Event, Termin, Captains und Teilnehmer werden beim Beanspruchen erneut geprüft. - Öffentliche Fehlermeldungen enthalten keine internen Deployment-Diagnosen. Bedienung: `CAPTAIN-DRAFT-CONCEPT.md`. Installation: `DEPLOY-V129.md`. Prüfergebnisse und Grenzen: `AUDIT-V129.md`.
v128

WARGRID v128 — manueller Captain-Draft

Archived original release notes · v128

# Direct linkDate source: AUDIT-V128.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V128_CAPTAIN_DRAFT.md

# WARGRID v128 — manueller Captain-Draft Vollständiges kumuliertes Paket einschließlich v121–v127. Website und Backend erhalten einen gespeicherten manuellen Draft pro Event. Enthaltene EvoSC-Module bleiben WarApiBridge 0.2.8 und WarManager 0.17.2. - Organizer bestätigt die beiden Captain-Accounts, schließt die Anmeldung und startet den Draft im Adminbereich. - Eigener Draft-Tab mit zwei Teams, durchsuchbarem Spielerpool und abwechselnden Picks. Die Startseite A/B ist wählbar. - Kleine Kartenanimation erst nach bestätigter Speicherung; mobile Ansicht, Tastaturbedienung und reduzierte Bewegung berücksichtigt. - Serverseitige Account-, Event-, Zug-, Versions- und Teilnehmerprüfung; idempotente Wiederholungen und atomare Speicherung verhindern Doppel-Picks. - Teilnehmerpool während der Auswahl eingefroren. Pause, Fortsetzen, protokollierter Abbruch mit Neustart und abschließendes Sperren durch Organizer/Admin. - Vorhandene EvoSC-Übertragung übernimmt die gesperrten Teams unverändert. Ein unvollständiger Draft blockiert automatisches Deployment. - Activity-Glocke für Draft-Fortschritt; öffentliche Ansicht ohne interne Kontokennungen oder Kontakte. - Neue additive Tabelle `war_captain_drafts`; vorhandene Accounts, Anmeldungen, Ergebnisse und Einstellungen bleiben erhalten. Bedienung: `CAPTAIN-DRAFT-CONCEPT.md`. Installation: `DEPLOY-V128.md`. Tatsächliche Prüfungen und Grenzen: `AUDIT-V128.md`.
v127

v127 — Website-Rollen und Captain-Draft-Konzept

Archived original release notes · v127

# Direct linkDate source: AUDIT-V127.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V127_ACCOUNT_ROLES.md

# v127 — Website-Rollen und Captain-Draft-Konzept Vollständiges kumuliertes Projekt einschließlich v121–v126. ## Implementiert - Vier Website-Rollen für vorhandene WARGRID-Accounts: User, Moderator, Organizer und Administrator. - Admin → Settings → Website roles: Accounts suchen, Rolle ändern oder auf User zurücksetzen. Änderungen werden protokolliert. - Moderatoren erhalten einen eigenen Arbeitsbereich für Event-Teilnahmefragen. Organisatoren können zusätzlich Events erstellen/bearbeiten, Anmeldungen öffnen/schließen und bestehende Captain-Kandidaten auswählen. - Die zugewiesene Rolle wird pro Anfrage aus der Datenbank gelesen. Entzug und Herabstufung greifen ohne erneuten Login. Ein normales Benutzerkonto erhält keine Staff-Rechte. - Rechte werden auch im Backend anhand erlaubter Aktionen geprüft. Die Browserauswahl selbst ist keine Berechtigung. System-/Infrastruktur-, Rollen-, Mail- und Bot-Konfiguration bleiben bei Volladmins. - Organisatoren dürfen ein bereits laufendes Event nicht zur Anmeldung zurücksetzen oder dessen Captains verändern. Eventabschluss erhält die Historie und ist vom EvoSC-War-Abschluss getrennt. - Bestehender Admin-Key, vertrauenswürdige Admin-E-Mails und pro War vergebene Moderatoraufträge bleiben bestehen. - Die neue Rechte-Tabelle ist additiv. Kein Datenreset, keine automatische Vergabe privilegierter Rollen an bestehende Nutzer. ## Bewusst erst geplant Der manuelle Spieler-Pick durch Captains wurde wie angefragt zunächst durchdacht und in `CAPTAIN-DRAFT-CONCEPT.md` beschrieben. Der Vorschlag nutzt bestätigte Teilnehmer, eventbezogene Captain-Accounts, Snake-Draft und einen bestätigten Abschluss. Die Captain-Pick-Oberfläche und deren transaktionale Endpunkte sind noch nicht implementiert. Die vorhandene Captain-Auswahl und der bisherige Auto-Draft bleiben erhalten. Captain-Zuordnung, Website-Rolle, Discord-Rolle und Moderatorauftrag für einen konkreten Server-War sind getrennte Berechtigungen.
v126

v126 — Gastverwaltung und Eventwechsel

Archived original release notes · v126

# Direct linkDate source: AUDIT-V126.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V126_REGISTRATION_ISOLATION.md

# v126 — Gastverwaltung und Eventwechsel Vollständiges kumuliertes Release einschließlich v121–v125. Bestehende Funktionen werden korrigiert, keine neuen Eventfunktionen eingeführt. - Gaständerungen und Abmeldungen senden den Token des gewählten Events. Vorher konnten sie nach einer zweiten Anmeldung den gemeinsamen Token eines anderen Events senden. - Die Standardansicht ermittelt den eventbezogenen Token sofort, sobald die Standard-Event-ID bekannt ist. - Ausstehende Leseanfragen der vorherigen Eventauswahl werden abgebrochen. Sie blockieren die nächste Auswahl nicht bis zum Timeout. - Nach einer Mutation und bei einem ausdrücklichen Retry wird frisch geladen; eine schon vorher gestartete Hintergrundabfrage wird nicht wiederverwendet. - Die Anmeldeform wird pro Event neu aufgebaut. Alte Eingaben, Einwilligungen, Bearbeitungszustände und Fehlermeldungen können nicht in das nächste Event gelangen. - Gesperrter oder voller Browser-Speicher verhindert keine erfolgreiche Anmeldung. Der Gasttoken bleibt für den aktuellen Besuch im Arbeitsspeicher. Eine erneute Sitzung ohne funktionierenden Speicher kann diesen Token nicht wiederherstellen. - Rückmeldungen bei Gaständerungen sind auch sichtbar, wenn bereits eine Anmeldung vorliegt. - Geschlossene Community-Events werden im Eventwähler als geschlossen angezeigt; die Standardauswahl ist dort markiert. - Release-Paket enthält auch die bisherigen Deploy- und Audit-Anleitungen. WarApiBridge bleibt bei 0.2.8, WarManager bei 0.17.2. Kein neues Schema, Datenimport oder Datenreset für diese Nachkorrekturen. Prüfung und Grenzen: `AUDIT-V126.md`. Installation und Rollback: `DEPLOY-V126.md`.
v125

WARGRID v125 — cumulative stabilization after v121

Archived original release notes · v125

# Direct linkDate source: AUDIT-V125.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V125_STABILIZATION.md

# WARGRID v125 — cumulative stabilization after v121 Includes the existing v121–v124 application and the following corrections: - The website and both Discord runtimes share confirmed current/next map identities. Legacy pool-order guesses are no longer treated as a server queue. - WarApiBridge 0.2.8 independently reads current and next server maps. A map transition during the RPC sequence invalidates the queued sample. Outside-pool maps retain their server identity. - Current-map records and position are taken from the selected War pool; stale same-UID payloads cannot overwrite them. Session timing remains server-supplied. - Live-map artwork receives the same UID as its displayed map name. Primary-server map links always include the explicit server namespace. - Feed presentation uses receipt time and distinguishes delayed/offline data. Refresh and unchanged revisions recover correctly. Source changes and old request responses cannot overwrite newer data. - A failed history refresh retains confirmed records and exposes a retry state. Offline reads no longer substitute bundled demonstration results. - Invalid event selectors cannot silently select another War; multi-event public writes require an explicit event selection. Ongoing events cannot hide the next registration event. - Event cache selection and guest management tokens are scoped to the selected event. Admin loading errors are shown and stale selection fetches are aborted. - Discord event listings use the same planning lifecycle and community approval semantics as the website, including explicit event links. - Signed malformed snapshots are rejected while retaining the previous valid snapshot. - Personal map records use exact Trackmania login identifiers and the displayed War's records. - Lint errors in existing components and utilities were corrected, including lifecycle updates, dialog pointer handlers and unused code. No tests were disabled. - The PHP bridge reads the operational config directly instead of relying on a readability precheck that could reject an actually readable file. See `AUDIT-V125.md` for exact validation results and remaining environmental limits, and `DEPLOY-V125.md` for the cumulative installation and rollback procedure.
v124Release date not documented

WARGRID v124 · authoritative upcoming map

Archived original release notes · v124

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V124_UPCOMING_MAP.md

# WARGRID v124 · authoritative upcoming map - The EvoSC bridge now reads the actual queued next map from the game server. - WARGRID marks a War-pool map as “Up next” only when its UID matches the server queue. - If EvoSC has a different map queued, the home page and live War page show its name and identify that it is outside the active War pool. They no longer present the next pool entry as confirmed. - Bump WarApiBridge to 0.2.7 so existing 0.2.6 installations receive the fix through the module updater. Validation: full test suite passed (354 tests, 340 passed, 14 optional/environment-dependent skips, 0 failures). The production build passed. Repository-wide ESLint still reports pre-existing errors in unrelated files; the touched live War page also has three pre-existing accessibility/effect lint errors. No database migration is required. Existing records and map pools are preserved.
v123Release date not documented

WARGRID v123 · multiple open Wars

Archived original release notes · v123

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V123_MULTI_EVENT.md

# WARGRID v123 · multiple open Wars - Remove the SQLite-only constraint that allowed just one unarchived event. - Let admins create and switch between multiple open events, each with its own roster, applications, team plan, and approval actions. - Let players browse the announced Wars and open the specific registration page for each one. - Choose the nearest scheduled event by default while keeping every event available by its own ID. - Process completion checks and Discord event/roster/captain announcements for every open event. - Update Discord `/event` and `/join` responses to list up to five upcoming events with direct links. - Keep game-server rules explicit: an EvoSC server runs one live War at a time; parallel matches need separate game servers. Validation: Vinext production build passed. Full suite passed: 353 tests, 339 passed, 14 optional/environment-dependent skips, 0 failures. The change is additive. It drops the legacy SQLite `idx_upcoming_wars_one_active` index at runtime. Existing registration, history, credentials, and MySQL data are preserved.
v122Release date not documented

WARGRID v122 · public data and deploy feedback

Archived original release notes · v122

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V122_DEPLOY_FEEDBACK.md

# WARGRID v122 · public data and deploy feedback - Show upcoming-event request failures and stale-data warnings with a manual retry. - Explain immediate Public War registration, Community War approval, and late-entry approval in plain language. - Tell map visitors how to link Trackmania and surface their personal records. - Distinguish an offline or delayed server feed from a live server with no active War. - Remove the stale hardcoded footer version. - Keep prepared draft Wars out of public history while retaining them in the staff view; clarify cancelled-War archive test expectations. - Skip integration checks only when the host denies the loopback, hardlink, or junction capability that test requires. Validation: `npm test` passed with 339 tests, 14 environment-dependent skips, and no failures. The 14 skips are for unavailable loopback child-process connections, hardlinks, junctions, and other optional PHP integration tests. This package does not include private environment files or database data. Preserve production `.env`, `.env.local`, `.wargrid-secrets.json`, host keys, and the database during deployment.
v121Release date not documented

v121 Discord setup recovery

Archived original release notes · v121

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V121_DISCORD_SETUP_RECOVERY.md

# v121 Discord setup recovery The role setup stops before making changes if the selected private text channel is inaccessible. If a previous attempt already created the WARGRID Teams category, leaving its ID blank now reuses that category. Re-running setup also reuses the already-assigned WARGRID Bot role without trying to edit that role through Discord's role hierarchy.
v120Release date not documented

v120 Discord role setup permission preflight

Archived original release notes · v120

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V120_DISCORD_PERMISSION_PREFLIGHT.md

# v120 Discord role setup permission preflight Before writing roles or channels, the setup verifies the bot's membership, effective Manage Roles and Manage Channels permissions, and role hierarchy for existing WARGRID roles. If a requirement is missing, it stops without changes and prints a bot authorization link containing the required permissions.
v119Release date not documented

v119 Discord voice category setup

Archived original release notes · v119

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V119_DISCORD_VOICE_CATEGORY_SETUP.md

# v119 Discord voice category setup The Discord role setup now creates a `WARGRID Teams` category when no existing voice category ID is supplied. It prints the new category ID for Admin → Discord → Voice category ID. Existing categories can still be selected by ID.
v118Release date not documented

v118 Discord role setup prompt fix

Archived original release notes · v118

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V118_DISCORD_ROLE_PROMPT_FIX.md

# v118 Discord role setup prompt fix Fixed the interactive hidden-token reader so it restores terminal input without aborting the subsequent readline prompts. The setup can now continue from the Discord bot token prompt to the server and channel IDs in a normal SSH terminal.
v117Release date not documented

v117 Discord role setup

Archived original release notes · v117

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V117_DISCORD_ROLE_SETUP.md

# v117 Discord role setup The complete website source package now includes `scripts/setup-discord-roles.mjs` and the `npm run discord:roles` command. This is a one-time interactive Discord configuration helper for WARGRID Bot, Event Reviewers and Event Alerts roles, plus permission overrides on the selected text channel and voice category. The setup keeps the bot token out of terminal echo, requires explicit `APPLY` confirmation, updates matching role names rather than creating duplicates, and leaves unrelated role and channel overrides unchanged. Run it from the website application root after uploading the full package. It does not touch the website database or restart EvoSC.
v116Release date not documented

v116 · Community request labels and Discord review controls

Archived original release notes · v116

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V116_COMMUNITY_DISCORD_REVIEW.md

# v116 · Community request labels and Discord review controls - Discord now labels applications for Community Wars as `COMMUNITY JOIN REQUEST`; closed Public War applications remain `LATE ENTRY REQUEST`. - Community request messages use `ACCEPT & ADD` and `REJECT` buttons when Discord review is enabled and authorized reviewer roles are configured. - Saving Discord review settings adds buttons to existing, still-pending request messages in the configured channel. It does not repost messages or change admission status. - Requests remain pending and do not reserve event capacity until an authorized reviewer accepts them. Review decisions continue through the existing transactional event-review path. - Admin notification settings distinguish Community requests from late-entry applications and show when button requirements are not configured.
v114Release date not documented

v114 · SSH target preflight and retry

Archived original release notes · v114

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V114_SSH_PREFLIGHT_RETRY.md

# v114 · SSH target preflight and retry - The module updater now verifies the remote hostname and controller files over SSH before uploading updater files. - If the SSH host is reachable but the selected controller path is wrong or missing, the cleanup script reports the host/path and prompts for a corrected target, then retries the read-only inspection. - The update confirmation remains unavailable until the inspected controller ID matches the selected WARGRID server.
v113Release date not documented

v113 · Reconcile legacy primary War records

Archived original release notes · v113

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V113_RECONCILE_PRIMARY_WAR.md

# v113 · Reconcile legacy primary War records - When a read-only controller inspection proves the supplied controller belongs to a different WARGRID identity, cleanup never updates its modules or credentials. - The script now shows any active War stored under the selected stale identity and offers an explicit website-only finish that retains history and does not change EvoSC. - Final totals distinguish EvoSC-finished Wars from WARGRID-only history overrides. YES confirmation remains case-insensitive.
v112Release date not documented

v112 · Clear cleanup confirmations and results

Archived original release notes · v112

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V112_CLEANUP_CONFIRMATION.md

# v112 · Clear cleanup confirmations and results - Cleanup confirmations accept YES in any letter case. - The final message reports how many servers were updated, Wars were finished, and items were skipped instead of saying only that the run completed. - Controller identity mismatches remain safe skips; this includes the v110 inspection identity and v111 continue-on-mismatch behavior.
v111Release date not documented

v111 · Safer multi-server War cleanup

Archived original release notes · v111

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V111_SAFE_WAR_CLEANUP.md

# v111 · Safer multi-server War cleanup - Read-only controller inspection reports the identity configured on the EvoSC controller. - Cleanup stops before confirmation when the controller identity differs from the selected WARGRID server. - Identity mismatches skip only that server and continue through the remaining active servers; an update-endpoint mismatch is handled the same way. Existing module/key identity checks remain in place. - Includes the v109 admin survival banner and server ID labels.
v110Release date not documented

v110 · Verify controller identity before confirmation

Archived original release notes · v110

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V110_VERIFY_CONTROLLER_ID.md

# v110 · Verify controller identity before confirmation - The admin module inspector now returns the server identity read from the controller's private bridge configuration. - The past-War cleanup script stops before asking to update if the inspected controller identity differs from the selected WARGRID server. The update endpoint retains its second identity and credential-fingerprint check. - Includes the v109 admin survival banner and server ID labels.
v109Release date not documented

v109 · Admin survival banner and server identity labels

Archived original release notes · v109

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V109_ADMIN_SURVIVAL_SERVER_IDS.md

# v109 · Admin survival banner and server identity labels - Added a playful admin-only survival banner with the requested joke. - Live War server choices now include the complete server ID and whether a War is active, so similarly named servers can be distinguished before making changes. - Fixed finish-past-wars compatibility with older inspection responses that omit serverId. Actual module update still validates installed server identity and API credential fingerprint before writing.
v108Release date not documented

v108 · Personal map records

Archived original release notes · v108

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V108_PERSONAL_MAP_RECORDS.md

# v108 · Personal map records - The Maps directory now shows the signed-in player's best recorded time and placement for each map, when available. - Each map card also highlights the fastest record in its displayed map results. Existing map details remain one click away. - Trackmania sign-in exposes the linked public game login to the authenticated session response so the browser can match records without storing extra personal data.
v107Release date not documented

v107 · Activity bell and private match details

Archived original release notes · v107

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V107_ACTIVITY_BELL.md

# v107 · Activity bell and private match details - Replaced the standalone activity inbox with an accessible navigation bell dropdown. Unread notifications show a yellow bell and exact unread count; participants can review announcements and their registration/request status in place. - `/activity` now redirects to the home page. - Clarified the admin option that sends private server login, join password and platform instructions to confirmed participants with linked Discord accounts. Credentials remain private and are withheld when the selected EvoSC server or player identity is not confirmed. - Existing private guide delivery logs continue to show blocked DMs and provide the account inbox fallback.
v106Release date not documented

WARGRID v106 · player results and archive speed

Archived original release notes · v106

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V106_PLAYER_HISTORY_FIX.md

# WARGRID v106 · player results and archive speed This release includes v105's closed-event repair and v104's Public/Community Wars and Activity inbox. - Cancelled Wars remain terminal for lifecycle handling but no longer count as completed player results. - The empty cancelled JPLIVE33 placeholder is omitted from the public completed-War history and cannot be selected as the latest War on the Players or Maps pages. Fall Campaign becomes the latest completed result. - Cancelled placeholders no longer count toward player career totals or appear as a player's current War. - The history page now uses the API's public cache headers, refreshes its archive list every two minutes, and does not poll a completed War detail page. - Player and map pages reuse the cached completed-War response instead of forcing a new full history response every live snapshot refresh. No records or Wars are deleted. Cancelled Wars remain in the administrator's War archive and can still be queried by their direct API ID.
v105Release date not documented

WARGRID v105 · completed event cleanup

Archived original release notes · v105

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V105_STALE_EVENT_FIX.md

# WARGRID v105 · completed event cleanup This release includes v104's War lifecycle fixes, Public/Community admission, and personal Activity inbox. - The additive MySQL schema now closes and archives the confirmed completed `Official Campaign War` record from the supplied production backup (event ID 3, scheduled for 2026-10-01 18:00 Zurich). - The repair only applies to that exact ID, name, scheduled time, and unfinished status. It is safe to run again. - Registration and join-request rows are retained. The event remains available through the completed-event history, while the homepage and registration flow stop presenting it as upcoming. - `npm run db:migrate` applies this repair after adding the v104 lifecycle columns. No import, reset, or deletion of player data is involved. ## Included v104 features - DRAFT wars no longer appear as active competitions; completed wars remain in history. - Organizers can create Public Wars or Community Wars. Community entrants request approval, and only approved players count as registered. - The personal Activity page shows participation status and notices for war announcements, requests, approvals, rejections, withdrawals, and completed wars. The supplied site package includes the website, server build, database schema, and source. Preserve the existing `.env`, `.env.local`, `.wargrid-secrets.json`, host keys, and live database when installing it.
v104Release date not documented

WARGRID v104 – War-Endstatus, Community-Anfragen und Activity

Archived original release notes · v104

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V104_LIFECYCLE_COMMUNITY_ACTIVITY.md

# WARGRID v104 – War-Endstatus, Community-Anfragen und Activity TM2020/EvoSC-Website-Update auf Basis von v103. Enthält auch v102 (Controller-Pfadfehler und private Discord-Voices) sowie v103 (SYNC DELAYED bei alten Serverberichten). Die separate TMNF/XASECO-Instanz wurde nicht verändert. ## Was die Live-Prüfung gezeigt hat Am 9. Oktober 2026 um 21:13 Uhr Europe/Zurich meldeten die öffentlichen WARGRID-APIs: - Server `srv_acf4ef7baf053756`: War #27 „JPLIVE33 COMUNITY TEAM BATTLE“ ist **DRAFT**, 0 Spieler, 0 Maps, kein Start-/Endzeitpunkt. Diesen vorbereiteten War hat die alte Website fälschlich als „Live scoring“ angezeigt. - War #25 „Fall Campaign“ ist **FINISHED**, ebenso #22 „BETA | Team Marble Race VS Wizard Clan Money Gang“. Die Ergebnisse sind in der öffentlichen Historie vorhanden. - Das separate Website-Event #3 „Official Campaign War“ steht noch auf **captains_selected**, 23/30 Einträge, 7 freie Plätze und `lateEntryAvailable: true`. Das sind belegte öffentliche Leseabfragen zu diesem Zeitpunkt, keine Installation dieser Änderungen und keine Prüfung privater Admin-/Deployment-Einstellungen. Die Live-Antworten sind später veränderlich. ## Änderungen **War-Endstatus** - Public Active API, Network und Admin trennen DRAFT, laufende und abgeschlossene Wars. Ein Draft erhält keinen Live-Status. - Endstatus, vorhandener `finishedAt` oder eine abgelaufene unpausierte Endzeit beenden die Live-Präsentation. EvoSC-Datenbankzeiten ohne Zeitzonenangabe werden als UTC behandelt. - Leere ACTIVE-Platzhalter ohne Teilnehmer oder aktivierte Maps erscheinen nicht als spielbare Competition mit „Live scoring“. Das allein erzeugt keinen erfundenen Endstatus im Spiel. - Bestätigte Ergebnisse in der Historie verhindern, dass spätere alte ACTIVE-Berichte denselben War wieder aktiv anzeigen. - Die Admin-Auswahl greift bei fehlendem aktivem War nicht mehr auf alte Archiveinträge zurück. - Verknüpfte Events werden nach dem Endstatus ihres exakten Wars auf dem exakten Server geschlossen und archiviert. Ein vergangenes Planungsdatum allein beweist kein War-Ende. - **Finish event · keep history** schließt ein altes, ungebundenes Website-Event, bewahrt seine Anmeldungen/Anfragen und gibt den Planner für das nächste Event frei. - **Mark finished · keep history** in der War-Archivverwaltung kann einen noch als aktiv gemeldeten War auf der Website abschließen. Dieser explizite Website-Abschluss ist serverbezogen und überlebt spätere Heartbeats. Er sendet keinen EvoSC-Transition-Befehl. Ein später bestätigtes finales EvoSC-Ergebnis erhält Vorrang vor den vorläufigen Website-Ergebnissen. - Änderungen des Active-War-IDs werden auch bei unveränderter Snapshot-Revision nachgeladen. Abgeschlossene Events lassen sich unter `/upcoming?event=ID` schreibgeschützt öffnen. **Public War / Community War** - Auswahl beim Anlegen und Bearbeiten im Event-Planner. Vorhandene Events behalten standardmäßig **PUBLIC**. - Public: normale direkte Anmeldung bleibt verfügbar. - Community: individuelle Teilnahme-Anfrage mit Admin-Freigabe. Der normale Anmeldeweg und die Sammel-Teamanmeldung können diese Prüfung nicht umgehen. - Offene oder abgelehnte Anfragen reservieren keinen Platz. Erst eine erfolgreiche Freigabe erstellt den registrierten Teilnehmer; Kapazität und Mehrfachfreigaben werden auf dem Server geprüft. - Admins sehen Community-Anfragen im Players-Bereich und können sie annehmen oder ablehnen. Team-Zuweisung bleibt ein weiterer, separat bestätigter EvoSC-Schritt. **Activity** - Neuer Activity-Link mit ungelesenem Zähler in der Navigation und eine persönliche Seite unter `/activity`. - Aktueller eigener Teilnahmestatus und Hinweise für neue Wars, Anmeldung, offene Anfrage, Zusage, Ablehnung, Rückzug und War-Ende. Vorhandene Profil-/Map-/Team-Hinweise bleiben erhalten. - Eigene Anmeldungen vor diesem Update sind über den gespeicherten Teilnahmestatus sichtbar. Die Liste ist auf das angemeldete Konto beschränkt. - Einzelne Hinweise oder alle Hinweise können als gelesen markiert werden. Die Seite aktualisiert sich regelmäßig und beim erneuten Fokus. - Die neuen War-Hinweise sind Website-Mitteilungen. Diese Änderung versendet keine neuen automatischen E-Mails oder öffentlichen Discord-Ankündigungen. ## Installation und der konkrete alte Event 1. Das vollständige v104-Website-Paket hochladen, private Konfiguration und Daten erhalten: insbesondere `.env`, `.env.local`, `.wargrid-secrets.json`, Host-Keys und Datenbank. `dist/` und `server-build/` sind enthalten. 2. Den bestehenden Website-Prozess mit seinem vorhandenen Process Manager neu starten. Kein Spiel-/EvoSC-Neustart oder Modul-Update ist für diese Website-Funktionen erforderlich. Die enthaltenen Moduldateien bleiben unverändert bei Bridge 0.2.6 / Manager 0.17.2; laufende Produktionsversionen wurden hier nicht erneut geprüft. 3. **Admin → Wars → Events** öffnen. Wenn „Official Campaign War“ nicht automatisch geschlossen wurde, dieses Event mit **FINISH EVENT · KEEP HISTORY** abschließen. Damit enden die alte Anmeldung, Team-Lead-Planung und Late-Entry-Werbung; die 23 Einträge werden nicht gelöscht. 4. Die fertigen BETA-/Fall-Ergebnisse bleiben in History. Der neue JPLIVE33-Draft kann später in War Control mit Spielern und Maps vorbereitet und ausdrücklich gestartet werden. 5. Für das nächste Event **Public War** oder **Community War** auswählen. Community-Anfragen unter **Players → Community join requests** prüfen. Nutzer finden den eigenen Status unter **Activity**. Schema-Erweiterungen sind additiv: `event_kind` und `finished_at` im Event sowie `war_completion_overrides` für explizite Website-Abschlüsse. Runtime-Upgrades und `db/mysql-schema.sql` enthalten sie. Es gibt keinen Daten-Reset. ## Prüfung und Grenzen - TypeScript-Prüfung: bestanden. - Gezieltes ESLint für die neuen/geänderten Activity- und Lifecycle-Dateien: bestanden. - Produktions-Build für Website und Server: bestanden. - Neue Lifecycle-/Community-/Activity-/MySQL-Adapter-/Render-Regressionsprüfungen: 12 bestanden. - Vollständige Suite: 350 Tests, 337 bestanden, 5 fehlgeschlagen, 8 ausgelassen. - Unveränderter v102-Quellstand im selben Umfeld mit derselben Netzwerkfreigabe: 331 Tests, 318 bestanden, dieselben 5 Fehler, 8 ausgelassen. Alle zusätzlichen Tests bestehen. - Die fünf verbleibenden Fehler betreffen das Erstellen von Verknüpfungen/Hardlinks in der Windows-Sandbox, einschließlich zweier Runtime-Secret-Tests. Die ausgelassenen Prüfungen umfassen fehlende PHP-Runtime- und plattformabhängige Prüfungen. Diese Prüfungen sind dadurch nicht verifiziert. - Der lokale Browser konnte den separaten lokalen Testserver auch nach Netzwerkfreigabe nicht erreichen. Es gibt deshalb keine bestätigte visuelle Browserabnahme; die Account-Route wurde zusätzlich mit dem Produktions-Renderer geprüft. Die temporäre Vorschau arbeitete ausschließlich mit einer synthetischen In-Memory-Datenbank und wurde gestoppt. - Das lokale Windows-Build benötigte denselben nativen-realpath-Kompatibilitäts-Preload wie v103. Dieser liegt außerhalb des Releases; ausgelieferte Abhängigkeiten wurden dafür nicht verändert. Es wurden öffentliche Produktions-APIs gelesen, aber kein Remote-Deployment, keine Produktions-Datenbankänderung, kein SSH-Eingriff und keine Discord-Kanaländerung ausgeführt. Die Installation auf dem Live-Host steht noch aus.
v103Release date not documented

WARGRID v103 · Server population freshness

Archived original release notes · v103

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V103_SERVER_FRESHNESS.md

# WARGRID v103 · Server population freshness Website update for the TM2020 / EvoSC project, based on the supplied v102 release. Includes v102's controller-path diagnostics and private Discord voice handling. - Homepage, live War dashboard and older Current War panel now check the signed snapshot receipt time before displaying the server population. - A live report must be less than 150 seconds old, with at most 30 seconds of future clock skew. This matches the live player roster. `receivedAt` takes precedence; `generatedAt` is a fallback for legacy reports without receipt time. - Expired reports, cached snapshots and interrupted API transport show amber **SYNC DELAYED** without the previous player count. Successful API/revision reads alone cannot renew the game server's report. - The existing one-second display clocks update the label even without another snapshot. A new fresh heartbeat restores the population display. - Fresh zero-player reports still show **0 / 30 ONLINE**. Fresh explicit offline reports show **SERVER OFFLINE**. Missing population data shows **STATUS UNKNOWN**. - API.md, omitted by v102's packaging script, is included again. ## Local verification on 2026-10-09 - Targeted population/roster suite: 13 passed, 0 failed. - Website and server production build: successful. - Full suite: 338 tests, 324 passed, 6 failed, 8 skipped. - Unchanged prior source baseline in the same environment: 331 tests, 317 passed, the same 6 failures, 8 skipped. All seven added regression tests pass. - Remaining failures: the local node-agent HTTP test cannot connect to loopback (EACCES); three isolation tests cannot create sandboxed links (EPERM); two runtime-secret tests require a hard link that this sandbox cannot create. PHP runtime checks and platform-dependent checks are among the skips. These are not a successful verification of those features. - Build needed a local Windows native-realpath compatibility preload. It is outside the release and does not change shipped dependencies or application code. Test temporary files were placed within the workspace. ## Installation 1. Apply the website package to the existing WARGRID website, preserving `.env`, `.env.local`, `.wargrid-secrets.json`, host keys and other private runtime configuration/data. 2. Restart the existing website process with its existing process manager. Compiled `dist/` and `server-build/` are included. 3. Verify a fresh game-server heartbeat on the selected TM2020 server. If reports stop for 150 seconds, **Game server** should show **SYNC DELAYED**, then recover after the next fresh report. This change does not require a WarApiBridge/WarManager module update. Their bundled versions remain 0.2.6 / 0.17.2. The current production versions have not been rechecked here. No production website deployment, Discord channel mutation, SSH action or production database change was performed. The supplied 21 War participants, 23 event registrations and 0/30 server players describe three different counters; determining which two registrations lack an EvoSC assignment still requires the current event's **Captains & teams** status. This update does not infer or manufacture those assignments. The separate TMNF/XASECO project was not changed.
v102Release date not documented

WARGRID v102 · controller inspection and private voices

Archived original release notes · v102

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V102_CONTROLLER_VOICE.md

# WARGRID v102 · controller inspection and private voices This website release includes v101. PHP packages remain WarApiBridge 0.2.6 / WarManager 0.17.2; do not reinstall an already-current controller to enable these website changes. ## Controller inspection - Reports the exact invalid/missing path or missing `esc` / `vendor/autoload.php`, instead of one generic JavaScript stack. - Resolves a linked controller directory to its canonical real directory. Lifecycle, module paths, backups and API-identity checks all use that real directory. Links inside module/config trees remain forbidden. - Suggests only a nearby conventional controller directory when appropriate, but never automatically switches to another server or reinstalls Composer dependencies. - Missing paths/files fail before any service/Screen operation or module change. Existing identity verification, backups and rollback are preserved. - Dashboard stops showing “waiting for running-version confirmation” after the fresh signed heartbeat actually confirms both versions. ## Two private team voices - On a fresh, supported, ACTIVE EvoSC War with both non-overlapping rosters, voice sync prepares both A/B voices even if a team has zero linked Discord accounts. - `@everyone` cannot view or connect. The authenticated bot retains explicit access; only verified linked members receive player access. Discord's Administrator permission bypasses channel overwrites. - Later linking/unlinking and team changes reconcile access against the actual EvoSC roster. Typed names are never used as a permission target. Existing channel IDs are reused; do not delete the existing Team B voice. - Diagnostics distinguish a missing channel from missing player access. Channel creation does not prove that participants have linked accounts or joined voice. ## Your reported server The supplied dashboard snapshot reports fresh running versions Bridge 0.2.6 / Manager 0.17.2 on server `srv_acf4ef7baf053756`, War #25 (“Fall Campaign”). It shows 21 confirmed team drivers, separate from 23 “Official Campaign War” registrations. This is not a new live verification performed by this release. ## Install 1. Upload this website release while preserving `.env`, private host keys and `.wargrid-secrets.json`. It includes compiled website/server output. 2. Restart your existing WARGRID website process with its existing process manager. No game/EvoSC restart is needed for these fixes. 3. In the event's Discord settings, retain the correct selected server and press **Sync channels now**. Check A/B private voice counts and reported errors. Link players' Discord identities separately. 4. For a controller path failure, select the correct SSH host and `/home/tm/servers/server-7/controller` only if that directory actually contains both `esc` and `vendor/autoload.php`. Use **Inspect server** before any update. Never enter the modules subdirectory. No remote SSH, Discord guild writes or production database changes were performed during local verification. Actual guild permissions and channel creation still need a production sync.
v101Release date not documented

WARGRID v101 · private match guides and readiness

Archived original release notes · v101

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V101_PLAYER_JOURNEY.md

# WARGRID v101 · private match guides and readiness ## Installed website changes - Event planner → Captains & teams → **Personal match guides and start readiness**. Same square controls and responsive layout as the War planner. - Encrypted per-event/per-server join-password storage using the existing stable web-host secret (`WARGRID_RENTAL_BRIDGE_SECRET`). Admin GET responses expose only `passwordConfigured`. Preserve that secret and `.wargrid-secrets.json` across deployments. A password saved here does **not** change the actual Trackmania server password. - Detailed English private driver guide with team, captain, role, exact server, Zurich start, confirmed match status, password, PC/PS/Xbox joining instructions, rules and editable support/welcome text. Templates support `{player}`, `{team}`, `{war}`. - Verified Discord IDs only. Typed names do not unlock delivery. Persistent message IDs allow editing the existing guide after team, captain, password, schedule, online state or live-state changes. - Captains see a current missing/spectating/unknown-driver list in their private guide. Actual player presence comes from the selected server’s snapshot, never from registration counts. - Optional 30/10/5-minute reminders, deduplicated by exact event/server/War/player/start schedule. Only the current threshold is sent; no retroactive 30-minute backlog. Already-driving players, offline/unknown servers and ACTIVE Wars are not reminded. - Optional start gates: bound confirmed teams and captains, fresh source, online game server, reported module versions, planned start reached, stored password when required, verified Discord links and all players driving when enabled. A manual live-control action is still an intentional staff override, not governed by these automatic-start switches. - Optional live late entry. Both application and approval recheck the exact ACTIVE deployment, fresh online server, enabled assignment automation and free team capacity. Staff approval is still required. Accepted players are queued into the smaller free team, and receive their guide only after the signed EvoSC roster confirms membership. Existing registration remains closed; reaching capacity does not overwrite `started` with `full`. - Persistent private delivery ledger (no stored message bodies/passwords): state, recipient login, attempts, message/channel IDs, digest, retry deadline and sanitized error. Discord 429 pauses the batch across restarts. PATCH updates can be safely retried with backoff; ambiguous POST outcomes become `uncertain` rather than blindly duplicated. Explicit retry is available in the existing deployment controls. - Closed DMs get a non-secret website notification; it never includes the game-server password. - Removed/relinked players and ended/archived events get the bot’s existing guides redacted when Discord permits editing. This cannot erase screenshots, forwarded messages or credentials somebody already memorized. Rotate the **actual** server password if access must be revoked immediately. - Discord text/voice cleanup now requires a confirmed end for the exact server and War. A missing War, pause or stale source is not a cleanup signal. ## Setup order 1. Install the website release, preserving private environment files and encryption keys. Run `npm run db:migrate` with the existing database environment, then restart the existing website process. Do not replace its private configuration with a package example. 2. Ensure the selected server reports a fresh Bridge heartbeat, running Bridge/Manager versions, the game’s `online` state and `livePlayers` with `isSpectator` flags. Bundled modules remain Bridge **0.2.6** / Manager **0.17.2**; this release changes the website workflow, not PHP module versions. 3. Link participant Discord identities. A typed Discord name is not an identity verification. 4. Create an empty EvoSC draft, close normal event registration and select captains. Save deployment settings with DMs enabled. 5. Save the private match guide. Enter the existing game-server password, or explicitly declare a public server; configure support and readiness gates. 6. **Deploy teams before the planned start** if you want 30/10/5-minute reminders. “Deploy at the start time” cannot send pre-start guides to teams that do not yet exist. Enable automatic start with readiness gates to hold the already-deployed draft until the planned time and configured requirements pass. 7. Enable team text/voice and public match announcements in the existing Discord settings. Those channels still use the confirmed ACTIVE roster and global guild/category settings; they are not created from signup previews. 8. Test one PC and one console player on a non-production draft. Check private guide delivery, a changed password, missing-driver status, manual console helper invite, actual join detection and an actual EvoSC start/end acknowledgment before enabling unattended production use. ## State contract `APPLICATION_PENDING → STAFF_ACCEPTED → TEAM_COMMAND_QUEUED → EVOSC_TEAM_CONFIRMED → PRIVATE_GUIDE → DRIVER_PRESENT → START_CHECKS_PASS → START_COMMAND_QUEUED → EVOSC_ACTIVE → EVOSC_FINISHED → DELAYED_CHANNEL_CLEANUP` None of the intermediate website states is a substitute for an EvoSC acknowledgment. A Discord message failure does not undo admission. A driver presence error does not invent readiness. ## Complete requested lifecycle: honest coverage | Requirement group | This build | |---|---| | War ID, selected server, captains, real roster, version diagnostics | Existing implementation + new event/server binding checks. | | Private A/B text and voice channels/access reconciliation | Existing ACTIVE-only workflow; hardened confirmed-end cleanup. | | New player, approval, team deployment and personal welcome | Existing atomic approval/assignment plus new detailed updateable private guide. | | Server password, start time, team/captain changes | Encrypted private configuration and guide updates; actual game password rotation remains an operator action. | | Reminders, missing-driver list, start gates, live-state transition | Added here. A game login connected without a spectator flag is `connected`, not falsely `driving`. | | Late entry during an ongoing match | Added, opt-in, exact fresh ACTIVE War and free slot required. | | Console invitation request, helper claim, expiry, join confirmation | Existing bridge/helper workflow; the actual in-game invitation is still sent by a connected player. | | Closed DMs, rate limiting, restart state, uncertain delivery | Persistent ledger/backoff/non-secret fallback + explicit review/retry. | | Registration/captain/record/result announcements | Existing configurable Discord announcement workflow. | | Automatic pre-war category + central pinned war-info message | **Not added in v101**. Current private channels remain ACTIVE-only; driver guides are the new central private source per person. | | Staff-only/captain-only channel roles and captain reserve-management commands | **Not added in v101**. Existing staff/admin and signed late-entry review permissions remain in effect. | | Actual Discord voice presence (e.g. 4/5 ready) | **Not available from the REST-only bot**. Requires a deployed Discord Gateway consumer and appropriate state tracking; never infer it from channel permissions. | | Wrong actual in-game team detection/escalation | **Not available in the current player snapshot**. War roster membership is available; live game team selection is not. | | Per-user locale, all template variants, unified lifecycle event bus | English match guides + existing templates/engines. **Not a complete event-bus or multilingual rebuild.** | | Central results attachment and read-only-channel phase | Existing result announcements and delayed cleanup; **no new pinned-results/read-only phase here**. | | Fully automatic game invites and password installation/rotation | **Not claimed.** No supported game-invite API was introduced; this build stores the operator’s existing join password securely. | The 39-point attachment is a target specification, not a statement that all 39 points have passed live integration tests. Production Discord permissions, real game invites and fresh installed module heartbeats require a real staged run.
v100Release date not documented

WARGRID v100 · Approved drivers and module release notes

Archived original release notes · v100

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V100_APPROVED_TEAMS.md

# WARGRID v100 · Approved drivers and module release notes ## Event approval → automatic A/B assignment Accepted event late-entry requests are stored in a durable automatic-assignment queue. This is not global account verification: only actual admitted event entries are eligible. Enable team deployment under **Wars & events → Plan War & registration → Captains & teams**, select the correct server and enable **Automatically assign approved late entries**. Existing enabled deployments default this new switch to on. The initial teams must already be confirmed against the deployment’s exact War. Approval queues immediately when that War has a fresh signed heartbeat; the background check reconciles approvals and retries every 15 seconds. The smaller team with an available slot is selected (equal size: A). Existing players and captains are not reshuffled. The existing signed, version-checked `add-player` command is used. Sending, applying and confirmed roster membership are different states. Assignments are serialized through receipt AND roster confirmation. Wrong servers/Wars, stale heartbeats, overlapping team identifiers, unknown sides and full teams never produce a fabricated success. Restart reconciliation recovers committed admissions whose immediate dispatch failed. Up to three rejected/expired command attempts are permitted against refreshed state; interrupted or missing receipts require inspection. Removing or archiving an entry stops further assignment. Pending registered approvals block optional auto-start until their actual team membership is confirmed. Verified Discord users receive their confirmed team through the existing idempotent DM workflow; typed Discord names do not grant voice access. The existing channel automation follows confirmed rosters, not pending requests. Admin queue rows show player, target side, command ID, state and actionable reason. The MySQL adapter explicitly executes the new schema; `db/mysql-schema.sql` also includes it. Admission commits are preserved if later bot delivery fails. Already-started/ended events retain their existing admission restrictions; this release does not bypass review policy. ## Module updater · what changes The updater always displays detected → bundled versions per module, known upgrade changes and current capabilities. Unknown history is labeled unknown; matching packages do not claim new features. Newer detected modules warn against downgrading. Inspected disk metadata is kept separate from fresh signed running-version confirmation. Bundled **WarApiBridge 0.2.6** and **WarManager 0.17.2** are unchanged. This website feature uses Manager’s existing participant command. The comparison explains Bridge’s known 0.2.5 → 0.2.6 console-invite workflow; no earlier Manager release differences are invented. ZIPs were checked byte-for-byte against all module sources: Bridge 17 files, Manager 43 files. Installation: update the website from this full package, build if needed and restart its existing process. Use **Inspect server** for the actual EvoSC layout (`controller/core/Modules` or `controller/modules`) before updating modules. Preserve private `controller/config/war-api-bridge.config.json` and API identity. Never install a duplicate module directory. The updater preserves the existing Screen/systemd/manual launch choice and reports its backup/logs. ## Verification boundaries Local tests exercise approval → queue → command receipt → signed roster, serialization, stale/wrong targets, capacity, recovery, DMs, auto-start and module comparisons. TypeScript and the production build are checked. PHP-dependent tests are skipped when PHP is unavailable. No production SSH update, game-server transition, database write or real Discord delivery is performed by this release’s QA. Production running versions still require your server’s fresh signed heartbeat. The full local suite reports 312 tests: 306 passed, 6 PHP-dependent tests skipped, 0 failed. The actual admin updater and approval queue were inspected in the browser using synthetic local API responses. Saved configuration equality is compared by field value, not JSON property order, so a server-normalized response cannot falsely mark the form unsaved.
v99Release date not documented

WARGRID v99 · War planner refresh

Archived original release notes · v99

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V99_DISCORD_REFRESH.md

# WARGRID v99 · War planner refresh ## Fixed - Team diagnostics and match-post status no longer fail as one unit. A successful team read is shown even when the announcement endpoint fails, and vice versa. - Refresh now has a visible loading state, per-section last-successful query times and errors directly beside the controls. These times are website reads, not invented EvoSC heartbeat times. - Refresh/poll requests are authenticated GETs with no-store caching, a 12-second timeout and one shared in-flight read. A refresh does not send a Discord message or start/stop a War. - Unsaved edits survive manual refresh, periodic refresh and failed reads. Initial section loading is independent. Old poll responses cannot overwrite post-save reloads. - Save/sync actions are blocked while refresh is pending or settings could not be loaded. Retry remains available; partial failures retain clearly labelled last-successful data. - Match-post checks display structured failed-delivery counts instead of reporting a failed send as an empty queue. Existing failed messages retain the retry behavior. ## Verification - Full suite: 303 tests, 297 passed, 6 optional runtime tests skipped, 0 failed. TypeScript and production build passed. - Added runtime tests for coalescing, independent API errors, session expiry, proxy HTML, timeout/recovery, cancelled mounts, post-save reads and failed-delivery reporting. - Synthetic browser checks verified REFRESHING, changing status/query times, retained unsaved edits, a deliberately failing announcement endpoint, disabled mutations during failure and recovery after the endpoint is restored. No browser console errors were recorded. - Narrow-browser check: actual viewport 601px, document scroll width 591px; no horizontal page overflow. The browser did not honor the requested 390px width, so this batch does not claim a new 390px test. - No production database, bot channels, messages or running EvoSC process were changed. Real Discord permission/network checks and a production end-to-end run remain necessary. ## Install This complete package includes v97 and v98. Preserve production .env, uploads and private EvoSC config. Run npm run db:migrate and restart the website using its existing process manager; then reload the browser. No EvoSC module-version bump is required for this UI/status fix. In Admin > Wars & events > Plan War & registration > Discord & notices, Refresh reads current stored state. It cannot manufacture an active War or a new signed EvoSC heartbeat. Automatic text/voice sync still requires a fresh ACTIVE confirmed War, both confirmed rosters and appropriate bot permissions; private member access requires verified Discord links.
v98Release date not documented

WARGRID v98 · Selected-source Discord diagnostics

Archived original release notes · v98

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V98_DISCORD_DIAGNOSTICS.md

# WARGRID v98 · Selected-source Discord diagnostics ## Included - War planner diagnostics distinguish a missing heartbeat, delayed/invalid snapshot, unsupported bridge, no current War, non-ACTIVE War, missing team roster and overlapping team identities. - Every registered source is inspected, including the idle `primary` placeholder. A ready source can be selected explicitly in the form; settings must be saved before syncing. No server identity or API key is changed automatically. - Shows the confirmed War, last snapshot, reported running module versions, Team A/B roster sizes and verified-link counts. It does not expose Discord user IDs in this diagnostic response. - Separates private text and voice channels and scopes their counts to the selected source and current War. Both sides must exist before the readiness strip says channels are created. - Voice and text creation now share the same three-minute freshness check and both-roster gate. Invalid/future timestamps and overlapping player assignments fail closed. Cleanup also rejects invalid timestamps. - Diagnostic refresh every 15 seconds keeps unsaved edits. Initial settings prefer the saved voice source for voice-only automation; its sync button no longer requires a disabled text source. - Mobile navigation links that share a destination now have distinct React keys. ## Installation This complete release includes v97 Discord admission review. Preserve production `.env`, uploads and private EvoSC configuration when deploying. Run `npm run db:migrate`, then restart the website using its existing process manager. The built app and Node server are included. No EvoSC module-version change is needed for this batch. Open Admin > Wars & events > Plan War & registration > Discord & notices. Check the selected source and exact blocker. Choose the source whose signed EvoSC snapshot actually confirms the game War; save settings before Sync. An event's date and captain draw do not confirm that game War. New Discord review buttons still require explicit reviewer roles and are disabled by default. ## Verification and limits - Full test suite: 294 tests; 288 passed, 6 optional runtime tests skipped, no failures. TypeScript and production build passed. - Synthetic browser checks verified source selection, preserved edits on refresh, sync locked until save and the specific voice-link blocker. The new diagnostic panel has no horizontal overflow at 390px. - No production database, Discord channel or running EvoSC state was changed during local checks. A configured token is not proof of bot membership or permissions; channel sync performs those actual API checks. - The screenshot is a local synthetic fixture, not the production server state. Source diagnostics identify missing inputs; they do not force-start a War or invent team assignments.
v97Release date not documented

WARGRID v97 · Discord admission review

Archived original release notes · v97

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V97_DISCORD_APPROVALS.md

# WARGRID v97 · Discord admission review ## Included - Native Approve & add / Reject buttons in new private Late Entry notifications. Explicit reviewer roles are separate from ping roles; Discord review is off by default. - Signed interactions are acknowledged immediately, with a private decision result. Application, guild, channel, message ID, reviewer role and application attempt are checked before any admission change. - Panel and Discord share one review path. Node/MySQL uses an event-row lock and a transaction; D1 uses its atomic batch. Full, ended, already-reviewed and outdated applications cannot be approved. - Successful decisions disable the original message's review buttons. Failed message refreshes are recorded without undoing admission. - War planner delivery history shows current-attempt notifications and safe delivery errors. Refresh keeps unsaved settings. - `/event` and `/join` no longer treat a passed planning time as proof that EvoSC started the match. - Deferred response retries respect Discord's advertised rate limit; long delays stop with a diagnostic rather than retrying early. ## Activate 1. Install this website release while preserving the production `.env`, uploads and private module configuration. This update does not change EvoSC module versions or API identity. 2. Run `npm run db:migrate`, then restart the website using its existing process manager. Rebuilt `dist/` and `server-build/` are included. 3. Configure the correct Discord application public key and the existing signed interactions endpoint. Existing slash commands do not need replacement for message buttons. 4. In Admin > Wars & events > Plan War & registration, enable Late Entry notifications, select the private channel, then optionally enable Discord review and enter explicit reviewer role IDs. The configured Discord server is required; `@everyone` is not an eligible reviewer role. 5. The bot needs View Channel, Send Messages and Embed Links. New request messages include buttons after this setting is saved; old requests remain reviewable in Admin. ## Verification and limits - TypeScript passed. Full automated suite: 287 tests, 281 passed, 6 optional runtime tests skipped, no failures. - Production build passed. Local synthetic browser checks at desktop and 390px mobile verified delivery rows, no horizontal overflow, square controls, preserved unsaved settings on refresh and the application review deep link. - Tests cover signed/unsigned requests, role and channel boundaries, stale buttons, repeated decisions, concurrent review, transaction rollback, rejected reapplication, full events, delivery failures and long rate limits. - MySQL transaction lifecycle is tested with a mocked connection; real production MySQL, Discord delivery, reverse proxy and EvoSC were not exercised by these local tests. - Message refresh failures remain visible in delivery history and need staff attention. Notifications are not an exactly-once distributed outbox. - This package is a local release, not a production deployment. Sites publishing remains stopped.
v96Release date not documented

WARGRID v96 · Discord match flow and delivery recovery

Archived original release notes · v96

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V96_DISCORD_FLOW.md

# WARGRID v96 · Discord match flow and delivery recovery ## Included - Native yellow Discord match embeds with actual announcement titles, timestamps and safe WARGRID link buttons for registration, rosters, captains, records and results. These are real API payloads, not mockup screenshots. - Stable message nonces with `enforce_nonce` for retries. Discord's nonce deduplication is short-lived, not a guarantee of permanent exactly-once delivery. - Shared message sender respects route/global HTTP 429 cooldowns and exhausted route headers without blocking requests with sleep. In-memory cooldowns reset when the web process restarts. - Late-entry transient delivery failures (429, 5xx and network failures) retry during the Node minute check. Current request status and application attempt must still match. 403 permission failures require correction and explicit staff retry, not automatic spam. - Staff-only **RETRY DISCORD NOTICE** action. It does not admit/reject a player or reserve a slot. Stale application attempts are rejected; sent notifications are not resent. Retry preserves the original reviewer attribution. - Blocked team DMs also create a private account-inbox notice with the confirmed team and War link, once per assignment. This does not subscribe anyone to email. - War planner readiness strip: event registration, event captains, fresh selected-server EvoSC state, and existing private text channels. A schedule or captain selection never implies that the game is live. - **REFRESH STATUS** and **CHECK & RETRY MATCH POSTS** controls. Unsaved settings block these checks. Neither starts/stops a War. ## Install Replace application files with this package using your existing deployment workflow. Preserve `.env`, encrypted settings and all private server identity/configuration files. Restart the WARGRID Node web process so the new worker timers are loaded. Prebuilt `dist/` and `server-build/` are included; no new EvoSC module is required for this pass. Configure Discord bot credentials, announcement channel, team channel category and automation switches in Admin. The bot needs View Channel, Send Messages and Embed Links for messages, plus the existing channel-management permissions for private teams. A 403 is not fixed by retrying without repairing access. ## Verification and limits Local tests use fake Discord responses, including 403 and 429; they do not send real messages. A production end-to-end Discord/EvoSC run still needs verification after installation. Native Discord controls follow Discord's own appearance; arbitrary yellow button CSS is not supported. Existing roster announcements compare snapshots once per minute, not an immutable event outbox. Changes that occur and revert between checks may not be announced. This release does not claim every historical event is replayed, and does not add approval buttons to Discord; review remains in the authenticated WARGRID panel. The stopped Sites publication is not resumed by this release.
v95Release date not documented

WARGRID v95 — focused event planner

Archived original release notes · v95

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V95_PLANNER.md

# WARGRID v95 — focused event planner - One workspace at a time: Event, Players, Captains & teams, Discord & notices. - Pending late-entry requests are marked on the Players tab. Discord review links still open and scroll directly to the request list. - Reset, archive and delete are separated from everyday registration controls. - Forms remain mounted when switching tabs, preserving unsaved edits and deployment status polling. - Square controls, visible focus states and a two-column tab layout on mobile. - No changes to deployment prerequisites, admin authorization, Discord permissions or server commands. This is a local UI update, not a production deployment or security audit.
v94Release date not documented

WARGRID v94 · automatic teams and Discord assignment DMs

Archived original release notes · v94

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V94_TEAM_DEPLOYMENT.md

# WARGRID v94 · automatic teams and Discord assignment DMs Includes the v93 rejected-application fix: rejected users can edit and apply again. Each attempt is reviewed separately and receives its own Late Entry notification. ## Install Upload the release to the existing WARGRID app directory. Preserve private environment files and uploaded media. Run `npm run db:migrate`, then restart the existing website process. The ZIP includes the production build. No EvoSC package change is needed for a server already running WarManager 0.17.2 and WarApiBridge 0.2.6. ## Configure in Admin → Wars & events → Plan War & registration 1. Save the event, real Trackmania logins and captain candidates. If two captains have been selected, their A/B sides are preserved. Otherwise the deployment draws two candidates. 2. In Live War control, create an **empty draft** on the game server with sufficient capacity and configure its map pool. Existing live or occupied Wars cannot be overwritten by this automation. 3. Close event registration. 4. In **Automatic teams · A & B**, choose that game server and the balancing source. Enable deployment. Save the settings. 5. Click **Deploy now**, or arm scheduled deployment before a future Zurich start time. Scheduled checks run every 15 seconds while the website process is running. If the event date changes, save the deployment again. The job stores its draft and command so process restarts do not redraw or duplicate the command. 6. Optionally enable **Start the War after EvoSC confirms both teams**. This queues a separate start command after the exact roster and captains have been confirmed; the dashboard only reports ACTIVE after a signed active heartbeat. A failed start remains visible and can be resolved in War control. 7. Enable team DMs. Every driver with a verified Discord link receives a yellow WARGRID embed with team, captain, role, Zurich planning date and a link to their server's War. A queued draft alone never sends these messages. 8. Configure text/voice channels in the following Discord section; the existing channel automation creates those channels once the chosen server confirms an ACTIVE War with both rosters. The bot then posts the driver lists and updates access. Guild, category and channel permissions still have to be configured for the bot. ## Delivery and recovery - Saved deployment and per-driver delivery results are visible in the War planner and survive website restarts. - Typed Discord names are never used to guess recipients. Players must link their Discord identities. A later verified link becomes eligible on the next check. - Unchanged confirmed assignments are not resent. A side change or newly linked recipient is handled separately. Messages suppress role/name mention injection. - DMs are delivered in batches of up to eight per check; Discord 429 responses pause requests and keep the remaining queue for a later check. - HTTP 403 / closed DMs are shown as BLOCKED. Fix the player's Discord access/settings, then use **Retry failed DMs**. A failed DM never undoes the assigned team. - Network errors or an interrupted send become UNCERTAIN rather than silently claiming success or blindly sending again. Check the recipient's messages before explicitly retrying. Discord's nonce protection is short-lived, so no system can promise exactly-once delivery across an arbitrary crash plus an explicit later retry. - Only current members of the same signed game War are messaged. Stale heartbeats, other servers and ended Wars do not trigger delivery. - The public website exposes neither the deployment controls nor private Discord delivery details. Admin authentication protects the API. New additive tables: `war_team_deployments` and `discord_team_assignment_notices`. Existing server identity, data, module paths and credentials remain in place. Protocol references: [Discord Create DM](https://github.com/discord/discord-api-docs/blob/main/developers/resources/user.mdx) and [Discord Create Message / nonce](https://github.com/discord/discord-api-docs/blob/main/developers/resources/message.mdx). These are locally verified changes. Uploading the ZIP and configuring the event on the production host are still required; this task has not sent real Discord messages or deployed to wargrid.de.
v93Release date not documented

WARGRID v93 · Reapply after a rejected late-entry request

Archived original release notes · v93

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V93_REAPPLY.md

# WARGRID v93 · Reapply after a rejected late-entry request - REJECTED no longer permanently disables the application form. When late entry is available, **APPLY AGAIN** lets the applicant update their details and request a new review. - Reapplying changes the owned request to PENDING and increments its application attempt. No event slot is reserved. PENDING/ACCEPTED requests still cannot be duplicated. Full, started, archived and open-registration states retain their normal rules. - A rejected request can be reopened only by its original browser management token, its owning signed-in account, or a verified Trackmania identity for that login. Knowing a login alone cannot take over someone else's request. Guest users must use the original browser; new tokens are rotated after reapplication. - A conditional UPDATE admits only one retry when two submissions arrive together. Admin review actions include the attempt number; stale acceptance/rejection clicks cannot apply to a newer attempt. - Discord notice IDs and nonces are attempt-scoped. Each genuinely resubmitted application gets one new admin-role notification; polling does not resend it. Approval/rejection messages remain unpinged. Previous notice rows and admin review audit entries are retained. This does not bypass Discord's permissions or repair HTTP 403 by itself. - The admin list shows the current attempt and its own delivery status, not a previous attempt's failure. All public status queries remain browser/account-scoped. ## Installation Install in the existing website app directory while preserving `.env`, private settings, uploads and API identities. Run **`npm run db:migrate`**, then restart the existing website process. The release includes production app/server bundles and v91/v92 functionality. No EvoSC module update is required. The migration adds `application_attempt` with default 1 to `upcoming_join_requests` and `late_entry_discord_notifications`. Existing applications and deliveries remain attempt 1. Runtime initialization can add these columns too; on hosts without ALTER privileges the DB administrator must run the migration first. Late-entry channel and both admin roles remain configured through the v92 preset. Do not resubmit somebody else's request or delete rejected requests to make retries work. Local tests cover owner authorization, token rotation, duplicate/concurrent retries, free-slot counts, closed/full/ended event rules, stale review clicks and one notification per attempt. Real SMTP/Discord delivery and production deployment are not performed by these tests.
v92Release date not documented

WARGRID v92 · Stable live console & late-entry admin pings

Archived original release notes · v92

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V92_CONSOLE_LATE_ENTRY.md

# WARGRID v92 · Stable live console & late-entry admin pings ## Live console - The title and map link now use the signed EvoSC current-map identity, never the last finish in the bridge history or a stored database record. - Only that current map's lines appear. A map switch clears the previous map's lines. Returning to a map ignores earlier visits in the bridge's ring buffer. Server/War changes reset the scope as well. - Finish and Local Record companion callbacks become one coloured line. Real later runs with the same time remain visible; stored DB baselines do not duplicate observed finishes. Alias IDs remain tracked across polling. - The API rejects mismatched old-map DB baselines and no longer exposes mixed-map history through this console endpoint. It continues to use signed server identity and no-store responses. Database access remains private. ## Late-entry destination The user-selected channel is **late-entry-requests**, ID `1555650841996828762`. New requests ping only these two roles: - `1539694014662713344` - `1553759518406611055` Admin → Wars & events → Plan War & registration → LATE ENTRY ADMIN NOTIFICATIONS → **USE LATE-ENTRY-REQUESTS + ADMIN ROLES**, then **SAVE LATE-ENTRY SETTINGS**. The preset does not silently overwrite existing saved settings until you save. Channel and role IDs remain editable. Alternatively, on the WARGRID **web host**, after installing and migrating: ```sh node scripts/configure-late-entry-v92.mjs --apply ``` Use Node 22.18+ or Node 24 for this source setup script. It uses the website's existing MySQL settings and updates only the six late-entry settings in a transaction. Without `--apply` it only prints the preset; it does not connect or send anything. This is not an EvoSC command. New requests post a yellow event/application embed, player details, current occupancy, status and a direct button to the admin request list. Approvals and rejections post without another role ping. Each request/decision is claimed once; refreshes do not resend. Existing requests are not announced retroactively. Bot or Discord failure does not undo an application. Keep this channel private. The bot needs View Channel, Send Messages and Embed Links. For role notifications, the target roles must be mentionable, or the bot needs permission to mention them. `allowed_mentions` allows only the specified roles, never @everyone or user pings. Source: [Discord message documentation](https://github.com/discord/discord-api-docs/blob/main/developers/resources/message.mdx). ## Install and verify Install the package in the existing website app directory. Preserve `.env`, private settings, user uploads and API identities. Run `npm run db:migrate`, configure the preset above and restart the existing website process. Both production bundles are included. No EvoSC module update is required: WarApiBridge remains 0.2.6, WarManager 0.17.2. v91 password reset and late-entry approval are included. Local tests cover mixed maps, returning to previous maps, stale DB baselines, finish/record duplication, repeated polling, real later equal-time runs and explicit role-only notification payloads. Real Discord delivery, live EvoSC behavior and deployment must still be checked on the production host. No real bot messages, credentials or game changes are used in the tests.
v91Release date not documented

WARGRID v91 · Late entry approval & account recovery

Archived original release notes · v91

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V91_RECOVERY_LATE_ENTRY.md

# WARGRID v91 · Late entry approval & account recovery ## Event flow - An explicitly closed event with free slots accepts late-entry applications, even after its planned Zurich start time. The date never pretends that EvoSC has started a game War. - The homepage keeps the confirmed live War and adds a separate OPEN EVENT SLOTS section below it. Its APPLY FOR APPROVAL link opens `/upcoming#player-registration`. - Applications are PENDING and reserve no slot. A disabled APPLICATION PENDING button and browser/account-scoped polling show the applicant's private status. Duplicate Trackmania logins cannot create another request for the same event. - Full events show WAR FULL without an apply form. Server-side checks reject requests and approvals that would exceed capacity. Archived/explicitly ended events do not accept applications. - Admin → Wars & events → Plan War & registration shows LATE ENTRY REQUESTS. ACCEPT & ADD inserts a CONFIRMED participant and updates occupancy; REJECT inserts nobody. Menu/tab badges and request lists refresh every five seconds without overwriting unsaved form edits. ## Private Discord admin notifications Configure under Admin → Wars & events → Plan War & registration → LATE ENTRY ADMIN NOTIFICATIONS. Choose a **private admin text channel**, enable notifications, select new/approved/rejected notices and save. The bot token is configured through the existing Discord bot setup, never entered in the channel form. The bot needs View Channel, Send Messages and Embed Links in that channel. The notices are yellow WARGRID embeds with player/login/platform/Discord contact, actual event occupancy, decision, reviewer and a direct admin link. They suppress mentions. Persistent per-request/per-decision notification state and a conditional claim prevent refresh/worker duplication; Discord nonces provide an additional short-window safeguard. The application/decision is saved before Discord delivery. HTTP 403/5xx, missing configuration or network failure do not discard applications or undo an approval. The admin row reports delivery failure and the server log contains only a bounded status, never credentials or Discord response bodies. Failed/uncertain deliveries are **not automatically retried every minute**; fix bot permissions/settings before creating further requests. Existing requests are not broadcast retroactively when enabling notifications. Late admission is to the website event roster. It does not silently alter the teams of an already running EvoSC War. Use the existing confirmed draft/bridge workflow for game-team changes. ## Password recovery - `/login` and the inline event login link to `/forgot-password`. - Add and confirm an email under Profile → Notifications & email → Recovery & email settings. Existing accounts without a verified email cannot recover passwords by a typed, unverified address. Newsletter subscription is not required. - A username/game-login + verified email requests a secure one-use link valid for 30 minutes. Unknown, unverified and matching accounts receive the same public response. Requests/redemptions are rate limited. - `/reset-password` reads its token from the URL fragment and removes that fragment from browser history. Reset routes use no-referrer metadata and API responses are not cached. - Tokens are hashed in the reset table. Redemption is conditional on the current password version, unchanged verified email and unexpired unused token. The mail queue necessarily retains the private delivery link until processed; protect the website DB, backups and SMTP credentials. - A successful reset changes the PBKDF2 password, signs out existing WARGRID sessions and queues a password-change notice. The user then signs in normally. Trackmania OAuth sign-in remains separate. - SMTP must be configured in Admin → Email & notifications; disabled delivery reports unavailable instead of pretending to send. Delivery uses the existing mail queue, checked every minute. ## Installation 1. Back up your existing website and database. Install this release in the existing WARGRID app directory. Keep `.env`, `.wargrid-*` private settings/secrets, stored media and existing server identities. 2. Run `npm run db:migrate` using the existing website database configuration, then restart the **existing** website process in your panel/Screen/systemd manager. Do not invent a new service name. The package includes production `dist/` and `server-build/`; Node 22+ can rebuild with `npm run build`. 3. The runtime also creates the three additive tables `wargrid_password_resets`, `password_reset_limits` and `late_entry_discord_notifications` on MySQL/SQLite. If the web DB user lacks CREATE privileges, have your DB administrator apply their definitions from `db/mysql-schema.sql` before using the new flows. No data is deleted or API identity rotated. 4. Configure and save the private Discord notification channel and email delivery as described above. Perform one real application/approval and one verified-email reset acceptance test after deployment. No EvoSC update is required for these web features. Bundled modules remain WarApiBridge 0.2.6 and WarManager 0.17.2 from v90. ## Verification boundary Real SQLite tests cover past planned times, capacity, duplicate applications, private ownership, approve/reject, concurrent last-slot admission, reset expiry/replay/concurrent redemption/email/password changes/session deletion, disabled SMTP and Discord failures. MySQL-adapter tests verify additive CREATE and SQL translation, not a live production MariaDB connection. UI fixtures contain synthetic data only; no real mail, Discord posts, credentials or game-server mutations are used. Production deployment and delivery remain to be verified on the host.
v90Release date not documented

WARGRID v90 · console invitation requests

Archived original release notes · v90

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V90_CONSOLE_REQUESTS.md

# WARGRID v90 · console invitation requests Website request → selected EvoSC server → small clickable ManiaLink → helper takes request → helper sends the actual Trackmania invitation manually. ## Included - PlayStation / Xbox request buttons on the live server panel, plus the War page form. - Explicit Ubisoft / Trackmania name, even when the WARGRID account name differs. - Selected-server delivery for registered bridges, not just the legacy primary server. - Private guest cookie or authenticated account ownership; polling survives reload. - Five-minute expiry, server freshness/protocol checks, bounded retries and rate limits. - Delivery is recorded only after successful template rendering and game-server RPC acceptance. Lost responses retry safely. - Square yellow EvoSC widget integrated with the controller's widget grid. “I’ll invite”, dismiss and release actions use native ManiaLink callbacks. A claim is not a game invitation. - Helper identity and expiry countdown on the website. Helper disconnection releases the request. Verified OAuth game logins can be marked joined only when actually observed on the selected server. - Timer updates do not remount the game widget every second. - Additive MySQL / SQLite-compatible tables are created by the runtime, including existing MySQL hosts. Legacy request tables are not deleted. - WarApiBridge 0.2.6; WarManager remains 0.17.2. Bundled downloads and updater confirmation use these versions. ## Installation 1. Back up your website files and database. Install this web release in the existing app directory, preserving `.env` and private upload data. Restart the existing website process using your panel / existing process manager. The release includes production `dist/` and `server-build/`; Node 22+ can rebuild with `npm run build` if needed. 2. Admin → API & bridge → Inspect server → Update both modules. Existing identity and `controller/config/war-api-bridge.config.json` must remain unchanged. Alternatively update **only the existing** WarApiBridge directory under `controller/core/Modules/WarApiBridge` or `controller/modules/WarApiBridge`; do not create a duplicate. Restart EvoSC with the existing Screen / panel / systemd method. 3. Wait for a fresh signed heartbeat reporting **WarApiBridge 0.2.6**. The snapshot must report `consoleInviteProtocol: 2`; older modules show “Bridge update required” instead of pretending delivery works. 4. Open the live server panel → PlayStation / Xbox → enter the Ubisoft name → Request in-game invite. A connected player takes the widget and sends the invitation from Trackmania. The console player accepts it in game. The web database user needs CREATE permissions for the two new tables, or an administrator must create them from `db/mysql-schema.sql` before use. No credentials or API identities are changed. ## Automation boundary Queueing, delivery retries, widget display, expiry, helper tracking and verified join observation are automated. This release does **not** claim to send Ubisoft / Trackmania game invitations automatically: no suitable supported invitation method was verified in the current server/web integration. It does not simulate console joining or automate another player's private game client. ## Verification The source includes real SQLite request/acknowledgement tests, MySQL adapter regression checks and executable PHP ManiaLink callback tests. Local UI previews simulate delivery and a helper solely for responsive layout testing. Production deployment, real RPC rendering and an actual PlayStation / Xbox join still require a live acceptance test with one connected player and one console player.
v89Release date not documented

WARGRID v89 — correction: console joins through player invitations

Archived original release notes · v89

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V89_CONSOLE_INVITES.md

# WARGRID v89 — correction: console joins through player invitations Supersedes the v88 console-access wording. The blanket claim that console players cannot join the dedicated server was incorrect for WARGRID's invitation workflow. The existing WARGRID Rules page already describes access through a player who is connected to the server. The PlayStation and Xbox buttons now open platform-specific joining guides: contact a connected player, receive their in-game Trackmania invitation and accept it on console. The website does not claim to send that game invitation itself. The PC protocol link is unchanged. No automatic invite or server migration is implemented by this patch. Reference: https://wargrid.de/rules (Console server access). Install the prebuilt update over the existing WARGRID app after backing it up. Preserve your .env files, database, private module configuration and uploaded files. Restart the existing WARGRID panel process with its normal `npm run serve` launch method. No database migration or EvoSC restart is needed. This release has not been deployed online.
v88Release date not documented

WARGRID v88 — honest platform join controls

Archived original release notes · v88

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V88_CONSOLE_JOIN.md

# WARGRID v88 — honest platform join controls The homepage now labels its real protocol link `PC · Join`. Separate `PlayStation · Info` and `Xbox · Info` buttons open a dismissible explanation rather than pretending to join a console to an EvoSC dedicated server. The previous instruction to find this dedicated server on console was incorrect and has been removed. Official documentation states that self-hosted dedicated servers can be joined only from PC; cross-platform rooms must use Nadeo's `Select A Campaign` or `Select Tracks` hosting options. A Nadeo room is not this EvoSC server and this update does not migrate the War. Source: https://doc.trackmania.com/club/activities/room/ ## Install Back up the existing WARGRID application and overlay this release in `/home/web/wargridslikzdev/app`. Preserve all `.env*` files, private module settings, uploaded files and database data. The package includes prebuilt `dist/` and `server-build/` output. Restart WARGRID through its existing panel launch method (`npm run serve`) and refresh the browser. No module restart or database migration is required for this change. This local release has not been deployed to wargrid.de. ## Verification 219 automated tests, TypeScript validation and the production build passed. Local browser checks verified both platform panels, the close button, and a 390px mobile layout without horizontal overflow. All four mobile actions have square corners and a minimum 44px height. The game protocol link is preserved; launching the game or a real console join was not tested. The screenshot uses isolated preview data.
v87Release date not documented

WARGRID v87 — compact homepage server area

Archived original release notes · v87

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V87_HOME.md

# WARGRID v87 — compact homepage server area This update rebuilds the homepage's live-server panel and lower results/access section. It does not claim a redesign of every page or a production deployment. - Square panels and buttons, consistent spacing, smaller typography and inline server actions. - Compact empty state; PC/console instructions expand only when requested. - Clickable player names retain Trackmania formatting and server-scoped profile links. - Responsive roster: three desktop columns, two tablet columns, one mobile column; bounded scrolling for larger populations. - Final results separate colored team names from scores. The adjacent access panel uses three clear rows instead of a large rounded marketing card. - Missing, stale and offline data are not displayed as zero players. Fresh empty rosters remain authoritative. ## Installation Back up your current WARGRID application before overlaying this release in `/home/web/wargridslikzdev/app`. Preserve your `.env*` files, database, uploaded user files and private module configuration. No secrets are included in this archive. The release includes fresh `dist/` and `server-build/` output. Use the existing WARGRID launch method in your panel to restart `npm run serve`. Do not create a new systemd service just for this update. Refresh the browser after restarting. The earlier v86 dashboard repair is included unchanged. If that specific database error still occurs, follow `CHANGELOG_V86_DASHBOARD.md`; the homepage change itself needs no database migration. ## Verification TypeScript check, production build and 217 automated tests passed. Local fixture-based browser checks covered a 1280px desktop and 390px mobile viewport, colored player names, empty/unreported/delayed rosters, square corners, copy feedback and expandable joining help. Mobile join actions are at least 44px high. Preview images use test data, not production telemetry. `scripts/preview-home-v87.mjs` is an isolated localhost development fixture, not the production start command.
v86

WARGRID v86 — dashboard database hotfix, 2 October 2026

Archived original release notes · v86

# Direct linkDate source: CHANGELOG_V86_DASHBOARD.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V86_DASHBOARD.md

# WARGRID v86 — dashboard database hotfix, 2 October 2026 The v85 dashboard joins `map_request_uploads`, but that table was absent from the MySQL migration. The runtime adapter also silently discarded its CREATE statement. This reproduces ER_NO_SUCH_TABLE after a successful admin login. The same schema gap affected four upload-owner/mail/notification tables. This hotfix adds all five tables to migration and runtime initialization. No account, War, record, upload or existing preference is deleted or replaced. ## Install over v85 1. Back up the deployed application and database using your existing process. 2. Overlay the hotfix ZIP in `/home/web/wargridslikzdev/app`. Preserve `.env`, `.env.local`, `.env.production`, `.wargrid-*` private files and uploads. 3. From that directory run: `node scripts/repair-dashboard-v86.mjs` This creates only the five missing tables in the configured WARGRID database and verifies they can be queried. It performs no ALTER/DROP/data updates. The DB account needs CREATE and SELECT; use your normal deployment account. 4. Restart the existing WARGRID Node process through the hosting panel or your actual process manager. Do not assume a `wargrid.service` exists. The ZIP includes an updated production `server-build/index.js`; `dist/` is unchanged. 5. Refresh the admin dashboard. If it still fails, capture the server's exact ER_* code/sqlMessage for the failed request, with secrets removed. A generic dashboard message cannot establish whether a different SQL problem remains. Verification: regression reproduces the missing table on the old adapter and loads the dashboard on the fixed adapter with a mocked MySQL transport. Login, notifications and focused-repair tests are included. No production database connection or web-process restart was performed from this workspace.
v85

WARGRID v85 — 2 October 2026

Archived original release notes · v85

# Direct linkDate source: CHANGELOG_V85.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V85.md

# WARGRID v85 — 2 October 2026 ## Install on the web host Back up the deployed app and database. Overlay this release without deleting private settings or user uploads. The archive contains production `dist/` and `server-build/`; run `npm ci`, then `npm run build` and start with your existing web process manager (`npm run serve`). Do not invent `wargrid.service` if your host uses a panel or another process manager. Node 24 is the tested web runtime. ## Existing EvoSC controller, including panel-managed Screen Admin → API & bridge → EvoSC module updater: 1. Select the existing WARGRID server identity. 2. Enter its SSH host and the full controller directory containing `esc`. 3. Choose Auto or Screen. Server 7's supplied terminal output uses `tm-ctrl-7`. No systemd service field is required in this mode. 4. Inspect server, then Update both modules. The updater identifies the existing module directory (`core/Modules` or `modules`), checks identity, backs up files and stops only the matched EvoSC controller. It preserves the Screen launch command, owner and environment, including `systemd-run --scope` inside Screen. The dedicated game process, maps and database are untouched. Rollback restores files after a failed start; the log also reports if the old controller could not restart. Manual mode: stop EvoSC in the panel before updating, then start it there. Duplicate or unsupported controller launchers are rejected. SSH passwords are operation-only and excluded from logs. Real SSH execution still requires your credentials and has not been performed from this workspace. ## Included - WarApiBridge 0.2.5 / WarManager 0.17.2, refreshed download packages. - Live names, driver/spectator role detection, server name/login and PC join link. Optional RPC failure no longer removes a successfully collected player list. - Compact yellow Discord viewer with public widget names, plus optional native Discord view; no private Discord identities exposed. - Three map cards per desktop row; compact profile header and private inbox. - Lighter single-row desktop footer with correct Germany/Switzerland SVG flags and rotating gear; reduced-motion preferences are respected. - Private GBX map-request upload, admin review/download and admin email notice. - SMTP admin page, private inbox, guestbook/map-request email preferences, double opt-in and explicitly subscribed newsletters. SMTP secrets are encrypted on the web host; queued subscriptions re-check current consent. ## Verification Production build, TypeScript and automated regression tests run locally. Browser checks use local fixtures at desktop and 390px mobile widths. No live VPS restart, real SMTP delivery or console-platform join was performed. PC join links require the Trackmania protocol handler; console users search the server name in the game's Rooms browser. Actual driver data requires the updated bridge and a fresh accepted snapshot.
v84Release date not documented

v84 — actual EvoSC module versions, installation paths and safe updater

Archived original release notes · v84

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V84.md

# v84 — actual EvoSC module versions, installation paths and safe updater ## Backup audit The supplied server-7 archive contains WarApiBridge **0.1.0** and WarManager **0.17.2**, both under `controller/core/Modules/`. The old bridge does not send module-version metadata. A healthy connection therefore does not imply that the new bridge is installed. The archive contains relative paths: it does not prove the live controller's absolute directory or systemd service name. ## Install the website release first Preserve `.env`, `.env.local`, `.wargrid-secrets.json` and `.wargrid-evosc-databases.json`, plus the database. Follow README.md. The release includes Bridge 0.2.4, Manager 0.17.2, both download ZIPs and the node seed archive. ## Admin → API & bridge → EvoSC module updater 1. Select the correct game server. 2. Enter the controller host, SSH port, controller root containing `esc`, the actual EvoSC systemd service and SSH root password. Do not use the game's service or guess a service name. Do not send credentials in chat. 3. **Inspect server** reads versions and paths without restarting or changing files. The service WorkingDirectory must match this controller. 4. **Update both modules** validates that the existing server ID and signing key match the selected WARGRID connection. It preserves that identity and private configuration; it does not rotate keys. Wrong identity and duplicate module directories stop the update before changes. 5. The live log shows validation, backup, extraction, each module path, restart and verification. The password is cleared after the operation and not logged. 6. The updater confirms file versions first, then waits up to two minutes for a fresh signed heartbeat reporting Bridge 0.2.4 and Manager 0.17.2. Diagnostics refresh every ten seconds. Missing confirmation means check EvoSC logs and bridge configuration; it is not a verified successful live installation. Requirements: HTTPS admin access, SSH root access, Linux controller managed by systemd, remote Node.js 20.20+ and Python 3, installed EvoSC vendor dependencies. The updater supports existing modules in `core/Modules`, `modules`, or mixed layouts. It does not guess an absolute path for older bridges. Backups remain private at `<controller>/.wargrid-backups/<operation>/`. A failed file installation/restart restores the previous modules and controller bridge config and attempts to restart the old service. If restoration fails, the log reports it; use the retained backup and investigate before another update. The updater never edits maps, game binaries or the EvoSC database. A stopped controller stays stopped; start it deliberately before expecting a heartbeat. **New installation** is a separate, confirmed action for initial setup and can issue a new signing key for a registered connection. Use Update for an existing working server. Module ZIPs contain only placeholder settings. Never replace a working controller config with those placeholders. The public race console remains names and race times only. Runtime paths and database settings remain private admin information. These local changes do not automatically deploy to the production website or restart its game servers.
v83

WARGRID v83 · Clean names-and-times console · 2 October 2026

Archived original release notes · v83

# Direct linkDate source: CHANGELOG_V83.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V83.md

# WARGRID v83 · Clean names-and-times console · 2 October 2026 - Removed DB LIVE, [DB], EvoSC DB · 2s and database setup text from the public header console. Connection settings and diagnostics remain in the admin panel. - Record rows contain only the linked, colour-formatted player name and time. LR/FINISH prefixes and wall-clock timestamps are no longer displayed. - Map-change events still update the map context but do not create a player row. - Times align cleanly on the right; long nicknames wrap without pushing times outside the widget. Desktop/mobile scrolling and Follow live remain. - Data ingestion, per-server DB queries, deduplication and actual finish capture are unchanged. Includes all v82 changes. WarApiBridge stays 0.2.3 and WarManager stays 0.17.2; this website update needs no controller restart. Deploy the website update and restart its existing Node service. Preserve the existing environment, private .wargrid-secrets.json and .wargrid-evosc-databases.json. No connection settings need re-entering.
v82

WARGRID v82 · Per-server EvoSC database feed · 2 October 2026

Archived original release notes · v82

# Direct linkDate source: CHANGELOG_V82.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V82.md

# WARGRID v82 · Per-server EvoSC database feed · 2 October 2026 - Admin → API & bridge now contains a database connection panel for the selected game server: host, port, database, read-only user, password, prefix and TLS. Test before saving; enable/disable or remove a connection without deleting EvoSC records. Blank password keeps the saved password. - Direct DB reads follow the active War's server and signed current-map UID. No cross-server fallback, no DB query for finished/expired/paused/stale Wars. The homepage automatically selects an active War server when none is selected. - The scrolling hero console displays coloured stored Local Records with rank and a truthful [DB] label. New bests append once; unchanged polls do not repeat rows. Original finish timestamps are not present in EvoSC Local Records. - Connection passwords are AES-256-GCM encrypted server-side. Protected admin API, same-origin mutation checks, HTTPS requirement, strict table-prefix validation, parameterised SELECT-only query and two-second shared cache. - WarApiBridge 0.2.3 adds a safe current-map database snapshot using EvoSC's own DB connection. It retains the real PlayerFinish/PlayerLocalRecord/BeginMap console. Public download and node installer contain the same module version. - Existing v81 console, earlier site fixes and WarManager 0.17.2 are retained. ## Install / configure 1. Deploy the complete website update and restart the Node web service. Preserve .env/.env.local, .wargrid-secrets.json and any existing .wargrid-evosc-databases.json. Run npm ci, npm run db:migrate, npm run build and npm start through your existing service/process manager. 2. Admin → API & bridge → select the actual game server. Enter its EvoSC DB settings (not the WARGRID website database). Test connection, enable Direct DB feed, save. Leave prefix blank unless EvoSC uses one. 3. Keep DB access private; use a user granted SELECT only on maps, players and local-records. The WARGRID web host must be able to connect to that database. 4. A fresh signed snapshot must report an active War and its current map. DB bests appear in the hero console, refreshing about every two seconds. 5. Optional: update WarApiBridge to 0.2.3 for the bridge DB fallback and all real finishes. Extract into controller/modules, preserve private controller/config credentials and restart EvoSC. No controller core files need changing. Locally checked: 197 automated tests (including real PHP runtime fixtures), TypeScript, targeted lint, production build and desktop/mobile form preview. Actual production DB connectivity still requires your host and saved credentials.
v81Release date not documented

WARGRID v81 — real EvoSC race console

Archived original release notes · v81

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V81.md

# WARGRID v81 — real EvoSC race console - Hero console moved down, with compact monospace rows and no blur. - WarApiBridge 0.2.2 captures actual PlayerFinish, PlayerLocalRecord and BeginMap hooks. - Repeated/slower valid runs appear too; events are not inferred from leaderboard changes. - Console follows the selected server independently of whether a War is active. - Signed transport, public allowlisted race fields only, 2-second visible browser polling. - Old bridge versions show an explicit upgrade instruction; stale transport is not called live. - Website and module must both be updated. Preserve controller/config/war-api-bridge.config.json and restart EvoSC. - 200-event server ring buffer, latest 100 displayed; not a permanent full controller-log archive. - No chat, private RPC data, bot tokens or server credentials are exposed.
v80Release date not documented

WARGRID v80 — Scrolling live record console

Archived original release notes · v80

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V80.md

# WARGRID v80 — Scrolling live record console - Replaced the fixed LR leaderboard with timestamped console lines in arrival order. - New observations append below older lines; the viewport follows the bottom automatically. - Manual scrollback pauses following, with a compact Jump to latest control. - Retains up to 60 rows across map changes, without mixing servers or Wars. - Existing snapshot records are clearly labelled SNAP, not invented live finishes. - Transparent angular styling, yellow scrollbar, Trackmania colours, record times and improvement deltas. - Continues using the existing best-record snapshot feed (~10 seconds), not a raw server-log stream.
v79Release date not documented

WARGRID v79 — Live record console

Archived original release notes · v79

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V79.md

# WARGRID v79 — Live record console - Transparent angular console in the homepage and Live War hero, right-aligned on desktop. - Current map and fastest four War Local Records with clickable player/map links and original Trackmania colour codes. - Three recent new/improved record observations, animated once and timestamped in Zurich; reduced-motion support. - No replayed initial-load events, cross-server/War/map mixing, or stale times labelled live. - Responsive stacked layout on tablet/mobile; uses the existing snapshot polling rather than an extra API loop. - No database or EvoSC module update required. Only exported War best times are available, not every finish from the controller log.
v78Release date not documented

WARGRID v78 — Remove War Twitch streams

Archived original release notes · v78

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V78.md

# WARGRID v78 — Remove War Twitch streams - Removed the Twitch broadcast from the homepage and Live War. - Removed its dashboard content setting, channel parser and player code. - Restored full-width competition scoreboards without the broadcast columns. - Removed Twitch embed permissions from both server CSP implementations. - Kept personal Twitch profile links and existing Discord automation unchanged.
v77Release date not documented

WARGRID v77

Archived original release notes · v77

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V77.md

# WARGRID v77 - War planning now controls private Team A/B text channels, voice channels, cleanup delay, channel names and roster-message templates from one panel. - Select the EvoSC game server explicitly. The panel shows its live War and warns when it differs from the planned event. - Fresh confirmed team rosters trigger private channels. Text posts list the correct captain and drivers; verified Discord IDs control access. Drafts and scheduled dates alone do not create channels. - Changing the target server preserves channels for Wars still running elsewhere. Manually deleted text channels are recreated with their roster message. - Match announcements use yellow WARGRID embeds with actual teams, driver/map counts and live links. Registration, roster and captain changes still announce after the planned date. - The first announcement check establishes a baseline; unchanged rosters do not post again. Discord HTTP 429 responses pause text-channel requests for the requested retry interval. - Invalid Discord settings are validated before any setting is written. The new channel-tracking table is included in migration and runtime recovery. - Admin form controls and panels now override the older rounded styles on admin routes. Team-automation checkboxes stay beside their labels, including on mobile. Install the full release, preserve your private environment and secret files, run `npm ci` and `npm run db:migrate`, then restart the website. Configure the bot/server/category in Admin → Discord, then enable and save automation in Admin → Wars & events → Plan War & registration. Live Discord delivery must be checked on the deployed host with its bot and guild permissions. Local verification uses mocked Discord responses.
v76Release date not documented

WARGRID v76

Archived original release notes · v76

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V76.md

# WARGRID v76 - External EvoSC War map controls now accept a TMX link, numeric ID or map UID to select an already installed map. They also support bulk selection from a reported server folder or all installed maps. - WarApiBridge 0.2.1 reports safe folder labels with installed maps. Update the module and restart EvoSC to expose folder choices. - A new map cannot be uploaded to an external EvoSC controller by the website. Install it with EvoSC first, then refresh and select it. Active Wars still lock their pool. - Twitch broadcast opens the direct channel as the primary action. The optional SDK embed checks for confirmed playback and falls back to the direct link when unavailable.
v75Release date not documented

WARGRID v75

Archived original release notes · v75

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V75.md

# WARGRID v75 - Managed War map controls now import a TMX map by ID/link and upload local .Map.Gbx files or folders. Server map pools can add an installed folder at once. Imports validate the GBX file and limit the download to 4 MB. - The game-node agent is v65.0; update it through Admin before using TMX imports. Restart TM2020/EvoSC after adding maps so its installed-map snapshot can populate the War pool. Active War rotations remain locked. - Twitch broadcasts retain a direct Twitch link if the embed is unavailable, and local/non-HTTPS or narrow previews use that link instead of a broken frame. - Opt-in Discord announcements now include registrations, departures, captains, new Local Records and final results, with per-type switches, baseline snapshots and retry on failed sends. Added MariaDB tables for roster and record announcement state. Verification: TypeScript, production build and 175 automated tests passed; one optional PHP test was skipped because PHP was not configured here.
v74Release date not documented

WARGRID v74 — Discord bot and DB repair

Archived original release notes · v74

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V74.md

# WARGRID v74 — Discord bot and DB repair - Added `discord_announcement_state` to the production MariaDB schema and permitted its runtime `CREATE TABLE IF NOT EXISTS` through the MySQL adapter. - Shared slash-command definitions across Node and portable handlers. - Added read-only `/records`, `/servers`, `/join`, `/rules`, and `/pages`. - Expired upcoming events are no longer advertised as the next event. - Opt-in announcements now cover registration open/close transitions in addition to fresh EvoSC War start, map change and War end events. - No Discord member mentions or public War-mutation commands are emitted. After deployment: run `npm run db:migrate`, restart the WARGRID process, then Admin → Discord → Sync slash commands. Existing bot credentials and Discord server settings should be preserved.
v73Release date not documented

WARGRID v73 — admin mobile layout

Archived original release notes · v73

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V73.md

# WARGRID v73 — admin mobile layout - Fixed the current admin dashboard CSS module: the desktop sidebar no longer occupies a 240px grid column below 900px. - Added a dismissible mobile navigation overlay and labelled menu control. - Stacked dashboard cards, analytics, editors and forms at phone widths. - Kept wide admin tables inside horizontal scroll containers to avoid whole-page sideways scrolling. - Preserved the separate game-server workspace's 74px site-header offset. Verified with TypeScript, Vinext production build and the full Node test suite. Authenticated production admin screens still require visual verification after deployment.
v72Release date not documented

WARGRID v72 · Mobile and Discord automation

Archived original release notes · v72

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V72.md

# WARGRID v72 · Mobile and Discord automation - Kept directory filter controls on one horizontally scrollable row on narrow phones; constrained public content and admin grids at 320–700 px. - Added `/rotation` and `/drivers` read-only Discord commands to both interaction handlers and command registration. - Added opt-in Discord announcements for fresh EvoSC War starts, map changes and War ends. The target text channel and enable switch are managed in Admin → Discord; the feature is off by default. - Added persistent per-server announcement state so the minute-by-minute check does not repost unchanged maps after a restart. - Added a protected “Check now” control and status readout to Admin → Discord. - Verified the production build, TypeScript and automated test suite; manually checked the main routes at 320, 390 and 768 px for horizontal document overflow.
v71Release date not documented

WARGRID v71 · Slash-command registration diagnostics

Archived original release notes · v71

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V71.md

# WARGRID v71 · Slash-command registration diagnostics - Check public endpoint now reads the actual guild command list from Discord and reports the configured application ID, server ID, present WARGRID commands and missing commands. - Command sync reports the total number of managed commands, not just how many changed. - Signed PING remains distinct from a received slash command or delivered reply; the admin check does not claim command execution from a PING alone.
v70Release date not documented

WARGRID v70 · Discord endpoint visibility

Archived original release notes · v70

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V70.md

# WARGRID v70 · Discord endpoint visibility - A browser GET to the interactions URL explains that slash commands use signed POST requests; it cannot verify bot functionality. - Admin endpoint check compares WARGRID's expected URL with the Interactions Endpoint URL stored on the actual Discord application. A missing or wrong URL is reported as the actionable failure. - Slash-command sync refuses to claim success when the Discord application points at another endpoint or has no endpoint saved. - Diagnostics distinguish a signed PING, a signed slash command, and a delivered follow-up reply since the current process started.
v69Release date not documented

WARGRID v69 · Editable homepage imagery

Archived original release notes · v69

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V69.md

# WARGRID v69 · Editable homepage imagery - The home header image now follows its own CMS field instead of being overridden by the shared artwork stylesheet. Existing sites fall back to the branding hero until a homepage image is chosen. - The map-library card image, label, headline and link copy are editable independently in Admin → Website content → Homepage. - The homepage subtitle now appears on the actual page, matching the editor preview. - Legacy inline uploads in both new homepage image fields are migrated to stable image URLs before publishing. - Verified with TypeScript, production build and the full test suite.
v68Release date not documented

WARGRID v68 · Discord command and CMS media repair

Archived original release notes · v68

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V68.md

# WARGRID v68 · Discord command and CMS media repair - Slash-command replies no longer silently treat Discord HTTP errors as success. `/help` replies immediately; data commands acknowledge promptly and retry transient webhook failures. The admin endpoint check reports whether a signed command reached the process and whether a reply was delivered. - The content editor uploads images separately and stores stable media URLs. Publishing also migrates image Data URLs saved by older dashboard builds, avoiding the 200 KB site-content limit. - Image upload validation accepts JPEG, PNG, WebP, GIF and AVIF up to 4 MB, and rejects active SVG content. - Teams, partners, homepage and server landing hero images now follow the corresponding content-editor fields. The legacy image upgrader no longer silently replaces an editor-selected image. - Existing MySQL installations should run `npm run db:migrate` before deploying to upgrade `site_settings.value` to `LONGTEXT`.
v67

WARGRID v67 · 2026-10-01

Archived original release notes · v67

# Direct linkDate source: CHANGELOG_V67.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V67.md

# WARGRID v67 · 2026-10-01 - Admin Website content now includes a navigation editor with visibility, labels and ordering, plus a draft/publish page builder for `/p/:slug`. Unpublished pages are excluded from the public content API. - Reinstated a compact Discord community viewer using only the public widget feed. Administrative Discord controls remain private. - Unified square control geometry across public and admin interfaces. History results use full-width rows; team archive entries use one row per team with attached expandable roster and results. - Removed the extra Rules header gap and the duplicate Rules copy. The server hero now meets the navigation. The team hero uses a distinct Trackmania screenshot. - Fixed a legacy CSS conflict that hid map-card artwork. When TMX thumbnails cannot load, cards show clearly identified local Trackmania artwork instead of an empty image area. - Updated fallback footer copy to refer to the actual two-team Local Records format. Validation: TypeScript, 159 passing Node tests (one optional PHP test skipped), production build, local browser review of Maps, Rules, Teams, Servers, Players and Upcoming. Local database access is blocked, so live data, authenticated admin actions, production Discord and EvoSC still need post-deploy checks.
v66

WARGRID v66 · 2026-10-01

Archived original release notes · v66

# Direct linkDate source: CHANGELOG_V66.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V66.md

# WARGRID v66 · 2026-10-01 - Discord slash commands acknowledge signed requests before database work, then edit the deferred response. Command sync uses one bulk update, skips an unchanged set and observes a short Discord `Retry-After` value. - The homepage and Live War view require a recent server-confirmed active War. A failed network request no longer appears as zero connected servers, and stale map rotation is not presented as live. - War, maps, players and upcoming headers use distinct Trackmania imagery. Legacy CSS no longer overrides the configured per-page image. Footer credits and links retain the square graphite-and-yellow styling. - Admin → API & bridge links to working WarManager 0.17.2 and WarApiBridge 0.2.0 ZIPs. The game-node installer archive contains the same module sources. Validation: TypeScript, complete Node test suite, production build, local browser rendering and HTTP checks for both downloads. Production Discord, MariaDB and EvoSC require verification after deploying this release.
v65.27

WARGRID release notes — 2026-10-01

Archived original release notes · v65.27

# Direct linkDate source: CHANGELOG_V65_27.md
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_27.md

# WARGRID release notes — 2026-10-01 - Discord command setup: the admin panel can probe the public Interactions URL and compare the configured bot token, application ID and public key against Discord's application record. The probe distinguishes a WARGRID signature rejection from a reverse-proxy error. A public key managed by the host environment must be changed there and followed by a restart. - Public server registration can be opened or closed in Admin → Servers. The API enforces the setting; the public server pages reflect it. Existing connected servers keep working when new registrations are closed. - The top navigation no longer lists Partners; the Partners link is in the footer. The footer legal links and credits share one layout, with a separately configurable background image. - Public pages, the team archive, upcoming registration and the admin workspace use a consistent square-edged graphite-and-gold visual treatment. Completed teams appear one team per row. - Page images have per-page CMS defaults; custom admin-selected images are preserved. ## Deployment check 1. Keep the existing `.env` and `.env.local` on the host. Do not upload either file from a local checkout. 2. Install the updated project and prebuilt `dist/` and `server-build/`, then restart the actual WARGRID Node process or hosting panel service. The package does not restart the host itself. 3. Open `/healthz` and `/api/servers` to confirm the web process is running. Check the new registration state in Admin → Servers. 4. In Admin → Discord → Bot Commands, verify the displayed public HTTPS URL and use **CHECK PUBLIC ENDPOINT**. A successful route probe only confirms reachability and invalid-signature rejection; Discord itself must still accept a signed PING after the URL is saved in Developer Portal. 5. If the application check fails, correct `DISCORD_CLIENT_ID`, `DISCORD_PUBLIC_KEY` or `DISCORD_BOT_TOKEN` in the deployment environment. Never paste the bot token into the website's public-key field. No production database, Discord Developer Portal setting or production process is modified by building this package.
v65.26Release date not documented

v65.26 — Chrishan birthday and founder awards

Archived original release notes · v65.26

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_26.md

# v65.26 — Chrishan birthday and founder awards - English balloon-and-cake popup on public pages on 28 September 2026 only, Europe/Zurich time. - Opens for visitors without login. Dismissal lasts for the current browser-tab session; hero cake remains available all day. - Homepage cake links to Chrishan's profile and says: Don't be a noob. Wish Chris a happy birthday! - Automatically hides after the birthday, including already-open pages. - Permanent Original Vision and Platform Architect badges for the exact supplied Chrishan and Slikz Trackmania logins. Gold founder styling and priority in public profile featured badges. - Linked founder account awards are saved idempotently when their public profile is loaded. No privilege or role changes. Build and TypeScript passed. 124 tests passed, one optional PHP test skipped, including Zurich midnight boundaries and exact founder identity matching. Not deployed. Install the website update before 28 September. No Game-Node update required. Production badge persistence and popup appearance were not live-verified.
v65.25Release date not documented

v65.25 — Countdown end message

Archived original release notes · v65.25

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_25.md

# v65.25 — Countdown end message The homepage and Live War countdown display the requested GAME OVER message when the reported end time is reached. Missing dates retain the waiting state. This is a display change only; server-authoritative War completion is unchanged. Build and countdown boundary test passed. Not deployed.
v65.24Release date not documented

v65.24 — Full-width seamless heroes

Archived original release notes · v65.24

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_24.md

# v65.24 — Full-width seamless heroes - Homepage, Players, Maps and Live War image headers begin directly under the existing navigation. - Removed boxed image frames, rounded hero corners and top gutters. - Added a soft bottom fade into the graphite page background and larger homepage typography. - Content beneath the heroes remains centered and width-limited. - Navigation is unchanged. Build and 122 tests passed, one optional PHP test skipped. Homepage inspected on desktop and at 390px mobile width. No production deployment performed; local production data remains unavailable. Website-only update; no node update required.
v65.23Release date not documented

v65.23 — Second-by-second countdown

Archived original release notes · v65.23

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_23.md

# v65.23 — Second-by-second countdown - Shared days/hours/minutes/seconds timer on homepage and Live War. - Yellow seconds, stable digit widths and labels. - Uses the existing wall-clock tick and reported end date, so background-tab throttling does not accumulate drift. - Missing dates have a waiting state; expired timers clamp to zero. No automatic change to War status. - Existing paused-scoring label and reported end date are retained. Build and TypeScript passed; 122 tests passed, one optional PHP test skipped. Website-only update; no node update required. Not deployed to production.
v65.22Release date not documented

v65.22 — Racing image headers

Archived original release notes · v65.22

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_22.md

# v65.22 — Racing image headers - Homepage now features a visible racing image, yellow CTA and readable dark text backdrop. - Players and Live War use matching image headers; Maps uses the existing yellow track artwork. - Retains compact filters and live competition content below the images. - Reuses bundled images without external image dependencies. Build and TypeScript passed. 121 tests passed; one optional PHP test skipped. Homepage desktop/mobile and Maps desktop visually checked. Production data was not verified locally. Website-only update; no node update required.
v65.21Release date not documented

v65.21 — Consistent competition headers

Archived original release notes · v65.21

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_21.md

# v65.21 — Consistent competition headers - Players, Maps and Live War share a compact title and description instead of oversized artwork banners. - Removed the decorative WG panel and reduced the distance to directory controls. - Simplified directory headings and made filters smaller. - Reduced Live War server-selector cards and secondary headings. Production build, TypeScript and 121 tests passed (one optional PHP test skipped). Local visual check completed; production database access remains unavailable. Website-only update. No node update required.
v65.20Release date not documented

v65.20 — Compact homepage overview

Archived original release notes · v65.20

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_20.md

# v65.20 — Compact homepage overview - Replaced the oversized homepage hero with one competition overview and consistent public War numbering. - Added a compact score comparison, participant/map counts and honest snapshot status. - Reorganized current/next maps and top players into a responsive workspace. - Integrated live drivers and the last completed result without oversized empty areas. - Isolated homepage styles with a CSS module using graphite surfaces and muted yellow accents. - Simplified missing live-driver information for public visitors. Validation: production build and TypeScript passed; 121 tests passed, one optional PHP runtime test skipped. Desktop and 390px mobile layouts inspected locally. Production database access was unavailable; live production data was not verified. Website-only update; no Game-Node update is required for these changes. Existing deployment configuration and private files must be retained.
v65.19Release date not documented

WARGRID v65.19 — Live War workspace

Archived original release notes · v65.19

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_19.md

# WARGRID v65.19 — Live War workspace - Gold page scrollbars, including horizontal standings scrollbars. - Replaced the mixed legacy live-war widgets with a coordinated graphite/gold dashboard and compact server selection. - Full current War roster with name/login search, team filter, stable overall ranks, profile links scoped to the server, points, average LR, LR1–LR3 and map coverage. Zero-score participants are retained. - Insights count valid records and enabled maps, show participants with times, map leads and tied maps, and distinguish stale snapshots from live scoring. - Registration badges now say REGISTERED instead of incorrectly advertising every registered player as NEXT EVENT. - Existing server/War actions and node modules are unchanged. Verification: production build and TypeScript pass; 121 tests pass, one optional PHP test skipped. Browser verified roster rendering and player search with the bundled snapshot; production database and live server integration were not accessible locally.
v65.18Release date not documented

WARGRID v65.18 — Graphite control room

Archived original release notes · v65.18

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_18.md

# WARGRID v65.18 — Graphite control room - Public pages now use a consistent graphite, soft gray and muted WARGRID gold palette with calmer cards, forms, tables and page headers. - Home hero, live rotation, player panels, navigation dropdowns and image-backed footer have tighter spacing and softer edges. - Admin and server workspaces share the same visual system: clearer sidebar state, segmented metrics, quieter panels, tabs and forms. - This is a visual update only. Rental, node, War, payment and API behavior are unchanged. Verification: production build and 119 automated tests pass (one optional PHP runtime test skipped). Public home and players pages were inspected locally at desktop and narrow widths. Authenticated admin pages and production data were not inspected without a live admin session.
v65.17Release date not documented

WARGRID v65.17 — Live drivers on the homepage

Archived original release notes · v65.17

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_17.md

# WARGRID v65.17 — Live drivers on the homepage - The homepage now shows names of drivers currently connected in driving mode, separately from the War participant roster. Spectators are not listed as drivers. - WarApiBridge exports a bounded public driver list containing only game login and display name; it publishes updates on player connection, disconnection and side changes. - The website distinguishes no drivers, offline/stale data and an older Bridge module that does not report names. Old snapshots are never presented as live. - Website and game-node WarApiBridge must both be updated for the names to appear. The node installer/API installer bundle includes the changed module.
v65.16Release date not documented

WARGRID v65.16 — Current War directories and Local Records

Archived original release notes · v65.16

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_16.md

# WARGRID v65.16 — Current War directories and Local Records - Maps and Players now default to the server-confirmed active War. The previous completed War remains available as a separate tab. - The default follows a fresh active snapshot even when the page first renders from an older cached snapshot. - Player rankings show LR1, LR2 and LR3 again, calculated from the records in the selected War's map pool, alongside average LR and maps with valid records. - Active and completed War selection is scoped to the selected server, with regression tests for both War switching and Local Record totals. - No database or game-node migration is required for this website release.
v65.15Release date not documented

WARGRID v65.15 — Badges and player profiles

Archived original release notes · v65.15

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_15.md

# WARGRID v65.15 — Badges and player profiles - Rebuilt the admin badge catalog as a searchable, category-filtered card grid with clear built-in/custom status and award actions. - Replaced the oversized player-directory hero with a compact introduction and refined the directory tabs, search, table and registered-player cards. - Refined the player-career header, actions and badge collection. Profile details and War management now appear in the Overview tab instead of leaking into every tab. - No database or node-agent migration is required for this UI release.
v65.14.3Release date not documented

WARGRID v65.14.3

Archived original release notes · v65.14.3

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V65_14.md

# WARGRID v65.14.3 ## War roster - Admins can add players directly through the signed EvoSC command channel. The player is shown as assigned only after the controller confirms the command. - Admins can send and edit invitations, offer reserve places, revoke or reject requests, and promote accepted players into a free team slot. - Linked players can accept or decline invitations, apply for a reserve place when a team is full, and withdraw their application. - Invitations work for both local WARGRID accounts and signed-in Trackmania OAuth accounts; another account cannot read or accept them. - A per-player database lock prevents concurrent duplicate requests. Team capacity is checked again under the War database lock by the controller. - Player profiles expose contextual War management to admins and an invitation inbox to the owner. ## Interface and rentals - The player, badge and competition surfaces have softer corners and transitions. The badge view now presents earned awards without fabricated progress. - Admins can disable new rentals while preserving access to existing leases. Pool expansion can install and publish more slots after the node confirms capacity. - The node installer keeps the existing node identity when its name and ID are left blank. ## Verification - TypeScript, PHP syntax, automated tests, lint and production build passed locally. - The live VPS and actual EvoSC assignment still require deployment and an end-to-end check. The website ZIP does not update an already running game node by itself.
v65.3Release date not documented

v65.3 — Registered players and public profile data

Archived original release notes · v65.3

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v65.3 — Registered players and public profile data - Player Directory now receives registrations from every stored event, including closed and archived events, rather than only the one open event. - Registered accounts without a live or historical War snapshot still resolve to a public player profile. - Avatar, header image and car skin are also rendered in the compact profile panel used on current-War player pages.
v65.2Release date not documented

v65.2 — Maps and player directory repair

Archived original release notes · v65.2

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v65.2 — Maps and player directory repair - Fixed the `/maps` route so its interactive map directory is rendered in the browser instead of failing during server rendering. - The map overview now keeps a stable recent list: current-War entries win when a map exists in both the current and last War. - Registration records are retained after a War moves out of the upcoming phase, so the registered-player directory does not become empty once registration closes. - Added the MySQL runtime schema path for player connection requests.
v65.0Release date not documented

v65.0 — Player and map directories

Archived original release notes · v65.0

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v65.0 — Player and map directories - Players directory now has distinct Current War, Last War and registered-player views. - Maps directory now separates Current War, Last War and a de-duplicated recent map list, with links retaining the correct War context. - Added account connection requests: a linked account can request a connection from a current player profile; mutual requests become connected.
v64.8Release date not documented

v64.8 — Profile image uploads and compact public summary

Archived original release notes · v64.8

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.8 — Profile image uploads and compact public summary - Avatar, header and car-skin images can now be selected from a device. The browser resizes them and uploads JPEG data into the account profile; external image URLs remain optional. - Profile images are limited to one per kind, validated as JPEG, bounded to 512 KB after resizing, and private-profile images cannot be fetched by other visitors. - Replaced the large empty About panel with a compact driver summary. Empty facts are no longer shown. - Run `npm run db:migrate` with the website update to add `player_profile_images`. No game-node update is needed.
v64.7Release date not documented

v64.7 — Profile save, first registration and appearance

Archived original release notes · v64.7

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.7 — Profile save, first registration and appearance - Fixed MariaDB translation of the profile-details upsert; tested emitted SQL through the MySQL adapter. - Public player profiles now resolve local accounts and first-time War registrations before any results exist. - Added Classic, Minimal and Showcase layouts, and HTTPS image URLs for avatar, header and car skin. - Images load in the browser, without a referrer; there is no server-side URL fetch. Image CSP permits HTTPS image hosts. No local image upload is included. - Restyled the editor and placed profile tabs above its content. - Update the website and run the normal migration/build workflow; no game-node update required. Production MariaDB/VPS execution has not been verified locally.
v64.5Release date not documented

v64.5 — Player profile details

Archived original release notes · v64.5

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.5 — Player profile details Player profiles include an automatic Trackmania.io link derived from the stable game login/UUID, with an optional owner-editable Trackmania.io player link. This is a display link, not a verification or account-ownership mechanism. Profile settings add optional country code, up to five preferred driving styles, favorite map name and a 500-character bio. Private account profiles do not expose these details publicly. External link hosts, lengths and styles are validated server-side. New fields are stored separately by authenticated account ID; previous settings requests that omit details preserve them. No external scraping or geolocation is performed. Website update only; run the database migration and restart the web service. Existing game nodes need no update.
v64.4Release date not documented

v64.4 — Renderer memory and database overhead

Archived original release notes · v64.4

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.4 — Renderer memory and database overhead - Removed the per-request timestamp from the production renderer import. Concurrent requests share one renderer module instead of retaining an unbounded sequence of ESM module instances. - Live/stream schema initialization is shared once per database object, with retries after failure. Reading one server now selects one row instead of loading every live snapshot. - MySQL no longer silently skips creation of war_server_visibility and war_control_create_locks. This fixes the missing-table auto-initialization path as well as offline War assignments. - 99 automated tests passed. Local production-renderer exercise: 200 responses after warmup, 2805 ms total, heap 20 to 22 MB after explicit GC. This measures local rendering only, not VPS/database/network or browser frame performance. ### Deploy without mixed build chunks The supplied log also contains missing build chunks and a virtual: ESM import error. Do not overwrite or rebuild dist while the old web process is serving requests. Back up the application/database/private environment files, stop the website service, deploy the complete package, rebuild, and start the service again. This introduces a short maintenance window. A release-directory/symlink deployment can avoid most downtime but is not configured by this package. For the service identified in the supplied log: ```bash sudo systemctl stop webapp-wargridslikzdev.service # Deploy the complete ZIP here; preserve .env, .env.local and .wargrid-secrets.json. cd /home/web/wargridslikzdev/app npm ci && npm run db:migrate && FORCE_VINEXT_BUILD=1 npm run build && sudo systemctl start webapp-wargridslikzdev.service sudo journalctl -u webapp-wargridslikzdev.service --since "5 minutes ago" --no-pager -n 80 ``` If build/migration fails, the service intentionally remains stopped: restore the backed-up release before starting it. No game-node update is required. Do not raise the heap limit as a substitute for fixing module accumulation.
v64.3Release date not documented

v64.3 — Last competition directories

Archived original release notes · v64.3

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.3 — Last competition directories Maps and Players display the latest completed War for the selected server, including its actual map pool, participants and results. A new draft does not replace these lists. If no completed War exists, the current active/paused War is used. The selected source and competition are labeled. Map detail links preserve server and War ID; player profile links preserve the server. An empty server stays empty. Regression coverage checks chronology, overlapping IDs, drafts, active fallback and source isolation.
v64.2Release date not documented

v64.2 — Player history

Archived original release notes · v64.2

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

## v64.2 — Player history - Player careers now read the same server-qualified archives as the public War history instead of only the legacy global history table. - Profile/history requests and shared history links preserve the selected server. War IDs are scoped by server, and latest results sort by date rather than comparing unrelated server-local IDs. - Missing data or database failures no longer substitute an old bundled competition in player careers. Hidden/deleted archives and inactive server visibility remain respected. - Regression coverage includes overlapping War IDs, scoped stats, chronological results, missing servers and hidden results. Total automated suite: 94 tests passed. Deploy the website and run the database migration, build and website restart. No game-node change is included in v64.2. A War that was never sent to the website still requires archive synchronization from its controller; this update cannot reconstruct missing results. - Verify the admin session independently from loading dashboard data. A database or dashboard failure no longer silently sends an authenticated administrator back to the key form. The dashboard displays the actual load error and offers Refresh. - Create administration tables before altering legacy image columns. - Consistently trim configured admin keys and ignore empty aliases; reject malformed key request types with HTTP 400. - Keep key minimum lengths, constant-time comparison, secure cookies, same-origin checks and rate limiting intact. Three new regression tests cover key/cookie authentication, rejected keys and origins, blank aliases, malformed input, and the successful-login/failed-dashboard case. Deploy the website files and rebuild/restart the website service. No game-node update is required for this hotfix. Preserve the existing .env, .env.local and .wargrid-secrets.json. The deployment-specific error is still awaiting the server log; these fixes do not claim to verify your live login.
v64.1Release date not documented

WARGRID v64.1 — Admin login error handling

Archived original release notes · v64.1

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64_1.md

# WARGRID v64.1 — Admin login error handling ## v65.3 — Registered players and public profile data - Player Directory now receives registrations from every stored event, including closed and archived events, rather than only the one open event. - Registered accounts without a live or historical War snapshot still resolve to a public player profile. - Avatar, header image and car skin are also rendered in the compact profile panel used on current-War player pages. ## v65.2 — Maps and player directory repair - Fixed the `/maps` route so its interactive map directory is rendered in the browser instead of failing during server rendering. - The map overview now keeps a stable recent list: current-War entries win when a map exists in both the current and last War. - Registration records are retained after a War moves out of the upcoming phase, so the registered-player directory does not become empty once registration closes. - Added the MySQL runtime schema path for player connection requests. ## v65.0 — Player and map directories - Players directory now has distinct Current War, Last War and registered-player views. - Maps directory now separates Current War, Last War and a de-duplicated recent map list, with links retaining the correct War context. - Added account connection requests: a linked account can request a connection from a current player profile; mutual requests become connected. ## v64.8 — Profile image uploads and compact public summary - Avatar, header and car-skin images can now be selected from a device. The browser resizes them and uploads JPEG data into the account profile; external image URLs remain optional. - Profile images are limited to one per kind, validated as JPEG, bounded to 512 KB after resizing, and private-profile images cannot be fetched by other visitors. - Replaced the large empty About panel with a compact driver summary. Empty facts are no longer shown. - Run `npm run db:migrate` with the website update to add `player_profile_images`. No game-node update is needed. ## v64.7 — Profile save, first registration and appearance - Fixed MariaDB translation of the profile-details upsert; tested emitted SQL through the MySQL adapter. - Public player profiles now resolve local accounts and first-time War registrations before any results exist. - Added Classic, Minimal and Showcase layouts, and HTTPS image URLs for avatar, header and car skin. - Images load in the browser, without a referrer; there is no server-side URL fetch. Image CSP permits HTTPS image hosts. No local image upload is included. - Restyled the editor and placed profile tabs above its content. - Update the website and run the normal migration/build workflow; no game-node update required. Production MariaDB/VPS execution has not been verified locally. ## v64.5 — Player profile details Player profiles include an automatic Trackmania.io link derived from the stable game login/UUID, with an optional owner-editable Trackmania.io player link. This is a display link, not a verification or account-ownership mechanism. Profile settings add optional country code, up to five preferred driving styles, favorite map name and a 500-character bio. Private account profiles do not expose these details publicly. External link hosts, lengths and styles are validated server-side. New fields are stored separately by authenticated account ID; previous settings requests that omit details preserve them. No external scraping or geolocation is performed. Website update only; run the database migration and restart the web service. Existing game nodes need no update. ## v64.4 — Renderer memory and database overhead - Removed the per-request timestamp from the production renderer import. Concurrent requests share one renderer module instead of retaining an unbounded sequence of ESM module instances. - Live/stream schema initialization is shared once per database object, with retries after failure. Reading one server now selects one row instead of loading every live snapshot. - MySQL no longer silently skips creation of war_server_visibility and war_control_create_locks. This fixes the missing-table auto-initialization path as well as offline War assignments. - 99 automated tests passed. Local production-renderer exercise: 200 responses after warmup, 2805 ms total, heap 20 to 22 MB after explicit GC. This measures local rendering only, not VPS/database/network or browser frame performance. ### Deploy without mixed build chunks The supplied log also contains missing build chunks and a virtual: ESM import error. Do not overwrite or rebuild dist while the old web process is serving requests. Back up the application/database/private environment files, stop the website service, deploy the complete package, rebuild, and start the service again. This introduces a short maintenance window. A release-directory/symlink deployment can avoid most downtime but is not configured by this package. For the service identified in the supplied log: ```bash sudo systemctl stop webapp-wargridslikzdev.service # Deploy the complete ZIP here; preserve .env, .env.local and .wargrid-secrets.json. cd /home/web/wargridslikzdev/app npm ci && npm run db:migrate && FORCE_VINEXT_BUILD=1 npm run build && sudo systemctl start webapp-wargridslikzdev.service sudo journalctl -u webapp-wargridslikzdev.service --since "5 minutes ago" --no-pager -n 80 ``` If build/migration fails, the service intentionally remains stopped: restore the backed-up release before starting it. No game-node update is required. Do not raise the heap limit as a substitute for fixing module accumulation. ## v64.3 — Last competition directories Maps and Players display the latest completed War for the selected server, including its actual map pool, participants and results. A new draft does not replace these lists. If no completed War exists, the current active/paused War is used. The selected source and competition are labeled. Map detail links preserve server and War ID; player profile links preserve the server. An empty server stays empty. Regression coverage checks chronology, overlapping IDs, drafts, active fallback and source isolation. ## v64.2 — Player history - Player careers now read the same server-qualified archives as the public War history instead of only the legacy global history table. - Profile/history requests and shared history links preserve the selected server. War IDs are scoped by server, and latest results sort by date rather than comparing unrelated server-local IDs. - Missing data or database failures no longer substitute an old bundled competition in player careers. Hidden/deleted archives and inactive server visibility remain respected. - Regression coverage includes overlapping War IDs, scoped stats, chronological results, missing servers and hidden results. Total automated suite: 94 tests passed. Deploy the website and run the database migration, build and website restart. No game-node change is included in v64.2. A War that was never sent to the website still requires archive synchronization from its controller; this update cannot reconstruct missing results. - Verify the admin session independently from loading dashboard data. A database or dashboard failure no longer silently sends an authenticated administrator back to the key form. The dashboard displays the actual load error and offers Refresh. - Create administration tables before altering legacy image columns. - Consistently trim configured admin keys and ignore empty aliases; reject malformed key request types with HTTP 400. - Keep key minimum lengths, constant-time comparison, secure cookies, same-origin checks and rate limiting intact. Three new regression tests cover key/cookie authentication, rejected keys and origins, blank aliases, malformed input, and the successful-login/failed-dashboard case. Deploy the website files and rebuild/restart the website service. No game-node update is required for this hotfix. Preserve the existing .env, .env.local and .wargrid-secrets.json. The deployment-specific error is still awaiting the server log; these fixes do not claim to verify your live login.
v64Release date not documented

WARGRID v64 — Files modal, controller reinstall and node compatibility

Archived original release notes · v64

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V64.md

# WARGRID v64 — Files modal, controller reinstall and node compatibility - Files opens a directory browser and a Notepad-style text editor in a modal, with search, line numbers, wrap, reload and revision-protected saving. Existing text configuration files are editable while the server is stopped. Executable code and binaries are read-only, and `modules` folders plus private host credentials remain inaccessible. - Controller configuration files now open directly from the file browser. The old nested Settings/JSON form editor is no longer the Files interface. Sensitive fields in the reviewed module configurations are retained server-side. - Custom TimeAttack MatchSettings XML survives subsequent server starts. Saving match rules or activating a map pool replaces the custom rotation explicitly. - Modules includes **Reinstall EvoSC**. It replaces controller code/dependencies from the node template, preserves configuration and the rental database, and retains a recoverable controller backup outside the rental files. Both processes must be stopped; the rental timer stays unchanged. - Unsupported Map pools/Files endpoints now report the installed agent version and the update required instead of a bare `Not found`. Node installation verifies the newly running agent version locally and again from the website. ## Bridge, Wars and administration - The controller reads the operational bridge configuration instead of bundled placeholder credentials. Blank or malformed operational credentials fail closed. Repair connection restores the exact rental identity; disabled server identities are not silently reactivated. - Completed results persist independently for each server. History links, health and admin visibility actions use the server plus War ID, so matching numeric IDs on different servers do not collide. Historical exports rotate in bounded batches. - Draft Wars can be assigned before a module connects. A per-server database lock prevents concurrent duplicate assignments. Queued is not the same as confirmed: the controller must acknowledge the signed command. - Node capacity can be configured from 3 to 32 slots, each requiring its own dedicated account. Lowering existing capacity is rejected. This remains one managed rental node, not a multi-node scheduler. - Rental owners can restart EvoSC independently and extend a started rental by seven days during its final 24 hours. Extension is idempotent and preserves the original start time. - Process logs support severity/search filters, pause/resume and download. Traffic reports add country/source filters, views and registrations, and explicit Unknown country coverage. New referrers retain only hostnames, not paths or query strings. - Deleted registered servers are hidden from the normal network administration list; deletion revokes the public identity without destroying server files. ## Deployment steps Deploy the website, then update the game node from Admin → Rentals & nodes → Node & installation. Confirm **Agent 64.0**. A website restart does not replace a remote agent. A successful update must pass the new version check; it cannot silently accept the old process. Back up the application, database and private environment files first. Run `npm ci`, `npm run db:migrate` and `npm run build` as separate commands, then restart the actual website service configured on your host. Do not type a `<web-service>` placeholder into a shell. Update the node during a maintenance window. For an existing rental with broken sync, stop both processes, choose **Repair connection**, and start again. Verify a new server-specific revision and the controller command acknowledgement, not just a green dependency diagnostic. ## Still outstanding - Migration of a live rental and its database/files to a different node is not implemented. Replacing the configured node is blocked while slots remain assigned. - A dedicated live connected-player table is not added in this release. War participants remain available in War control; they are not equivalent to currently connected players. - No real VPS deployment or dedicated game login was exercised from this workspace. ## Verification boundary 90 automated tests passed, including the PHP publisher runtime checks. TypeScript and the production build passed. Lint: zero errors, nine existing image warnings. All PHP module syntax checks passed. Local browser fixtures verified the modal editor and Ctrl+S, stopped-only editing, responsive layouts, traffic filters, four-server War selection, duration and participant commands, and installer password clearing. These are local checks, not proof of deployment behaviour.
v63Release date not documented

WARGRID v63 — map pools, file workspace and confirmed control actions

Archived original release notes · v63

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V63.md

# WARGRID v63 — map pools, file workspace and confirmed control actions ## Server workspace - **Maps & rotation** is now a real rental map-pool workspace. Owners can browse installed maps, upload bounded `.Map.Gbx` files, create and order up to 32 named pools, and select the active rotation for their next start. - A pool has optimistic revision protection: conflicting browser changes are rejected instead of overwriting another change. Uploaded maps cannot be deleted while referenced by a saved pool or imported list. Invalid or corrupted pool data fails closed. - The active rotation is deliberately protected while TM2020 or EvoSC is running. Editing an inactive pool is safe; activate it after stopping the server. The node writes the selected ordering into the generated MatchSettings at start. - **Config editor & files** is now categorised into Module configs, API & bridge, MatchSettings, Maps & pools, Logs and other safe server files. Only the reviewed module schemas are writable. Other entries are read-only previews; secrets, credentials and arbitrary code remain inaccessible. ## War and permission feedback - Admin and owner “Make me admin” calls now run EvoSC commands through a non-interactive Symfony runner and require an exact completion marker plus a persisted database permission check. A browser success means the permission was actually written; failures return a safe error instead of a false success. - The War workspace keeps its filled-in create form and shows queued, applied or failed command receipts. It no longer looks as if a draft was created before the signed bridge confirms it. - Draft map pools in the War workspace can be selected, ordered and sent atomically through the bridge. A started War retains its own map pool so historic scoring is not silently changed. ## Update Deploy the website, then use **Admin → Rentals & nodes → Node & installation → Install / update** for every managed game node. The workspace must report **Agent 63.0**. Existing rentals and their map lists are preserved; do not release or rebuild them merely to update. ## Verification TypeScript, full JavaScript tests, lint, production build, package integrity and local browser-fixture checks are run for this release. The fixture checks UI flow and API contracts only. A real Linux/systemd/TM2020/EvoSC start must still be smoke-tested on the deployment VPS before publishing rentals.
v62Release date not documented

WARGRID v62 — TimeAttack controls, in-game admin and dashboard polish

Archived original release notes · v62

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V62.md

# WARGRID v62 — TimeAttack controls, in-game admin and dashboard polish ## Changes - Rental match settings are now locked to TimeAttack in the UI, API normalisation and generated TM2020 MatchSettings XML. Existing rentals are normalised safely on their next save or start. - Owners can grant or remove Masteradmin access for their own account's 22-character Trackmania login from Server details. This includes WarManager and EvoSC module permissions, scoped to the rented game server. The action never accepts a different login from the browser. Fresh rental databases are migrated while the controller is stopped, so access can be assigned before the first start. Rejoin the game to refresh cached permissions. - Config editor now offers Settings forms and JSON source for WarManager, WARGRID API bridge, Local Records and Map & Time Votes, with nested field validation and protected values preserved. - Server console output is shown in a numbered, secret-filtered log viewer with yellow success, amber warning and red error states. - Admin Overview gains a compact Trackmania command-center hero, real network status pills, quick actions and a linked Slikz.dev status/footer band. No fake wallet or payment data is shown. - Every server-management tab includes the requested Slikz.dev TM2020 hosting link and provider logo. ## Update Deploy the website as usual, then update each managed game node from Admin → Rentals & nodes → Node & installation → Install / update. The node agent reports version 62.0 after the update. Existing rentals do not need to be released or rebuilt. ## Verification Build, TypeScript, 53 JavaScript tests, lint (0 errors, 9 existing image warnings) and desktop/mobile browser fixture checks pass. Existing PHP integration checks cover WarManager and Bridge. Real Linux systemd, Nadeo login and EvoSC starts on the deployment VPS still require a deployment smoke test.
v61Release date not documented

WARGRID v61 — War control, module editors and automatic API setup

Archived original release notes · v61

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V61.md

# WARGRID v61 — War control, module editors and automatic API setup ## Changes - Live War manager for admin and rental owners: duration 1–14 days (default seven), display names, team capacity, registration flags, captains, points profile, start/pause/resume/finish and draft map selection. - Participants can be removed, disqualified, restored or have their assignment cleared. Scores recalculate, captain roles clear and slots become available. Restoring/joining uses the War row lock and capacity check; no team overbooking. - Signed, server-scoped command queue with current-War/version validation, expiry and atomic module receipts. Multiple servers may use the same numeric War ID without cross-targeting. Only EvoSC receipts count as applied. - Dashboard API installer for existing systemd-managed EvoSC controllers, with private backup and configuration, transient root credentials and best-effort rollback. Managed rentals update their WARGRID modules on start or through their Wars tab. - Corrected duration changes during a pause so resume counts that pause only once. - Missing website sync and rental bridge signing secrets are initialized automatically, atomically, in private .wargrid-secrets.json. Existing primary bridge keys and valid v60 signatures remain compatible. Parallel web processes share one persistent key store. - Server details: editable name/comment with in-game formatting preview, player join password and player capacity. - Match settings: game mode, time limit, warmup, points and map order are written into actual TM2020 XML files. - Config editor & files: open, edit, format, validate, reload and save WarManager and safe WarApiBridge JSON fields. Detailed field limits appear beside the editor. - Node writes require the matching, unexpired lease, stopped TM2020/EvoSC processes and an unchanged file revision. Slot locks prevent simultaneous start/configuration/cleanup actions. - Protected bridge identity/keys are preserved but never returned in editor content. PHP, RPC/database credentials and arbitrary paths remain outside the writable allowlist. Directory links to other slots are rejected. - Existing module settings survive runtime regeneration. File ownership remains assigned to the slot's numeric UID/GID. - Stop now also handles reserved/stopped database states when the real process needs stopping. - Complete v60 website, dashboard, four independent live streams, API documentation, node installer and bundled modules/maps remain included. ## Update Back up the database, .env, .env.local and .wargrid-secrets.json if present. Install this complete release, retain those private files, run npm ci, npm run db:migrate, npm run build, and restart the website. Missing rental signing keys initialize automatically; do not replace the working primary bridge key. For the file-editor endpoints update the game node through Admin → Rentals & nodes → Node & installation → Install / update. The console must report Agent 61.0. Do not release/rebuild your rental to perform this update. Stop both processes before saving configuration, then restart to use the new settings. ## Verification boundary Build, TypeScript and 51 JavaScript tests passed. PHP 7.4 syntax passed for all 41 module files; 30 PHP/Illuminate/SQLite integration assertions passed, including migrations, signed delivery, captain checks, score recalculation, removal/restore, full teams, duration, pause/resume and next-War creation. Game RPC is stubbed in that integration test. Lint has zero errors and nine existing image warnings. Four Python archive-safety tests passed. Browser fixtures passed all admin sections, desktop/tablet/mobile layouts, four-source navigation, duration commands, participant controls, API installer password clearing, real-editor interactions and save/reload. Automated tests exercise real local node HTTP endpoints and actual configuration file reads/writes, ownership checks, expired leases, revisions, path isolation, XML generation and automatic secret persistence. Browser checks use local fixture data, not production. This Windows workspace cannot verify a Linux systemd, Nadeo or EvoSC process start on the game VPS. Diagnostics alone do not prove that start.
v60Release date not documented

WARGRID v60 — independent Wars, dashboard and node runtime

Archived original release notes · v60

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V60.md

# WARGRID v60 — independent Wars, dashboard and node runtime ## Website and administration - Rebuilt the server/rental landing page, Login and Register in black/yellow. - Added a photographic footer CTA and retained editable footer links. - Added a real /api/docs page and links in navigation, footer and administration. - Added consistent dropdown icons, stable compact auth buttons, player profile links with initials avatars, direct server/War/map links and clickable KPIs. - Restored missing scoped layout styles for populated analytics, Discord, account editors, registration controls, records and CMS content tabs. - Added searchable, paginated account tables with an on-demand editor. - Fixed the live preview stacking above the hero background. ## Main server + three simultaneous rental Wars - New server-scoped snapshot/history tables and migration additions. - Independent HMAC ingest, revision checks, request IDs and identical War IDs. One server can no longer replace or reject another server's live snapshot. - Network selector and server-specific scores, maps and history links. - Managed rentals receive their registry identity and private bridge key on first Start automatically; retry order cannot desynchronise that key. - Terminal leases disable their managed bridge identity. - Existing career badges and console invites remain primary-server features; secondary servers cannot consume primary-server invite requests. ## Included node runtime and startup corrections The complete installer, PHP setup, service runners, configuration generator, diagnostics, slot locks, archive/download validation, bundled starter maps and WARGRID modules are included. These are not just website UI files. - Made systemd `reset-failed` best effort. Failure to clear a unit's old state no longer aborts the request before TM2020 can start. Both actual game and controller units must still be loaded; their start failures are not ignored. - Separated preparation, configuration, database, permission, game and EvoSC errors into named stages with safe error codes. Raw SQL, shell arguments and secrets are not included in API errors or the stored action record. - Persisted the last failed action per rental, visible in the server console after polling. Other rentals cannot read an earlier lease's action. - Added agent version display, immediate refresh after actions, and corrected the misleading `0 / success` display for a rental that has never started. - Extended node diagnostics to inspect the actual reserved slot's files, generated configuration, map list and managed database metadata, not only the shared templates. This does not authenticate the Nadeo account or run the game and is not proof of successful gameplay. - Cleanup checks both processes; cleanup failures no longer mask the initial game/controller startup error. Failed actions do not start/reset the timer. ## Applying the fix Back up and deploy the website as described in README.md, retaining your existing .env and .env.local. In Admin → Rentals & nodes → Node & installation → Install / update, update the game node. Existing accounts and rentals are retained; do not use Release or Rebuild to install this hotfix. Run npm ci, npm run db:migrate and npm run build before restarting the web service. Keep TCP 8787 private/restricted to the website host. Each slot still requires its own valid Nadeo dedicated-server account. ## Additional hardening Static requests are restricted to public/ and dist/client/. Environment files, source code, server bundles and symlink escapes cannot be served as assets. ## Local verification 39 Node tests and 4 Python archive tests pass; TypeScript passes. Browser QA uses populated local fixtures: all main admin sections, analytics chart/KPIs, account editor, CMS tabs, API docs, rental page, auth, navigation, four-source switching and desktop/mobile overflow. No browser runtime errors. Confirm `Agent 60.0` in /me/servers, retry Start, and read Last node action if it fails. Run the extended Node diagnostics for slot readiness as necessary. ## Verification boundary The reported VPS passes dependency/template checks but has not supplied a specific startup exception. The reset-failed issue is a verified code defect, not a confirmed diagnosis of that VPS. This Windows workspace cannot execute the real Linux/systemd/Nadeo startup. Target-node startup still needs checking. Local test results and archive checksum are delivered beside the release ZIP.
v59Release date not documented

v59 — node runtime and component workspaces

Archived original release notes · v59

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V59.md

# v59 — node runtime and component workspaces - Rebuilt header and five-column footer from the supplied slikz.dev structure, using WARGRID branding and yellow/dark accents. Separate compact Login and Register buttons; hover does not move either button; mobile menu and Escape. - Replaced admin shell/overview and rental dashboard with a compact sidebar, grouped tabs, tables and status panels. Live snapshot is not confused with an empty archive. CMS, player, badge and map forms are separated. - Rebuilt /me/servers with console, file preview, maps, match settings, modules/bridge and competition navigation. Shows actual game and controller state, PID, exit status and separate logs, not just a rental DB status. - Added generated TM XML/MatchSettings, isolated slot ports/users, per-rental MariaDB database and EvoSC configuration/Composer/runner. - Root-password dashboard installer uploads every helper and bundled starter map/module asset. Automatic Node bootstrap, noninteractive packages, numeric-ownership crash and self-copy staging failures addressed. - Added node Diagnostics and dedicated-account editor. Credentials remain on the node; API responses only report whether a password is stored. - Administrative node token excluded from game/controller environments. Start/stop/configuration/cleanup serialize per slot. Duplicate provisioning preserves a running lease. Failed-process restart and actual-start timing fixed. - Seven-day expiry enforced on web and node. Old rental logs not shown to the next renter. Map downloads reject private destinations and unsafe archives. - Preserved quoted # in ENV secrets; persisted node configuration loads first. Distribution templates contain no inherited passwords. ## Checks - Production client/SSR/server bundle built on Node 24. - TypeScript: no errors. ESLint: no errors, nine existing img warnings. - Node tests cover runtime XML, ports, authentication, lease/file isolation, slot-action concurrency, installer dry run, ENV parsing and existing flows. - Four Python archive tests pass. - Chromium fixture checks pass at desktop and mobile widths; screenshots reviewed. ## Not verified on infrastructure No production DB or real game VPS was changed or tested here. Linux package availability, dedicated-account authentication and EvoSC/gameplay need the target-node Diagnostics and real start check described in README.md. Full filesystem editing and a new multi-war editor are not part of this release.
v58Release date not documented

WARGRID v58 · complete runtime pass

Archived original release notes · v58

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V58.md

# WARGRID v58 · complete runtime pass - Fresh VPS installs now bootstrap Node.js before the remote helper runs, fall back to NodeSource when a distro has no `nodejs` package, and isolate SSH known-hosts in a short-lived file. - Installer dependencies are non-interactive; optional Composer/SteamCMD packages no longer abort an otherwise valid TM2020 node setup. - Fixed same-directory TM2020 extraction copies and numeric ownership setup for the `wargrid-node` service account. - Rental nodes now generate dedicated/game settings, launch staged binaries with the generated config, and expose authenticated process status, exit results, redacted logs, module state and bounded read-only safe files. - Admin and owner consoles show node reachability and per-slot runtime failures; protected credentials, lease files and symlink escapes remain blocked. - Public shell and admin surfaces keep the compact dark WARGRID layout with yellow accents, responsive navigation, compact Login/Register buttons and a configurable clickable `HOSTED BY SLIKZ.DEV` footer link.
v47Release date not documented

WARGRID v47 · runtime and console hardening

Archived original release notes · v47

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V47.md

# WARGRID v47 · runtime and console hardening - Hardened game-node installation for fresh Debian/Ubuntu VPS hosts: isolated SSH known-hosts, automatic Node.js bootstrap, non-interactive apt configuration, safe ownership setup and cleanup of temporary installer files. - Fixed staging edge cases where an extracted TM2020 directory was copied onto itself. - Added authenticated rental-node observability for process state, exit/result codes, recent redacted logs, enabled modules and a bounded safe-file browser. Protected secrets and lease files remain inaccessible. - Added runtime configuration generation for dedicated server settings, map sources and module state on provision/configure. - Extended the owner server console and admin rental view with live node reachability, per-slot runtime state and actionable error details. - Refined the WARGRID shell with a compact Slikz.dev-inspired dark/yellow navigation, responsive mobile menu, balanced auth buttons and clickable hosted-by footer link.
v46Release date not documented

WARGRID v46 – Reference Navigation

Archived original release notes · v46

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V46.md

# WARGRID v46 – Reference Navigation - Reworked the public header into a restrained reference-style navigation bar for the WARGRID black/yellow theme. - Added a single yellow active marker, quiet dark hover states and stable dimensions for the main tabs. - Kept Login and Register as separate, compact actions; Register is the single yellow call to action. - Added Login and Register to the responsive menu so authentication remains reachable when the desktop tabs collapse.
v45Release date not documented

WARGRID v45 – Minimal Admin Command Center

Archived original release notes · v45

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V45.md

# WARGRID v45 – Minimal Admin Command Center - Reworked the admin area into a compact dark command-center shell with a fixed, calm sidebar and a focused workspace. - Reduced heading, card, KPI and action sizes so the important information fits above the fold and remains readable on small screens. - Standardised surfaces, borders and spacing around the existing WARGRID black/yellow visual language. - Kept the existing admin routes and controls intact while making warning/online states use the yellow accent consistently. - Added responsive breakpoints: the sidebar becomes a compact top navigation and the dashboard collapses cleanly to one column on phones.
v44Release date not documented

WARGRID v44 – one-week rentals and password-based node installer

Archived original release notes · v44

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V44.md

# WARGRID v44 – one-week rentals and password-based node installer - Rental leases now use one authoritative seven-day duration (10,080 minutes) from the first server start; reservations still expire after 15 minutes when never started. - Public and private rental consoles show the same seven-day timer and readable day/hour countdowns. - Admin game-node setup now accepts the VPS root password for one installation request, without requiring `WARGRID_NODE_SSH_KEY_PATH` or storing the password. - The web server uses OpenSSH askpass with a short-lived, deleted helper and automatically writes only the node URL/token to `.env.local` after a successful install. - Updated deployment documentation and installer messaging to match the password-based flow.
v43Release date not documented

WARGRID v43 – Admin navigation cleanup

Archived original release notes · v43

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V43.md

# WARGRID v43 – Admin navigation cleanup - Admin dashboard compact rules now target the real `.admin-page` root, so the sidebar, KPI strip and command panels use the intended sizing. - Added a compact admin top bar with direct links back to the public site and sign-out. - Reduced admin card/header typography and made the dashboard two-column on desktop with clean mobile stacking. - Fixed header auth container widths so LOGIN, REGISTER and signed-in controls stay stable instead of jumping.
v42Release date not documented

WARGRID v42 – Server Console & Clean Rental UI

Archived original release notes · v42

# Direct link
Full original release notes · 1

Historical source text in its original language. Earlier installation commands and module versions describe that release; use the latest package guide for a current update.

CHANGELOG_V42.md

# WARGRID v42 – Server Console & Clean Rental UI - Added `/me/servers` as the authenticated rental console with start/stop/release controls. - Added safe match settings, module toggles, map list/map pack sources and multi-war links. - Rental API now persists validated settings and sends `configure` to the managed node agent. - Public rental view now exposes slot availability without leaking another renter's identity. - Added an atomic per-account rental lock, including cleanup on expiry, release and admin maintenance. - Compact final styling for rental cards, auth buttons and the admin command center; green status blocks removed. - Added mobile stacking for the rental console, auth controls and admin workspace. Validation: `npm run build` succeeds, `npm test` passes 25/25, and `npm run lint` has 0 errors (9 existing image warnings).
THE GRID IS OPEN

One more run.
One more record.

Explore Wars or find a server and join the race.

Explore Wars →Find a server ↗