diff --git a/Cargo.lock b/Cargo.lock index fa6b2ce..f67aada 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -586,7 +586,7 @@ dependencies = [ [[package]] name = "coa-core" -version = "0.9.8" +version = "0.9.9" dependencies = [ "base64 0.22.1", "chrono", @@ -634,7 +634,7 @@ dependencies = [ [[package]] name = "coa-release" -version = "0.9.8" +version = "0.9.9" dependencies = [ "chrono", "coa-core", @@ -643,7 +643,7 @@ dependencies = [ [[package]] name = "coa-server-manager" -version = "0.9.8" +version = "0.9.9" dependencies = [ "coa-control-proto", "coa-core", diff --git a/Cargo.toml b/Cargo.toml index 9fc04c1..05daa91 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/coa-core", "crates/coa-release", "crates/coa-registry-proto", exclude = ["services/coa-registry", "services/coa-registry-e2e", "services/coa-coordinator", "services/coa-relay"] [workspace.package] -version = "0.9.8" +version = "0.9.9" edition = "2021" license = "AGPL-3.0-only" diff --git a/changelog.d/20261103-isolated-login-port.md b/changelog.d/20261103-isolated-login-port.md new file mode 100644 index 0000000..1040653 --- /dev/null +++ b/changelog.d/20261103-isolated-login-port.md @@ -0,0 +1,6 @@ +--- +area: manager +type: fixed +audience: admins +title: Update and recovery checks use the temporary login port even with a Windows override +--- diff --git a/crates/coa-core/src/driver.rs b/crates/coa-core/src/driver.rs index 9226085..337f591 100644 --- a/crates/coa-core/src/driver.rs +++ b/crates/coa-core/src/driver.rs @@ -233,6 +233,10 @@ fn run_inner_mode( recover_world_for_forced_stop(&root)?; } let mut cmd = Command::new(&python); + if validating_update { + // Isolated startup must use the port from its temporary auth config. + cmd.env_remove("AC_REALM_SERVER_PORT"); + } cmd.arg("-B") .arg("-c") .arg(LAUNCH_SCRIPT) diff --git a/package-lock.json b/package-lock.json index e7eec5a..2f93a6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "coa-server-manager", - "version": "0.9.8", + "version": "0.9.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coa-server-manager", - "version": "0.9.8", + "version": "0.9.9", "dependencies": { "@tauri-apps/api": "^2.12.0", "@tauri-apps/plugin-dialog": "^2.8.0", diff --git a/package.json b/package.json index 6582c26..643484c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "coa-server-manager", "private": true, - "version": "0.9.8", + "version": "0.9.9", "license": "AGPL-3.0-only", "type": "module", "scripts": { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index a0673c5..e5a7c73 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "CoA Server Manager", - "version": "0.9.8", + "version": "0.9.9", "identifier": "com.coa.servermanager", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/data/README.md b/src/data/README.md index 800fc4e..143f6a2 100644 --- a/src/data/README.md +++ b/src/data/README.md @@ -2,8 +2,8 @@ The Manager feed is imported from the canonical `changelog/history.json`. The server snapshot in this directory is copied from `Corfirean/coa-server-build` -commit `e91ae8af4e506c9b8461c7eed6731945a34c3ad8`, path -`changelog/history.json`, on 2026-10-31. Only schema, component, repository and +commit `902ed8eed3017e3ee8c31e5dc5e4df6f551362bf`, path +`changelog/history.json`, on 2026-11-03. Only schema, component, repository and releases are retained. Do not independently edit historical records here. At runtime the native read-only command fetches the fixed canonical URL, bounds diff --git a/src/data/latest-note-translations.json b/src/data/latest-note-translations.json index ee8b37f..c300bad 100644 --- a/src/data/latest-note-translations.json +++ b/src/data/latest-note-translations.json @@ -36,7 +36,8 @@ "Dungeon Clear can be enabled when SQUID bots are active": "Dungeon Clear можно включить при активных SQUID bots", "Update validation keeps MySQL running between compatible checks": "При проверке обновления MySQL продолжает работать между совместимыми проверками", "Choose normal logs, errors only or no server logs in maintenance settings": "Выбирайте обычные логи, только ошибки или отключение логов в настройках обслуживания", - "Diagnostic exports include launcher stages and lock owner records": "В архив диагностики входят этапы лаунчера и записи о владельцах блокировок" + "Diagnostic exports include launcher stages and lock owner records": "В архив диагностики входят этапы лаунчера и записи о владельцах блокировок", + "Update and recovery checks use the temporary login port even with a Windows override": "Проверка обновления и восстановления использует временный порт входа даже при переопределении в Windows" }, "de": { "Choose Parallel or Global level scaling in module settings": "Parallele oder globale Levelskalierung in den Moduleinstellungen wählen", @@ -74,7 +75,8 @@ "Dungeon Clear can be enabled when SQUID bots are active": "Dungeon Clear lässt sich bei aktiven SQUID-Bots einschalten", "Update validation keeps MySQL running between compatible checks": "Bei der Update-Validierung bleibt MySQL zwischen kompatiblen Prüfungen aktiv", "Choose normal logs, errors only or no server logs in maintenance settings": "In den Wartungseinstellungen normale Protokolle, nur Fehler oder keine Serverprotokolle wählen", - "Diagnostic exports include launcher stages and lock owner records": "Diagnoseexporte enthalten Launcher-Schritte und aufgezeichnete Sperrbesitzer" + "Diagnostic exports include launcher stages and lock owner records": "Diagnoseexporte enthalten Launcher-Schritte und aufgezeichnete Sperrbesitzer", + "Update and recovery checks use the temporary login port even with a Windows override": "Update- und Wiederherstellungsprüfungen verwenden den temporären Anmeldeport auch bei einer Windows-Vorgabe" }, "fr": { "Choose Parallel or Global level scaling in module settings": "Choisissez une progression parallèle ou globale des niveaux dans les paramètres du module", @@ -112,7 +114,8 @@ "Dungeon Clear can be enabled when SQUID bots are active": "Dungeon Clear peut être activé lorsque les bots SQUID sont actifs", "Update validation keeps MySQL running between compatible checks": "La validation des mises à jour garde MySQL actif entre les vérifications compatibles", "Choose normal logs, errors only or no server logs in maintenance settings": "Choisissez les journaux normaux, les erreurs uniquement ou aucun journal dans les paramètres de maintenance", - "Diagnostic exports include launcher stages and lock owner records": "Les exports de diagnostic incluent les étapes de lancement et les propriétaires des verrous" + "Diagnostic exports include launcher stages and lock owner records": "Les exports de diagnostic incluent les étapes de lancement et les propriétaires des verrous", + "Update and recovery checks use the temporary login port even with a Windows override": "Les contrôles de mise à jour et de restauration utilisent le port de connexion temporaire même si Windows en impose un autre" }, "es": { "Choose Parallel or Global level scaling in module settings": "Elige escalado de nivel paralelo o global en los ajustes del módulo", @@ -150,7 +153,8 @@ "Dungeon Clear can be enabled when SQUID bots are active": "Dungeon Clear se puede activar cuando los bots SQUID están activos", "Update validation keeps MySQL running between compatible checks": "La validación de actualizaciones mantiene MySQL activo entre comprobaciones compatibles", "Choose normal logs, errors only or no server logs in maintenance settings": "Elige registros normales, solo errores o ningún registro en los ajustes de mantenimiento", - "Diagnostic exports include launcher stages and lock owner records": "Los archivos de diagnóstico incluyen las etapas del lanzador y los propietarios de bloqueos" + "Diagnostic exports include launcher stages and lock owner records": "Los archivos de diagnóstico incluyen las etapas del lanzador y los propietarios de bloqueos", + "Update and recovery checks use the temporary login port even with a Windows override": "Las comprobaciones de actualización y recuperación usan el puerto temporal de acceso aunque Windows indique otro" }, "zh": { "Choose Parallel or Global level scaling in module settings": "在模块设置中选择并行或全局等级缩放", @@ -188,7 +192,8 @@ "Dungeon Clear can be enabled when SQUID bots are active": "启用 SQUID 机器人后即可开启 Dungeon Clear", "Update validation keeps MySQL running between compatible checks": "更新验证会在兼容的检查步骤之间保持 MySQL 运行", "Choose normal logs, errors only or no server logs in maintenance settings": "在维护设置中选择普通日志、仅错误或关闭服务器日志", - "Diagnostic exports include launcher stages and lock owner records": "诊断导出包含启动器阶段和锁所属进程记录" + "Diagnostic exports include launcher stages and lock owner records": "诊断导出包含启动器阶段和锁所属进程记录", + "Update and recovery checks use the temporary login port even with a Windows override": "即使 Windows 指定了其他端口,更新和恢复检查也会使用临时登录端口" } }, "server": { @@ -222,7 +227,7 @@ "Imported 40 upstream commits with class, item and Pale Reach quest fixes, optional account-wide friends, and corrected Vanity purchases": "Включены 40 изменений апстрима: исправления классов, предметов и заданий Pale Reach, необязательные друзья на весь аккаунт и исправленные покупки Vanity", "Server includes newer upstream class, quest and dungeon updates": "Сервер включает новые обновления классов, заданий и подземелий из апстрима", "Dungeon scaling preserves the level differences between creatures": "Масштабирование подземелий сохраняет разницу уровней между существами", - "Normal Classic dungeons retain their authored damage at full party size": "Обычные подземелья классики сохраняют исходный урон при полной группе", + "Normal Classic dungeons retain their authored damage at full party size": "В обычных классических подземельях урон при полной группе соответствует исходной настройке", "Interactive World Map displays allied bots, guild tasks and events": "Интерактивная карта мира показывает союзных ботов, задания гильдии и события", "Database startup allows time for slower hard drives": "Запуск базы данных допускает более долгое ожидание на медленных дисках", "Option to make low-health runners walk": "Добавлена возможность замедлить убегающих существ с низким здоровьем до шага", @@ -237,7 +242,9 @@ "Dungeon Clear is available as an optional extension for SQUID bots": "Dungeon Clear доступен как дополнительный модуль для SQUID bots", "Server validation skips creating and logging in SQUID bots": "При проверке сервера аккаунты SQUID bots не создаются и боты не входят в мир", "Startup and shutdown keep bounded diagnostics of launcher stages": "При запуске и остановке сохраняется ограниченная по объёму диагностика этапов лаунчера", - "Database shutdown succeeds when MySQL closes its connection before replying": "Остановка базы завершается успешно, если MySQL закрыл соединение до отправки ответа" + "Database shutdown succeeds when MySQL closes its connection before replying": "Остановка базы завершается успешно, если MySQL закрыл соединение до отправки ответа", + "Server startup waits for ports that Windows is still releasing": "При запуске сервер ждёт, пока Windows освободит порт", + "Companions avoid repeating unreachable routes in the open world": "В открытом мире спутники перестают повторять непроходимые маршруты" }, "de": { "Restrict new characters by custom race without changing existing characters": "Neue Charaktere nach zusätzlichem Volk beschränken, ohne bestehende Charaktere zu ändern", @@ -269,7 +276,7 @@ "Imported 40 upstream commits with class, item and Pale Reach quest fixes, optional account-wide friends, and corrected Vanity purchases": "40 Upstream-Änderungen mit Klassen-, Gegenstands- und Pale-Reach-Questkorrekturen, optionalen accountweiten Freunden und korrigierten Vanity-Käufen übernommen", "Server includes newer upstream class, quest and dungeon updates": "Der Server enthält neuere Upstream-Updates für Klassen, Quests und Dungeons", "Dungeon scaling preserves the level differences between creatures": "Die Dungeon-Skalierung erhält die Stufenunterschiede zwischen Kreaturen", - "Normal Classic dungeons retain their authored damage at full party size": "Normale Classic-Dungeons behalten bei voller Gruppe ihren ursprünglichen Schaden", + "Normal Classic dungeons retain their authored damage at full party size": "Normale klassische Dungeons behalten bei voller Gruppe ihren vorgesehenen Schaden", "Interactive World Map displays allied bots, guild tasks and events": "Die interaktive Weltkarte zeigt verbündete Bots, Gildenaufgaben und Ereignisse", "Database startup allows time for slower hard drives": "Der Datenbankstart lässt langsameren Festplatten mehr Zeit", "Option to make low-health runners walk": "Fliehende Kreaturen mit wenig Gesundheit können im Schritttempo laufen", @@ -284,7 +291,9 @@ "Dungeon Clear is available as an optional extension for SQUID bots": "Dungeon Clear ist als optionale Erweiterung für SQUID-Bots verfügbar", "Server validation skips creating and logging in SQUID bots": "Die Servervalidierung überspringt das Erstellen und Anmelden von SQUID-Bots", "Startup and shutdown keep bounded diagnostics of launcher stages": "Start und Herunterfahren speichern begrenzte Diagnosedaten der Launcher-Schritte", - "Database shutdown succeeds when MySQL closes its connection before replying": "Das Herunterfahren der Datenbank gelingt auch, wenn MySQL die Verbindung vor der Antwort schließt" + "Database shutdown succeeds when MySQL closes its connection before replying": "Das Herunterfahren der Datenbank gelingt auch, wenn MySQL die Verbindung vor der Antwort schließt", + "Server startup waits for ports that Windows is still releasing": "Beim Start wartet der Server, bis Windows den Port freigibt", + "Companions avoid repeating unreachable routes in the open world": "Gefährten meiden in der offenen Welt wiederholte Versuche auf unpassierbaren Routen" }, "fr": { "Restrict new characters by custom race without changing existing characters": "Restreignez les races supplémentaires des nouveaux personnages sans modifier les personnages existants", @@ -316,7 +325,7 @@ "Imported 40 upstream commits with class, item and Pale Reach quest fixes, optional account-wide friends, and corrected Vanity purchases": "Intégration de 40 changements amont : classes, objets et quêtes de Pale Reach corrigés, amis de compte facultatifs et achats Vanity corrigés", "Server includes newer upstream class, quest and dungeon updates": "Le serveur intègre de nouvelles mises à jour des classes, quêtes et donjons provenant du projet amont", "Dungeon scaling preserves the level differences between creatures": "La mise à l’échelle des donjons conserve les écarts de niveau entre les créatures", - "Normal Classic dungeons retain their authored damage at full party size": "Les donjons Classic normaux conservent leurs dégâts d’origine avec un groupe complet", + "Normal Classic dungeons retain their authored damage at full party size": "Les donjons classiques normaux conservent leurs dégâts prévus pour un groupe complet", "Interactive World Map displays allied bots, guild tasks and events": "La carte du monde interactive affiche les bots alliés, les tâches de guilde et les événements", "Database startup allows time for slower hard drives": "Le démarrage de la base de données laisse plus de temps aux disques lents", "Option to make low-health runners walk": "Une option permet aux créatures affaiblies de fuir en marchant", @@ -331,7 +340,9 @@ "Dungeon Clear is available as an optional extension for SQUID bots": "Dungeon Clear est disponible comme extension facultative pour les bots SQUID", "Server validation skips creating and logging in SQUID bots": "La validation du serveur ignore la création et la connexion des bots SQUID", "Startup and shutdown keep bounded diagnostics of launcher stages": "Le démarrage et l’arrêt conservent un diagnostic limité des étapes de lancement", - "Database shutdown succeeds when MySQL closes its connection before replying": "L’arrêt de la base réussit même si MySQL ferme la connexion avant de répondre" + "Database shutdown succeeds when MySQL closes its connection before replying": "L’arrêt de la base réussit même si MySQL ferme la connexion avant de répondre", + "Server startup waits for ports that Windows is still releasing": "Au démarrage, le serveur attend que Windows libère le port", + "Companions avoid repeating unreachable routes in the open world": "Les compagnons évitent de reprendre les chemins impraticables en monde ouvert" }, "es": { "Restrict new characters by custom race without changing existing characters": "Restringe las razas adicionales de personajes nuevos sin modificar los existentes", @@ -363,7 +374,7 @@ "Imported 40 upstream commits with class, item and Pale Reach quest fixes, optional account-wide friends, and corrected Vanity purchases": "Integrados 40 cambios del proyecto original: correcciones de clases, objetos y misiones de Pale Reach, amigos opcionales de toda la cuenta y compras Vanity corregidas", "Server includes newer upstream class, quest and dungeon updates": "El servidor incorpora nuevas actualizaciones de clases, misiones y mazmorras del proyecto original", "Dungeon scaling preserves the level differences between creatures": "El escalado de las mazmorras conserva las diferencias de nivel entre criaturas", - "Normal Classic dungeons retain their authored damage at full party size": "Las mazmorras Classic normales conservan su daño original con un grupo completo", + "Normal Classic dungeons retain their authored damage at full party size": "Las mazmorras clásicas normales conservan el daño previsto para un grupo completo", "Interactive World Map displays allied bots, guild tasks and events": "El mapa del mundo interactivo muestra bots aliados, tareas de hermandad y eventos", "Database startup allows time for slower hard drives": "El inicio de la base de datos permite más tiempo en discos lentos", "Option to make low-health runners walk": "Una opción permite que las criaturas con poca salud huyan caminando", @@ -378,7 +389,9 @@ "Dungeon Clear is available as an optional extension for SQUID bots": "Dungeon Clear está disponible como extensión opcional para los bots SQUID", "Server validation skips creating and logging in SQUID bots": "La validación del servidor omite la creación y conexión de bots SQUID", "Startup and shutdown keep bounded diagnostics of launcher stages": "El inicio y la parada guardan diagnósticos limitados de las etapas del lanzador", - "Database shutdown succeeds when MySQL closes its connection before replying": "La parada de la base de datos se completa aunque MySQL cierre la conexión antes de responder" + "Database shutdown succeeds when MySQL closes its connection before replying": "La parada de la base de datos se completa aunque MySQL cierre la conexión antes de responder", + "Server startup waits for ports that Windows is still releasing": "Al iniciarse, el servidor espera a que Windows libere el puerto", + "Companions avoid repeating unreachable routes in the open world": "Los compañeros evitan repetir rutas intransitables en el mundo abierto" }, "zh": { "Restrict new characters by custom race without changing existing characters": "限制新角色可选的自定义种族,不影响现有角色", @@ -410,7 +423,7 @@ "Imported 40 upstream commits with class, item and Pale Reach quest fixes, optional account-wide friends, and corrected Vanity purchases": "合入 40 项上游更改:职业、物品及 Pale Reach 任务修复,可选的账号共享好友,以及 Vanity 购买修复", "Server includes newer upstream class, quest and dungeon updates": "服务器整合了上游新的职业、任务和地下城更新", "Dungeon scaling preserves the level differences between creatures": "地下城缩放保留生物之间的等级差异", - "Normal Classic dungeons retain their authored damage at full party size": "普通经典地下城在满员队伍下保留原始伤害", + "Normal Classic dungeons retain their authored damage at full party size": "满队时普通经典地下城保留原定的伤害数值", "Interactive World Map displays allied bots, guild tasks and events": "交互式世界地图显示友方机器人、公会任务和事件", "Database startup allows time for slower hard drives": "数据库启动为较慢的硬盘预留更多等待时间", "Option to make low-health runners walk": "新增选项,可让低生命值的逃跑生物改为步行", @@ -425,7 +438,9 @@ "Dungeon Clear is available as an optional extension for SQUID bots": "Dungeon Clear 现可作为 SQUID 机器人的可选扩展", "Server validation skips creating and logging in SQUID bots": "服务器验证会跳过 SQUID 机器人的创建和登录", "Startup and shutdown keep bounded diagnostics of launcher stages": "启动和关闭时会保留大小受限的启动器阶段诊断日志", - "Database shutdown succeeds when MySQL closes its connection before replying": "即使 MySQL 在回复前关闭连接,数据库关闭操作也能正确完成" + "Database shutdown succeeds when MySQL closes its connection before replying": "即使 MySQL 在回复前关闭连接,数据库关闭操作也能正确完成", + "Server startup waits for ports that Windows is still releasing": "服务器启动时会等待 Windows 释放端口", + "Companions avoid repeating unreachable routes in the open world": "伙伴在开放世界中会避免反复尝试无法通行的路线" } } } diff --git a/src/data/server-history.json b/src/data/server-history.json index 7f443f4..676d789 100644 --- a/src/data/server-history.json +++ b/src/data/server-history.json @@ -1429,6 +1429,148 @@ "portable-characters" ], "compare": "https://github.com/Corfirean/coa-server-build/compare/server-0.261029.85...server-0.261030.90" + }, + { + "tag": "server-0.261101.92", + "version": "0.261101.92", + "date": "2026-11-01", + "url": "https://github.com/Corfirean/coa-server-build/releases/tag/server-0.261101.92", + "notes": [ + "Concurrent server actions wait briefly and identify the action still running", + "Dungeon Clear is available as an optional extension for SQUID bots", + "Server launchers accept configuration paths in folders with spaces", + "Startup and shutdown keep bounded diagnostics of launcher stages", + "Database shutdown succeeds when MySQL closes its connection before replying", + "Database restarts recover from ownerless Windows port entries", + "Server validation skips creating and logging in SQUID bots", + "Updated the reviewed CoA upstream snapshot" + ], + "snapshot": "f2be62fe451dd635a27393b6289b7801c7103826597232a78633f49f564f858c", + "components": { + "upstream": { + "repository": "jealous-sound/azerothcore-wotlk-coa", + "ref": "2ee0f77eebed8b984fb151cf7fe1163f640efd3a", + "sha": "2ee0f77eebed8b984fb151cf7fe1163f640efd3a" + }, + "core": { + "repository": "Corfirean/azerothcore-wotlk-coa", + "ref": "66380c78147cbd01e22361df1df54dc87b0f1701", + "sha": "66380c78147cbd01e22361df1df54dc87b0f1701" + }, + "bots": { + "repository": "Corfirean/mod-coa-playerbots", + "ref": "4f6cf99e6bf509ae2b178e993d1170cc7fe0cb0c", + "sha": "4f6cf99e6bf509ae2b178e993d1170cc7fe0cb0c" + }, + "scaling": { + "repository": "Corfirean/mod-coa-content-scaling", + "ref": "0898a3e976677cde470a60ba4e6f9bb9d0fe5e2c", + "sha": "0898a3e976677cde470a60ba4e6f9bb9d0fe5e2c" + }, + "manager": { + "repository": "Corfirean/coa-server-manager", + "ref": "23cbb108adb4f9c61c0ffff24a60c134e5a0dede", + "sha": "23cbb108adb4f9c61c0ffff24a60c134e5a0dede" + }, + "races": { + "repository": "ilusixn/azerothcore-wotlk-coa", + "ref": "coa-custom-1.9.2", + "sha": "31bd63d309b8b0fb4f1a4d9b793a343b8ac36f1e", + "assets": [ + { + "name": "CoA-Custom-1.9.2-Client-1.zip", + "size": 1513021586, + "digest": "sha256:a9dd51ed2d90fb048d549602f40f5429d56e2df0df5606a38781b358fa369568", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Client-1.zip" + }, + { + "name": "CoA-Custom-1.9.2-Client-2.zip", + "size": 1198283005, + "digest": "sha256:ab084a55509ccbcc2977a06dd0c01fa879973a1892baaacaeb3ff52f3dfc750e", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Client-2.zip" + }, + { + "name": "CoA-Custom-1.9.2-Client-3.zip", + "size": 1678829573, + "digest": "sha256:907e267f0ee7038807e626c3c1eca5e12db6c88b747137a23c5fb52eaa1a358e", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Client-3.zip" + }, + { + "name": "CoA-Custom-1.9.2-Client-4.zip", + "size": 502385128, + "digest": "sha256:e0bd87172af989fa50a8e2b08ba4321c72b6265047482f051a1db3b80d55bcaa", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Client-4.zip" + }, + { + "name": "CoA-Custom-1.9.2-Client-5.zip", + "size": 168079711, + "digest": "sha256:73364ad1b58c6342641a848a3b20a835472834f600416606be1470386774ca78", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Client-5.zip" + }, + { + "name": "CoA-Custom-1.9.2-Server.zip", + "size": 53004560, + "digest": "sha256:b893813573a4d3f6a0003c1f174582d3def997f37b402cbca44d53055d2fc1d2", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/CoA-Custom-1.9.2-Server.zip" + }, + { + "name": "INSTALL-GUIDE.txt", + "size": 3006, + "digest": "sha256:f17e97fafa3225901d1caf8c3b8141293f98fbfb8c9243c0c4717278c60146aa", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/INSTALL-GUIDE.txt" + }, + { + "name": "PATCH-NOTES-1.9.2.txt", + "size": 2822, + "digest": "sha256:f2fd4693ba181959a572d3fb10a0050e9ff6c4f735b3ab0019c7d16712db28cb", + "url": "https://github.com/ilusixn/azerothcore-wotlk-coa/releases/download/coa-custom-1.9.2/PATCH-NOTES-1.9.2.txt" + } + ] + }, + "squid": { + "repository": "Zyth45/mod-playerbots", + "ref": "v2.8.2", + "sha": "fa4cfd31997367b3e574a2b89b858c4669ff53fb", + "patch": "patches/squid-coa-validation.patch", + "patchSha256": "9b101db17369fb5a6af3f7e99323f7770eb8650ba3b5e9b3970bf09a0ef5d32f" + }, + "build": { + "repository": "Corfirean/coa-server-build", + "ref": "9705eb844085b72379bef517635968473cb43419", + "sha": "9705eb844085b72379bef517635968473cb43419" + }, + "dungeon-clear": { + "repository": "Zyth45/mod-dungeon-clear", + "sha": "9a9d09cf512e0a883af9cda6973445b81c123b13", + "patch": "patches/dungeon-clear-coa-validation.patch", + "patchSha256": "956f278865e22ee75c984ca22ff8238150b5886c9934ddfe64dd9c832c912dcc", + "ref": "9a9d09cf512e0a883af9cda6973445b81c123b13" + }, + "navigation": { + "repository": "Corfirean/azerothcore-wotlk-coa", + "ref": "8b44099f480af0b69c6dfc697e4d388e865e9ffc", + "sha": "8b44099f480af0b69c6dfc697e4d388e865e9ffc", + "sourceRelease": "navigation-20261012", + "manifestSha256": "7f28600735f115792e79a5e8d1c8d78a83a8f5ed14a090c6d87268e49c2bb683", + "archiveSha256": "aa1347a095f85af44b4f592270a0e9314954801fda4578f0147f847e32c24a60", + "assets": [ + { + "name": "navigation.zip.001", + "size": 1500000000, + "sha256": "e3a93903fc8155ee0d92db399ec426769c360bef87c44c07beb7e21cfd892c18", + "url": "https://github.com/Corfirean/coa-server-build/releases/download/navigation-20261012/navigation.zip.001" + }, + { + "name": "navigation.zip.002", + "size": 1377006470, + "sha256": "c1af26ba7f83676278613076c357c4da0a11cfa6ae1ff00003479057c4864471", + "url": "https://github.com/Corfirean/coa-server-build/releases/download/navigation-20261012/navigation.zip.002" + } + ] + } + }, + "experimentalFeatures": [], + "compare": "https://github.com/Corfirean/coa-server-build/compare/server-0.261030.90...server-0.261101.92" } ] } diff --git a/tools/reviewed-manager-notes.json b/tools/reviewed-manager-notes.json index 22381e4..dce9ee7 100644 --- a/tools/reviewed-manager-notes.json +++ b/tools/reviewed-manager-notes.json @@ -1,10 +1,6 @@ { - "version": "0.9.8", + "version": "0.9.9", "notes": [ - "Update checks temporarily suspend bot population and restore your configuration", - "Dungeon Clear can be enabled when SQUID bots are active", - "Update validation keeps MySQL running between compatible checks", - "Choose normal logs, errors only or no server logs in maintenance settings", - "Diagnostic exports include launcher stages and lock owner records" + "Update and recovery checks use the temporary login port even with a Windows override" ] } diff --git a/tools/reviewed-server-notes.json b/tools/reviewed-server-notes.json index 79c23e4..46c385e 100644 --- a/tools/reviewed-server-notes.json +++ b/tools/reviewed-server-notes.json @@ -1,16 +1,12 @@ { - "core": "66380c78147cbd01e22361df1df54dc87b0f1701", - "bots": "4f6cf99e6bf509ae2b178e993d1170cc7fe0cb0c", + "core": "14cf375f1e006770b330d3fb89201ace54bfca24", + "bots": "447558bc27d6bb447aaf10eefcb2e85ac2b15c32", "squid": "fa4cfd31997367b3e574a2b89b858c4669ff53fb", "notes": [ - "Server launchers accept configuration paths in folders with spaces", - "Database restarts recover from ownerless Windows port entries", - "Concurrent server actions wait briefly and identify the action still running", - "Dungeon Clear is available as an optional extension for SQUID bots", - "Server validation skips creating and logging in SQUID bots", - "Startup and shutdown keep bounded diagnostics of launcher stages", - "Updated the reviewed CoA upstream snapshot", - "Database shutdown succeeds when MySQL closes its connection before replying" + "Server startup waits for ports that Windows is still releasing", + "Normal Classic dungeons retain their authored damage at full party size", + "Companions avoid repeating unreachable routes in the open world", + "Updated the reviewed CoA upstream snapshot" ], "dungeon-clear": "9a9d09cf512e0a883af9cda6973445b81c123b13" }