From 60cab950bdcd266f3b8828338d2c670cbdf8f8ba Mon Sep 17 00:00:00 2001 From: nico Date: Fri, 30 Oct 2026 04:09:27 +0100 Subject: [PATCH] Record overnight group and transport test results --- .../2026-10-30-group-observation.md | 138 ++ doc/clientless/SESSION-RESUME.md | 137 ++ .../findings.json | 93 ++ .../maintenance-events.json | 9 + .../2026-10-30-group-observation/summary.json | 1107 +++++++++++++++++ .../vcore-flight-regions-install.log | 16 + .../vcore-group-fallback-build.log | 4 + .../vcore-group-fallback-install.log | 16 + 8 files changed, 1520 insertions(+) create mode 100644 doc/clientless/2026-10-30-group-observation.md create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/findings.json create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/maintenance-events.json create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/summary.json create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/vcore-flight-regions-install.log create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-build.log create mode 100644 doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-install.log diff --git a/doc/clientless/2026-10-30-group-observation.md b/doc/clientless/2026-10-30-group-observation.md new file mode 100644 index 0000000000..2114c6b9f5 --- /dev/null +++ b/doc/clientless/2026-10-30-group-observation.md @@ -0,0 +1,138 @@ +# Gruppentest am 30.10.2026 bis 04:00 Uhr MEZ + +Die automatische Beobachtung lief von 02:20:56 bis 04:00:00 Uhr MEZ. Der Server +läuft weiter. Um 04:00 Uhr wurden die ursprünglichen 15 Prozent für die temporäre +Botrotation wiederhergestellt. Der Loader bleibt aktiviert; eingestellt sind +weiterhin je Fraktion 50 persistente und 5 temporäre Bots. + +Es gab keinen unbeabsichtigten Laufzeitabsturz. Ein angekündigter Neustart um +02:37 Uhr spielte die während der Beobachtung gefundene Korrektur ein. + +## Änderungen und Testaufbau + +- `373818628d`: Instanzmodi, vorzeitiger Gruppenaufbruch und Flugvoraussetzungen. +- `77648c6b53`: Navigationsfallbacks nach vorgezogenem Aufbruch erhalten. +- Die Flugvoraussetzung gilt für die im editierbaren Gebietskatalog ausgewiesenen + Flugregionen der Scherbenwelt und von Cataclysm. Nordend verlangt zusätzlich + Stufe 68 und Kaltwetterflug. Die niedrigstufigen Blutelfen- und Draenei-Gebiete + auf Karte 530 bleiben getrennt. Builds mit `-j10`; 69 Tests bestanden. Für die + anschließend gefundene Regression wurden drei Produktionstests erneut geprüft. +- Von 110 Bots nahmen 92 teil. 18 Bots unter Stufe 15 blieben ausgenommen. +- Nur die Blöcke 02:00–03:00 und 03:00–04:00 Uhr wurden geändert: zuerst + Gruppensuche in Sturmwind beziehungsweise Orgrimmar, danach 76 Instanz- und + 16 Raid-Intents. Alle gewählten Ziele bestanden den nativen Eligibility-Check. +- Nach sicherem Logout wurden Teilnehmer in ihre Hauptstädte gesetzt und alte + Leichen-, Geist-, Transport-, Taxi-, Besuchs- und Handoff-Reste bereinigt. + Die übrigen Tagesblöcke blieben erhalten. + +## Bestätigte Abläufe + +Alle 110 Bots waren gleichzeitig online. Es gab maximal 26 Gruppen mit +Testteilnehmern, am Ende 17. Im Beobachtungsfenster wurden 156 Meldungen im +Hauptstadtchat und 220 Bot-Einladungen protokolliert. Vorbereitungsszenen und +Suchgänge wurden tatsächlich ausgeführt. Drei Fünfergruppen wurden vor dem +Stundenwechsel vollständig und begannen ihre Sammelfrist. Auch die feste +Sammelphase ab 02:55 Uhr und der Wechsel um 03:00 Uhr wurden beobachtet. + +**Sechs tatsächliche Eintritte und sechs Rückkehren sind bestätigt:** + +| Bot | Besuch | +| --- | --- | +| Elaansa, GUID 110 | Verlies, Karte 34, Instanz 1 | +| Hilddis, GUID 56 | Verlies, Karte 34, Instanz 3 | +| Hildda 64, Nimbin 74, Noranda 53 | gemeinsam Festung der Stürme, Karte 550, Instanz 2 | +| Brynli, GUID 84 | Festung der Stürme, Karte 550, Instanz 4 | + +Alle sechs Eintritte verwendeten den normalen Modus. Ein heroischer Eintritt +wurde in diesem Lauf nicht bestätigt. Fünf Rückkehren erfolgten in der geplanten +Austrittsphase ab 03:55 Uhr; Brynli kehrte bereits früher zurück. Die Rückkehrlogs +weisen HP-Verluste von 1, 37, 46, 32, 10 und 1 Prozent aus, jeweils innerhalb der +vereinbarten Grenze. Danach folgte die Rastphase. + +Elaansas ursprünglicher Folgeslot »Verlies« blieb trotz des zuvor kopierten +Deadmines-Ziels erhalten. Reine Botgruppen besuchten die Instanzen weiterhin +performativ; dies war keine Abnahme von Kampfrollen oder Bossmechaniken. + +51 Transportübergänge wurden beendet, davon 43 mit Testteilnehmern. Das sind +Fahrten, nicht 51 unterschiedliche Bots. Die neue Zeppelinverbindung wurde +viermal von Orgrimmar nach Warsong und dreimal zurück vollständig durchlaufen. +Für die Kraken gab es drei erfolgreiche Ausstiege in Valiance sowie Fehlerfälle. +Auch Tiefenbahn und Bravery wurden erfolgreich benutzt. + +Eine Stichprobe von elf gespeicherten Bots in den verpflichtenden Flugregionen +zeigte durchgehend Reiten 225, Lizenz 90267, Kaltwetterflug 54197 und drei gelernte +Flugreittiere. Eine unqualifizierte Belegung wurde nicht gefunden. + +Die höchste gemessene RSS-Belegung betrug etwa 7,521 GiB. Die CPU-Prozessanzeige +lag meist bei rund einem bis 1,3 Kernen im Zeitmittel. Das ist keine Messung der +maximalen Ticklatenz und keine Prognose für den Produktionsserver. + +## Während der Beobachtung behoben + +Die frühe Intentkopie wurde nach einem gescheiterten Reiseversuch ständig erneut +angewendet. Dadurch überschrieb sie den normalen Navigationsfallback und plante +das ursprüngliche Instanzziel immer wieder neu. Commit `77648c6b53` wendet die +Kopie nur beim Übergang an. Danach gelten das wirksame Fallbackziel und dessen +Vererbung an die Gruppe. Ein Gruppenaustritt setzt den Bot ebenfalls nicht zurück. + +Regressionstests prüfen wiederholte Updates, die Vererbung des Fallbackziels und +das Verlassen der Gruppe. Die 1.693 rohen EARLY-Meldungen stammen aus dieser +Wiederholung vor der Korrektur; sie sind keine 1.693 echten Aufbrüche. Nach dem +Einspielen trat die Schleife nicht erneut auf. + +## Offene Befunde + +1. **Gruppen verlieren beim Neustart gildenlose Mitglieder.** Der Core lud 25 + Gruppendefinitionen und 70 Mitgliedszeilen. `Group::LoadMemberFromDB` deutet + einen fehlgeschlagenen Aufruf von `GetPlayerGuildIdByGUID` als fehlenden + Charakter und löscht das Mitglied. Die Cachefunktion liefert aber auch für + einen vorhandenen Charakter ohne Gilde `false`. Die Gruppen bildeten sich + anschließend neu. Die frühere Aussage, die Mitgliedschaften seien erhalten + geblieben, ist damit korrigiert. Diese native Ursache betrifft auch Spieler + ohne Gilde und wurde während des laufenden Tests nicht umgebaut. +2. **Unterbrochener Schiffsausstieg kann hängen bleiben.** Tholgar 92 und Lillina + 118 erzeugten wiederholte Meldungen »unsafe gap over 8 yards«. Tholgar begann + um 03:08:32 Uhr den Ausstieg in Valiance. Um 03:09:36 Uhr fuhr das Schiff mit + ihm auf dem Übergangsweg wieder ab. Die Wiederaufnahme versucht danach den + Endstand, der von seiner Zwischenposition über acht Yards entfernt liegt. + Die Aufnahme selbst ist kontinuierlich: größter Abstand in Sturmwind 4,043, + in Valiance 3,013 Yards. Keine Aufnahme wurde verändert. Die 12.620 Meldungen + sind Wiederholungen dieser zwei Bots, keine 12.620 unterschiedlichen Fahrten. +3. **Die Anreise bleibt die größte Begrenzung.** Nur 6 von 92 Teilnehmern haben + einen bestätigten Eintritt. Viele andere reisen noch oder planen wiederholt + neu. Es gab insgesamt 7.372 Intentfallbacks, teilweise durch den inzwischen + korrigierten Fehler verzerrt. Das Navigationlog enthält 3.884 Recovery-Starts, + 558 Recovery-Fehlschläge und 1.276 Edge-Fehlschläge. Das sind keine voneinander + unabhängigen Fehlerfälle. Beispiele sind abgewiesene Flugstarts aus Gasthäusern, + fehlende sichere Landepunkte und unvollständige Bodenanschlüsse. +4. **Die Routenwahl berücksichtigt eine Portalbedingung nicht.** Makuran 141 auf + Stufe 52 versucht das Portal von Orgrimmar zu den Verwüsteten Landen zu nutzen + (Spawn 211298, GO 195142, Spell 65729). Die native Spellbedingung verlangt + Stufe 58; sechs Versuche scheiterten. Das Portal erzwingt seine Bedingung + korrekt. Der Planer muss sie vor der Auswahl berücksichtigen. +5. **Ein Solo-Raidversuch wurde abgewiesen.** Braneven 121 auf Stufe 85 scheiterte + am Thron der Vier Winde, Karte 754, Entry 6672, und rastete anschließend. Er + war nach einem Austritt mit Grund `leader-afk` gruppenlos. Die native + Gruppenzulassung muss genauer geprüft werden. Es wurden keine Bedingungen + entfernt oder pauschalen Freischaltungen vorgenommen. +6. Es gab 21 nichtfatale kurze Spline-Warnungen mit NPC- und Playerbotbezug. Bei + GUID 126 wurden Geistfreigabe und Friedhof-Fallbackbelebung beobachtet, keine + Kettentodserie. 38 Gruppenverlassen-Meldungen hatten den Grund `leader-afk`; + bei Bots kann dies eine Folge steckengebliebener Leadernavigation sein. + +## Nachweise und Auswertungsgrenzen + +Sichere Messdaten liegen unter `checkpoints/2026-10-30-group-observation/`. +`summary.json` enthält Eintritte, Rückkehren, Transportankünfte, Fehlerbeispiele +und Messwerte; `findings.json` die gezielten Diagnosen. Vollständige Rohdaten +bleiben unter `/tmp/vcore-group-observation-20261030/`. Der Konfigurationsbackup +enthält Zugangsdaten und wurde nicht ins Repository kopiert. + +Die Navigationlogs rotieren bei 128 MiB. Die Auswertung umfasst die Archive von +02:32:32 und 03:50:52 Uhr sowie die aktive Datei, jeweils auf den Zeitraum von +02:20:56 bis 04:00 Uhr gefiltert. Transportmeldungen stehen im Navigationlog. + +`reload config` um 04:00 Uhr öffnete `Server.log` im Schreibmodus neu. Deshalb +stammen die Eintritts- und Rückkehrnachweise aus dem auf das Beobachtungsende +begrenzten Konsolenmitschnitt. Die Prozesslücke um 02:20:56 Uhr war die anfängliche +Startrace, jene um 02:37 Uhr die angekündigte Wartung, kein ungeplanter Ausfall. diff --git a/doc/clientless/SESSION-RESUME.md b/doc/clientless/SESSION-RESUME.md index 5ec69963d2..5bd0856e00 100644 --- a/doc/clientless/SESSION-RESUME.md +++ b/doc/clientless/SESSION-RESUME.md @@ -1,3 +1,140 @@ +# COMPLETED Oct30 04:00CET: flightregions committed + group observation + +Observation endedautomatically04:00:00.126CET; monitorPID387861/execcell67325 exited0. +ConfigRotationPercent restored15,LoaderEnabled1,targets50/5/50/5. Server389322 +remainsrunning ports8085/8087. Codecommits373818628d(regions+previousfeatures), +77648c6b53(earlyfallbackrepinfix) installed. No pendingbuild/restart orpush. +Fullreportdoc/clientless/2026-10-30-group-observation.md;safecheckpointdirectory +2026-10-30-group-observation. Needreport/doccommit anduserfinalreply now. + +92participants76instance16raid,18under15excluded,110online,max26groups,final17. +156capitalchatmessages,220invites,3full5-playergroupsbeforeplannedfixrestart. +Sixactualentriesandsixreturns(normalmodesonly),injuries1–46pct. FourRaidvisitors +550(twoinstances),twoStockade34(twoinstances). MightyWind4north+3returntrips; +Kraken3northsuccessful BUT92/118interruptedexitloop12620duplicategaperrors. +No unplannedruntimecrash;RSSmax7.521GiB. Gameplaynotfullypassed:6/92entries, +largepathrecoverycounts,NativeGuildlessGroupRestorebug remainsunfixed,52botuses +level58portal,sologroupless754raid denied. Nonfatalshortspline21warnings,one126 +deathwithcemeteryfallback. Userinformedofmainfindingsduringwatch. + +FinalJSON/tmp/vcore-group-observation-20261030/final.json +summary.json. NAV logs +ROTATED: mustinclude.2026-10-30_02-32-32 and.2026-10-30_03-50-52 plusactivefile, +filter02:20:56–04:00. Server.log wasTRUNCATED byreloadconfig at04:00(appenderw), +notcrash. Console/tmp/vcore-flight-regions-group-test-start-20261030.log preserved +all;limittofinal.log_offsets[console] forwindow,returnAt1793328900/deadline1793329200 +identifytestentries/returns. Collector/tmp/vcore-final-group-report.py handlesit. +Nevercopy/tmp/vcore-group-test-20261030/worldserver.conf.before (credentials). + +# Watch update03:38CET — no finish before04:00CET + +ObserverPID387861/session67325 unchanged,finalserver389322active110online, +RSS~7.4GiB. Five confirmedinstanceentries sofar:110Elaansa20Stockade34instance1; +56Hilddis29Stockade34instance3;64/74/53 sameTheEye550instance2(raidgroup). Allmode0 +native(normal); no heroic entryproofyet. ReturnAt03:55, observeexit+injury/rest. + +Transport NAV log extract/tmp/vcore-group-observation-20261030/transport-events.json +created03:28:57 boarding/75riding/214leaving/28arrived/174failed(rawretries). +Arrived includesMightyWind42Zulana69Org->Warsong03:19:11,132Braneron81Warsong +03:23:50,91Rixzek68Warsong03:28:32;42returnedOrg03:26:48 whenleadergoalschanged. +Kraken104Lillini75 ARRIVEDValiance03:22:06, so routeworksforsome;92Tholgarstill +interruptedexitloop. OthertripsBravery/Tiefenbahn succeeded. NativeTransportState +isNAVIGATION logger, canonicalobserverServer.log counters missit; extractbytime +02:20:56–04:00 directly atfinal. File95MB, streamingfast. 174failedincludes144 +unsafe-gap retriesmostly92,13safeDockcancel(expected),11departedlandtransition, +6timeouts—not174separate brokenrides! Computeuniqueactors andclassify. + +Regionaltrainingaudit11savedbots inrequiredregions allriding225,license1,cold1, +3profilemounts; no unqualifiedregionalbotobserved. ThreeCataplayer85aroundHyjal/ +Uldum/Deepholm and5inNorthrend etc. Preserveproof ifneeded. + +NewnativeENTRY_DENIED121Braneven85entry6672 map754SkywallRaid(ThroneFourWinds), +no group atdenial; earlierINTERACTION_GROUP_LEAVE121 reasonleader-afk. Thus solo +raid needsnativegroup despitevalidlevel; remainingpolicygap—notflightfailure. +Severalbotgroupsdisbandedforleader-afk(legitimateconfiguredrulebutmayreflect +stalledleadernavigation). One death126released+cemeteryfallbackrevive, no chain. +Nonfatalshortsplinewarnings~15(mixedNPC/Player). Stillno unplannedservercrash. +No furthercode changes/restart duringtest. Twofeaturecommits373818628d,77648c6b53. +After04verifyautomaticrotation15restore,writefinalreport+safeartifact, doccommit. + +# Observation milestones approx03:20CET — remain active to04:00CET + +BackgroundmonitorstillPID387861/session67325;server389322healthy110online. +03:00allnormalgather deadlines expired,allhandoffs cleaned. First confirmed +INSTANCE_ENTERED110Elaansa20 intoStockade34instance1, returnAt03:55. Itsoriginal +nextdaygoalStockade preserved despiteearlyleadergoalDeadmines, good slotproof. +Only1confirmedentrycurrently;manypathsfallingback. No newEARLYloop afterfix, +cumulative1693 allpre-fixretries. RuntimeRole/PvP logic untouched. + +Actual ZEPP NORTH SUCCESS:42Zulana Horde69 usesMightyWindspawn12 fromOrg toWarsong: +boarding03:16:41,riding03:16:59,leaving03:18:21,ARRIVED03:19:11passenger0native +TRANSPORT_STATE in adventurebot-navigation.log. Newroute genuinelypassed once. +Native transportevents are in NAVIGATION log, notServer.log, so currentmonitor +counterkeys show0! Forfinalreport extractnavigationevents by timestamp window +02:20:56–04:00 directly;don'tinferzero transportactivityfromcanonicalcounter. + +Kraken BUG:92TholgarAlliance79 boardedSW03:05:48, beganValianceexit03:08:32, +vehicledeparted03:09:36mid-exit. Re-adoption03:10+ repeatedlytriesfinalstandfrom +mid-recorded-ramp andfails unsafe gap>8yd. Recordings ARE continuous:SWmax4.043yd, +Valiancemax3.013yd. Savedlocalpoint(6.26951,11.5472,5.66344) ismid-Valiancepath, +~9ydfromstand. No recordingschanged/no fixdeploy;observefuture. FindingsJSON +/tmp/vcore-group-observation-20261030/findings.json storesproof/times. + +Currentwarnings~10shortspline rejections, mixNPCandPlayer,nonfatal. Somereal +travelobserved:56Hilddis nativeTaxiIF6->43AeriePeak;61Mirariel taxi22->42 etc. +OnlyNativeGuildlessGroupLoadbug remainsidentifiednotfixed;groupsreformedafter +ourplannedrestart. No additionalrestart! Continueuntil04andreport withallcaveats. + +# Additional read-only findings during running watch (approx02:48CET) + +KEEP MONITOR UNTIL04:00CET. ExistingwatchscriptPID387861/session67325 active. +New server389322 healthy, no repeatedEARLYevents afterfix; cumulative1693 all +pre-fix loops. Full69test baseline,3regressiontests forfix pass, bothcodecommits. + +IMPORTANT correction: DB groupdefinitions25/70memberrows were loaded onrestart, +but native Group::LoadMemberFromDB deletes guildless members because it requires +GetPlayerGuildIdByGUID success. CharacterCache.cpp:223 returnsfalse forGuildId0. +Thus groups rebuilt afterrestart; do NOT claim existing memberships survived. +Read-onlysource root located, NOT fixed (no additional testrestart). Native code +preexisting affects guildless humans too. Savedfinding/tmp/vcore-group-observation- +20261030/findings.json. Add tofinalreport asremainingissue. Currentgroups growing +again19+,110botsonline. Initialfull3groups'15snapshots persist; some bots nowSolo +becausemembershiplost, keepcopiedactivity asintended. + +Safe-native-state details for56Hilddis and61Mirariel are actual ongoing TAXI +routes, not proven freezes:DB56map0Arathi taxi6->43;61map1Mulgore taxi22->42; +57taxi22->58,63/67taxi22->42,87taxi22->58. Observercapturespositionssaveall5min. +Currentwarnings3:oneNPC Entry5840 +PlayerGUID68/94 short-spline reject, nonfatal. +Do not broaden fixes during watch; assesshour03:00switch andactualentries, then +04:00autoRotationrestore +report. SourceRole/PvP/etc unchanged. + +# ACTIVE MONITOR AFTER FIX DEPLOYED — wait until04:00CET=03:00UTC Oct30 + +Featurecommit373818628d and regressionfix77648c6b53 both committed, no push. +Fix fullbuild-j10+three targeted production tests passed. Installed after graceful +shutdown387859, new389322 ready fresh andports8085/8087. Nativegroups25, all15 +handoffs/15visits preserved. NewServer.log afterrestart has no repeated early +handoff events; cumulative monitorEARLY1693 was the PRE-FIX retryloop, not1693 +realdepartures. Original15armedbots correspondthreefull5-playergroups. + +Still MUST continue observation until04:00CET thenreport. Current02:39CET approx. +Backgroundmonitor PID387861 execsession67325 /tmp/vcore-observe-groups.py remains +active and deadline-aware; log/tmp/vcore-group-observation-console.log; +state/tmp/vcore-group-observation-20261030/state.json; final.json at04:00 and +RotationPercent15 auto-restored then. Originalconfbackup containssecrets;nevercopy. +Console remains SAME appended/tmp/vcore-flight-regions-group-test-start-20261030.log. +Monitor handlesnewServer.log truncation. Maintenance restart documented in +/tmp/vcore-group-observation-20261030/maintenance-events.json; emptyPID samples +02:37:19/39 were PLANNED maintenance, initial02:20:56 emptyPID was spawnrace. +No unplannedcrash sofar. FirstphaseoneNPC splinewarning Entry5840, notPlayerbot. + +Test110bots total:92participants (Alliance41instance/6raid,Horde35instance/10raid), +18under15excluded. Current02–03formationcity,03–04plannedmixedvalidtargets. +All110onlinebeforerestart;stagedloaderreturningthemnow. Never resettestagain. +Observe group/route/entryprogress, snapshoterrors, inspect anomaliesread-only. +After04:00 monitorwritesfinal;checkrotationrestored,writeconciseGermanreportand +safeevidence, updatecheckpoint+optionalreportcommit. Do notclaim gameplay tested +fromcompilealone. FullZeppelinride notyetobserved. No pendingbuild/install. + # CURRENT FINDING / FIX IN BUILD: early snapshot repins travel fallbacks During observation initial full groups began early correctly, but when route diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/findings.json b/doc/clientless/checkpoints/2026-10-30-group-observation/findings.json new file mode 100644 index 0000000000..dc7935ad69 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/findings.json @@ -0,0 +1,93 @@ +{ + "at": "2026-10-30T02:48:28.683804+01:00", + "fixed_early_fallback_loop": { + "commit": "77648c6b53", + "cumulative_prefixed_depart_messages": 1693, + "real_first_phase_full_groups": 3, + "real_armed_bots": 15 + }, + "guildless_group_restore": { + "status": "preexisting_native_core_bug_not_fixed_during_observation", + "loaded_groups": 25, + "loaded_member_rows": 70, + "cause": "Group::LoadMemberFromDB interprets false GetPlayerGuildIdByGUID as missing character; cache returns false for GuildId0 and members are deleted", + "source": [ + "src/server/game/Groups/Group.cpp:213", + "src/server/game/Cache/CharacterCache.cpp:223" + ] + }, + "travel_probes": { + "56": "Native taxi6->43 progressing, not frozen", + "61": "Native taxi22->42 progressing, not frozen" + }, + "warnings": [ + "NPC spline rejection Entry5840", + "Player spline rejections GUID68 and94; nonfatal" + ], + "kraken_exit": { + "bot": 92, + "name": "Tholgar", + "boarded": "03:05:48", + "north_exit_started": "03:08:32", + "interrupted_when_ship_left": "03:09:36", + "retries_failed_from": "03:10:06", + "error": "recorded transition has an unsafe gap over 8 yards", + "recording_max_gap_yards": { + "SW": 4.043, + "Valiance": 3.013 + }, + "saved_local_position": [ + 6.26951, + 11.5472, + 5.66344 + ], + "diagnosis": "Recorded segments are valid; interrupted exit left passenger partway along deck transition and subsequent restart of exit targets the final stand over8yd away", + "status": "observed_not_fixed_no_recordings_changed" + }, + "zeppelin_success": { + "bot": 42, + "name": "Zulana", + "board_started": "03:16:41", + "riding": "03:16:59", + "leaving_northrend": "03:18:21", + "arrived_on_land": "03:19:11", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "spawn": 12, + "passenger_at_arrival": 0 + }, + "solo_raid_denial": { + "guid": 121, + "name": "Braneven", + "level": 85, + "entry": 6672, + "map": 754, + "group_at_denial": null, + "result": "Native raid admission denied; visit moved to rest", + "status": "observed_not_bypassed", + "preceded_by": "INTERACTION_GROUP_LEAVE guid=121 reason=leader-afk" + }, + "death_observed": { + "guid": 126, + "events": [ + "DEATH_RELEASE", + "DEATH_CEMETERY_REVIVE" + ], + "chain_death_observed": false + }, + "portal_level_condition": { + "guid": 141, + "name": "Makuran", + "level": 52, + "spawn": 211298, + "entry": 195142, + "name_go": "Portal to Blasted Lands", + "spell": 65729, + "native_condition_source_type": 17, + "native_condition_type": 27, + "native_minimum_level": 58, + "failures_observed": 6, + "reason": "teleport-not-confirmed", + "diagnosis": "Planner admits a path despite native spell level prerequisite; portal data itself is enforcing the intended condition" + } +} diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/maintenance-events.json b/doc/clientless/checkpoints/2026-10-30-group-observation/maintenance-events.json new file mode 100644 index 0000000000..23701b5c51 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/maintenance-events.json @@ -0,0 +1,9 @@ +[ + { + "kind": "planned_fix_restart", + "at": "2026-10-30T02:37:46.632535+01:00", + "old_pid": 387859, + "commit": "77648c6b53", + "reason": "Repeated early-slot reset overrode normal travel fallback; groups/plans preserved" + } +] diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/summary.json b/doc/clientless/checkpoints/2026-10-30-group-observation/summary.json new file mode 100644 index 0000000000..586dc4b880 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/summary.json @@ -0,0 +1,1107 @@ +{ + "window": { + "started": "2026-10-30T02:20:56.896150+01:00", + "ended": "2026-10-30T04:00:00.105650+01:00", + "deadline": "2026-10-30T04:00:00+01:00" + }, + "participants": 92, + "excluded": 18, + "next_intents": { + "instance": 76, + "raid": 16 + }, + "events": { + "BOT_LOADER": 220, + "INTENT_TRAVEL": 3793, + "GROUP_CHANNEL": 156, + "SOCIAL_START": 3279, + "MICRO_START": 6233, + "LEISURE_START": 1017, + "INTENT_FALLBACK": 7372, + "GROUP_BOT_INVITE": 220, + "GROUP_FULL_GATHER": 15, + "GROUP_GATHER_START": 95, + "GROUP_GATHER_READY": 96, + "GROUP_EARLY_DEPART": 1693, + "INSTANCE_PLAN": 3218, + "INSTANCE_ENTERED": 6, + "INSTANCE_RETURN": 7, + "TEST_ROTATION_RESTORED": 1 + }, + "max_groups_all": 26, + "final_groups_all": 17, + "max_groups_with_participants": 26, + "final_groups_with_participants": 17, + "max_online_saved": 110, + "rss_gib_max": 7.521, + "entry_records": [ + { + "guid": 110, + "name": "Elaansa", + "map": 34, + "instance": 1, + "mode": 0 + }, + { + "guid": 64, + "name": "Hildda", + "map": 550, + "instance": 2, + "mode": 0 + }, + { + "guid": 74, + "name": "Nimbin", + "map": 550, + "instance": 2, + "mode": 0 + }, + { + "guid": 56, + "name": "Hilddis", + "map": 34, + "instance": 3, + "mode": 0 + }, + { + "guid": 53, + "name": "Noranda", + "map": 550, + "instance": 2, + "mode": 0 + }, + { + "guid": 84, + "name": "Brynli", + "map": 550, + "instance": 4, + "mode": 0 + } + ], + "return_records": [ + { + "guid": 84, + "name": "Brynli", + "loss": 1, + "health": 8833, + "max_health": 8923 + }, + { + "guid": 110, + "name": "Elaansa", + "loss": 37, + "health": 495, + "max_health": 787 + }, + { + "guid": 53, + "name": "Noranda", + "loss": 46, + "health": 25810, + "max_health": 47797 + }, + { + "guid": 56, + "name": "Hilddis", + "loss": 32, + "health": 821, + "max_health": 1208 + }, + { + "guid": 64, + "name": "Hildda", + "loss": 10, + "health": 30594, + "max_health": 33994 + }, + { + "guid": 74, + "name": "Nimbin", + "loss": 1, + "health": 16828, + "max_health": 16998 + } + ], + "return_damage_in_range": true, + "transport_states": { + "Boarding": 96, + "Riding": 120, + "Leaving": 12739, + "Arrived": 51, + "Failed": 12670 + }, + "transport_arrivals": [ + { + "at": "2026-10-30_02:26:52", + "guid": 33, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:26:53", + "guid": 142, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:30:26", + "guid": 114, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:34:02", + "guid": 114, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:42:25", + "guid": 68, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:42:26", + "guid": 80, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:42:26", + "guid": 56, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:42:27", + "guid": 39, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:44:14", + "guid": 33, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:44:47", + "guid": 129, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:44:47", + "guid": 94, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:44:48", + "guid": 110, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:44:49", + "guid": 127, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:47:11", + "guid": 114, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:50:49", + "guid": 114, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:50:49", + "guid": 39, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:53:10", + "guid": 94, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:55:34", + "guid": 110, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:56:00", + "guid": 114, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_02:57:58", + "guid": 56, + "phase": "Arrived", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:19:11", + "guid": 42, + "phase": "Arrived", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:20:19", + "guid": 76, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:20:19", + "guid": 120, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:20:19", + "guid": 143, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:22:06", + "guid": 104, + "phase": "Arrived", + "source": "ship_sw_kraken", + "destination": "ship_valiance_kraken", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:22:41", + "guid": 70, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:23:50", + "guid": 132, + "phase": "Arrived", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:23:55", + "guid": 62, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:23:55", + "guid": 106, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:26:48", + "guid": 42, + "phase": "Arrived", + "source": "zeppelin_warsong", + "destination": "zeppelin_org_northrend", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:28:32", + "guid": 91, + "phase": "Arrived", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 132, + "phase": "Arrived", + "source": "zeppelin_warsong", + "destination": "zeppelin_org_northrend", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:37:08", + "guid": 91, + "phase": "Arrived", + "source": "zeppelin_warsong", + "destination": "zeppelin_org_northrend", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:38:07", + "guid": 76, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:38:14", + "guid": 55, + "phase": "Arrived", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:39:41", + "guid": 131, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:41:57", + "guid": 124, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:41:57", + "guid": 106, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:45:13", + "guid": 49, + "phase": "Arrived", + "source": "ship_sw_kraken", + "destination": "ship_valiance_kraken", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:47:05", + "guid": 129, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:47:05", + "guid": 88, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:48:14", + "guid": 76, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:48:56", + "guid": 112, + "phase": "Arrived", + "source": "ship_sw_kraken", + "destination": "ship_valiance_kraken", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:49:07", + "guid": 39, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:49:18", + "guid": 124, + "phase": "Arrived", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:51:01", + "guid": 72, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:53:23", + "guid": 72, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:53:23", + "guid": 82, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:55:03", + "guid": 82, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:55:03", + "guid": 76, + "phase": "Arrived", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "arrived at shared destination node" + }, + { + "at": "2026-10-30_03:56:58", + "guid": 143, + "phase": "Arrived", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "arrived at shared destination node" + } + ], + "transport_arrivals_participants": 43, + "transport_failed_reasons": { + "transport departed during land transition": 15, + "cancelled at safe dock": 28, + "recorded transition has an unsafe gap over 8 yards": 12620, + "transport timeout; any passenger attachment retained": 7 + }, + "transport_failure_examples": [ + { + "at": "2026-10-30_03:02:18", + "guid": 78, + "phase": "Failed", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:04:30", + "guid": 39, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:04:30", + "guid": 70, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:05:08", + "guid": 114, + "phase": "Failed", + "source": "ship_ruttheran_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:07:23", + "guid": 140, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:07:48", + "guid": 94, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:07:48", + "guid": 56, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:10:06", + "guid": 92, + "phase": "Failed", + "source": "ship_sw_kraken", + "destination": "ship_sw_kraken", + "passenger": 1, + "detail": "recorded transition has an unsafe gap over 8 yards" + }, + { + "at": "2026-10-30_03:10:25", + "guid": 131, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 1, + "detail": "transport timeout; any passenger attachment retained" + }, + { + "at": "2026-10-30_03:10:57", + "guid": 98, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:11:57", + "guid": 128, + "phase": "Failed", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_org_northrend", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:11:58", + "guid": 100, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:15:58", + "guid": 86, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_sw_br", + "passenger": 1, + "detail": "transport timeout; any passenger attachment retained" + }, + { + "at": "2026-10-30_03:16:22", + "guid": 82, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:18:06", + "guid": 86, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:18:08", + "guid": 104, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:18:08", + "guid": 118, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_sw_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:19:17", + "guid": 140, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 1, + "detail": "transport timeout; any passenger attachment retained" + }, + { + "at": "2026-10-30_03:21:57", + "guid": 118, + "phase": "Failed", + "source": "ship_sw_kraken", + "destination": "ship_valiance_kraken", + "passenger": 1, + "detail": "recorded transition has an unsafe gap over 8 yards" + }, + { + "at": "2026-10-30_03:23:04", + "guid": 108, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:23:04", + "guid": 137, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:27:01", + "guid": 88, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:28:17", + "guid": 133, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 108, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 129, + "phase": "Failed", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 137, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 131, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:35", + "guid": 140, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:37", + "guid": 124, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:31:37", + "guid": 45, + "phase": "Failed", + "source": "ship_sw_br", + "destination": "ship_ruttheran_br", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:36:48", + "guid": 129, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:44:52", + "guid": 127, + "phase": "Failed", + "source": "tram_if", + "destination": "tram_sw", + "passenger": 0, + "detail": "transport departed during land transition" + }, + { + "at": "2026-10-30_03:47:04", + "guid": 106, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_if", + "passenger": 0, + "detail": "cancelled at safe dock" + }, + { + "at": "2026-10-30_03:48:12", + "guid": 76, + "phase": "Failed", + "source": "tram_sw", + "destination": "tram_sw", + "passenger": 1, + "detail": "transport timeout; any passenger attachment retained" + } + ], + "navigation_warning_counts": { + "NAV_ANOMALY": 2231, + "TRAVEL_PARTIAL": 344, + "NAV_REJECT": 364, + "EDGE_FAILED": 1276, + "C821_NODE_FINISH_BLOCKED": 361, + "RECOVERY_START": 3884, + "C820_EXIT_RECOVERY": 3605, + "LOCAL_BRIDGE_REJECT": 65, + "C821_DIRECT_LOCAL_FAILED": 12, + "NAV_REPATH": 40, + "RECOVERY_FAILED": 558, + "RECOVERY_WANDER": 16, + "START_NODE_BLOCK": 222, + "FLIGHT_FAILED": 76, + "RECOVERY_REPLAN": 263, + "FLIGHT_DEPARTURE_REJECT": 145, + "FLIGHT_RETURN": 24, + "PORTAL_USE_FAILED": 6, + "TRAVEL_PLAN_FAILED": 31, + "DECK_RETURN_FALLBACK": 26 + }, + "navigation_warning_examples": { + "NAV_ANOMALY": "NAV_ANOMALY seq=1 guid=26 name='Arthoran' kind='position-jump' map=0 jump=19.77 from=(-8833.070 622.778 93.932) to=(-8844.108 639.045 96.042) target=(-8867.000 673.634 97.903) repaths=0", + "TRAVEL_PARTIAL": "TRAVEL_PARTIAL guid=140 name='Shanron' action='travel_to_location' requested='taxi_4' reached='taxi_4' map=0 pos=(-10551.900 1034.390 56.953)", + "NAV_REJECT": "NAV_REJECT seq=129 guid=50 name='Falaniel' map=1 target=(1963.260 -4468.530 25.877) type=0x4 points=39 finalDistance=58.71 reason='incomplete,far-from-target'", + "EDGE_FAILED": "EDGE_FAILED guid=50 name='Falaniel' kind='final-local-navigation' location='poi_npc_286703' state=PathRejected current=(2065.650 -4390.650 98.065)", + "C821_NODE_FINISH_BLOCKED": "C821_NODE_FINISH_BLOCKED guid=50 node='portal_go_211258_source' reason='final-local-PathRejected'", + "RECOVERY_START": "RECOVERY_START guid=50 name='Falaniel' action='travel_to_location' reason='final-local-PathRejected' recovery=1/5 failedEdgeDbId=0 blockedEdges=0 current=(2065.650 -4390.650 98.065)", + "C820_EXIT_RECOVERY": "C820_EXIT_RECOVERY location='poi_npc_286703' anchor='portal_go_219028_source' complete=1 steps=2", + "LOCAL_BRIDGE_REJECT": "LOCAL_BRIDGE_REJECT guid=142 name='Taliana' from='taxi_6' to='portal_at_2166_target' direct=163.16 path=163.15 complete=0 finalDistance=0.00 reason='no-path,large-segment' blockedBridges=1", + "C821_DIRECT_LOCAL_FAILED": "C821_DIRECT_LOCAL_FAILED guid=36 location='poi_guard_179' reason='final-local-PathRejected'", + "NAV_REPATH": "NAV_REPATH seq=182 guid=36 name='Edwin' map=1 remaining=103.98 noProgressMs=10986 repath=1/5 reason='no-progress'", + "RECOVERY_FAILED": "RECOVERY_FAILED guid=50 name='Falaniel' action='travel_to_location' reason='final-local-PathRejected' recoveries=5 blockedEdges=0 current=(2031.420 -4331.066 95.471)", + "RECOVERY_WANDER": "RECOVERY_WANDER guid=66 name='Nibbin' attempt=1 reason='no reachable travel node or recorded ground edge near current position' target=(-5165.944 653.005 388.960) pathLength=34.90", + "START_NODE_BLOCK": "START_NODE_BLOCK node='stormwind_tradecenter' reason='route-local-PathRejected'", + "FLIGHT_FAILED": "FLIGHT_FAILED guid=44 map=1 pos=(1567.72 -4426.83 14.43) reason='no free solid landing with a validated short target approach'", + "RECOVERY_REPLAN": "RECOVERY_REPLAN guid=111 name='Graakdra' action='travel_to_node' destination='orgrimmar_main_gate' radius=500.0 steps=3 blockedEdges=0", + "FLIGHT_DEPARTURE_REJECT": "FLIGHT_DEPARTURE_REJECT guid=96 z=109.607 surface=138.922 feet=109.607 valid=1 mounted=1 canFly=0", + "FLIGHT_RETURN": "FLIGHT_RETURN guid=55 reason='no safe bounded flight corridor; holding position mounted'", + "PORTAL_USE_FAILED": "PORTAL_USE_FAILED guid=141 edge=1760 spawn=211298 map=1 expectedMap=0 arrivalError=13526.50 pending=0 reason='teleport-not-confirmed'", + "TRAVEL_PLAN_FAILED": "TRAVEL_PLAN_FAILED guid=115 name='Seraniel' action='travel_to_node' destination='taxi_563' reason='destination node denied by area/node catalog'", + "DECK_RETURN_FALLBACK": "DECK_RETURN_FALLBACK guid=70 entry=176310 local=(-1.133 8.942 6.228)" + }, + "navigation_warning_distinct_actors": { + "NAV_ANOMALY": 110, + "TRAVEL_PARTIAL": 68, + "NAV_REJECT": 34, + "EDGE_FAILED": 60, + "C821_NODE_FINISH_BLOCKED": 34, + "RECOVERY_START": 85, + "LOCAL_BRIDGE_REJECT": 18, + "C821_DIRECT_LOCAL_FAILED": 12, + "NAV_REPATH": 22, + "RECOVERY_FAILED": 51, + "RECOVERY_WANDER": 3, + "FLIGHT_FAILED": 14, + "RECOVERY_REPLAN": 4, + "FLIGHT_DEPARTURE_REJECT": 6, + "FLIGHT_RETURN": 9, + "PORTAL_USE_FAILED": 1, + "TRAVEL_PLAN_FAILED": 10, + "DECK_RETURN_FALLBACK": 13 + }, + "issues": { + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 359043 Entry: 5840": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 68 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 94 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 260754 Entry: 2110": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 300102 Entry: 37170": 6, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 70 Entry: 0": 2, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 104 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 118 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 86 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 120 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 286943 Entry: 42548": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 100 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 45 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 106 Entry: 0": 1, + "MoveSplineInitArgs::Validate: expression '_checkPathLengths()' failed for GUID: 350141 Entry: 49857": 1 + }, + "findings": { + "at": "2026-10-30T02:48:28.683804+01:00", + "fixed_early_fallback_loop": { + "commit": "77648c6b53", + "cumulative_prefixed_depart_messages": 1693, + "real_first_phase_full_groups": 3, + "real_armed_bots": 15 + }, + "guildless_group_restore": { + "status": "preexisting_native_core_bug_not_fixed_during_observation", + "loaded_groups": 25, + "loaded_member_rows": 70, + "cause": "Group::LoadMemberFromDB interprets false GetPlayerGuildIdByGUID as missing character; cache returns false for GuildId0 and members are deleted", + "source": [ + "src/server/game/Groups/Group.cpp:213", + "src/server/game/Cache/CharacterCache.cpp:223" + ] + }, + "travel_probes": { + "56": "Native taxi6->43 progressing, not frozen", + "61": "Native taxi22->42 progressing, not frozen" + }, + "warnings": [ + "NPC spline rejection Entry5840", + "Player spline rejections GUID68 and94; nonfatal" + ], + "kraken_exit": { + "bot": 92, + "name": "Tholgar", + "boarded": "03:05:48", + "north_exit_started": "03:08:32", + "interrupted_when_ship_left": "03:09:36", + "retries_failed_from": "03:10:06", + "error": "recorded transition has an unsafe gap over 8 yards", + "recording_max_gap_yards": { + "SW": 4.043, + "Valiance": 3.013 + }, + "saved_local_position": [ + 6.26951, + 11.5472, + 5.66344 + ], + "diagnosis": "Recorded segments are valid; interrupted exit left passenger partway along deck transition and subsequent restart of exit targets the final stand over8yd away", + "status": "observed_not_fixed_no_recordings_changed" + }, + "zeppelin_success": { + "bot": 42, + "name": "Zulana", + "board_started": "03:16:41", + "riding": "03:16:59", + "leaving_northrend": "03:18:21", + "arrived_on_land": "03:19:11", + "source": "zeppelin_org_northrend", + "destination": "zeppelin_warsong", + "spawn": 12, + "passenger_at_arrival": 0 + }, + "solo_raid_denial": { + "guid": 121, + "name": "Braneven", + "level": 85, + "entry": 6672, + "map": 754, + "group_at_denial": null, + "result": "Native raid admission denied; visit moved to rest", + "status": "observed_not_bypassed", + "preceded_by": "INTERACTION_GROUP_LEAVE guid=121 reason=leader-afk" + }, + "death_observed": { + "guid": 126, + "events": [ + "DEATH_RELEASE", + "DEATH_CEMETERY_REVIVE" + ], + "chain_death_observed": false + }, + "portal_level_condition": { + "guid": 141, + "name": "Makuran", + "level": 52, + "spawn": 211298, + "entry": 195142, + "name_go": "Portal to Blasted Lands", + "spell": 65729, + "native_condition_source_type": 17, + "native_condition_type": 27, + "native_minimum_level": 58, + "failures_observed": 6, + "reason": "teleport-not-confirmed", + "diagnosis": "Planner admits a path despite native spell level prerequisite; portal data itself is enforcing the intended condition" + } + }, + "maintenance": [ + { + "kind": "planned_fix_restart", + "at": "2026-10-30T02:37:46.632535+01:00", + "old_pid": 387859, + "commit": "77648c6b53", + "reason": "Repeated early-slot reset overrode normal travel fallback; groups/plans preserved" + } + ], + "code_commits": [ + "373818628d", + "77648c6b53" + ], + "rotation_restored": true, + "preparation_microactions": { + "profession_tools": 1166, + "group_search_walk": 1294, + "group_ready": 1067, + "social_listen": 827, + "social_npc": 781 + }, + "group_leave_reasons": { + "leader-afk": 38 + } +} diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-flight-regions-install.log b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-flight-regions-install.log new file mode 100644 index 0000000000..5b22a9c17b --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-flight-regions-install.log @@ -0,0 +1,16 @@ +-- Install configuration: "Debug" +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/authserver +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/etc/authserver.conf.dist +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/tests +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/tests/smoke.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/generic.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/overrides +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/overrides/arthoran.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles/generic.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles/arthoran.lua +-- Installing: /home/wow_admin/wow_cata_server/server/debug/bin/worldserver +-- Set non-toolchain portion of runtime path of "/home/wow_admin/wow_cata_server/server/debug/bin/worldserver" to "/home/wow_admin/wow_cata_server/server/debug/lib" +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf.dist diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-build.log b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-build.log new file mode 100644 index 0000000000..e3de746566 --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-build.log @@ -0,0 +1,4 @@ +[1/4] cd /home/wow_admin/wow_cata_server/source/TrinityCore && /usr/bin/cmake -DBUILDDIR="/home/wow_admin/wow_cata_server/build/debug" -P /home/wow_admin/wow_cata_server/source/TrinityCore/cmake/genrev.cmake /home/wow_admin/wow_cata_server/build/debug +[2/4] Building CXX object src/server/game/CMakeFiles/game.dir/World/AdventureBehaviorMgr.cpp.o +[3/4] Linking CXX static library src/server/game/libgame.a +[4/4] Linking CXX executable src/server/worldserver/worldserver diff --git a/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-install.log b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-install.log new file mode 100644 index 0000000000..5b22a9c17b --- /dev/null +++ b/doc/clientless/checkpoints/2026-10-30-group-observation/vcore-group-fallback-install.log @@ -0,0 +1,16 @@ +-- Install configuration: "Debug" +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/authserver +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/etc/authserver.conf.dist +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/tests +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/tests/smoke.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/generic.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/overrides +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/overrides/arthoran.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles/generic.lua +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/bin/scripts/clientless/adventure/profiles/arthoran.lua +-- Installing: /home/wow_admin/wow_cata_server/server/debug/bin/worldserver +-- Set non-toolchain portion of runtime path of "/home/wow_admin/wow_cata_server/server/debug/bin/worldserver" to "/home/wow_admin/wow_cata_server/server/debug/lib" +-- Up-to-date: /home/wow_admin/wow_cata_server/server/debug/etc/worldserver.conf.dist