Files
Viano-Core/doc/clientless/SESSION-RESUME.md
T

2438 lines
154 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Commit checkpoint: transport resumption, deck return and capital portals
User requested a local commit of all completed changes since19075b6c75. Includes
stopped-only recorded deck stand fallback, adoption of restored native ship
passengers and safe recorded exit, capital Cataclysm/Tol Barad/Vashjir graph
bindings and scoped spell repairs (migration07), plus tests/docs/evidence.
Transport final build and six tests passed; portal native tests verified all12
transfers and both-faction Vashjir graph denial. Temporary profiles/tele fixtures
removed, generated profiles/schedules restored. Final server362937 is operational;
no lifecycle operation or push as part of committing. Earlier uncommitted/pending
notes below are historical; consult git log for the resulting commit.
# Latest: capital Cataclysm/Tol portals COMPLETE, all12 native transfers verified
Applied SQL07 graphbindings forSW/Org Hyjal,Deepholm,Uldum,TwilightHighlands,
TolBarad,Vashjir (6/capital). Sources factionACL1/2, duplicateOrgTol219035 skipped.
Nine existing templates keptdata6=0 and worked. OrgTol206595 failednativeclick
atdata6=0 twice, nowvisitorcast1 and verifiednative88341arrival732. Vash90244/
90245 previouslyempty; native DBteleporteffects160117/118 + existingSmugglersScar
fixedtarget(-4570.29,3478.06,-101.809), visitorcast207690/691. Explicitfixedcave
landing, NOT retailquestprogress destinations. Other targets/conditions unchanged.
All12 nativeclicks/expectedarrivalcoordinates verified using35Karggan/36Edwin85.
Finalresults/evidence doc/clientless/checkpoints/2026-10-29-capital-cata-portals.
Area5146/children policies byteunchanged. Nativebothbotquery target5057 mask0
allowed0, both hardgraphtravelattempts rejected destinationdenied. Nodes/edges
remainpresent/enabled. Migrationreplay preservedbindings/effects/targets. Three
existing portal/ACK/area-node regressions passed; no newC++ changes/buildneeded.
Temp profileskarggan.lua/edwin.lua removed after verifyingexacttestcontents;
generatedprofiles+daily schedulesrestored. Bothtestbotsreturnedowncapitals;
12vcore_cata_probe_*gametelefixturesdeleted,cache reloaded,count0. No human edits.
EarlierHyjalbaselinefalsefailurewasreadingtooearly; finalsaveproveditworked,
userinformed andblanketcasterchange undone. AfterfixfirstTolretestattempt before
Edwinonline was rejected; real afteronline nativeclickARRIVED andfinalJSONcorrect.
Final server362937 undergdb/tmuxvcore-worldserver, console/tmp/vcore-cata-portals-
final-start-20261029.log. Freshready11s/process+8085/8087 verified. Known old
OutdoorPvPshutdowntracespreserved. No commit/push. Prior uncommitteddeckreturn/
resumedpassengerWIP preserved. SQL07intent-to-add becausecustomSQLignored.
See capital-cataclysm-portals.md. Taskcomplete; report andwaituserfeedback.
# Active task: capital Cataclysm/Tol Barad portals incl blocked Vashjir
User asks graph entries + real functionality checks for bothcapitals inclVashjir,
keeping global area ban. Native imports done12 unique spawns (OrgTol duplicate
219035 intentionally skipped). SQL07 prepared/applied, scoped data6visitorcast
for206595 (OrgTol FAILED live twice atdata6=0),207690/207691 (Vash emptyserver
spells). Nine other templates keep originaldata6=0 and native targets/conditions.
Vash90244/90245 hadNOeffects/targets; added DBnative teleport effects160117/118
and fixed existing gameteleSmugglersScar landing(-4570.29,3478.06,-101.809),
NOT claimed retailquest-dependent destination logic. GraphSQL seedonlypreserves
manual positions/enabledflags. SourceACL Alliance/Horde; area catalog unchanged.
Temp tests use35KargganAlliance85 and36EdwinHorde85, nohumans. Temporary specific
profiles karggan.lua/edwin.lua under sourceadventure/profiles copied fromgenerated
DB thenbehavior.enabled/daily_schedule=false. ORIGINAL backups /tmp/vcore-cata-
portals/*-profile-original.lua; files DID NOT EXIST before task. MUST REMOVEONLY
these2 profiles aftertests; luareload+scheduleon torestoregeneratedbehavior.
12 temporary game_tele namesvcore_cata_probe_<spawn> created; deleteonlythatprefix
and reloadgame_tele aftertests. No testfixtureleftinrepo/DB onfinish.
Probe script/tmp/vcore-cata-portals/probe.py completed12tests;11successful.
Failure OrgTolspawn211264 remainedsource after30s/retry; nowchangeddata6=1 and
issued shutdown10 to361432 (console/tmp/vcore-cata-portals-start-20261029.log)
for cache reload. Needwaitfullexit+gdbtrace thenstartsameinstalledbinaryfreshgdb
console/tmp/vcore-cata-portals-final-start-20261029.log,verifyready/ports. Retest
211264 withEdwin36 viaGMtelefixture+nativeclientlessportalobjectuse; pollsaveall/
DBuntiltargetmap732(-603.724,1387.62,22.0498). Original probes JSONsaved beforefix
/tmp/vcore-cata-portals/probes-before-tol-fix.json. Update finalprobes.json entry.
Other11 includingBOTHVashlandings passednativeclick->expectedposition. Native
35 areaqueriesbothVashtargets returnedfactionMask0/allowed0 area5057; real hard
travel_to_node35 targetVash rejected detail destinationdenied. Need repeat36
areaqueries whennotintransfer. Verifypolicy before.tsv byteunchanged.
Corrected earlier misleadingHyjalbaseline: firstDBread tooearly, finalsave proved
native0 worked; user informed, blanketcasterchange undone before tests. Do NOT
claim all portals broken. Otherexistinguncommitteddeckreturn/resumedpassengerWIP
preserved. No newC++ source changes inthisportal task; DBreloadrequiredrestarts.
Next finishOrgTolretest,cleanupfixtures/profiles, tests/docs/evidence,report.
# Latest: resumed-passenger build INSTALLED, server READY; Shanron on normal plan
User explicitly released recording hold and requested install/restart. Old349322
fully exited after known OutdoorPvP shutdown destructor crash (oldconsole trace
retained). Installed successful prepared build using existing CMake:
/tmp/vcore-transport-resume-install.log. Fresh gdb/tmux vcore-worldserver
PID356681, console/tmp/vcore-transport-resume-start-20261029.log. NewServer.log
freshready12s, both8085/8087 listening, process persists. No source/config/DB
changes for deployment; prior uncommitted deck-return+passenger-resume WIP remains.
Requested native clientless login140 to check Shanron without manual position/
profile/dayplan override. Core LoadFromDB reported transportGUID2 unavailable,
teleported him to homebind before controller startup; same warning for26.
Thus no restored attachment existed to exercise new ResumePassenger for140.
Confirmed140 online/profileloaded, normal restintent poi_guard_111 arrived and
rest_sleep/rest_look micros. No TRANSPORT_RESUME live event observed yet; do not
claim restored-passenger/exit behavior live-proven from this deployment. Six
focused tests and complete build previously passed. Core inability to restore
certain ship bindings remains a separate observed limitation. User was told
Shanron resumed ordinary schedule via core homebind fallback, not new deck exit.
No push/commit requested. Server operational. Recording hold is now released.
# Latest: orphan-passenger fix READY; USER HOLD NO INSTALL/RESTART
Final complete build passed/tmp/vcore-transport-resume-final-build.log (source
TransportMgr object rebuilt after final edits, link completed). Six targeted
tests pass/tmp/vcore-resumed-passenger-tests.json. Latest additional detached
land-tail ownership assertion passes in test_transport log. Native attachment
adoption + next permitted recorded halt + ordinary exit implemented; current
installed server349322/executable21:00:04 unchanged. No runtime console commands,
DB/profile/dayplan changes, installation or restart in this task. Existing
uncommitted stopped-deck-return fallback work retained. New fix is source/build
only and NOT live-verified. See resumed-transport-passengers.md.
USER IS RECORDING ROUTES. Notify ready and WAIT for explicit hold release before
install/restart. No pending builds/test processes. No commit/push requested.
# Latest: resumed-passenger fix prepared; USER RECORDING, NO RESTART/INSTALL
User explicitly requests fix for Shanron's orphaned native ship attachment but
NO restart while recording more routes. Added TransportMgr::ResumePassenger
and Resumed flag; Lua Adventure controller invokes before actions, after
observation/maintenance. Preserve normal active rides; require actual known
recorded vehicle+managed alive noncombat passenger, no taxi/pending teleport,
allowed stop. Lazy ensure both stop and graph data load. Reconstruct only Riding
state, never reboard/teleport/change schedule. At each Riding update choose actual
currently stopped permitted recorded dock; no guessed prior destination. Reuse
normal deck return/budget/recorded exit incl native map-transfer ACK; keep control
through detached land tail until arrived. No exiting at newly forbidden stops.
Unrecorded/forbidden services untouched. No static tram DB persistence repair.
Six tests passed/tmp/vcore-resumed-passenger-tests.json; extended production
transport harness includes restart adoption, preserved normal rides, complete
native-modeled exits, denied stops, unknown/unmanaged, landtail and cross-map.
Final build running/tmp/vcore-transport-resume-final-build.log. Source latest
changes after initialbuild must be included; verify final completion.
Current server349322 remains unchanged, NO console/lifecycle/DB/profile changes.
Doc resumed-transport-passengers.md. Previous uncommitted deck-return fallback
work preserved. Next finish final build/checks, tell user ready; WAIT for user
recording hold release before any install/restart. Live behavior unverified.
# Latest diagnosis: Shanron140 attached to ship but no resumed ride controller
User observes Shanron aboard ship toSW. Native console transport status140:
`No transport ride state for this character.` actioninfo140 Idle/empty. Character
DB online map0(-8644.53,1335.31,6.12629),transguid2(The Bravery). Currentserver
349322. Both previous and current boot logged generated140 startup but no native
boarding/travel progression; normal core restores MO_TRANSPORT attachment from
saved character, CPC `_rides` exists only in memory and Start refuses already
attached players. Thus restored ship passenger has no ride driver to initiate
recorded exit/deck fallback. Distinct from120Brynna's repeated return issue.
No code/DB/lifecycle/relocation changes for Shanron investigation; existing
uncommitted stopped-deck fallback changes preserved. Needed follow-up: adopt
already attached managed passengers after login/restart using matching recorded
service; disembark only at an actual safe recorded dock, then resume normal plan.
Do not simply detach/teleport a passenger in transit. Existing120fallback still
requires a tracked ride to call DeckMgr::Update and cannot solve orphaned ride.
# Latest: stopped deck-return fallback INSTALLED, server READY
User permits transfer to recorded onboard stand after return failure only while
vehicle stopped. Implemented checked direct native spline launch + persistent
return failure state and safe native passenger relocation fallback. No detach,
no transportGUID changes, exact recorded local anchor, same transport/map,
alive/no combat/no pending teleport, valid coordinates, stopped+exitBudget1s
reserve independently rechecked. Ordinary recorded exit still follows.
Five tests PASS: deck control (including failed start/return, motion and short
halt rejection), actual fallback helper with doubles, real meshes, generic
transport, grid loading. Build/tmp/vcore-deck-return-build.log PASS. Installed
/tmp/vcore-deck-return-install.log after341932 fully exited (old known OutdoorPvP
shutdown fault trace retained). Fresh gdb/tmux PID349322, console
/tmp/vcore-deck-return-start-20261029.log, freshready13s,8085/8087 listeners,
process verified. Installed binary contains DECK_RETURN_FALLBACK string.
No native fallback event seen yet; no live/visual acceptance claim. Natural bot
loader active; no manual forced action, DB relocation or profile/plan override.
Doc deck-return-fallback.md. All these changes UNCOMMITTED after19075b6c75.
Previous SESSION diagnostic edit is intentional. Report completion; await user.
# Latest: stopped deck-return fallback implemented, build passed
User explicitly permits transfer back to recorded onboard stand after return
navigation fails, only while vehicle stopped. Added Passenger.Returning/
ReturnFailed, checked immediate native spline launch, failed/timeout/interrupted
return handling; helper rechecks actual same passenger/map, stopped and exit
reserve+1s, life/combat/teleport, valid local/world coordinates. Native local
position+TransportBase passenger relocation+broadcast; attachment never removed.
Ordinary recorded exit remains unchanged. Tests controller/native helper/real
mesh passed, generic transport/grid tests running. Build
/tmp/vcore-deck-return-build.log complete PASS. Not yet installed. Currentserver
341932 remains running. Prior SESSION diagnostic change is expected WIP after
commit19075b6c75. New doc deck-return-fallback.md. Next: finish test checks,
graceful shutdown/install/restart undergdb, freshready+ports, observe boarding/
returns/exits; do not claim actual fallback occurred until logged.
# Latest: Brynna120 stuck aboard tram; diagnosed repeated deck return
User observes Brynna in wagon. Branch19075b6c75 clean at investigation start.
Native status120 Riding SW->IF spawn18803 point4 elapsed238825, abort0, action
Moving. Prior rescueSW completed20:45:28, normal boarding20:46:42/Riding20:46:43.
Deck outing target(2.419,-3.118,-10.445). At destination20:47:55 and20:47:58
repeated DECK_WALK return target(-0.112,-0.187,-10.345),length3.87. Next dock
20:50:17..22 dozens of identical return launches per second, NO Leaving state.
This confirms recurring deck-return problem, not lost attachment after restart.
DeckMgr::Launch reports success unconditionally via MotionMaster LaunchMoveSpline
(void), Update uses IsSplineEnabled and retries when actual local target not
reached. Exact cause (launch failure, motion slot priority, competing stop) not
proven yet. Unit UpdateSplinePosition does update transport-local position.
Server.log has _checkPathLengths validation errors for76/110, NOT120; do not
attribute those to Brynna without evidence. No code or DB/teleport/lifecycle
changes in this diagnosis. Server341932 remains running. Ordinary rescue refuses
attached passengers by design; do not detach/teleport moving wagon passenger.
Next fix should validate actual deck spline start/completion, avoid repeated
return issuance, reserve enough dock time, retain safe passenger attachment.
# Commit checkpoint: group follow, grounded portal and explicit tram rescue
User requested a local commit of the current completed changes. Includes group
meeting spacing/road formation and player-led flight mount/hover fixes, grounded
Outland Dark Portal source/capital-return ACL migration05, and explicit rescue
node category/ordinary graph exclusion/recorded escape execution + migration06.
Tests, documentation and native evidence are included. Final rescue build3 and
ten focused tests passed; installed server341932 reached ready with8085/8087.
Native exits verified forDurndan58/Tinkbin33/Hilddis56. Full visual acceptance,
all walking rescues and core static-transport passenger persistence are not
claimed. Earlier UNCOMMITTED/pending install notes below are historical task
checkpoints; consult git log for final commit. No push or restart in commit task.
# Latest: explicit tram rescue LIVE, successful native exits verified
Implemented rescue node category, ordinary graph exclusion, scoped recorded
escape search, walk-first then map369-only native transfer fallback after normal
replans/flight exhausted. Applied SQL06; bothnodesrescue/Alliance1. Verified
recorded edges1781/1782/1783 and all points byte-for-byte unchanged against saved
DBsnapshot. Final complete build3 and10 targeted tests PASS. Installed
/tmp/vcore-rescue-route-install.log. Fresh gdb/tmux vcore-worldserver PID341932,
console/tmp/vcore-tram-rescue-start-20261029.log, newready12s verified, process
persists,8085/8087 listening. Old328503 fully exited before install.
LIVE:58Durndan transferIF20:38:59, authored rescuecomplete20:39:09,
nativeexit2166 map0 at20:39:11, resumed groupformation/tavern preparation inIF.
33Tinkbin transferIF20:39:11, rescuecomplete20:39:34, then normal tram route and
nativeSWexit2171 at20:42:17; resumed citytravel/groupchat.56Hilddis transferSW
20:41:38, rescuecomplete20:41:48, resumed original route including real tram
SW->IF Arrived20:43:18, nativeIFexit2166 map0 at20:43:32.76Renalin started
WALKING rescue20:42:42 with transferred=0, recorded corridor underway (completion
not yet verified). Other automatic rescue transfers/completions78,80,82,88,90,94
observed. No manual player/bot relocation or forced intent used for these tests.
Evidence checkpoints/2026-10-29-tram-rescue/live-rescue.log. Core static transport
passenger persistence remains unchanged; requested emergency exit covers stranded
bots. End-to-end exits verified for58,33,56, not all bots/visual acceptance.
All previous groupfollow/portal WIP preserved and UNCOMMITTED; SQL05/06 are
intent-to-add under ignored sql/custom. No push. User's latest interruption
message handled by resuming live verification. Next: report completion; await
user feedback. Do not claim every walking rescue or future restart is tested.
# Latest rescue install in progress: final build3 SUCCESS
Latest complete source build passed/tmp/vcore-rescue-route-final-build3.log;
all10 targeted tests pass. Added missing-anchor and partial-route-end hooks on
rescue-network maps; source newer than build2 is compiled in finalbuild3.
Issued shutdown10 to328503. Wait for complete exit/gdb OutdoorPvP trace, apply
migration06, verify recorded edges/points unchanged, install then start fresh
vcore-worldserver undergdb to/tmp/vcore-tram-rescue-start-20261029.log. Verify
fresh ready/listeners and observe native RESCUE_ROUTE_START/TRANSFER/COMPLETE,
portal exits for stranded56,58. No rescue migration/installation performed yet.
# Latest WIP: explicit rescue network implemented, final build/testing
User recorded tram_rescue_sw,tram_rescue_if and edges1781,1782,1783. Implemented
rescue node category + command validation. Graph normal roots/anchors/static/
adaptive/virtual bridge/flight edges exclude rescue; scoped PlanRescueRoute
admits allowed same-map recorded ground escape paths to ordinary nodes. Walk
first; if no approach, map369 only may nativeTeleportTo+ACK closest allowed
rescue node with a real recorded escape. Managed/alive/not combat/transit only,
at most2 rescue starts per action (second reserved for failed walking rescue).
Executor tries rescue after normal recovery radii+fallbackflight fail; initial
no-progress/missing anchor/partial completion on rescue-network maps now reach
ordinary recovery instead of silently cycling. Other maps preserve prior initial
failure semantics. Keep original destination, replan on ordinary escape endpoint,
no group formation/opportunistic MMAP exits during authored escape. Core tram
passenger persistence itself unchanged; this implements user-requested escape.
Migration06 prepared, NOT YET applied: classify two existing nodes rescue and
AllianceACL1; recorded geometry untouched/snapshot in
checkpoints/2026-10-29-tram-rescue/recordings-before.tsv. Category SQL ignored by
.gitignore; add with -N -f like migration05 when ready. Existing source WIP
from group flight+portals must be preserved.
Ten targeted tests passed (/tmp/vcore-rescue-tests.json), new production rescue
graph/executor tests. Later no-shortcut assertion rechecked. Final incremental
build running/tmp/vcore-rescue-route-final-build2.log; one late partial-recovery
hook changed Executor after compilation may require final incremental rebuild.
DO NOT install stale binary. Current testserver328503 still running; no lifecycle
or DB changes in this rescue task yet. Next: finish latest build+verify tests,
applySQL06 while stopped, install, restart undergdb and verify freshready/ports,
observe native rescue behavior for stranded58Durndan/56Hilddis and other369bots.
User says recording completed; normal authorized test restart allowed.
# Latest: diagnosed stranded tram bots; no fix/relocation/restart yet
User observes bots stuck in Deeprun Tram. Read-only diagnostics confirm58Durndan
(5.774,858.385,-84.745) and56Hilddis(3.825,1299.646,-125.218),map369,
native live probes match saved positions, no supported feet floor, not flying,
falling or mounted. Both have NO transport ride state after restart.16 bots
have saved online positions on369; do not infer all16 independently verified.
Action58 Completed with `no useful travel progress available`, repeated intent
fallback every30s. Core Player::SaveToDB stores transportGUID only for dynamic
Transport*(MO_TRANSPORT); static GO transport tram176081 is excluded. Load
restores only HighGuid::Mo_Transport. Thus static passenger binding is lost on
restart while world position in tunnel persists. TransportMgr ride/recovery is
in-memory and absent after restart. Generic navigation rescue also recognizes
only Failed; Completed/no-useful-progress doesn't increment failure counter;
Fallback switches StateIdle, resetting stall evidence. Separate disembark issue:
124Marnra boarded19:16:50, Leaving19:18:02, then Riding19:18:18 after departure
before transition finished. Not established as cause for all bots. No new code,
DB relocation or lifecycle actions; previous WIP preserved. Evidence
checkpoints/2026-10-29-tram-stranding/live.log. Server328503 remains running.
# Latest: group follow build installed, portal graph corrected, server READY
User released recording restart hold. Installed successful final build using
existing CMake install (/tmp/vcore-group-follow-fixes-install.log). Old317961
fully exited with previously known OutdoorPvP shutdown destructor SIGSEGV;
backtrace preserved in oldconsole. Fresh gdb/tmux vcore-worldserver PID328503,
console/tmp/vcore-group-follow-fixes-start-20261029.log. NewServer.log reports
worldinitialized12s + daemonready; process persists and8085/8087 listeners
verified. Normal loader enabled/staged. No critical startup/portal rejection
errors observed; existing unrelated DB content warnings remain.
Portal164 graphimport creates enablededge1776/Hordeonlysource; source4352
nativeground84.380 replaces DBCboxcenter144.362, unchangedXY within trigger,
target4354unchanged. Applied guarded SQLmigration05, retained originalrow and
nativeprobe evidence. Nativeobjectimport164 afterstartup CONFIRMED current graph accepts binding
(idempotent preserves nodepositions); freshconsole line787.
Source WIP and migration05 (intent-to-add because sql/custom ignored) uncommitted.
Eleven targeted tests/build passed; gameplay/visual acceptance still pending.
See dark-portal-return-graph.md and group-follow-spacing-flight.md.
# Latest: restart hold released; portal graph corrections applied
User explicitly authorized installation/restart. Native GO import164 succeeded,
edge1776 Hellfire->Orgrimmar enabled; previously tested click had no graphbinding.
Applied worldmigration2026_10_29_05: source164 Horde2, existing170 Alliance1,
portal_at_4352_source grounded Z84.380 (native feetprobe49, DBCcenter144.362,
actualtriggervertical77.462..211.262). Arrivalnode4354target unchanged.
See dark-portal-return-graph.md and before.tsv checkpoint. No DBC/native teleport
edits. Groupfollow final build passed; eleven tests passed. Existing WIP preserved.
Issued `.server shutdown 10` to PID317961 before install. Next verify full stop
(including known gdb shutdown-crash capture), install existing CMake build,
restart under gdb with fresh console, verify new ready+listeners8085/8087.
# Latest: gathering/formation and player-led flight fixes prepared, DO NOT RESTART
User is actively recording routes and explicitly requested code/build first,
notification before install/restart. Preserve current running worldserver
PID317961. No console commands, DB/profile/plan changes or lifecycle actions
performed in this task. New source WIP after54d77d1e4d is intentional.
Changes: gathering uses existing safe nearby positioning+reservations within
meeting neighborhood and finishes spacing walks; ground-follow destination
reuse0.75yd; recorded road row wait also across brief executing-leader stops,
long mounted row window, native taxi/transport boarding released; prepare native
profile flying mount when leader equips one; retain it on actual takeoff;
owned stale ground route cannot block flight; follow does not depend on ordinary
visual detection range (same map/phase and all safety checks retained);
stationary aerial flags+Fly animation native publication without idle flood,
Ground tier on regular touchdown. New test_group_flight_mount.py plus updated
production harnesses. Eleven tests passed, summary/tmp/vcore-group-fixes-tests.json.
Initial and final complete builds passed; final log
/tmp/vcore-group-follow-fixes-final-build.log.
See group-follow-spacing-flight.md. Not installed, not live tested, not committed.
Next: final build is successful; notify user ready for install/restart,
WAIT for route-recording interruption to be released before stopping server.
# Commit checkpoint: group preparation, public portals and flight recovery
User requested committing all current changes. This checkpoint combines the
preparation microactions and five-minute gathering rule, public portal SQL fixes
and diagnostics, and safe flight departure/landing/return recovery, including
targeted tests and native validation artifacts. Latest successful build and live
state are recorded below. Earlier "No commit" statements describe their original
work-in-progress checkpoints; consult git log for the resulting local commit.
The known gathering-point overlap and formation/mount-follow observations remain
separate follow-up work. No push or server restart is part of this commit task.
# Latest: flight departure/landing repair finished and live-verified
Final build+install /tmp/vcore-flight-safe-return-final-build.log and-install.log
succeeded. Current serverPID317961, tmuxvcore-worldserver undergdb; console
/tmp/vcore-flight-safe-return-final-start.log. Freshready+8085/8087 verified.
Eight targeted flight tests pass. Final native evidence: Brynli84 resumed native
mount, completed54.32yd/3segments, landed18:17:12 and free_flight edge to
portal_at_4455_target completed recovery0; next route step began normally.
Tholgar92 completed396.61yd/19segments/zeroavoidances landed18:17:44. Earlier
real MMAP8.18yd departure under overhang + >1km flight also recorded.
Safe nearby return-landing search0/8/16/24/40yd,80yd3D bound,fullColumn+Corridor+
area checks added after direct hover column proved blocked. Complete production
helper tests cover blocked column/safe neighbor/no candidate/catalog denial.
Ground approach abort does not interrupt unrelated combat spells. Ground/air
start, five-ray landing volume, short low final descent and native feet touchdown
fixes are active. No teleport or profile/DB/plan overrides in this flight task.
Docs flight-departure-repair.md and checkpoints/2026-10-29-flight-departure,
including final-live.log. Complete final intent journey/visual acceptance remains
unverified; intermediate flight legs are verified. No commit/push. Existing WIP
from prior tasks preserved. Separate known OutdoorPvP shutdown destructor SIGSEGV
still occurs during graceful shutdown; gdb captures preserved. Original runtime
vector assertion unresolved. No active finite flight observer remains.
# Latest: Outland flight departure investigation and repair
Diagnosed84Brynli: mounted nativeCanFly1 but suspended~10ydaboveground,
oldcodeinsistedgroundstart.92Tholgar: actualfootfloor35.852,skyquery48.203
(overheadlayer). Neithercasewater. Added nativeprobe feet/liquid/mountflags.
Implemented airborne profile-mount reuse (no dismount), checked MMAP ground
walk to nearby open takeoff if on a lower supporting floor, cancel/timeout
safety, shared-trail identity preservation, per-action flight_origin blacklist
that preserves ground alternatives. Verified live both resumed/tookoff.
Then discovered short final approach oscillation + skyfloor touchdown/hover
return anchor issue. Added collision-checked short low landing, feet-level
support/body check, five-ray volume for takeoff AND landing candidates and
verified ground return anchor beneath resumed hover. No teleport/height fudge.
Eight targeted flight tests PASS (production handler doubles + real planner).
Build/install latest /tmp/vcore-flight-departure-volume-build.log and-install.log.
TestserverPID315309, tmuxvcore-worldserver undergdb, latest console
/tmp/vcore-flight-departure-volume-start.log. Freshready+8085/8087 verified.
Native logins84/92 requested; final live observer /tmp/vcore-flight-departure-volume-live.log.
Docs flight-departure-repair.md, checkpoints/2026-10-29-flight-departure.
No profile/DB/plan overrides for this flight task. Prior uncommitted work
preserved. No commit/push. Separate known shutdown OutdoorPvP destructor
SIGSEGV repeatedly captured by gdb; original runtime vector assertion still
unresolved (not this task). Latest final live findings to append below.
# Latest: public portal repair completed
Migrations03/04 applied: visitor level58 condition and twelve static public
portal templates use playerCast1. Source only diagnostics: GameObject cast-fail
WARN + GM clientless portal object use guid spawn (native click, no bypass).
Ten available spawns transferred successfully including Shattrath/Hellfire,
Dalaran and Darkmoon returns; two Darkmoon entrances gated by inactive event3.
See public-portal-repair.md and checkpoints/2026-10-29-public-portals.
Three targeted tests pass; existing ACK harness updated for delayed guard.
Build/install succeeded; latest serverPID304210, gdb/tmuxvcore-worldserver,
console /tmp/vcore-public-portals-fixed-start.log, fresh ready+8085/8087 checked.
Temporary game_tele fixtures and specific corren/mahuwa profile files removed,
profiles restored via luareload and schedule on issued for83/102. Rootloglevel5
restored. Arthoran override original; no human character changed. No commit.
Separate shutdown OutdoorPvP destructor SIGSEGV stack captured; original runtime
vector<unsigned int> assertion unresolved. Earlier checkpoints below historic.
# Latest: crash investigation 16:19
Server aborted SIGABRT16:19:22; libstdc++ const vector<unsigned int>::operator[] bounds assertion. Immediately preceding VMAP530.vmtree missing warning, but file exists3.46MB; exact cause unconfirmed, no crash dump. Evidence preserved /tmp/vcore-crash-20261029-1619/. Recovered under gdb batch to capture all-thread backtrace on next failure, PID299009, dedicated tmux unchanged. Console /tmp/vcore-crash-watch-start-20261029.log; fresh ready in newly generated Server.log and8085/8087 listeners verified. No code/config changes. Unfinished manual transport recordings may need restart; no persistent recorded docks discarded.
# Latest: Blasted Lands portal activation
Native imports219963/211359/211298 active, edges1758-1760. Source ACL Alliance1/Horde2. Adventure reload issued. See blasted-lands-portals.md. Server unexpectedly already absent before first import (no shutdown by agent); recovered PID295252, fresh ready and listeners8085/8087 verified. Console /tmp/vcore-portal-enable-start-20261029.log. No binary/source changes. Gameplay traversal pending. Existing WIP preserved.
# Aktueller Auftrag: Fünf-Minuten-Sammelregel implementieren
Nutzer hat Regel inzwischen ausdrücklich beauftragt. Source ergänzt:
AdventureGroupPolicy::Gathering(groupformation,deadline,now): letzte300s,
exakt am Deadlineende wieder false. Record.Gathering/GatherRetryAt und
AdventureBehaviorMgr::UpdateGathering vor normalem OnSite/Micro-Verhalten.
Laufender Fußausflug erhält StopRequested und retraced tatsächlich gelaufene
Checkpoints; andere Micros beendet. Danach lokaler MMAP-Rückweg zum Anker,
Hold bei3.5m, gescheiterter Weg10sRetry. Kein Warten über Intentdeadline hinaus,
kein Teleport. Reisen/Kampf/Transport/Intentwechsel haben Vorrang.
Micro/LeisureAvailable/adminmicro verhindern neue Aktionen im Sammelfenster;
Gruppenchat/Einladungen bleiben normal aktiv. Regel ausDeadline abgeleitet,
gilt auch für manuelle und nach Neustart wiederhergestellte Pläne.
Neue tests/clientless/test_adventure_group_gather.py: echter Handler mitDoubles,
Grenzen301/300/1/0s, Ausflugabbruch, Vorbereitungsende, Retry, Hold und Release.
Dieser Test plus leisure+intent_state erfolgreich. Breitere Checks ebenfalls erfolgreich (insgesamt sieben Tests).
Build2 /tmp/vcore-group-gather-build2.log erfolgreich, installiert nach sauberem
Shutdown. NeuerTestserverPID290160, tmuxvcore-worldserver, Konsole:
/tmp/vcore-group-gather-start-20261029.log. Freshready+Ports8085/8087 bestätigt.
SiebengezielteTests erfolgreich /tmp/vcore-group-gather-test-results.json.
LiveCutoff14:55 beobachtet: GROUP_GATHER_START/READYmehrererBots;
Arthoran26 vorCutoff explizitgroup_search_walk gestartet (keinScheduleoverride),
beiCutoffRückweg4Legs+LEISURE_COMPLETE, dannGROUP_GATHER_READY bestätigt.
Testdeadline15:00 unverändert. LaufendeBotpopulation gestaffelt wiederhergestellt.
Native14:56StatusArthoran26:microleer,waiting at group meeting point;
adminmicroprofession_tools imFenster abgelehnt.42verschiedeneBots bereits
START+READY. Noch kein nativer15:00Wechselbeobachtet, Deadlinefreigabegetestet.
Dokumentation group-preparation.md und checkpoints/2026-10-29-group-gather/.
Keine neuen Planänderungen für dieseRegel erforderlich.
SQL02 der vorherigenKorrektur ist wegenRepoIgnore jetzt mit git add -N -f als
Intent-to-add sichtbar; Inhalt angewendet, noch kein Commit/Push.
Alle vorhandenen Source-/Dokumentations-WIP sind eigene vorherige Änderungen,
nicht verwerfen. Siehe ältere Checkpoints unten.
---
# Laufende Korrektur: sichtbare Vorbereitung während Gruppensuche
Nutzer beobachtete: Bots sammeln sich in Gilded Rose, keine sichtbare
Vorbereitung/Stadtsuche. Diagnose: walk nur8-12m/budget18m; profession_tools
DBzugeordnet, aber Available UND Update verboten außerhalbprofession;
Gruppenmitglieder FollowMember verhinderte eigene Micros.
Implementiert (noch nicht committed):
- Groupwalk70/110mRadien,220mPfadbudget,Minspan65m,Endpunkt muss draußen sein;
Weg darf von Inn nach draußen führen, bleibt in Hauptstadt+250mAnkerumkreis,
vollständigeMMAP-Korridore und Rückweg unverändert.
- ProfessionPolicy::IntentAllows erlaubt nurprofession_tools zusätzlich für
groupformation; Available/Update benutzen dieselbe Regel. Keine Berufsausübung
währendGruppensuche freigeschaltet.
- Botgruppenmitglieder folgen währendForming nicht zwangsweise Leader,
können eigene Micros machen; normales Folgen außerhalbForming bleibt.
- SQL2026_10_29_02_adventure_group_preparation_walk.sql angewendet:
group_search_walk120-240s statt35-65; VorherwertBackup
/tmp/vcore-group-preparation-action-before.tsv.
6gezielte Tests erfolgreich, Ergebnisse /tmp/vcore-group-preparation-test-results.json.
Build2 erfolgreich /tmp/vcore-group-preparation-build2.log; installiert.
AlterTestserverPID280452 sauber gestoppt. NeuerStart ready und PID287554
bestätigt; Ports8085/8087 lauschen. Konsole:
/tmp/vcore-group-preparation-start-20261029.log. Native Logs bestätigen Aelion29
Stadtgang (14Wegpunkte) sowieAldren32 span70m/8Wegpunkte und195sDauer.
Arthoran26 profession_tools per micro-Befehl geprüft: SOCIAL_START und
SOCIAL_CUE CheckGear20/Listen4 bestätigt; kein Scheduleoverride gesetzt. Loader1 mit50/5/50/5; persistierte Testpläne14Gruppensuche/15InstanzRaid
bleiben erhalten. Externe Ports intern8085/8087 behalten.
Nutzerkurzfrage: ob5minvorIntentwechselSammelpflicht existiert. Geantwortet:
NEIN, nur Rückweg nach einzelnen Suchgängen, keine feste5minRegel. Eine solche
Regel NICHT implementiert/noch nicht zusätzlich beauftragt. Nutzerunterbrechung
hat bereits ausgelösten Shutdown nicht rückgängig gemacht; Server daher zunächst
wieder in Betrieb nehmen, dann vorherige Korrektur live prüfen.
Kein Commit/Push. Vorherige SESSION-RESUME-Änderungen sind eigeneroperativerWIP,
nicht verwerfen. Sämtliche übrigen Sourceänderungen dieserGruppensucheKorrektur.
---
# Gruppensuche-Test vorbereitet und vollständig aktiv (2026-10-29)
Nutzer verlangt Wiederholung des Tests: Bots in Fraktionshauptstädte,
aktueller Stundenblock Gruppensuche, nächster Instanz/Raid gemischt.
Zusatzentscheidung Nutzer: Bots ohne gültiges Instanzziel vom Test ausnehmen.
94Teilnehmer (49Allianz,45Horde);16Bots unter15 ausgeschlossen und nicht verändert.
110Bots insgesamt; Loader wiederEnabled1 mit50/5/50/5, läuft normal.
Teilnehmer nativ abgemeldet, scoped DB-Positionen nach Sturmwind/Orgrimmar,
Reise-/Ghost-/performative Instanzreste dieser94 bereinigt; Allitester unberührt.
Tagesplan persistent20261029:14:00-15:00 groupformation, Sammelpunkte
Allianzpoi_guard_22 /Hordepoi_guard_179.15:00-16:00 80instance+14raid.
Raidfähige Bots jeFraktion abwechselndRaid/Instanz; alle Ziele VOR Änderung
vom nativen eligibility-Check als own1 bestätigt. Mindestlevel15, Fraktionen
und Gebietskatalog bleiben gültig. Keine Profil-/Level-/Codeänderung.
Andere22Tagesplanblöcke nach Snapshotvergleich unverändert (187geänderteSlots,
einer der188Zielslots hatte schon den gewünschten Wert).
Abschluss:94/94online undlautDBinrichtigerHauptstadt;94nativeRuntimeStatus
bestätigen intentgroupformation+schedule1. GROUP_CHANNEL-Meldungen beobachtet.
Sämtliche Snapshots, Auswahl, Phasenstatus, Runtimechecks unter:
/tmp/vcore-capital-group-test-20261029/ (state.json Phase ready).
Skripte /tmp/vcore-capital-group-test.py (Nativevalidation),
/tmp/vcore-capital-group-test-apply.py (abgeschlossen; nicht blind erneut starten).
TestserverPID280452, Ports8085/8087; kein Neustart nötig/ausgeführt.
Keine VPS-Änderung, keine laufende Netzwerkbeobachtung, kein Commit/Push.
---
# Normaler Botbetrieb wieder aktiviert
Nutzer bestätigt externen Login nach Portumstellung und verlangt normale
Botanmeldung. Installierte Config Loader.Enabled wieder1; reload config und
clientless population reload durchgeführt. Staffelung aktiv, erste erfolgreiche
Logins Arthoran26 und Aelion29 bestätigt; DBonline_bots2 bei erster Prüfung.
Ziele unverändert50persistente+5temporäre jeFraktion (gesamt110).
WorldserverPID280452/tmuxvcore-worldserver bleibt aktiv, Ports8085/8087.
Konsole /tmp/vcore-instance-8087-start-20261029.log. Keine laufende
Netzwerkbeobachtung. Alte Hinweise 'Bots offline halten' unten sind historisch
und durch diese Nutzeranweisung aufgehoben. Kein Code/Commit/Push.
---
# Testserver für zweite öffentliche Verbindung auf8087 umgestellt
Auf Nutzerauftrag NUR installierte Testserver-Config angepasst:
WorldServerPort8085 unverändert, InstanceServerPort von8086 auf8087.
Sauber heruntergefahren, neu gestartet, frischer ready-Start bestätigt,
PID280452, tmux vcore-worldserver, Konsole:
/tmp/vcore-instance-8087-start-20261029.log.
Listener0.0.0.0:8085 und0.0.0.0:8087 bestätigt;8086 lokal nicht mehrListener.
Realmlist2 unverändert: cata.viano-software.de:8086, local192.168.56.10.
Keine VPS/Auth-DB-Änderung durchgeführt. Nutzer richtet VPS:8087->VM:8087 ein,
bisher VPS:8086->VM:8085 bleibt. Externer End-to-End-Test noch nicht erfolgt.
Bots bleiben offline (DBonline_bots0), Loader.Enabled0; keine Reaktivierung.
Vorbereitete Beobachter /tmp/vcore-dual-port-watch.py und
/tmp/vcore-until-login-watch.py auf8085/8087 und dynamische PID angepasst,
NICHT gestartet. Keine Codeänderung, kein Build nötig, kein Commit/Push.
---
# Dritter Verbindungstest: Allitester erfolgreich online
Auf Nutzerwunsch maximal120s oder bis erfolgreichem Login überwacht. Bei erster
Prüfung13:27:11MEZ Allitester21 online1 (nativer Onlineflag wird nach Map-Add
und LoginVerifyWorld gesetzt). Daher Beobachter automatisch sofort beendet.
Beide Ports hatten ESTAB-Verbindungen:8085 über10.0.0.3,8086 über192.168.56.10.
CharakterMap0/Zone1519, Sturmwind. Kein laufender Beobachter.
Artefaktverzeichnis in /tmp/vcore-until-login-last-dir; dort metadata,
samples.jsonl und finished.json mit erfolgreichem Login als Abbruchgrund.
Bots bleiben offline, Loader.Enabled0; Wiederaktivierung nicht angeordnet.
---
# Zweiter externer Verbindungstest abgeschlossen
Nutzertest mit beiden Ports8085/8086 lief13:16:39-13:18:39MEZ (120.24s),
automatisch beendet, Beobachter nicht mehr aktiv. Verzeichnis steht in
/tmp/vcore-dual-port-last-dir; dort metadata/samples/server-new/summary/finished.
274Socket-Samples, beide PortsLISTEN; Verbindung nur auf8085 beobachtet,
keine8086Verbindung in Samples. Allitester21 weiterhinonline0. Im Testfenster
nur CPC_PERF, keine neue Login-Abbruchmeldung (voriger Versuch hatte fünf
fehlgeschlagene World-Socket-Verbindungen). Kein Paketmitschnitt: Abwesenheit
in Socket-Samples ist kein Beweis für ausbleibende SYN-Pakete.
Externe Portzuordnung/Zieladresse weiterhin verdächtig: Realmlist2 annonciert
cata.viano-software.de:8086, Worldserver intern8085/Instance8086. Keine
Netzwerk-/Realmänderung vorgenommen. Bots bleiben offline, Loader.Enabled0.
Keine laufende Überwachung. Nutzer hat Wiederaktivierung noch nicht angeordnet.
---
# Externer Verbindungstest: Beobachtung beendet
Fünfminuten-Fenster auf Nutzerwunsch ab13:05:43MEZ, automatische Abschaltung
13:10:46MEZ (letzte ss-Abfrage verlängerte Abschluss um ca3s). Beide Beobachter
beendet. Ergebnis /tmp/vcore-five-minute-connection-test/summary.json,
Samples und Serverlog-Deltas im selben Verzeichnis; Anfangsphase im bisherigen
/tmp/vcore-connection-watch.log. TCP durchgehendESTAB, kein beobachteter Abbruch,
RTT rund40-50ms, zuletzt alle2132gesendetenBytes bestätigt. Kein Paketmitschnitt.
Bots bleiben OFFLINE, Loader.Enabled bleibt0. NICHT automatisch reaktivieren:
Nutzer hat nur Ende der Überwachung angeordnet. Worldserver bleibt aktiv.
Keine weitere laufende Netzwerkbeobachtung.
---
# Betriebszustand: externer Verbindungstest vorbereitet
Auf Nutzerwunsch alle Bots ausgeloggt, DB und native Loaderstatus bestätigen0
online/pending, manager0. Test-worldserver PID270857 läuft weiter, TCP8085 offen.
Installierte Config Clientless.Adventure.Loader.Enabled vorübergehend von1 auf0,
per reload config und clientless population reload wirksam. Poolziele50/5/50/5
unverändert. NICHT vor Ende des Nutzertests reaktivieren! Nutzer gibt Startsignal.
Passiver TCP-Socket-Beobachter: /tmp/vcore-connection-watch.py, PID-Datei
/tmp/vcore-connection-watch.pid, Log /tmp/vcore-connection-watch.log (max2h).
Paketmitschnitt nicht verfügbar: CAP_NET_RAW fehlt; sudo benötigt Authentifizierung.
Socketzustände/Queues/TCP-Infos und Serverlogs sind ohne Root verfügbar.
Nach Test nur auf entsprechende Nutzeranweisung Loader wieder aktivieren und
Beobachter beenden. Originalzustand in /tmp/vcore-external-connection-test-state.txt.
Bordnavigation inzwischen committed als2841ee973b; nachfolgender Text historisch.
---
# Aktuelle Aufgabe: freie Bordnavigation (2026-10-29)
Vorheriger Schritt lokal committed als49712aadfe. Bordnavigation implementiert
und getestet; lokaler Commit vom Nutzer angefordert.
Nutzer hat lokale Navigationsnetze für Tiefenbahnwagen und The Bravery beauftragt.
TransportDeckMesh baut Recast/Detour-Netze aus vorhandenen VMAP-Modellen;
ClientlessTransportDeckMgr steuert Platzwahl bei Halt und Rückkehr vor Ausstieg.
Modelle werden pro Display einmal erzeugt, nur Bravery176310 und Tram176080-86.
Recast ist jetzt als private game-Abhängigkeit eingebunden, daher großer Build.
Build erfolgreich: /tmp/vcore-deck-build.log; installiert und neu gestartet.
Build3 mit korrigiertem Abfahrtsbudget erfolgreich und installiert.
Finaler Testserver PID270857, tmux vcore-worldserver, Konsole:
/tmp/vcore-deck-final-20261029.log.
Frischer ready-Start und TCP8085 verifiziert.
Echte Geometrietests: Schiff1678Polygone/259 erreichbare Rasterziele mit Rückweg,
Tram105/59. Alle sechs gezielten Tests erfolgreich, auch Controller-/Transport-/Gruppenflugtests.
Native Diagnose bestätigt beide Netze. Kontrollierte Fahrt Renaisia70 von
ship_sw_br nach ship_ruttheran_br: abgeschlossen; Schedule70 ist wieder ON
(confirmed Schedule mode updated). Sie hat einen
2m-Netzweg an Bord zurückgelegt; gespeicherte lokale Position bestätigt Ziel
(-1.74993,7.03908,6.14418) während fahrendem Schiff. Rückweg0.79m am Ziel,
Leaving und Arrived/passenger0 bestätigt. Noralin80 wurde per nativem tele name
(offline) an DeeprunTram gesetzt und eingeloggt; normaler Tagesplan führt sie
von tram_if nach tram_sw. Erste Tramfahrt abgeschlossen:11:40:47Riding;11:41:55Rückweg1.07m;
11:41:57Arrived/passenger0. Keine manuelle Scheduleänderung bei80.
Das anfängliche Bordverteilen war zu konservativ zeitlich reserviert; Build3
reserviert an Abfahrt nur Hinweg+2s, Rückweg/Ausstieg am Ziel. Controltest passt.
Finaler Start erfolgreich. Native Diagnose für weiteres Tram-Entry176080
bestätigt ebenfalls105Polygone/59Ziele+Rückwege. Noralin80 offline erneut per
tele name an DeeprunTram gesetzt und eingeloggt; ihr normaler Tagesplan nimmt
wieder tram_if->tram_sw. KEIN manueller Scheduleoverride80 (daher nichts
zurückzustellen). Finale Tram-Bordverteilung bestätigt11:48:02,2m, lokales Ziel per saveall
bestätigt. Rückweg11:49:13,Leaving11:49:19; unter massiven Worldtick-Stalls
(50.8s/8ticks) Abfahrt11:49:26 während Ausstieg: bestehende Sicherung bleibt
angehängt/Riding+Abort bis sicherem Dock. KEIN vollständiger finaler Ausstieg
behaupten. Frühere vollständige Schiff-/Tramfahrten waren erfolgreich.
Recovery80 abgeschlossen11:51:36 Failed/passenger0='cancelled at safe dock';
sicher an Land ausgestiegen, normaler Tagesplan wieder aktiv. Kein manueller
Override bleibt; Schiff70ScheduleON,80war nie überschrieben.
Siehe transport-deck-navigation.md. Keine Schema-/Config-Änderung; native Testpositionierung80 dokumentiert.
Änderungen werden lokal committed; kein Push.
---
# Umsetzung 2026-10-29: Navigation und Verhaltensgrenzen
Die unten festgehaltene Liste ist implementiert; lokaler Commit vom Nutzer angefordert.
Nächster besprochener Schwerpunkt: sichere Fahrzeugnavigation an Bord.
Build8 erfolgreich, installiert; finaler Neustart erfolgreich, ready und TCP8085,
PID264359, tmux vcore-worldserver, Konsole /tmp/vcore-recovery-final-20261029.log.
23 gezielte Regressionstests erfolgreich; spätere Flugstart-Blacklist- und native
rekursive Skill-Aktivierungstests ebenfalls erfolgreich. Änderungen werden lokal committed; kein Push.
Frühe Startversuche fanden einen bestehenden MAX(id)/GetUInt64-Typfehler bei
Instanz-ID-Initialisierung: Abfrage explizit nach UNSIGNED gecastet, Daten erhalten.
Live auf vorherigem Zwischenbuild: Terrainprobe Orgrimmar jetzt valid1;
Aldren32/Talzul97 Reiten225/Lizenz1; Naxx level60/78 abgelehnt,85 erlaubt.
Finaler Build behebt zusätzlich rekursive Skillpersistierung und respektiert
Blacklist für Flugstart-Anschlüsse. Endgültige DB-Persistenzprüfung erfolgreich: character_skills762 für32 und97
beide225/225 nach nativem saveall. Loader läuft mit50/5 jeFraktion weiter.
Siehe navigation-recovery.md und checkpoints/2026-10-29-navigation-recovery/.
Lunna nicht reproduziert, gemäß Zeitlimit vertagt. Keine Verteilung an Bord:
verlässliche lokale Fahrzeugnavigation fehlt; gemeinsamer sicherer Standplatz bleibt.
---
# Nächster Entwicklungsschritt: vereinbarte Anforderungen (noch KEIN Code)
Letzter Commit321a28640c Gebietskatalog/NodeACL/Planerreiseintegration, vorher0173a434f4.
Nutzer verlangte erstCommit, dann Liste vorCode. AktuellePräzisierungen vomNutzer:
1 Flugreisen regulärmitGraphkosten vomStandortzumNode,zwischenNodesundalsallgemeiner
Fallback,auchlokalerAbreiseknotenbeifernemZielaufandererMap. TerrainFallback aus
untenstehenderDiagnosekorrigieren,Phase169Standardnichtändern,KollisionundBounds
nichtabschalten. NichtblindfehlendePhasenkachelnmitBasisdateienkopieren.
2 LunnaDock-Flugmeister-PendelnRuttheran: nurkurznachdirekterUrsachesuchen,
sonstüberspringen; bereitsvorGebietskatalogbeobachtet.
3 BergungbeidauerhaftfestgefahrenerNavigation NICHTvoreilig. Ruhesteinanimation
verwenden; ZielnichtindividuellerHeimatortsondernFraktionshauptstadtSturmwindbzw
Orgrimmar. Zeiten/SchwellenfürfestgefahrennochmitvernünftigerkonservativerWahl
implementieren; keinNutzerwunschfürsofortigeRettungbeieinzelnenPathRejected.
4 Kettentod: nachWiederbelebunginnerhalb60swiedersterben,5malhintereinander.
DannbeimnächstenToddenbestehendenGeistheiler/FriedhofFallbackfürunerreichbare
Leichenversuchen. WeiterOHNEWiederbelebungsschwäche/Haltbarkeitsstrafe; kein
normalerNPCGeistheilerhandel. Nichtwillkürlichbereitsnach1-2Todenretten.
5 LetzterTagesplanblockGruppenbildung -> durchRuheersetzen, daFolgeintentfehlt.
6 EigeneDungeon/RaidZielwahlMindestlevelprüfen. BotlädtSpielernur±5seinesLevels
undnurwennZielpersonMindestlevelvonDungeon/Raid/Abenteuergebieterfüllt.
SpielerlädtBot: Botmehrals5LevelÜBERSpieler lehntIMMERab, nachUNTENkeineLevel-
Sperre. AlleanderenbereitsvereinbartenPersönlichkeits-/Intentregelnbleibengelten.
7 Transport: zuerstNodeerreichen, dannnaheMMAP-sichereWarteplätzeverteilen;
beiFahrzeugankunftdentatsächlichgegangenenWegzurückzumNode, normalereinsteigen.
8 AufVehikelVerteilungNURwennsicherzuverlässignavigierbarundkeinRunterfallen.
VorAusstiegRückwegzumherkömmlichengemeinsamenStandplatz, dannbisherigerAusstieg.
Gruppenstaffelung/FormationerstnachvollständigabgeschlossenemAusstiegwieder.
9 BeianderenAktivitätenAbstandzuNPC/Botssuchen,beiPlatzmangeleng/überlappenderlaubt.
ZusätzlichAldren/Talzuljetztgeprüft:32AldrenDK60,97TalzulDruide66,beideonline.
BeidekennenHordeFlightmounts32243/44/45und90267; Aldrenkennt34090,Talzulnicht.
Beidenfehltcharacter_skills762auchNACHbestätigtemnativemsaveall(Allplayerssaved).
Skillgesamtzahlen30bzw26,nichtvoll. GeladeneProfilebeidecanGroundMount1 und
aktuelleProfilbewegungaufFlugausgelegt. RuntimeGetSkillValuenichtdirektgelesen,
fehlendepersistierteReitfertigkeitistaberreproduzierbar. NativeSetSkillhatpotenziell
fehlerhafteSlot0Sentinelprüfung(PLAYER_MAX_SKILLS-Schleife,if(!skillSlot)),OHNE
konkretenNachweisfürdiese2Bots. KeineLogsTriedtoaddskill762gefunden. Imkommenden
SchrittBereitstellung+Speicherung+Laufzeitdiagnosekontrollieren, nichtvoreiligallein
DBnullalsvollständigenBeweisfürjedenLaufzeitstatusdarstellen.
FürdieseTurnpräzisierungennochkeineC++/Lua/DBÄnderung,vomnormalensaveallabgesehen.
SourcebisaufdieseAnforderungsnotizsauber;keineBinaries/Config/Intentsverändert.
ServerPID247021,tmuxvcore-worldserver,Console/tmp/vcore-area-start-verified-20261029.log.
---
# WICHTIGSTER NEUER BEFUND: Freiflug scheitert an fehlendem Terrain-Fallback
Native `clientless flight probe 128 1751.49 -4389.67` (09:20CETca) ergab
valid0 ground0 ceiling0. DIREKT davor in aktuellemConsoleLog:
Map file /home/wow_admin/wow_cata_server/data/maps/7192840.map does not exist!
Karte719lautlokalerMapDBC=Hyjal,Parent1(Kalimdor). PhysischeBasiskachel
0012840.map sowie001_28_40.vmtile/001.vmtree sind vorhanden.
ClientlessFlightMgr::Sample(Zeile~166) benutztPhasingHandler::GetTerrainMapId
undverlangtTerrainMgr::ExistMapAndVMap(terrain,x,y) fürdiesesChildTerrain.
BeiFehlenreturn{} bevor eigentlicheHeight/CeilingChecks. Normales
TerrainInfo::GetGrid(281ff) lädtBasiskarteundnutztChildnurdann,wennesfürdiesenOrt
eineChildGridMapgibt;ansonstenbleibtBasiskarte. UnsereExtravorprüfungignoriert
diesenFallback undverhindertsoFlügeauchmit225Reiten/Lizenzen/Mounts.
NichtPhase169ändern(istStandard)! Nichtblind719Kachelnfälschen/kopieren oder
Kollisionsprüfungenabschalten. NötigwäreeineTerrainprüfung mitdemtatsächlich
verwendetenKachelfallback,danachweiterVMAP/Bounds/Clearanceprüfen.
ZweiterBefundbleibtGraph-AnschlussnurperMMAPundfinalerCrossMapFallbackungeeignet.
KeineCodeänderung/DBwrites/IntentänderungeninderDiagnose. NutzerTeilbefund
soebenkommentiert;jetztkurzabschließendzusammenfassen.
---
# Neueste Diagnose: Horde-Navigation/Fliegen, keine Änderungen umgesetzt
Nutzer bat Horde-Navigation anzusehen, höherlevelige solltenfliegenkönnen.
55Horde online,22ab60 nativStatusangefragt (09:18CET):19ActionCompleted/
PhaseOnSite,1Failed(Volakmar128,L80,Naxxramasgoal571),1Idle(Gruppeninteraktion),
1Moving. Allestanden gespeichertnochinOrgrimmar nachUmsiedlung, vieleerfüllen
legitimStadtintents. Logs zeigenvorallembeiLowlevels wiederholteMMAP/Graph-
Startprobleme anOrgrimmarsHöhenplattformen.
KonkreteCodeLücke: PlanAdaptiveRoute startetGraph nurüberlokalenMMAP-Weg zum
Startnode (inklDeferredPartial), keinFlugvomaktuellenStandortzumeinemStartnode.
FreieFlugalternativen beginnen erst INNERHALB desGraphs. TryFallbackFlight in
ClientlessActionExecutorMgr.cpp1890 prüft nurGetTravelGoal(finalesZiel) und
brichtbeiandererMap sofortab. Volakmar128,L80,hat225Reiten,90267+54197 und
HordeFlugmounts32243/44/45,willNaxxramas571,bleibtinOrgrimmar anStart-MMAP
hängen,keinFlightState. Grundrouten fehlen,aberFlugzukünftigzumgeeigneten
legalenAbreiseknoten muss dieseAnschlusslücke überbrücken. Keine pauschale
Flugsperre inOrgrimmar ausdiesenDatenbewiesen. NativeFlightSurfaceProbe128
bei1751.49,-4389.67 zuletztgesendet.
22HighLevels gespeichertmeist225; Aldren32undTalzul97habenKEINcharacter_skills
RIDING762Datensatz,obwohlLizenzen/Mountspells und geladeneProfileGroundMount1.
DBistgespeicherterZustand, liveSkillnochNICHTausgelesen,nichtalsdefinitiven
aktuellenSkillbugverkaufen. Reconcile SetSkill nurwennCanGroundMount true;
KontrollederLaufzeitvorbereitung/speicherung sinnvoll. StoredAldrenProfil
beginntfalseLegacy,weiterhintenmovementm überschreibtesaufaktuelltrue.
Artefakte:/tmp/vcore-horde-flight-guids.txt, ...flight-offset.txt,
/tmp/vcore-horde-flight-diagnosis.txt. NativeConsoleweiter
/tmp/vcore-area-start-verified-20261029.log,ServerPID247021. SourceWIP
unverändert,keineConfig/DBwrites/IntentsänderungenwährenddieserDiagnose;
nurreadonlyStatus/FlightSurfaceprobe. NutzerkurzerklärteTeilbefundekommentiert.
NochkeineImplementierungfürdieseLückeangefordert; aufDiagnoseabschließen.
---
# Neuester Auftrag:110AdventureBots in sichere Hauptstädte umgesiedelt
Nutzer bat alleBots nachSturmwind/Orgrimmar zu versetzen, um alteStrandungen zu
beseitigen. OhneCode/Build/Serverrestart umgesetzt: TestLoader kurz perConfig
Enabled0+reloadconfig+populationreload pausiert,110nativeClientlessLogouts,
DBOffline geprüft, nur explizitgenerierte readyBots inCharacterDB verlagert.
55Allianz aufnativeGameTeleStormwind954(Map0,Zone1519,-8833.07,622.778,93.9317),
55Horde aufOrgrimmar703(Map1,Zone1637,1569.97,-4397.41,16.0472).
Gespeicherte Taxi-/Transport-/Instanzfelder bereinigt, alteInstanceVisits und
BotCorpse/Geist-Auren8326/20584 entfernt, Health>=1, keineWiederbelebungsschwäche.
KeineProfile/Intents/Tagespläne geändert. LoaderEnabledOriginal1 und50/5/50/5
wiederhergestellt, normalesgestaffeltesEinloggen. ServerPID247021 bliebgleich.
Audit/engePositionsbackups /tmp/vcore-capital-relocation-20261029/,
Skript /tmp/vcore-capital-relocate.py, AblaufLog /tmp/vcore-capital-relocate.log.
State normal_loader_restored. NachSQL alle110fraktionsrichtiginHauptstädten,
0alteReisezustände. Livepositionsprobe26Area5148(Sturmwind),32Area1637(Orgrimmar)
beideerlaubt. NormaleTagespläne dürfen dieBots wiederlegalweiterreisenlassen.
AbschlussNativePopulation110/110,50/5/50/5,0pending,errorleer geprüft.
GMreloadconfig meldetErfolg nurGlobalGM, nichtConsole -> nichtdaraufwarten,
ConsoleFIFO viaanschließendenpopulationreload mitenabledStatus prüfen.
KeineandererenSpielerangefasst, keinCommit/Push. VorigeSource-WIP bleibtbewahrt.
---
# ABSCHLUSS: finaler Testserver geprüft,110Bots online
Gebietskatalog-Integration fertig gebaut/installiert. LetzterStart
/tmp/vcore-area-start-verified-20261029.log, PID247021, tmuxvcore-worldserver.
Ready-Prozess-Port8085 geprüft. NativePopulation110,50/5/50/5,0pending,errorleer.
FinalerTagesplanaudit2640Slots,keineleerenZiele,0Verstöße inMetadaten;
298Slots ohneexpliziteGebiets-ID werdennativüberKoordinatengeprüft.
FinaleLiveproben: Allianz26Tiefenbahn erlaubt,Horde32Sturmwindportal verboten,
Vashjir26verboten. KeinADVENTURE_DISABLED/Assert/SQLKollationsfehler imletztenStart.
Nachweise doc/clientless/checkpoints/2026-10-29-area-catalog/ inklfinal-server-smoke.log.
ZehnTestsbestanden. KeineweiterenArbeitenvorAbschlussnötig. Serverlaufenlassen.
NochkeinCommit/Push. AbschließendNutzermelden: Funktionenaktiv,Reloadkommando,
Build/Tests/110Botsgeprüft;Gameplayvisuellnichtabgenommen. AlteTaxi-Hänger und
kalte/großeDebug-Routen(mehrereSekunden)bleibengesonderteThemen.
---
# Aktuell29.10.2026: Gebietskatalog LAUFZEIT-INTEGRATION implementiert
Nutzerauftrag: Bots und Tagesplaner müssen Gebietskatalog verwenden; keine
Locations in gesperrten/zu hochstufigen Gebieten. Frühere Katalog-only-Notizen
unten sind HISTORISCH, nicht als aktuelles Arbeitsverbot verstehen!
Implementiert: AdventureAreaMgr + getestete AdventureAreaPolicy. Snapshots aus
WorldDB, Eltern-Fraktionsschnittmenge, MinLevel+Gap(default5), bekannte Bereiche,
unbekannte Freilandbereiche unter85 gesperrt, native Flugpräferenzen. Neue/alte
Tagespläne über Allowed/PickLocation/Generate prüfen und illegale Ziele persistent
ersetzen, Intents/Stunden bewahren. AreaRevision bewirkt Revalidierung nachReload.
AdventureLocationMgr bezieht Levelgewichte nur noch aus neuem Katalog.
Node-ACL vcore_clientless_node_access für alle Nodearten, explizit4Allianz-Nodes
(Tiefenbahn, SW-Ruttheran-Schiff). Automatische Taximasken aus Creature-Spawn-NPCflag
COALESCE(c.npcflag,t.npcflag) und NPC-Fraktionsvorlagen (auch neutral).314TaxiNodes
zugeordnet,141ungeklärt und zu. Masken werden im Manager abgeleitet, nicht mit
manuellen Masken verwechselt. Optional flightmaster_spawn_id für konkreteBindung.
Tabellen-Kollation utf8mb4_unicode_ci passend zu bestehenden Nodekeys!
TravelGraph alle Suchpfade, virtuelle Brücken/Ein-/Ausstiege, cachedMMAPgeometry,
Executor vorRouteStep und realenRecordedSplines, TravelMgr Diagnose+Ausführung,
Taxi-DBC-Strecken, FreeFlight Planung+Segmente und nativeTransportStarts prüfen.
Gruppenreise: JourneyFollow Portalziel ebenfalls prüfen, da dieser Pfad native
Portale direkt verwendet. Neues Kommando `clientless adventure area <guid> [node]`.
`clientless adventure reload` lädt Snapshot+Locations+Graph, ungültigeArea-Daten
lassen bisherigenSnapshot bestehen. KeinNeubuild/Restart für spätereDatenedits.
GeometrieCache zwischen Fraktionen/Levels und nativeTerrainSwaps geteilt,
Berechtigungen bleiben live. Terrainsharedptrs halten, sonst massivesRemoteMap-
Neuladen. Cachegröße begrenzt mit teilweiserEviction. DijkstraFlight-Vorprüfung
über sichereKostenuntergrenze40+0.4*Distanz vermeidet unnötigeTerrainproben,
keine Kandidaten/Graphverbindungen einfach abgeschnitten.
Quellcode erfolgreichgebaut mit bestehenderDebugCMake, letztesBuild
/tmp/vcore-area-build-verified.log, Installation /tmp/vcore-area-install-verified.log.
ZehnTestprogramme bestanden, nativeLivechecks einschließlichbeiderNeutralitäts-
seiten, Vashjir, HordeTram/Schiff, neutralerCapitalPortalnode, DalaranLevel60,
NodeEdit+Reload+Restore und absichtlichungültigerSnapshot+Restore bestanden.
Alle110Bots imvorigenLaufgeladen:2640Planslots,0leereZiele,0Metadatenverstöße;
298Slots ohneGebietsmetadaten werden imProduktionsplaner überKoordinatengeprüft.
Nachweise doc/clientless/checkpoints/2026-10-29-area-catalog/; Doku area-catalog.md.
LETZTER TESTSERVERSTART: neuer frischer tmux vcore-worldserver mit
/tmp/vcore-area-start-verified-20261029.log (nach finalesPortalFollow-Update).
BeiWiederaufnahme zuerstReady+Prozess+Port8085 und Loaderstatus prüfen!
Worldserver/Bots laufenlassen. Zieleweiter50/5/50/5. KeineProduktion, keinPush,
keinCommit. Branch feature/clientless-player-core Basis0173a434f4, erwarteteWIP
Katalogdaten+Integration+Tests+Docs. SQL02 und03 explizit gitadd-f, da*.sqlignoriert.
Grenzen: keinevisuelleAbnahme, gespeicherteTaxi-Hänger/gestrandeteBots nicht
teleportiert/behoben. Bewegungssampling40yards statt mathematischerGrenzbeweis.
Kalte/großeDebug-Routen teilsmehrereSekunden, weiterePerformancearbeitbleibt.
KnownMaps719/736 fehlenweiter. EinfrüherTestshutdownmitzuvordeaktiviertemKatalog
hatteGetMapAssertnachHalting; nachfolgendeShutdownsnichtreproduziert, Rohlog
/tmp/vcore-area-start-20261029.log. SQLKollationsfehlerseitdembehoben.
Nächste Schritte für Abschluss dieserTurnarbeit: finalenServerstartverifizieren,
Nativeprobe26/32undPopulationstatusnochmalsprüfen, finalePID/Loaderstandhier
kurzergänzen. KeineweiterenCodeänderungennötig. DannkurzerdeutscherAbschlussbericht
mitFeatures, Build/10Tests/Livechecks, Reloadkommando und verbleibendenGrenzen.
---
# Aktuell29.10.2026: Gebietskatalog angelegt, Integration steht AUS
Nachtbeobachtung beendet07:00CET; automatischer Wächter lief trotz Turnunterbrechung
bis Deadline. Nutzer erhielt Bericht nach07:27. Server lief ohne Neustart,
110Bots. Befunde Taxi-Hänger, Fraktionsrouten, Todesschleifen, Navigation.
Vorheriger Nachtauftrag unten ist abgeschlossen, NICHT erneut ausführen.
Neuester Nutzerauftrag zieht vor jeder weiteren Implementierung einen ohne
Neukompilierung/Installation bearbeitbaren Gebietskatalog vor. Dafür ausschließlich
Datenbasis angelegt, NOCH KEINE Runtime-Regeln oder C++-Änderungen!
WorldDB: vcore_adventure_area_catalog(3206AreaTable-Gebiete inkl2931Untergebiete),
vcore_adventure_map_catalog(207Karten inkl1fehlender nativer Map alsTyp255).
Migration sql/custom/world/2026_10_29_02_adventure_area_catalog.sql bereits auf TEST
angewandt; reproduzierbarer DBC-Exporter contrib/clientless/export_area_catalog.py.
Bestehende78Levelbereiche aus vcore_adventure_zone übernommen. Doku
doc/clientless/area-catalog.md erklärt Felder, SQL-Änderungen und offene Integration.
Erneutimport identisch, keine fehlenden Eltern/Karten, keine Zyklen, Vashjir-Chain
geprüft. Native Spieldaten/C++/laufender Server unverändert. Kein Build nötig,
kein Restart, kein Commit/Push. Bestehende SESSION-RESUME-WIP erhalten.
Vereinbarte spätere Integration: Gebiet einschließlich Vorfahren über Node über
Verbindung; Fraktionsmasken0=zu,1=Allianz,2=Horde,3=beide,NULL=erben. Kind/neutraler
Node darf Elternsperre nicht aufheben. Gebiete weit über Botlevel meiden auch bei
Transit; DefaultLevelGap5, max_level ist KEIN Verbot für höherstufige Heimkehrer.
Vashjir5146 komplett zu inkl4815/5144/5145. Startregionen/Hauptstädte fraktionsgebunden.
Scherbenwelt/Nordend/Cata-Flugpräferenz nur bei nativer Erlaubnis/Fähigkeit.
Karte530 enthält auch Startergebiete -> nicht pauschal Outland-Fluggebiet!
Alle Nodes müssen individuelle Fraktionsfreigabe erhalten können. Flugknoten
automatisch aus zugeordneten Flugmeister-NPC-Fraktionsvorlagen ableiten, neutrale
beiden erlauben, unklare nicht automatisch neutral. Tiefenbahn und Schiff
Sturmwind-Teldrassil für Horde sperren. Hauptstadtportale Ziel-Fraktion beachten.
Start/Ziel/Zwischenstationen, virtuelle Graphverbindungen, lokale Wege und Executor
absichern. Bot in gesperrtem Gebiet braucht sicheren Ausweg. Runtime-Katalog-
Reload erst in nächster Integration einbauen; bisheriger adventure reload wertet
neue Tabellen NICHT aus. Eine erstmalige Anbindung benötigt Build/Installation,
danach dürfen Katalogänderungen keinen Build/Restart brauchen.
---
# AKTIVER NACHTAUFTRAG: Bis29.10.2026 07:00CET beobachten und DANN berichten
Nutzer geht schlafen und bittet, Bots frei ihren Intents folgen zu lassen,
regelmäßig Logs auf Fehler/Auffälligkeiten zu prüfen und um07:00 mitteleuropäisch
Beobachtung zu beenden und Bericht zu geben. CET/Berlin+01:00 heute korrekt,
Deadline2026-10-29T07:00:00+01:00 (06:00UTC). NICHT frühzeitig mit Abschlussbericht
enden. Aktiven Turn bis Deadline betreuen, neue Benutzersteuerung berücksichtigen.
Worldserver/Bots nach07:00 NICHT stoppen, nur Beobachtung beenden.
Aktueller Commit0173a434f4, Branch feature/clientless-player-core, Quellcode sauber
zu Auftragsbeginn; nur diese Resume-Notiz geändert. KEINE Features/Fixes/Commits/
Deployments während Beobachtung. Keine Produktion, keine Subagents. Native Test-
Crash-Recovery ist gemäß bestehenden Serverregeln erlaubt, nicht bei Warnungen.
Worldserver PID214924, tmux vcore-worldserver, Installation server/debug/bin,
Console /tmp/vcore-performance-retry-start1.log.110Bots50/5/50/5 normaler Tagesplan,
Mapworker4. Gruppenfindungsmanipulation um01:00 abgelaufen und Helfer inaktiv.
NativeStatus-Befehle sind nur lesend. Fehlende Karten719/736 und Transportprobleme
(Lunna49, falsche Fraktionsroute Falaeriel54) schon VORHER bekannt, getrennt werten.
Persistenter Wächter gestartet in eigener tmux-Session
vcore-overnight-monitor-20261029. Skript
/tmp/vcore-overnight-20261029/monitor.py, Parameter --until2026-10-29T07:00:00+01:00
--out/tmp/vcore-overnight-20261029 --recover. NICHT doppelt starten oder State
überschreiben! Console /tmp/vcore-overnight-20261029/monitor-console.log.
Liest minütlich ab aktuellem Dateiende Server.log, DBErrors.log,
adventurebot-navigation.log (inkl.Rotation) und Console. Native Population alle5min,
alle15min Intent-/Transportstatus und gespeicherte110Botpositionen/Fertigkeiten
(nur gewählte Characterfelder, KEINE Credentials). CPU/RSS minütliche Deltas.
DB-Abfragenfehler werden nur protokolliert, kein Eingriff ins Spielverhalten.
Watch-Skript geprüft mit2Einzelzyklen, letzter01:51CET/110Charaktere/kein Fehler.
Dateien: status.json (kurz), state.json (alle Daten), events.jsonl (Auffälligkeiten),
characters.jsonl (15min-Snapshots), report.md (laufende Zusammenfassung, final um07).
Script zählt native Ereignisse und Warnungen getrennt. Fehlende Maps separat;
Transit>15min und wiederholtes gespeichertes Transguid>30min sind Kandidaten,
keine automatisch bestätigten Bugs. Server-/Nav-/DB-Fehler werden gesammelt,
CPC_PERF/SlowRoutes ebenfalls. Gespeicherte Positionen können90s alt sein.
Bei Prozessverlust: Wächter startet NUR exakt diese Testinstallation, höchstens3
Versuche je Recovery, jeweils frische Readiness/Portkontrolle, ca10s zwischen
Versuchen. Mehr als3Crash-Episoden/30min -> Recovery aus. Nicht bei Warnungen neu
starten! Prozess vorhanden aber keine CPC-/Populationantwort>10min -> Event
possible_hang; dann selbst diagnostizieren, nicht blind Neustart. Unbekannte
Prozessmengen werden nicht angerührt. Bei07 stoppt Watcher und schreibt Endbericht;
Server bleibt an. Falls der Turn unterbrochen wurde, vorhandene Dateien lesen,
bis07 weiter beobachten oder bei Wiederaufnahme nach07 Ergebnis berichten.
Nächste Schritte: status.json nach erstem Minutenzyklus prüfen, dann regelmäßig
(ca5min) selbst neue Events/Counter/Population/Performance auswerten; Tool-Waits
höchstens60s, sinnvoll clock.sleep60000 oder functions.wait yield<=60000 verwenden.
Nicht einfach zurückgeben, bevor07. Am Morgen aussagekräftige Befunde mit Uhrzeiten,
Crash-/Neustartzahl, Botzahl, Datenfehlern/Transport-Kandidaten/Leistung berichten;
keine visuellen Gameplay-Verifikationen behaupten. Rohbericht ggf. nach
Doc-Checkpoint kopieren, kein Commit ohne Nutzerauftrag.
Zusatz zur Nacht: Exakte kategorisierte Nav-Auswertung per
`python3 /tmp/vcore-overnight-20261029/audit-navigation.py`; inkrementell über
aktuelle/rotierte Navlogs, Timestampfilter01:51:59..07:00. Zustand navigation-audit.json.
Um07 unbedingt zuletzt ausführen: Hauptwächter normalisiert Timestamps nicht,
seine auf300begrenzten Warnsignaturen laufen früh über. Ereigniszähler/CPU/Population
und Warnkategorien bleiben korrekt, für Navgründe/Severity/Actors Audit verwenden!
Manuelle Notizen manual-observations.md.
Zusätzlicher rein lesender sample-actions.py (gleiches/tmp-Verzeichnis) sammelt
110native Aktionszustände und markiert lange Taxi-Legs ohne Complete zwischen
Stichproben. Erstes Sample02:33:59,18Taxi-Legs; nächste ca02:49, dann15min.
Dateien actions.jsonl, taxi-candidates.jsonl. Verdacht vor allem2301(608Map0->23Map1),
807(6Map0->213Map530), außerdemGarenden62auf2108(sameMap1). Siehe manuelle
Notizen; mögliche fehlende Teleport-ACKs nicht als bewiesen ausgeben. Nicht fixen! Stand02:50:110stabil, keine Neustarts,
Nav-ERROR bisher alles RECOVERY_FAILED; viele normale WARN/Retry-Pfadabbrüche.
2neue DBErrors sind fehlende creature_text für Stormwind Royal Guard42218,
keine SQL-Verbindungsfehler. Letzter Snapshot02:07 keine gespeicherten Passagiere.
Keine Eingriffe in Bot-/Serververhalten.
Neuste relevante Befunde: Darilwin127(Worgen27) inUnterstadt beiCaptainDonaldAdams60
in sehr schneller Tod/Reclaim-Schleife; RuhezielStormwindBench, solo. Details und
andere Betroffene in manual-observations.md, Zähler nicht blind als eindeutige
Todesanzahl werten. ZweiteAktionsprobe02:50:17Taxi-Legs seit02:33:59gleich, ohne
Complete in Console dazwischen. VieleMapwechsel2301/807/766/767, zusätzlich62sameMap2108.
NächsteActions-Probe ca03:05, dann15min nach letztem actions.jsonlZeitstempel.
110online/keineRecovery/CPUca25%main/RSS4.4GiB. Watch läuft unverändert bis07!
---
# Aktuell: Performance-Verbesserungen implementiert und mit110Bots gemessen
Nutzer beauftragte geringere Last/bessere Mehrkernnutzung im Hinblick auf spätere
Produktion. Branch feature/clientless-player-core, letzter Commit cac4142ec1.
Sämtliche vorherigen Arthoran/Worgen/PvP/nativer-LFG-Änderungen enthalten.
Dieser Stand wird auf ausdrücklichen Nutzerauftrag lokal committet; kein Push.
Doku doc/clientless/performance.md, Nachweise checkpoints/2026-10-29-performance/.
Aktuelle Installation: letzter erfolgreicher Build /tmp/vcore-performance-retry-build.log,
Install /tmp/vcore-performance-retry-install.log. Testserver PID214924 in tmux
vcore-worldserver, frischer Start /tmp/vcore-performance-retry-start1.log; aktuelle
ready-Meldung, Prozess und TCP8085 LISTEN bestätigt. Keine Produktion berührt.
Aktive Config MapUpdate.Threads=4 (vorher1), Network.Threads=1, Loader weiter
50 persistent+5 temporär pro Fraktion. ALLE110 online, pending0, error leer.
Gruppenfindungstest-Deadline01:00 abgelaufen; kein Setup-Helfer aktiv. Normale
persistente Tagespläne werden nach Neustart verfolgt, Test nicht heimlich verlängert.
Letzte /proc-Messung10.069s bei110Bots: Hauptthread26.2% eines logischen Kerns,
vier Mapworker38.6/37.6/38.1/38.5%. Vorherige Beobachtung95.1% Hauptthread,
9.9% einzelner Mapworker. Verschiedene laufende Situationen, KEIN deterministischer
Benchmark/keine garantierte Prozentverbesserung. CPU-Datei im Checkpoint.
Letztes30.011s CPC-Fenster110Bots: Actions7.762s, Controllers1.612s. Baseline
16Bots/31.923s: Actions24.381s, Controllers1.032s. Zeiten sind Wandzeiten,
keine CPU-Prozente. Debug-CMake unverändert -g OHNE Optimierung; Produktion
benötigt gesonderten optimierten Build/Lasttest, keine1,000Bot-Freigabe behaupten.
Hauptursache gemessen: Flugkostenbewertung im Graphen (21,456Calls,292.767ms
von355.109ms warmer Suche). Scoped Flight-Planning-Snapshot reduziert wiederholte
Config-/Profilabfragen auf einmal pro Suche; exakte binäre Gebietsschlüssel
statt float-Textformatierung. Native tatsächliche Start-/Lizenz-/Gebietsregeln
bleiben wirksam. Spätere ähnliche20k-Calls-Suchen34..37ms Flugbewertung, ca100ms
Gesamtsuche. Kalte Terrain-/Loginvorgänge können weiterhin Einzelspitzen erzeugen.
Weitere Änderungen: ClientlessGraphProbeCache erfolgreiche statische feste MMAP-
Verbindungen (Map/Instanz/Richtung/exakteKoordinaten), max32768, Graph-Reload leert;
max4096 feste Graphnachbarschaften als Würfel-Superset mit allen bisherigen
Radius/Sperrlisten/Wegeprüfungen. Nur innerhalb EINER Suche Startpfade teilen,
auch über Suchtiers; keine globalen Playerpfade/negativen/transienten Proben.
Reisefehlerbackoff2..30s mit Jitter, neuer Intent setzt Retry zurück, Zeitblock-
Deadline unverändert, Kampf und Benachrichtigungen nicht verzögert. Verhindert
beobachtete heiße Schleifen mit>50Fehlzielen innerhalb weniger Minuten.
CPC_PERF alle30s + CPC_ROUTE für Suchanfragen>=50ms bleiben als Diagnose.
Alle86 Clientless-Tests bestanden, /tmp/vcore-performance-retry-tests.log,
inklusive neuer Cache-/Retry-/Scoped-Planning-/Koordinaten-/Routenregressionen,
16parallel schreibenden Mapworker-Notifications und native Masterpfade. Gameplay-
Abnahme und produktionsnaher optimierter Lasttest bleiben getrennt offen.
Bot/Lua/Player-Manager bleiben Worldthread-eigen; native Mapjobs parallel, einzelne
Map weiterhin seriell. Kein blindes Parallelisieren geteilter Zustände.
---
# Performance-Fortschritt: Cache/Mapworker bereit, Vergleich noch offen
Interne Baseline-CPC_PERF bestätigt Actions als Engpass:16Bots/31.923s Fenster
24.381s Actions,1.032s Controllers,27ms Perception. Bei20Bots nur10Ticks/31.537s,
27.872s Actions. Bei59Bots12Ticks/32.301s,26.331s Actions. Baseline-Logs
/tmp/vcore-perf-baseline-start1.log und derzeitiges Server.log (vor Neustart sichern).
Implementiert: ClientlessGraphProbeCache.h, maximal32768 erfolgreiche statische
MMAP-Proben, genaue Floatbits/direktional/Map-/Instanzschlüssel. Keine Playerpfade,
Detour-Pointer, negativen/unvollständigen/transienten Ergebnisse speichern.
In PlanAdaptiveRoute nur zukünftige feste Graphpunkte. Aktuelle Einstiegswege
und alle ausführenden Wegprüfungen bleiben nativ. Reload leert Cache.
Zusätzlich maximal4096 Graph-Nachbarschaften nach Ausgangsknoten/Radius; Würfel-
Superset, ursprüngliche genaue Radius-/Sperrlisten-/Pfadregeln bleiben aktiv.
CPC_ROUTE-Trace für Suchanfragen>=50ms mit Gesamt-/Navzeit/Probezahl/Cachehits.
Cache-Unit, Produktionsplaner (kalte/warme identische Route, weniger Proben,
Sperrlisten und Cacheleerung), 16-Thread-Damage-Handoff erfolgreich. Social-Handoff
und Gruppenreise zielgerichtet laufen/Ergebnisse prüfen. Baseline-Build cache1
war erfolgreich; aktueller abschließender cache2-Build enthält zusätzliche
Routenzeiten: /tmp/vcore-performance-cache-build2.log, Session65518, vorher
pgrep ninja vor weiterem Build! Native Baseline-Server204663 vollständig beendet.
Testconfig MapUpdate.Threads=4 gesetzt (vorher1), Netzwerk unverändert1; nur
Testserver, Produktion unverändert. Noch NICHT installiert/neu gestartet.
Nächster Schritt: Build/Tests fertig prüfen, installieren, frisch starten,
Ready/Port/4Mapworker prüfen. CPC_PERF/CPC_ROUTE und CPU-Deltas nach Cache-Warmup
bei dokumentierter Botzahl vergleichen. Noch KEINE Verbesserung behaupten;
falls Navigation nicht dominant im CPC_ROUTE-Trace, weiteren Engpass messen.
Alle früheren WIP erhalten, kein Commit/Push, keine Subagents.
---
# Aktuell: Performance/Mehrkern-Optimierung in Arbeit
Nutzer beauftragt Verbesserung der Last/CPU-Verteilung für spätere Produktion.
Alle vorherigen uncommitteten Arthoran/Worgen/PvP/LFG-Änderungen bewahren.
Branch feature/clientless-player-core geprüft. Keine Subagents erlaubt; kein Push.
Baseline vor Änderungen PID201380: Hauptthread95.1% eines logischen Kerns,
Mapworker9.9%,12logische CPUs. MapUpdate.Threads=1,Network.Threads=1.
CMake Debug mit -g OHNE -O; Produktionslast dadurch nicht direkt ableitbar.
perf und gdb attach durch OS-Rechte gesperrt, sudo -n ebenfalls nicht verfügbar.
Keine OS-Rechte geändert. Stattdessen gezielte Laufzeitmessung eingeführt.
ClientlessPlayerMgr.cpp Update misst Travel/Perception/Transport/Flight/Actions/
Controllers inklusive Online-Initialisierung, protokolliert CPC_PERF alle30s
mit Fensterdauer, Tickzahl, Botzahl und langsamstem Einzelcontroller.
Build /tmp/vcore-performance-instrument-build.log erfolgreich und installiert.
Alter Server201380 vollständig beendet. Aktueller Baseline-Start läuft unter
tmux vcore-worldserver, /tmp/vcore-perf-baseline-start1.log. Readiness/Port und
erste CPC_PERF-Fenster jetzt prüfen; noch keine Optimierung/Mehrkern-Config geändert.
Loader bleibt50/5/50/5;110 gespeicherte Bots. Frühere Gruppenfindung bis01:00,
Helfer war zuletzt nicht mehr aktiv; Vergleichslast sorgfältig dokumentieren.
Nächste Schritte: Messfenster auswerten, gezielt teuerste Arbeit verbessern,
sichere Mapworker-Konfiguration prüfen. Bot/Lua/Player-Manager nicht blind parallel
aufrufen! Welt-/Mapthread-Grenzen beibehalten. TravelGraph-Routing enthält sehr
teure zukünftige Punkt-zu-Punkt-MMAP-Brücken und ForwardEntry-Probes; Cache bisher
nur pro einzelner Suchanfrage (validBridgeLengths/rejectedBridges). Falls Messung
Actions bestätigt, positiver geometrischer Cache über Anfragen mit Graph-Reload-
Invalidierung/Instanzschlüssel sinnvoll; keine transienten negativen Ergebnisse
unbegrenzt speichern. Noch NICHT implementiert. Nach Änderungen sinnvoll testen,
bauen/installieren/neustarten und Last mit Botzahl/Fenster/Debug-Einschränkung
vergleichen. Keine ungemessenen Prozentverbesserungen behaupten.
---
# Aktuell: Korrektur auf nativen SucheNachGruppe-Kanal
Nutzer korrigiert: SucheNachGruppe ist eingebauter automatisch betretenener
Hauptstadtkanal; vorheriger /join-Hinweis und Ersatzkanal waren falsch.
Lokale deDE ChatChannels.dbc bestätigt ID26, NameSucheNachGruppe, Flags262201.
AdventureGroupMgr.Speak jetzt Lookup26 + native Zonenberechtigung und
GetJoinChannel(entry->ID,"",zone), tatsächlichen Beitritt vor Say überprüfen.
Kein benutzerdefinierter reservierter Kanal mehr. Bestehende Limits erhalten.
Aktive Testconfig Channel.RestrictedLfg von1 auf0 gesetzt und reload config
bereits ausgeführt; bisheriger NativeCode wies gruppierte normale Accounts
beim LFG-Beitritt ab (GM/RBAC-Ausnahmen beachten). Keine Änderung allgemeiner
Player-/Client-Joinlogik. Clientanzeige nach Stadtwechsel/Relog noch abnehmen.
Doku worgen-recruitment.md korrigiert, frühere Customkanal-Angaben historisch.
Neuer echter Speak-Adaptertest test_adventure_native_lfg.py besteht: ID26,
Zonenberechtigung, Joinbestätigung, Cooldown. test_adventure_groups.py ebenfalls
bestanden. Abschließender Build2 /tmp/vcore-native-lfg-build2.log erfolgreich und installiert.
Vorheriger Testworldserver197361 vollständig beendet. Neuer Server PID201380,
/tmp/vcore-native-lfg-start1.log; frische ready-Meldung in aktuellem Server.log,
Port8085 LISTEN, Prozess stabil bestätigt. Config RestrictedLfg=0 bestätigt.
Gruppenfindungs-Helfer mit vorhandener01:00 Deadline wieder gestartet, Log
/tmp/vcore-groupfinding-native-lfg.log; Arthoran26 bereits vorbereitet.
Clientanzeige/echter Nachrichtenempfang noch nicht visuell abgenommen. Kein
Commit/Push; alle vorigen Arthoran/Worgen/PvP-WIP erhalten. Branch geprüft.
---
# Aktuell: Worgen, aktive Gruppenfindung und PvP implementiert
Nutzer beauftragte Worgengestalten/Reittiere, Vorbereitungs-Mikroaktionen,
Kapital-Suchchat und aktive Spielereinladungen mit vorheriger Zielinfo sowie
permanentes freiwilliges PvP. Schiffspositionen ausdrücklich unverändert lassen.
Vorherige uncommittete Arthoran-Änderungen vollständig erhalten. Kein Commit/Push.
Branch feature/clientless-player-core, letzter Commit cac4142ec1.
Doku doc/clientless/worgen-recruitment.md.
ClientlessLuaEngine.UpdateWorldPresence pflegt native PvP-Wunsch-/Playerflags,
Worgen nach Intent/Kampf/Instanz und zufälliger ruhiger Ankunft, sichere verzögerte
Wechsel mit5s Retry, Zustand bei Logout gelöscht. PrepareGroundMount verwendet
native Wilde Hatz87840 bei Worgengestalt, Pferd2404/Zauber458 in Menschengestalt;
Dismount entfernt Aura. Neue generierte Worgenprofile Pferde statt Volkspferde;
alte leere Mount-Dictionaries bekommen funktionierenden Lauf-/Pferdefallback.
Gruppenfindung beendet nicht länger Mikroaktionen vorzeitig; zusätzliche SQL-
Migration2026_10_29_01_adventure_group_preparation.sql bereits in Test-WorldDB
angewendet (SQL-Pfad ignoriert, per git add -N -f zur Nachverfolgung aufgenommen).
Vorbereitung/Suchwege lokal mit18Y Pathbudget, auch innen. GroupMgr announciert
nächsten Intent + tatsächliches Ziel im vorhandenen sucheNachGruppe-Kanal,
max1 Nachricht/15s populationsweit und3..5min pro Werber. Spieler müssen Kanal
beitreten. Nahe passende Menschen werden mit vorherigem Whisper eingeladen;
10min Cooldown pro Mensch populationsweit. Native Gruppe/Einladung/Kapazität,
Fraktion/Sicht/AFK/Kampf/Reiseschutz und bisherige Spielerführung beibehalten.
Build4 /tmp/vcore-worgen-recruitment-build4.log erfolgreich, installiert;
Testserver nach vollständigem Stopp frisch gestartet. PID197361, tmux
vcore-worldserver, /tmp/vcore-worgen-recruitment-start1.log. Frische ready-Meldung,
Port8085 LISTEN und Prozess stabil bestätigt. Loader aktiv50/5/50/5;110 gespeicherte
Bots vorhanden, Online-Aufbau läuft. Native gespeicherte PvP-Wunschflags bei
Arthoran26/Aelion29/Zanzan30/Lenara31 jeweils1. Worgen31/38 Pferd458+ZweiGestalten68996
in Spellbook bestätigt; native Script-Zuordnung87840/68996 überprüft.
Regression /tmp/vcore-worgen-recruitment-tests.log:82/83 erfolgreich, einzig alter
intent_state-Adapter fehlte neuer Lua-Ankunftsaufruf. Adapter ergänzt, Einzeltest
anschließend bestanden. Neues world_presence und erweiterte groups/leisure Tests
anschließend bestanden, einschließlich begrenzter Innenraum-Suchwege, menschlicher
Einladung/Zieltext/Abklingzeit, Gestalt in Kampf/Mischinstanzen und Mount-Aura-Cleanup.
Keine visuelle Abnahme von Chat/Morph/Einladung behaupten; native Kanal-/Micro-
Logs waren in erster Ramp-up-Stichprobe noch nicht aufgetreten (Bots reisen).
Vorherige Gruppenfindungs-Deadline00:00 war abgelaufen. Für fortgesetzten Test nach
Neustart gemeinsame Deadline auf01:00 Europe/Berlin (1793232000) gesetzt. Helfer
/tmp/vcore-groupfinding-setup.py läuft weiter, Log /tmp/vcore-groupfinding-worgen.log,
Manifest /tmp/vcore-groupfinding-test.json. Neue online Bots automatisch vorbereiten,
bei110 online stoppt Helfer; DB-Transienten werden erneut versucht. Nicht parallel
starten! Früheres Manifest /tmp/vcore-groupfinding-test-first-block.json gesichert.
Native performative Instanzaufenthalte können sichere Übergabe noch verzögern.
Kein Push/Commit beauftragt. Gameplay-Tankverhalten/Schiffe bleiben gesondert offen.
---
# Aktuell: Arthoran in normale persistente Verwaltung übernommen
Auftrag: Arthoran normaler AdventureBot, Krieger60, Gruppenrolle Tank,
Tavernen/Geselligkeit stärker gewichten als Abenteuer, keinem Kampf ausweichen.
Branch feature/clientless-player-core; Ausgangscommit cac4142ec1. Bereits
vorhandene Änderung dieses Dokuments gehört zum Lasttest und wurde bewahrt.
arthoran.lua jetzt ProfileVersion2, Level60/Class1, SchutzSpec2/Tank, SoloArms0,
Tagesplan aktiv, Elwynn/Sturmwind Heimat, verstärkte Tavernen-/Sozialgewichte,
Aggression1/DangerTolerance1, behavior.allow_retreat=false. Neue optionale
AllowRetreat-Eigenschaft (Defaulttrue) beendet Flucht bei ausdrücklicher Ablehnung;
Gruppenflucht weiterhin aus. Normale CPC-Infrastruktur unverändert.
Generator Reconcile/ProtectedEquipment/PrepareCombat und Population.Online lassen
vollständige v2-Dateiprofile wie generierte Profile verwalten; Legacy-Profile
bleiben unverändert. Arthoran26 explizit in CharacterDB-Registry übernommen,
persistent/ready/warrior/seed26, eigener Lua-Profiltext ebenfalls gesichert.
Kein neuer Charakter, keine Level-/Klassenumwandlung. Backup des Zustands/Inventars
vorher /tmp/vcore-arthoran-before-adoption.tsv. 26 zählt zur Allianz-Persistentquote.
PvP-Frage geprüft: kein erzwungenes PvP in Adventure-Lifecycle; zuletzt0/96
Registry-Bots CHARACTER_FLAG_PVP_DESIRED gesetzt, ebenso Arthoran nicht. Native
Kampf-/Gebietsflagging bleibt. Globale PvP-Einstellung NICHT verändert.
Build /tmp/vcore-arthoran-managed-build.log erfolgreich und installiert. Betroffene
Tests combat_reactions (zusätzlich ausdrückliches Fluchtverbot), population
(zusätzlich benanntes v2-Profil vs Legacy/unvollständig), combat_preparation,
profile_selection, profession_profile erfolgreich. Bisheriger Server183811
vollständig beendet; Neustart /tmp/vcore-arthoran-managed-start1.log.
Startbereitschaft bestätigt (frische ready-Meldung, PID191926, Port8085 LISTEN).
Arthoran26 online/persistent/ready, Level60/Class1, SoloArms-Talentbaum746,
103 Zauber,14 gelernte Talentzauber, Zweihandwaffe31134. Tankrolle/SchutzSpec2
im Profil; tatsächlicher Gruppen-Tankwechsel noch nicht im Spiel abgenommen.
Erste Reconcile-Prüfung scheiterte am alten Mining-Lehrzauber ohne Fertigkeit.
26 nativ ausgeloggt, ausschließlich fehlende Skills186/164 mit375/375 im Offline-
Zustand ergänzt, nativ neu eingeloggt; danach Reconcile ohne neue Fehlermeldung.
Mining nativ auf450 erhöht, Blacksmith375; bestehende Nebenskills erhalten.
Gruppenfindung für26 erneut bis00:00 angefordert; sichere Übergabe aus Social
kann noch laufen. Kein Gameplay-Tanktest behaupten.
Gruppenfindungs-Setup hatte wegen temporärem DB-TLS-Reset angehalten. Native
DB-Query-Retry ergänzt, nach Neustart Manifest prepared zurückgesetzt und Setup
wieder gestartet: /tmp/vcore-groupfinding-resume.log; ursprüngliche Deadline
00:00 beibehalten. Laufenden Setup-Prozess nicht doppelt starten! Loader aktiv
50/5/50/5; keine anderen Nutzercharaktere übernommen. Kein Commit/Push beauftragt.
---
# Aktiver Test: Gruppenfindung für Lasttestpopulation
Nutzer fordert alle Bots zunächst in Gruppenfindung, danach Instanz/Raid;
keine C++-Änderung. Vorhandenes natives `clientless adventure prepare` verwendet,
keine Lua-/Profiländerung nötig. Aufruf pro online Bot: prepare <guid> <next>
<meeting> <seconds>. Allianz poi_guard_22 (Sturmwind), Horde poi_guard_179
(Orgrimmar), Level>=60 raid, darunter instance. Gemeinsame Deadline nächste
volle Stunde: 2026-10-29 00:00 Europe/Berlin (epoch1793228400), danach1h Folgeintent.
Bestehende Kampf-/Tod-/Reiseübergaben bleiben aktiv. Test überschreibt den
aktiven Ablauf (schedule=0), gespeicherte normale Tagespläne/Profilwerte bleiben
erhalten. Nach Test mit `clientless adventure schedule <guid> on` zurückstellen.
Setup /tmp/vcore-groupfinding-setup.py, Log /tmp/vcore-groupfinding-setup.log,
Manifest /tmp/vcore-groupfinding-test.json. Pollt neue online generierte Bots
alle10s bis mindestens110 online, höchstens30min bzw. vor Deadline. Nicht doppelt
starten oder Manifest überschreiben. Bisher80 native prepare-Erfolgsbestätigungen; Aelion29, Lenara31 und Karggan35
melden groupformation + next=raid. Zuletzt80 online (35/5/35/5),
Loader noch busy beim weiteren Erzeugen, kein Loaderfehler. Setup läuft weiter;
110er Abschluss noch nicht bestätigt. Finales Manifest/Bestätigungen prüfen. Kein Push/Commit beauftragt.
---
# Aktuell: Gemeinsame Gruppenreisen implementiert
Auftrag: Spieler- und Botgruppen mit sicheren Formationen, Reittieren, freiem
Flug, nativen Taxis/Portalen und aufgezeichneten Verkehrsmitteln reisen lassen.
Branch feature/clientless-player-core; Ausgangscommit a758239da9.
Dieser Stand wird auf ausdrücklichen Nutzerauftrag lokal committet; kein Push.
Doku: doc/clientless/group-travel.md.
AdventureGroupTravelMgr/Policy übernimmt lokale Gruppenverfolgung, sichere
Bodenpfade, stabile Formationsplätze, begrenzte Straßenabschnitte, Flugverfolgung
und Übergangsqueues. >500Yards startet getrennte 10-Minuten-Uhr; bekannte Reisen
und fortschreitendes Aufholen sind begrenzt geschützt. Reine Botgruppen behalten
ihre gemeinsamen Graph-/Flugrouten. Native Transportverluste führen zum erfassten
Einstieg zurück, zuerst per Pfad, bei Scheitern gezielt per Teleport. Keine
allgemeinen Teleports zum Anführer. Generic CPC verwendet optionale owner-Callbacks,
bleibt unabhängig von AdventureBots. DungeonBots unverändert.
Build6 erfolgreich: /tmp/vcore-group-travel-build6.log. Alle82 Tests erfolgreich:
/tmp/vcore-group-travel-tests2.log. Nach letzten Änderungen zusätzlich Gruppenreise,
Straßenfortsetzung und bewegter Flug erneut erfolgreich getestet. Installation
mit bestehender CMake-Konfiguration erfolgreich; vorheriger Server vollständig
beendet. Neuer Start läuft: /tmp/vcore-group-travel-start1.log, PID183811,
tmux vcore-worldserver. Startbereitschaft bestätigt: frische ready-Meldung, Prozess stabil, Port8085
LISTEN. Loader24 online,10/2/10/2, pending0, error leer.
Aktueller Lasttestauftrag: Loader aktiv mit50 persistent+5 temporär je Fraktion
(Soll110). Aktive worldserver.conf angepasst und reload config sowie
clientless population reload ausgeführt; Zielwerte50/5/50/5 bestätigt.
Population wird schrittweise aufgefüllt; frühere24er Angaben sind historisch.
Native Spielerreisen und visuelle Formation sind noch nicht im Spiel abgenommen.
Unbekannte/scriptgesteuerte Portale oder fehlende Serviceaufzeichnungen werden
nicht erraten; Bots warten bzw. suchen vorhandene Graphwege. Keine Behauptung,
dass Adaptertests Gameplay-Abnahme ersetzen. Kein Push.
---
# Aktuell: Klassen-/Rollen-Kampf und Spieler-Instanzmodus implementiert
Nutzer autorisierte die gemeinsam besprochene Umsetzung. Ausgangsstand sauber
bei d3273c677e auf feature/clientless-player-core. Dieser Implementierungsstand wird auf ausdrücklichen Nutzerauftrag lokal
committet; kein Push. Doku: doc/clientless/class-combat.md.
Neue AdventureRotationPolicy/TalentPolicy und AdventureEncounterMgr.28 feste
Cataclysm-PvE-Talentvorlagen (27 Spezialisierungen plus separates Bär/Katze) gegen
lokale4.3.4-DBC abgeglichen; alle Punktbudgets1..41 testbar. Solo-Spec im neuen
Lua-Profil, alte Profile deterministisch aus gespeichertem Seed. Alle Klassen
mit gemeinsamen Prioritäten und nativen Casts; native Ressourcen/Procs/Combo/
HolyPower, Cata-Spezialisierungen, Heiler/Tanks/Damage und DungeonBot-Unterstützung.
Gruppenwechsel schaltet Skillung/Ausrüstung sicher um, nie im Kampf/Flug/Fallen.
Alternativausrüstung geschützt/wiederverwendet. Level85 episch ilvl>=359,
Furor vor31 Talentpunkten Einhand; Frost-DK zwei Einhandwaffen/Unholy Presence.
Native Gifte/Schamanenimbues, Begleiter und Rollenunterstützung.
Spielergruppen erhalten echten Instanzmodus mit ausgesetzter Planausführung,
nativen Portalwegen, allgemeinem DynamicObject-Flächenausweichen und C++-Hooks
für spätere Instanz-/Boss-Skripte. Alte performative Visits werden ausdrücklich
beim echten Eintritt ohne künstlichen Ausgang/Verwundung beendet. Reine Botgruppen
bleiben performativ. Tote warten auf Wiederbelebung, nach Wipe Eingangsrückweg
mit Teleport bei fehlendem/gescheitertem Weg, malusfreie Wiederbelebung, Sammeln,
Rückkehr/Todespunkt bzw. lebenden Spieler priorisieren. Kick verlässt Instanz
sicher und nimmt Solo-Spec/Tagesplan wieder auf. Keine Boss-Skripte eingeführt.
Native Integration deckte CORE-Bug auf: Hunter Lock and Load56342 leert Effect2,
SpellValue berechnete trotzdem diesen parentlosen Default-Effekt. Scaling war
zudem uninitialisiert. Crash untergdb reproduziert; ROOTFIX jetzt SpellInfo.h
Scaling{} und Spell.cpp IsEffect-Gate. Regression test_empty_spell_effect.py.
Erste zwei Starts scheiterten daran, dritter korrigierter Start läuft stabil.
Alter vorheriger Server PID139425 zeigte außerdem vorhandenen Shutdown-Segfault.
80/80 automatisierte Tests erfolgreich: /tmp/vcore-role-tests-recovery.log.
Danach letzte gezielte Klassen-/Talent-/Ausrüstungs-/Empty-Effect-Tests erfolgreich.
Vollständiger1046-Schritt-Build /tmp/vcore-role-build-recovery.log und finaler
9-Schritt-Build /tmp/vcore-role-build-final-fixed.log erfolgreich, installiert
/tmp/vcore-role-install-fixed.log. Testserver LIVE PID167319, tmux
vcore-worldserver, Console /tmp/vcore-class-combat-20261028-start3.log.
Frisches ready, fortlaufender Prozess und Port8085 geprüft. Loader unverändert
AKTIV10 persistent+2 temporär je Fraktion, alle24 online/pending0/error leer.
NICHT auf historische deaktivierte Defaults zurücksetzen.
Native Hunter44 gab einmal initial unvollständige Talentvorbereitung aus,
automatisch korrigiert: gespeicherter Survival-Baum809/28 Punkte bei Level63
passt zur nativen DBC. Vorhandene Missing-map719 und Into-the-Wilderness84729
misc9-Warnungen bleiben, kein behobenes vollständiges Terrain/System versprechen.
Inventarhashes von menschlichem Allitester21 und Arthoran26 unverändert.
Belege: doc/clientless/checkpoints/2026-10-28-class-combat/.
Noch abnehmen: tatsächliche Tank-/Heiler-/DD-Kämpfe mit Spielern, DungeonBot-
Zusammenspiel und Wipe/Portalwege in der Spielwelt. Automatisierte Adaptertests
sind KEINE Ingame-Abnahme. Bossmechaniken jenseits generischer Bodenflächen
werden später pro Instanz ergänzt. Kein laufender Build.
Nächster besprochener, NOCH NICHT implementierter Schritt: gemeinsame Gruppenreise
für Spieler-/Botführer, getrennte Formationsplätze, sichere Boden-/Flugverfolgung,
Bodenreittiere/Taxi/Schiffe/Tiefenbahn/Portale. Im Stand kleine Formation, unterwegs
Kolonne, mehrreihig nur bei geprüftem Platz; Engstellen einreihig. Kein gültiger
Pfad -> stehenbleiben/wiederprüfen, keine Klippensprünge. >500Yards über10Minuten
führt unter bisherigen Austrittsschutzregeln zum Verlassen; bekannte Übergänge,
Nachreisen und Transport-Recovery pausieren den Abstandszähler. Nicht flugfähige
Bots folgen nur zu sicheren erreichbaren Bodenpunkten bei begrenzter Höhe.
Transportverlust -> letzter sicherer Einstiegsknoten, zuerst sicherer Weg, bei
Scheitern gezielter Rücksetzteleport, nächste Fahrt abwarten. Nutzer bat jetzt
zuerst um Commit der vorherigen Klassen-/Rollenänderungen.
---
# Aktuell: Loader auf Nutzerauftrag für24 Bots aktiviert
Nutzer hat ausdrücklich aktive Testpopulation festgelegt: Allianz10 persistent
+2 temporär, Horde10 persistent+2 temporär. In aktiver Testserverkonfiguration
server/debug/etc/worldserver.conf gesetzt, Loader.Enabled1. Native reload config
und clientless population reload ausgeführt, kein Neustart/Build nötig.
Abschließend nativ bestätigt: alle vier Pools online10/2/10/2, pending0,
manager24, busy0, error leer. PID139425 weiterhin aktiv, Port8085 lauscht.
16 fehlende persistente Bots wurden schrittweise erzeugt/angemeldet;
bestehende temporäre Bots zählen mit.25 fertige Registry-Bots, davon24 online,
ein weiterer Allianz-Temp offline. Levelbereich1..85, Rotation15%/Mindestalter24h
und restliche Einstellungen unverändert. Loader AKTIV LASSEN, NICHT auf die
in den historischen Checkpoints beschriebenen deaktivierten Defaults setzen.
Keine weiteren Codeänderungen/Commits/Pushes für diese Konfigurationsaufgabe.
---
# Aktuell: Profile, Tagesplaner, Botmanager und Loader abgeschlossen
Nutzer beauftragte Umsetzung nach bestätigter Planung. Branch
feature/clientless-player-core war sauber. Änderungen noch NICHT committet;
kein Push. Vollständige Doku: doc/clientless/population.md.
Neue AdventurePopulationMgr/Policy mit vier unabhängigen Sollzahlen:
Allianz/Horde jeweils persistent/temporär. Normale World-Updates statt
Startup-Warten; verzögerte einzelne Anmeldungen, asynchrone Snapshots,
SRP6-Accountanlage, generischer Factory-Preflight und atomischer Save ohne
Future-Warten im Loader. Native Vorbereitung bleibt World-Thread; vorhandene
native Login-/Profil-/Katalogpfade enthalten weiterhin synchrone Reads.
Zufällige temporäre Rotation vor Login, Mindestalter und Chance konfigurierbar;
pro Kandidat einmal pro Prozess geprüft, keine erzwungene Online-Abmeldung.
Erst Ersatz speichern, dann Journal, nativ alten Bot löschen, World-Plan
bereinigen, zuletzt Profil/Supply-/Instanzstate/Journal. Persistente und
verbundene Charaktere geschützt. Accounts nur explizit eigene normale Accounts.
Profile v2 in Character-DB, weiterhin Lua-Sandbox/generated:GUID, keine Dateien
im Sourceprofilbaum. Level1..85/DK>=55, Klasse/Spec/Rolle/Seed, Heimat+Hauptstadt,
levelgerechtes Lieblingsgebiet, Aggression/Heimatbindung plus bisherige
Persönlichkeit. Gewichtete native Bodenmount-Displays/Flugmount- und Petspells,
Anzahlen und Inventar-Whitelist. Erweiterte kulturelle Namensgrammatiken.
Rollen beeinflussen native Spezialisierung/Ausrüstung; Tank-/Heiler-Kampf-AI
und volle Klassenrotationen weiterhin spätere Arbeit. Alte Generatorprofile
wurden beim Laden erweitert, Identität/alte Persönlichkeit/Berufe erhalten.
Keine handgeschriebenen Profile geändert, keine temporären Overrides.
Planer speichert24 vollständige Stunden-Slots vor Ausführung in bestehender
World-Tabelle. Gleiche Folge-Intents/-Locations teilen komplette Blockfrist.
Veraltete/unvollständige Tage werden atomisch ersetzt, gleiche Tage geladen.
Bestehender TINYINT-hour-Lesefehler GetUInt32->GetUInt8 behoben.
Heimatbindung, Neugier und Ziel-/Gebietswiederholungen beeinflussen Gewichte,
Gebietsbänder aus neuem editierbarem Katalog; Profillevel maßgeblich.
Auch neutral markierte Orte in Gegnerhauptstädten sind nun ausgeschlossen.
Manager nur für generierte versionierte Profile: sichere Zustände, Level/XP,
Training/Talente/Riding/fehlende oder unpassende Ausrüstung korrigieren.
Geburt und Erhaltung nutzen dieselbe Armor-/Stat-/Spell-/Level-/Use-Prüfung.
Volle Rucksäcke nativ leeren, angelegte Ausrüstung unberührt, aktuelle
Vorratsstacks/Whitelist/Werkzeuge/Leine/Angel/Taschen geschützt.
WICHTIGER Integrationsfix: alter ClientlessInstanceVisitResume startete alle
Instanzbesucher synchron in OnStartup und umging die neuen Quoten. Jetzt nur
asynchrones verzögertes/gepacetes Wiederanmelden NICHT-generierter Besucher
in OnUpdate. Generator-eigene Instanzbesucher laufen ausschließlich über die
Quoten. Fehlende Generator-Tabelle lässt alte manuelle Wiederaufnahme bestehen.
Nativ bewiesen: bei finalem Start keine Clientless-Anmeldung trotz gespeicherter
Instanzvisite36, während Loader deaktiviert/alle Sollzahlen0 waren.
Migrationen world/characters2026_10_29_00 auf TEST-DB zweimal angewendet
(78 Gebiete). Beide SQL-Dateien wegen Ignore explizit vorgemerkt.
75/75 Tests im abschließenden Lauf erfolgreich; Debug-j10 gebaut/installiert.
Letzter Testserver PID139425: frische Ready nach11s, Prozess und Port8085
bestätigt. Native Tests: beide Fraktionen Level1 und85, vier getrennte Pools,
Stufe60-Schutzkrieger37 mit Tankprofil/Schutzbaum/Waffe+Schild; Level1->5
administrativ verändert und auf1 korrigiert, Planhash unverändert; alter
Testtag ersetzt; gleiche Pläne nach echtem Neustart bytegleich.
Rotation37->38: alter Nativechar/Profil/Plan/Supply-/Instanzstate weg,
Journal leer. Bestehende29..32 und retired27/28 erhalten. Native Inventarhashes
für menschlichen21 und Arthoran26 vor/nach identisch.
Eigene neue normale Accounts7 (Allianz) /8 (Horde). Neue persistente Testbots:
33 Tinkbin Gnom-Krieger1,34 Sylaria Blutelf-Schurkin1,
35 Karggan Zwergen-Priester85,36 Edwin Untoten-Krieger85;
38 Renaarna Worgen-Priesterin85 temporär. Diese fünf abschließend OFFLINE.
Testbot37 Elaisia wurde ausdrücklich für Rotation erzeugt und nativ gelöscht.
36 behält gespeicherte Instanz-Anreise; beim nächsten freigegebenen Login
normaler vorhandener Instanz-/Zeitbudget-Abgleich. Kein automatischer Start
unter deaktiviertem Loader. Arthoran26 bleibt OFFLINE/unverändert.
29 Aelion und31 Lenara wieder ONLINE in Goldhain, Intents gestoppt,
schedule0 und grouped0. Vor Login nativ offline GameTele435 positioniert,
nach Profilinitialisierung per Watcher gestoppt, keine Profiländerung dafür.
30 Zanzan nativ zu GameTele823 SenjinVillage/Durotar zurückgesetzt,32 Aldren
zu GameTele1040 TheDeadField/Silberwald nahe ursprünglichem NPC-Ziel;
beide online mit ursprünglichen Social-Zielen823/poi_npc_321922 angefordert.
Das waren administrative Test-Rückstellungen, kein Reisebeleg.
Aktive Testkonfiguration dauerhaft auf Defaults zurückgesetzt:
Loader.Enabled0, alle vier Sollzahlen0, Min1/Max85, Rotation15%, Mindestalter24h,
Intervall2000ms, Manager300s. Bereits manuell angemeldete vier Bots bleiben
online. Konfigurationsänderung: reload config, dann clientless population reload.
Diagnose population status/reload, generate profile GUID, adventure plan GUID.
Kein Commit/Push dieses neuen Arbeitsstands beauftragt.
Zwei während Tests gefundene native Abstürze behoben: LOGIN_INS_ACCOUNT braucht
CONNECTION_BOTH für asynchrones SRP6-Insert; Security-Abfrage nutzt tatsächliche
AccountID/SecurityLevel-Spalten. Item-Spell-Sentinel4294967295 erreichte
ApplyEquipCooldown-Assert; Generator schließt fehlende Spellmetadaten aus,
nativer Cooldown-Code prüft GetSpellInfo statt Assert. Factory-Shutdown gibt
wartende Offline-Players vor Map-Unload frei. Ein bekannter temporärer Auth-DB-
Ausfall10.0.0.1 wurde durch SIGTERM des Fehlstarts und zweiten Start überstanden;
keine Remote-Infrastrukturänderung. Aktuell Testserver bereit.
Restliche Abnahme: große1000er-Last, visuelle Reisen/Interaktionen und volle
Klassen-/Rollen-Kampflogik. Es wurden bestehende TravelGraph/MMAP-Fallbacks und
fehlende Map719-Terraindaten beobachtet; Navigationsüberarbeitung bleibt auf
Nutzerwunsch vertagt. Nicht als erfolgreich geprüfte Fernreise ausgeben.
Belege: checkpoints/2026-10-28-population/; Logs /tmp/vcore-population-*.log.
DB-Helfer /tmp/vcore-population-db.py (Credentials nur aus lokaler Konfiguration,
keine Secrets ausgeben). Originals- und Dayhash-Vergleiche in Checkpoint.
---
# Aktuell: Automatische Botgruppen, Raid und Gruppenbildung
Nutzer beauftragte Umsetzung der gemeinsam bestätigten Planung. Vollständige
Doku doc/clientless/bot-groups.md. Vorherige uncommittete PvP-/Fluchtarbeit
wird zusammen mit den Gruppenänderungen auf Nutzerauftrag lokal committet; kein Push. Neue AdventureGroupMgr/Policy,
native Einladungen und Erst-Einlader-Führung, lokale Gruppen und Kontakt in
Hauptstädten via sucheNachGruppe (Spielerchat wird nicht ausgewertet).
Vorbereitungsintent groupformation vergleicht NÄCHSTEN Intent, nie Ziele;
Sammelpunkt ist Gruppenbildungs-Location des Führers. Instanz5/Raid20 inklusive
Führer, andere Intents3/social10. Offene Einladungen werden mitgezählt.
Anführer bestimmt Intent/Ziel/Frist; eigene Tagespläne bleiben erhalten.
AFK während Bildung ausgesetzt, Übergang zu geplanter Aktivität kein Austritt.
Kein Warten auf Vollständigkeit/Anwesenheit. Rollen später. Botführer darf PvP
beginnen, Mitglieder assistieren; Gruppen fliehen weiterhin nie.
Spieler-Invite an gruppierten Bot erzeugt generische GUID-JoinRequest-Queue,
Botführer kann Gegeneinladung anbieten und übergibt nach Beitritt nativ Führung.
Native provisorische Gruppenführer ignorieren eigene Einladung (Regressiontest).
Raidbildung wählt native25-normal Schwierigkeit; Katalog verlangt>=20 Kapazität
mit nativem Downscaling für alte20/40-Raids; Zehner-only-Ziele ausgeschlossen.
Neue CPC route_source-Snapshots mit nativem catch-up, gemeinsame Flugsegmentspur,
native Gruppeninstanzen statt alter Solo-Sperre. Raid/Dungeon nach nativen Maps.
Migration world2026_10_28_01 zweimal auf Test-DB angewendet, bestehende Tage erhalten.
Zusätzlicher Diagnosebefehl adventure prepare <guid> <next> <capital-location> [s].
Alle66 Tests bestanden; abschließende Interaktions- und Plan-Regressionsfälle
zusätzlich erneut bestanden. Debug-j10 erfolgreich, abschließend installiert.
Aktueller Testserver122595 läuft; frische Ready-Meldung, Prozess und Port8085
bestätigt. Vier Testbots online, Arthoran26 weiterhin offline.
Nach Anmeldung bildete Lenara31 nativ Gruppe mit Aelion29 (Log Invite accepted1,
beide grouped1/leader31); nach Stop-Intentwechsel nativ wieder aufgelöst.
Dabei gefunden/behoben: Gruppentimer darf Behavior.Update bei Botgruppen nicht
auf1Hz mit falschem diff drosseln; Regressiontest sichert normale World-Ticks.
Stop-Wanted sperrt sofort weitere Rekrutierung/Annahme, ohne veralteten Intent.
Diagnose interaction <guid> leave: sicheres natives Verlassen/Testaufräumen.
Bots29/31 abschließend beide enabled0/grouped0 in Goldhain bestätigt und gespeichert;
vor Login nativ tele name435 zur sicheren Bereitstellung abseits Flugstart.
30/32 normale soziale Intents. Keine temporären Profiländerungen/Overrides.
Persönlicher Plan wird beim Austritt wiederhergestellt; übernommene Ziele ändern
nicht die persönliche Austrittssignatur (besonders manuelle Aufträge).
Belege: checkpoints/2026-10-28-bot-groups/, /tmp/vcore-groups-tests-final.log.
Kein vollständiger Live-Gruppenlauf oder Raid abgenommen.
---
# Aktuell: Solo-Fluchtlogik ergänzt
Nutzer hat Flucht vor deutlich stärkeren Gegnern und bei HP<20% beauftragt,
mit absoluter Ausnahme für Gruppenmitglieder. Implementierung CombatMgr/Policy:
+6 Level, gleich-/höherstufige Elite/Bosse, tatsächliche Angreifer; alle Arten.
Gruppenbeitritt bricht Flucht ab. Alle2s 24 MMAP-Fluchtpunkte, Abstand vergrößern,
weitere sichtbare Feinde meiden; kein Pfad => stationäre Nahkampfverteidigung.
Ende erst außerhalb nativem Kampf UND50Y Abstand zur letzten Bedrohung.
Bestehende Tränke, Intentfristen und Todesablauf erhalten. Details combat-reactions.md.
Vorherige uncommittete PvP-Änderungen erhalten. Alle63 Tests bestanden inkl.
erweiterter produktiver Flucht-Zustandsmaschine (/tmp/vcore-flee-tests.log).
Debug-j10 erfolgreich gebaut und installiert. Testserver105886 mit frischer
Ready-Meldung und Port8085 geprüft. Vier Testbots erneut angemeldet;29/31
nach Profilinitialisierung erneut gestoppt (früher Stop während Loading wird
vom Profilstart überschrieben). Aelion begann kurz nativen Flug Goldhain->SW;
danach nativer tele name435 nach Goldhain, ebenso Lenara. Beide Status
endgültig enabled0/stopped bestätigt, saveall. Aelion am nahen taxi_168,
Lenara am Goldshire-Telepunkt. Keine Live-Fluchtabnahme.
Kein Commit/Push.
---
# Aktuell: Offensive Fraktionsbegegnungen
Nutzer beauftragte PvP-Erstangriffe gegen gegnerische Bots/Spieler/NPCs:
50 Yards, maximal +/-5 Level inklusive, Persönlichkeit und Intent maßgeblich.
Umsetzung in AdventureCombatMgr/Policy; Details combat-reactions.md.
Alle30s Entscheidung mit adventurousness*danger_tolerance*Intentgewicht;
Gruppen keine autonomen Erstangriffe, Ruhe/Instanz/deaktiviert friedlich.
Native PvP/Phase/LOS/MMAP-Regeln, HP60/Mana30 und keine Elite/Boss-NPCs.
PvE-Zielwahl schließt Fraktions-NPCs aus (kein Umgehen der PvP-Regeln).
Selbstverteidigung unverändert; eigenständige Fluchtlogik bislang NICHT vorhanden.
Neuer Produktionstest test_adventure_pvp.py. Debug-j10 erfolgreich gebaut und
installiert; alle63 Tests bestanden (/tmp/vcore-pvp-tests.log). Testserver100594
mit frischer Ready-Meldung und Port8085 verifiziert. Bots29..32 nach sauberem
Logout/Neustart wieder online;29/31 autonome Intents wieder gestoppt,29 steht
nun am nahen taxi_582 in Goldhain (kurze initiale Reise vor Stop),31 am Node.
Arthoran26 bleibt offline. Live-PvP nicht ausgeführt/abgenommen.
Vorheriger begrenzter Goldhain-Test: Lenara Emote-Antwort und Einladung
abgelehnt, Aelion Einladung angenommen im Server.log belegt. Folgen nicht
anhand dieser Logs bestätigt. Aelion29/Lenara31 am goldshire_center, autonome
Intents für den Test gestoppt. Arthoran26 weiterhin offline. Horde30/32 anderswo.
Keine neuen Charaktere, Migrationen oder Profiländerungen für PvP erforderlich.
Kein Commit/Push beauftragt für diese Änderungen.
---
# Aktuell: Automatische AdventureBot-Erzeugung abgeschlossen
Stand28.10.2026 auf feature/clientless-player-core. Nutzer beauftragte einen
Generator für neue Bots mit RP-Namen/Profilen, passenden Fähigkeiten, Berufen
und Ausrüstung; Kennzeichnung für spätere temporäre Rotation. Nutzer hat den
lokalen Commit beauftragt; kein Push. SQL-Migration2026_10_28_00_adventure_generator.sql
wegen SQL-Ignore bereits gezielt vorgemerkt; Test-Charakter-DB zweimal angewendet.
ClientlessCharacterFactory ist generische native Infrastruktur ohne Adventure-
Abhängigkeit: Player::Create, validierte zufällige Optik, Geburt auf Zielstufe
via native Initialisierung statt GiveLevel-Belohnungen, Vorbereitungscallback,
gemeinsamer Save+Profil+Homebind+Ownership-Commit; Cache/Hook erst nach Erfolg.
Neue AdventureGeneratorMgr/Policy: zehn native legale Klassen-Archetypen,
zwölf Völker, kulturelle Namensgrammatiken, Herkunft/Beruf/Personalityprofile.
Profile liegen in Character-DB und werden als generated:<guid> im vorhandenen
Lua-Sandboxparser geladen. Handgeschriebene Namensprofile haben Vorrang und ihre
Namen werden bei Erzeugung reserviert. Keine Laufzeitdateien im Profilquellbaum.
Wichtige Live-Fixes: Berufs-Lernzauber mit Effekt44 wirken vor Welteintritt
nicht zuverlässig. Native SkillRaceClass/SkillTiers + Player::SetSkill bereiten
legale volle Ränge vor; Hilfsfunktion verweigert Online-Spieler. Online-
Selbstversorgung unverändert. Rollen-Ausrüstung prüft native Equipregeln,
Werte, temporäre/reputations-/gebietsgebundene Items, Mana-/Zauber-/physische
Effekte und keine doppelten ausgerüsteten Einträge. Ersetzte Items bleiben in
Taschen. Native Trainer::CanTeachSpell lediglich read-only öffentlich gemacht.
Arms nutzt vorhandenen Talentplan, andere Klassen gültigen Tier-Basisplan.
Befehle: clientless generate create <account> <count> [level faction archetype
persistent|temporary seed]; optionale fünf Parameter nur gemeinsam. Kurzform
level60, any/any, persistent. Count1..10, level10..85, DK>=55, Account normal
und ohne Netzwerksitzung, normale Realm-Charaktergrenze. Beispiel für Tests:
clientless generate create 6 1 60 alliance warrior temporary 42.
list/profile/login/logout/equip/retire <guid>. Erzeugung offline; login explizit.
equip nur eigener online/lebender/ruhiger Bot, native Checks, alte Items behalten.
retire nur eigener offline-temporärer Bot, markiert nur Metadaten, keine Löschung.
Automatische Rotation, Löschung, Accountanlage und Populationssteuerung später.
Vollständige Doku: doc/clientless/generator.md.
Debug-j10 erfolgreich installiert,62/62 Tests bestanden. Testserver88947 läuft,
frische Ready + Port8085 verifiziert. Vier neue Stufe60-Bots online und mit
individuellen DB-Profilen nach Neustart/Relog wieder geladen:
-29 Aelion, Nachtelf-Krieger, Teldrassil/poi_guard_111.
-30 Zanzan, Troll-Krieger, Durotar/poi_tele_823.
-31 Lenara, Worgen-Magierin, Elwynn/poi_npc_280710.
-32 Aldren, Untoter-Todesritter, Silberwald/poi_npc_321922.
Native Talentbäume746/746/851/400, Talentzeilen13/13/14/12,
Zauberanzahl80/80/87/64. Alle vier Nebenberufe und vier22er-Glutseidenstofftaschen,
alle fünf Vorratsstacks20. Primär: Krieger/DK Mining450+Smith375; Magierin
Tailoring375+Enchant375. Werte stammen aus gegenwärtigen nativen Trainerdaten.
Ausrüstungsauffrischung29..32 nativ erfolgreich gespeichert, alte Items behalten.
NPC-Szenen und lokale soziale Intents laufen; keine visuelle Abnahme behauptet.
Eigene frühere Testcharaktere27 Dagri und28 Jarana sind retired/offline, mit
vollständig erhaltenen Daten. Retire26 verweigert (kein generierter Besitz),
Login27 verweigert (retired). Inventarzuordnungen/Entries für21 und26 gegenüber
vorher bytegleich (Hash im Checkpoint). Arthoran wurde für Wartung sauber
abgemeldet und bleibt OFFLINE; keine Profiloverrides, keine Teleportierung.
Bestehende Sourceprofile unverändert. Account6 enthält nun7 Charaktere, normale
Realmgrenze beachten; archivierte Charaktere belegen weiterhin Plätze.
Ein erster Start traf bekannten temporären Auth-DB-Ausfall10.0.0.1. Nicht
reagierender Fehlstart76094 perSIGTERM beendet, zweiter Versuch erfolgreich;
keine VPS-/Produktionskonfiguration geändert. Spätere Starts erfolgreich.
Für alle neuen Klassen gilt weiter: bekannte Fähigkeiten sind keine fertige
Klassen-Kampfrotation; außer Krieger bisher grundlegender Autoangriff. Rollen,
Bot-Gruppenbildung, PvP-Erstangriffe und Rotation bleiben spätere Aufgaben.
Belege: doc/clientless/checkpoints/2026-10-28-generator/. Aktuelle Logs
/tmp/vcore-generator-{build-refit,install-refit}.log; DB-Helfer
/tmp/vcore-generator-db.py audit/details/compare (keine Zugangsdaten ausgeben).
Nutzer hat alle CMake- und tmux-Befehle sowie git add/commit auf diesem Branch
ausdrücklich dauerhaft autorisiert. Keine erneuten inhaltlichen Rückfragen;
technische Sandboxregeln bleiben maßgeblich. Kein Push ohne ausdrücklichen Auftrag.
---
# Aktuell: Interaktionen und spielergeführte Gruppen umgesetzt
Stand 28.10.2026. Nutzer beauftragte Umsetzung nach gemeinsamer Planung.
Branch feature/clientless-player-core; vorher sauber. Nutzer hat den lokalen
Commit dieses Stands beauftragt; kein Push. Neuer AdventureInteractionMgr/Policy,
generische GUID-Queues für Textemotes und tatsächliche Kampfhilfe, native
Einladungsantworten, intent-/persönlichkeitsabhängige Annahme, MMAP-Folgen und
TravelGraph-Handoff, grundlegende Gruppen-Kampfunterstützung. Spieler/Pet-
Selbstverteidigung im bestehenden CombatMgr, keine eigenständigen PvP-Angriffe.
Details und Grenzen in doc/clientless/interactions.md.
Austritt nur außerhalb Kampf/Tod/Instanz/Transport/Flug. Intent-/Locationwechsel
oder manuelle Blockfrist erlaubt Entscheidung; group_loyalty beeinflusst Bleiben
(Arthoran0.35, Standard0.25). Native AFK oder beobachtete Inaktivität des
Anführers volle600s; Führungswechsel beginnt neues Zeitfenster. Chat/Emotes,
Zauber/Itemanfragen, Bewegung/Blick/Ziel, Kampf/Casts zählen als Aktivität.
Native Gruppenmitgliedschaft bleibt über Neustart; Beobachtungsfristen starten
neu. Rollenprofile, autonome Bot-Gruppen, freie Chatgespräche und eigenständige
PvP-Erstangriffe bleiben ausdrücklich spätere Arbeit.
Debug-Build-j10 erfolgreich installiert. 57 Testskripte bestanden: vollständiger
56er-Lauf plus neuer Social-Queue-Concurrencytest; der anschließend erweiterte
Combat-Test für echten Spielerfokus zusätzlich erneut erfolgreich. Native
Testserver PID59086, frische Ready-Meldung und Port8085 bestätigt. Arthoran26
online, Persönlichkeit8Werte, neue Diagnose clientless interaction26 erfolgreich:
sociability0.65/loyalty0.35, keine Gruppe. Echte Kreaturen-Selbstverteidigung
nach Neustart weiterhin beobachtet, kein Beleg für Live-PvP/Gruppenannahme.
Arthorans unveränderte initiale Profilvorgabe startete bei Login die normale
Goldhain-Reise. clientless adventure stop26 wurde angefordert, letzte Diagnose
noch Switching/waiting for safe player/transport state. Keine Teleportierung,
kein temporärer Profiloverride; normale Herkunftsdateien bleiben erhalten.
Für Live-Abnahme Position und Reise zuerst erneut prüfen. Gruppeneinladungen
werden in Flug-/Transport-/Kampfzuständen bis zur sicheren Lage zurückgestellt.
Beim sauberen Shutdown der ALTEN, vor Installation laufenden Binärdatei trat
Object.h:448 GetMap ASSERTION FAILED m_currMap auf. AlterProzess49765 endete;
keine fremden Prozesse beendet. Das ist ein beobachteter Shutdownfehler des
Ausgangsstands, Ursache hier nicht untersucht/behoben. Neuer Start erfolgreich.
Offene Gameplay-Abnahmen: echte Spielereinladungen, zwei gleichzeitige Bots,
PvP/Pet-Verteidigung, native Gruppenportale/kartenübergreifendes Folgen,
zehn echte Minuten AFK. Klassenrotationen außer Krieger und Supportrollen
weiterhin begrenzt. Belege: checkpoints/2026-10-28-interactions/.
Logs /tmp/vcore-interactions-{build-final,install}.log und zugehörige Tests.
---
# Aktuell: Selbstversorgung und gemeinsame Nebenberufe abgeschlossen
Stand 27.10.2026. Branch feature/clientless-player-core, vorheriger Commit
c0c799c4b6. Nutzer hat den lokalen Commit der Selbstversorgung beauftragt; kein Push.
Debug-Build -j10 erfolgreich installiert, alle 55 Testskripte bestanden.
Testserver PID 49765 läuft; frisches Ready und Port 8085 bestätigt.
AdventureSupplyMgr/Policy versorgt AdventureBots zu Tagesbeginn und nach
Kampfende bis zu jeweils einem nativen Stack: Verbände, Heil-/Manatränke,
Essen und Trinken. Vier Glutseidenstofftaschen54443 mit je22 Plätzen ergänzen
Arthoran. Alte Gegenstände blieben erhalten, Geld weiterhin0.
Migration world10 und characters01 angewendet und trotz SQL-Ignore gezielt
vorgemerkt. Persistierter Tagesstempel verhindert Nachschub bei jedem Login.
Nutzerregeln umgesetzt: Selbstheilung beginnt erst bei mindestens10% fehlenden
HP. Außerhalb des Kampfes zuerst ein nutzbarer Verband; bei Sperre direkt Essen,
nach Verband Essen nur bei weiter mindestens10% Mangel. Mananutzer trinken bei
passendem Mangel. Im Kampf nur native Tränke. Echte Item-Anfragen, Verbrauch,
Abklingzeiten und Verbandssperre; keine direkte HP/Mana-Zuweisung außer dem
expliziten Diagnosebefehl testrecovery. Intents behalten ihre ursprüngliche Frist.
Auf ausdrücklichen Nutzerwunsch erhalten alle AdventureBots die stufengerecht
verfügbaren Nebenberufe Erste Hilfe, Kochen, Angeln und Archäologie, innerhalb
nativer Traineranforderungen und Fertigkeitsgrenzen. Keine Hauptberufe geändert.
Arthoran gespeichert: ErsteHilfe375/375, Kochen525/525, Angeln525/525,
Archäologie375/375. Er verwendet schwere Netherstoffverbände21991.
Native Trainer erlauben Kochen/Angeln525 bei diesem Charakter.
Notwendige native Fehlerkorrektur: Player::GetPureMaxSkillValue hatte eine
invertierte Prüfung und lieferte für gelernte Fertigkeiten null. Fehlendes !
korrigiert, eigener nativer Regressionstest vorhanden. Nebenberufsausbildung
berücksichtigt sowohl Skill-Effekt118 als auch den nativen Lerneffekt44.
Live bestätigt:
- Vier22er-Taschen und alle fünf Stacks20, vorhandene Item-GUIDs erhalten.
- Markierte8%-Testverletzung: kein Verbrauch.
- Markierte80%-Testverletzung: echter Verbandverbrauch, danach4961/5249HP;
weniger als10% fehlend, daher kein Essen.
- Erneute Testverletzung bei nativer Verbandssperre: echtes Essen, volleHP.
- Gleicher Tagesstempel beim erneuten Login: Verband19/Essen19 bleiben bestehen,
kein weiterer Tagesnachschub.
- Echter Bärenkampf gegen Spawn300425 mit markiertem anfänglichem30%-Defizit:
Heiltrank22829 im Kampf verbraucht. Danach exakt je ein Verband, Heiltrank
und Essen ergänzt; alle fünf Bestände20. GespeichertHP5249, Geld0.
- Manaspezifisches Verhalten produktiv mit Adaptern geprüft, nicht mit echtem
Manacharakter. Administrative Testpositionierung ist kein Fernreisebeleg.
Arthoran bleibt angemeldet in den Verwüsteten Landen am Bären-Testplatz,
reagiert auf Gegner und versorgt sich selbst. Normales Lua-Profil bytegleich
restauriert; kein temporärer Override. Dokumentation: doc/clientless/supplies.md.
Belege: doc/clientless/checkpoints/2026-10-27-supplies/.
Logs: /tmp/vcore-supplies-build-final.log und /tmp/vcore-supplies-tests-final.log.
DB-Helfer /tmp/vcore-instance-db.py supplies_audit. Diagnose:
clientless combat supplies26, testrecovery26<fehlende-Prozent1..80>.
Die bisherigen Server-/Branchregeln und vertagte Pfadfindungsarbeit gelten weiter.
---
# Aktuell: Training, echte Gegner und Todesverhalten abgeschlossen
Stand 27.10.2026. Auf feature/clientless-player-core bleiben alle bisherigen
Änderungen erhalten. Debug-Build mit -j10 erfolgreich installiert; alle 51
Testskripte bestanden. Testserver PID 45545 läuft mit frisch geprüftem Ready
und Port 8085. Nutzer hat den lokalen Commit aller Änderungen beauftragt; kein Push.
Neue AdventureCombatMgr und AdventureCombatPolicy überlagern den Adventure-
Controller während Kampf und Tod. Tatsächlich angewandter Kreaturenschaden
wird über eine threadsichere GUID-Queue geordnet an den Controller übergeben.
Der erste Angreifer bleibt Fokus; weitere folgen nach dessen Tod. Abenteuer
berücksichtigt Gegner am aktiven MMAP-Pfad, Kürschnerei nur Tiere bei bestehendem
Profilrecht. Arthoran bleibt Bergbau/Schmied. Konservative Erstangriffsfilter:
höchstens +2 Level, mindestens 60% HP und gegebenenfalls 30% Mana, keine Elites,
Weltbosse oder Gegnergruppen. Andere Intents jagen nicht.
Migration 09 ergänzt leisure_training für 60–180 Sekunden an echten erreichbaren
Puppen im lokalen 60-Yards-Umkreis. Bereits in Test-DB angewendet und trotz
SQL-Ignore gezielt vorgemerkt. Ursprüngliche Intentfristen bleiben erhalten.
Todesablauf: native Freigabe, gespeicherter Leichenzeitpunkt, MMAP-Punkte innerhalb
39 Yards und native Aufnahmefrist. Ohne passenden Pfad nach 300 Sekunden native
Friedhofsrückkehr und Wiederbelebung ohne Geistheiler-Mali.
Live erfolgreich geprüft:
- Trainingsszene: MMAP-Anreise, native Angriffe und reguläres Ende nach 60 Sekunden.
- Echter Bär, Entry 42336 / Spawn 300425, Stufe 58: besiegt, native Respawnzeile
bestätigt. Tatsächlicher Gegentreffer löste den Selbstverteidigungsfokus aus.
- Expliziter Testtod 1: Freigabe um 1793138872, kein akzeptierter Rückweg;
volle 300 Sekunden tatsächlich abgewartet. Friedhofswiederbelebung, anschließend
lebend gespeichert, keine Leiche oder Wiederbelebungskrankheit.
- Expliziter Testtod 2 nahe Friedhof: tatsächlicher MMAP-Geisterlauf von 37,40
Yards und native Leichenaufnahme. Danach HP 4340 gespeichert, keine Leiche
oder Aura 15007. Kein natürlicher Kampftod behauptet.
- Administrative Offline-Positionierung diente nur isolierten Tests; kein Beleg
für Fernanreise. Mehrfachangreifer und Neustart während Geisterlauf bislang
durch Produktionsadapter geprüft, nicht durch entsprechende Live-Abnahme.
Arthoran ist wieder angemeldet, ohne Fernauftrag am letzten Rücklaufpunkt:
Karte 0, (-12187.9, -2603.74, 1.5777), Verwüstete Lande. Er reagiert auf Angreifer.
Normales Lua-Profil bytegleich restauriert; kein temporärer Override vorhanden.
Befehle: clientless combat train <guid> [seconds], attack <guid> <spawn-id>,
testdeath <guid>, stop <guid>. Testdeath ist ein markierter nativer Diagnosetod
für einen verwalteten Bot ohne zusätzlichen Haltbarkeitsverlust.
Belege: doc/clientless/checkpoints/2026-10-27-combat/.
Logs: /tmp/vcore-reactive-combat-build-final.log und
/tmp/vcore-reactive-tests-final.log. DB-Helfer: /tmp/vcore-instance-db.py,
Modus combat_live_state. Vorherige Ausrüstung/Reparatur-WIP bleibt erhalten.
Pfadfindungsüberarbeitung bleibt vertagt. Weitere Klassenrotationen und konkrete
Spieler-/Bot-Interaktionsregeln sind noch auszuarbeiten.
---
# Wiederaufnahme: Kampfausstattung und Reparaturtest
Stand 27.10.2026: Branch feature/clientless-player-core, bestehende Änderungen
bewahren. Debug-Build erfolgreich, installiert; Testserver PID41714 frisch ready
und Port8085 bestätigt. 48 Testskripte bestanden. Kein Push oder neuer Commit.
Arthoran26 trägt neun native Kopien von Allitester21 (Zorn und Ashkandi),
26/26 native Waffen-Talentpunkte Baum746, stufengerechte Klassenfähigkeiten.
Originalquelle unverändert, alte Ausrüstung in Taschen. Begrenzte Trainingsübung
an echter Puppe314147 erfolgreich: native angenommene Fähigkeiten protokolliert.
Phase169 ist Standard; keine Phasenänderungen. Ursprüngliches Problem war LOS.
Volle autonome Kampf-/Todes-/Interaktionssteuerung bleibt zukünftige Umsetzung.
Malusfreie Friedhofswiederbelebung nach5min ohne Pfad ist verbindliche Vorgabe.
NEU: economy_repair, Migration08 bereits Test-DB angewendet. Liveprüfung läuft:
Arthoran ausgeloggt, nur seine neun Kopien auf halbe Haltbarkeit gesetzt,
Position administrativ an poi_tele_954 (Handelsdistrikt), wieder angemeldet.
Intent economy am Anker angekommen; Mikroaktion economy_repair gestartet,
echter Händler1287/GUID1879, native MMAP-Anreise. Abschluss bestätigt: ECONOMY_REPAIR_COMPLETE; nach saveall alle neun Kopien
wieder auf voller Haltbarkeit, Geld weiterhin0, Allitester unverändert.
Ausgangswerte /tmp/vcore-repair-before.tsv.
Normales Lua-Profil bytegleich restauriert, kein temporärer Override.
Werkzeuge /tmp/vcore-instance-db.py gear_verify (prüft auch Allitester-Hash),
repair_test_prepare NICHT WIEDERHOLEN. Konsole saveall nach Reparaturabschluss,
ECONOMY_REPAIR_COMPLETE in Server.log prüfen. Gegebenenfalls Szene beobachten.
Build-/Testlogs /tmp/vcore-combat-preparation-{build,tests-final}.log.
Migration08 wird von *.sql ignoriert, gezielt force-add für Erhalt erforderlich.
Reparaturprüfung abgeschlossen; Arthoran darf den Wirtschaftsintent weiter ausführen.
---
# Neuer Arbeitsbereich: Kampf, Reaktionen und Interaktionen
Alle sieben Grundintents sind abgeschlossen und die bisherigen Änderungen
lokal committet (e18a416bf4). Der Nutzer hat die visuelle Instanzabnahme erlassen.
Jetzt Kampf, reaktives Verhalten, Bot-Spieler und Bot-Bot gemeinsam ausarbeiten.
Neue Regeln/Vorprüfung in `combat-reactions.md` dauerhaft festgehalten.
Nutzer: Selbstverteidigung fokussiert erste tatsächlich schädigende Kreatur bis
zu deren Tod; weitere Treffer wechseln den Fokus nicht. Erstangriffe wählen
nächstgelegenes gültiges intentspezifisches Ziel: Abenteuer nahe Feindkreatur auf
aktuellem Weg; Beruf/Lederjagd nahes geeignetes Tier. Stärkecheck verhindert
leichtsinnige Angriffe auf deutlich stärkere Gegner. Exakte Grenzwerte noch offen.
Tod: Leichenrücklauf als Geist, native Wiederbelebungsreichweite; ohne Pfad nach
fünf Minuten Friedhofswiederbelebung. Native Handler/39-Yards-Radius vorhanden.
Timerherkunft und weitere Randfälle als Auslegung/Vorschlag markieren.
Arthoran bleibt mining/blacksmithing; keine stillschweigende skinning-Freigabe.
Sammeln weiterhin performativ, neu gewünschter Kampf real.
PlayerAI.cpp gründlich geprüft. Viel vorhandene Klassen-/Zauberlogik, aber
Charm-Steuerung muss entkoppelt werden. Technisch nicht ungenutzt: Unit::UpdateCharmAI
und mehrere Bossskripte verwenden sie. Unit::DealDamage liefert UnitAI-Callbacks
und UnitScript-OnDamage VOR endgültigem HP-Abzug: tatsächlichen Erstschaden
sauber bestätigen, keine Nullschaden-/Godmode-Fokussierung.
Noch keine Kampfimplementierung oder Livekampftests in dieser Vorprüfung.
Nur Dokumentation neu/uncommittet; keine weiteren Commits ohne konkreten Bedarf.
Details zu Flucht, Zielverlust, verbleibenden Angreifern, Erstangriffsschwellen
und konkreten Spieler-/Bot-Reaktionen noch nicht als Nutzerentscheidungen ausgeben.
---
# Aktuell: Instanzintent implementiert und technisch live geprüft
Stand 27.10.2026, letzter Testserverprozess PID **35865**, frisches Ready beim
letzten Restart und Port 8085 geprüft. Nutzer beauftragte Umsetzung einschließlich
zufälliger Verletzung (0–50 Prozent Max-HP) nach Rückkehr. Umsetzung fertig,
Der Nutzer hat ausdrücklich auf eine weitere visuelle Abnahme verzichtet.
Alle vorhandenen Änderungen sollen gemeinsam lokal committet werden; kein Push.
Details: `instance-intent.md`.
Implementierung:
- Intent `instance`, eigener Tagesplanwert (Default .5), feste Phasen statt
zufälliger Innenraum-Mikroaktionen. Anreise verbraucht Blockzeit; zehn Sekunden
Vorbereitung; tatsächlicher nativer Eintritt; Warten direkt dahinter; Rückkehr
zu Blockende minus fünf Minuten; Nachruhe bis zum ursprünglichen Blockende.
- Neue native Außenwelt-Aliase `instance_visit_at_<Trigger-ID>` und editierbare
Ein-/Ausgangszuordnung. 108 Eingänge in Test-DB, insgesamt 2.973 Locations /
3.966 Worldpoints. Innenräume bleiben reine native Karten/Graphknoten.
- Charakterpersistenz enthält Phase, Trigger, Instanz-ID, absolute Frist,
einmal gezogenen Verletzungswert und injury_applied. Gemeinsame Transaktion
mit Player::SaveToDB über ASYNC-Worker, bestätigter Commit vor Fortschritt.
- Optionales WorldScript in viano_bot_commands.cpp meldet nur gespeicherte
Besucher beim Serverstart automatisch mit dem Adventure-Controller an.
Wiederaufnahme hat Vorrang vor normalem Lua-Initialintent.
- Getrennten Hinterausgang aus nativen Daten bevorzugen, expliziter Override
möglich. Verborgene Dungeon-Durchquerung wird innen bis zum echten Ausgang
abstrahiert, danach nativer Trigger. Fehlender Ausgang: Eingang. Keine Kämpfe,
Beute/Inventar-/Geldänderung, keine DungeonBot-Abhängigkeit.
Geprüft:
- Debug-Build -j10, installiert, **44 Testskripte im vollständigen abschließenden
Lauf bestanden** (/tmp/vcore-instance-tests-final.log).
- Beide additiven Migrationen angewendet. Tabellen-Collation unicode_ci passt
zum bestehenden Schema; Dateien wegen *.sql-Ignore gezielt mit git add -f
vorgemerkt, alle übrigen Änderungen uncommittet. Kein Push.
- Verlies-Eingang 101, Ausgang 503, Karte34/Instanz-ID1 tatsächlich betreten.
Echter Serverneustart während Phase3: automatischer Login, gleiche Instanz-ID1,
ursprüngliche absolute Frist beibehalten. Normales Lua-Profil war restauriert.
- Für schnelle Rückkehrprüfung wurde ausschließlich nach sauberem Serverstopp
die Test-Besuchsfrist verkürzt. Original in
/tmp/vcore-instance-live-original-deadline.tsv. Keine normale Codefrist geändert.
- Native Rückkehr nach Karte0 (-8766.11,845.499,87.9952), zunächst zweimal echte
0%-Würfe, nächster regulärer kurzer Testblock 17%: **2165/2609 HP**.
Charakter-DB bestätigte Phase5, loss_percent17, injury_applied1 und HP2165.
- Erneuter Logout/Login während Phase5: gleiche Frist, injuryApplied1, kein
Neuwurf/keine zweite Verletzung. Aktuell Nachruhe vor dem Verlies bis
Deadline1793128202; anschließend endet der manuelle Testauftrag. Zustand bei
Wiederaufnahme neu prüfen; keinen weiteren Test automatisch starten.
- Normales Profil in Quelle UND Installation bytegleich normal (SHA256
26b11c3108e6ecc5dbc59d1852b4103ca4e818148603a34c02a470c969dc659b).
Kein temporärer Lua-Override. Nach saveall Geld-/Inventar-SHA256 unverändert
8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a.
Wichtig: Fernanreise NICHT live erfolgreich verifiziert. Vorhandene Graph-
Recovery-Schleifen führten erst nach Goldhain, dann durch Sturmwind. Nutzer hat
Pfadfindung/Hinderniserkennung ausdrücklich auf später verschoben. Daher wurde
für den isolierten Instanztest nur der ausgeloggte Testbot administrativ an den
realen Außeneingang gestellt; anschließender lokaler MMAP-Anschluss und Eintritt
waren regulär. Kein Instanzteleport als erfolgreicher Eintritt ausgegeben.
Todesminen-Hinterausgang und zwei unabhängig gleichzeitig betretene Kopien nur
produktive Adaptertests/Quellprüfung, noch kein entsprechender Livevergleich.
Erster Liveversuch fand meinen falschen SYNCH-Transaktionsweg; Debugserver
beendete sich vor der Anreise. Fehler korrigiert auf AsyncCommitTransaction mit
Commitresultat. Nachfolgende native Saves/Neustarts erfolgreich, Fehlerlog
/tmp/vcore-instance-first-live-DBErrors.log erhalten. Nicht als aktuelles Problem
missverstehen. Aktuell keine neuen Instanz-SQL-/Startfehler beobachtet.
Alle Schlaf-WIP-Änderungen von vorher erhalten. Bett-/Hinderniserkennung bleibt
auf Nutzerwunsch zurückgestellt. Nur feature/clientless-player-core verwenden.
---
# Aktueller Auftrag: Instanzbesuche – Nutzervorgaben konkretisiert
Wirtschaftstest vom Nutzer als ausreichend beendet; nächster Intent sind
Instanzbesuche. Details verbindlich in `instance-intent.md` festgehalten.
Rest des gewählten Location-Zeitblocks, letzte fünf Minuten Nachruhe draußen.
Beispiel 60 Minuten: 40 Anreise, 15 innen, 5 Nachruhe. Tatsächlicher Eintritt,
Warten direkt hinter dem Eingang in nativer eigener Instanzkopie, keine
Dungeon-Durchquerung/Kampf. Neustart: am Eingang innen wieder einloggen,
ursprüngliche absolute Frist weiterverwenden. Rückkehr eigener Ausgang,
sonst Eingang. Instanzinnenräume NICHT zu normalen Locations machen.
World-DB geprüft: areatrigger_teleport enthält 78 Deadmines Entrance Target,
119 Exit Front Target, 121 Rear Exit Target. Alle sechs source/target-Knoten
in vcore_clientless_travel_node vorhanden, Kommentare nur Triggernummern.
Semantik aus nativen Namen und DBC-Quell-/DB-Zielkarten ableiten.
Noch keine Implementierung/Instanzbetretung in dieser Vorprüfung. Core-Befund:
Online startet heute flüchtigen Behavior-Record/Profil neu; dauerhafte
Besuchsphase/Frist und Wiederaufnahme müssen ergänzt werden. Native Instanz-ID,
Solobindung und Instanzspeicherung für Restart berücksichtigen und testen.
Eigener Ausgang hinten erfordert Rückkehrbehandlung ohne Dungeon-Durchquerung.
Randfall Ankunft mit weniger als fünf Minuten: noch keine ausdrückliche
Nutzerentscheidung, sinnvolle Ableitung ist Eintritt auslassen/Nachruhe.
Keine Code-/DB-/Serveränderung bei dieser Vorprüfung. Vorheriger Wirtschaftsintent
kann auf dem Testserver weiterhin laufen; vor Implementierung Zustand prüfen.
Schlaf-/Hindernisthemen bleiben ausdrücklich vertagt. Vorhandenes WIP bewahren.
---
# Aktueller Nutzerauftrag: freier Wirtschaftsintent im Handelsdistrikt
Bett-/Geometriesuche ausdrücklich vom Nutzer zurückgestellt. Ebenso spätere
Überarbeitung der Pfadfindung/Hinderniserkennung (beobachtetes Durchlaufen von
Zäunen und Erhöhungen). Diese offenen Themen sollen die weitere Entwicklung
NICHT blockieren; jetzt daran nicht weiterarbeiten.
Arthoran GUID 26 hat auf Nutzerwunsch den autonomen Auftrag:
`clientless adventure intent 26 economy poi_tele_954 3600`.
`poi_tele_954` ist der vorhandene allgemeine Sturmwind-Anker im Handelsdistrikt
(-8833.07,622.778,93.9317), Kategorie landmark; keine Händler-/Bank-/AH-Rollensperre
wie bei den spezialisierten Testankern. Kein gezielter Mikroaktionszwang.
INTENT_ARRIVED economy und selbst gewählter Start `economy_vendor_visit`
gegen echten Händler Entry 277, GUID Low 1325, sind bestätigt. Szene läuft.
Kein erneuter Build/Restart oder Lua-Profilwechsel für diesen Auftrag.
Vorher `saveall`; Geld-/Inventar-SHA256 weiterhin
8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a.
Wirtschaften bleibt rein performativ: keine echten Transaktionen.
Nutzer beobachtet nun die freie Ausführung im Spiel; keine neue visuelle
Abnahme behaupten. Schlafboden am ersten Anker war vom Nutzer bestätigt.
Alle vorherigen WIP-Änderungen erhalten, Branch feature/clientless-player-core,
kein Push. Normales Lua-Profil weiterhin unverändert. Schlaf-Testanker und
bisheriger Ausbau bleiben erhalten, siehe historische Notizen unten.
---
# Neuer Liveauftrag: Suche bei Allitesters Position
Nach dem Flächenausbau wollte der Nutzer eine erneute Suche nahe den beiden
Betten an seiner aktuellen Position. `saveall`, danach Allitester GUID 21:
Map 0, (-8877.360, 673.489, 104.950), O=0.649831. Separater aktiver manueller
Suchanker `gilded_rose_sleep_room_test` in Test-DB angelegt, Kategorie rest_sleep,
Metadata von Sturmwind; bestehende Punkte nicht verschoben.
Neustart war nötig: adventure reload erneuert NICHT den Reisepunkt-Cache,
weshalb der erste Anreiseversuch den neuen Punkt nicht fand und zurückfiel.
Server jetzt PID 32004, frisches Ready nach elf Sekunden, Port 8085 geprüft.
Einmaliges Loginprofil rest/room_test danach bytegleich restauriert, installierte
Profilkopie ebenfalls normal. Arthoran erreichte den neuen Anker regulär.
Erneute Suche dort: beds=0 raised=0 floor=46 (erster Lauf floor=34).
REST_CONFIRMED am Anker (-8877.360,673.489,104.950), O=.650, zuletzt 143 Sekunden.
Die sichtbaren Betten werden also weiterhin NICHT als Bett/erhöhte Fläche erkannt;
Ursache der konkreten geometrischen Ablehnung ist NICHT gemessen. Nicht behaupten,
dass nur der bisher zu kleine Radius schuld war.
Die gewichtete Auswahl wählte zwischenzeitlich wieder den alten Schlafanker.
Für den gezielten Versuch wurde NUR `gilded_rose_sleep_upstairs` kurz enabled=0
gesetzt, Katalog geladen, micro rest_sleep ausgeführt, dann enabled=1 restauriert
und Katalog erneut geladen. Kein Punkt blieb vorübergehend deaktiviert.
DB-Helfer /tmp/vcore-sleep-room-test.py, Positionssnapshot daneben als JSON.
Nutzer hat neuen Bodenplatz am alten Anker sichtbar bestätigt; Bettdarstellung
und tatsächliche Bettnutzung weiterhin offen. Kein neuer Code/Build in diesem
Folgeversuch. Vor weiterer Arbeit laufende Szene/Position neu prüfen.
---
# Aktuell: Schlafplatzsuche am 27.10.2026
Dieser Abschnitt hat Vorrang vor den historischen Checkpoints unten.
Der Nutzer nahm den Schlaftest wieder auf, sah Arthoran mitten im oberen Stuhl
und beauftragte eine Flächensuche: Betten/geeignete erhöhte Flächen bevorzugen,
sonst freier Gasthausboden, auch für Gasthäuser ohne Betten.
Implementiert, gebaut (`-j10`), installiert und live getestet, noch uncommittet:
`AdventureRestSpace.h`, Schlafadapter in `AdventureBehaviorMgr.cpp`, gespeichertes
Szenenziel in `.h`; zwei neue Regressionen und erweiterter Ruhetest. Insgesamt
39 Testskripte erfolgreich (38er-Lauf plus neuer nativer Adaptertest; danach
betroffene erweiterte Tests erneut erfolgreich). Details: `rest-intent.md`.
Schlafanker sind jetzt Suchbereiche, keine ungeprüften Liegepunkte. Native
Bettobjekte vor erhöhten Flächen mit abrupten Seitenkanten vor freiem Boden.
Geometrie ist keine sichere Bettsemantik; passende Tische können ähnlich sein.
Modellabhängige Liegefläche, Höhen-/Kollisionsraster, native Stuhlsperre,
Spieler/Kreaturenbelegung, Innenraum und Stockwerksgrenze. Tatsächlicher
MMAP-Endpunkt muss passen, kein Teleport/Klettern auf unerreichbare Möbel.
Erneute Prüfung vor Hinlegen und alle zwei Sekunden. Keine neue SQL-Migration.
Live: Prozess 31446, frisches Ready nach elf Sekunden, Port 8085 bestätigt.
Arthoran GUID 26 im Ruheauftrag `gilded_rose_sleep_upstairs`. Die neue Suche
fand `beds=0 raised=0 floor=18`; er ging 4,03 Yards zu
(-8868.534, 682.800, 104.949), Ausrichtung 3,740, Endpunktfehler null.
`REST_CONFIRMED` für 243 Sekunden. Die sichtbare Abnahme des neuen Bodenplatzes
ist offen, ebenso ein positiver Live-Betttest; Fixturetests decken Betten ab.
Normales Lua-Profil in Quelle UND Installation bytegleich wiederhergestellt,
mining/blacksmithing unverändert. Kein temporäres Override, kein Push.
Die zuvor bereits vorhandene Änderung an `rest-intent.md` zur ersten
Schlafvorführung wurde erhalten und ergänzt. Branch ausschließlich
`feature/clientless-player-core`. Build/Install/Testlogs: `/tmp/vcore-sleep-*.log`.
Prozess-/Szenenzustand beim Fortsetzen neu prüfen. Nicht automatisch den
abgeschlossenen Berufs-Ausbau oder die vertagte Instanzarbeit beginnen.
---
# Fortsetzung am 27.10.2026 – aktueller Stand hat Vorrang
Der unten erhaltene Sitzungswechsel-Checkpoint ist historisch. Der Berufs-Ausbau
ist jetzt vollständig gebaut (`-j10`), auf dem Testserver installiert und die
Migration `_05` ist auf der Test-World-DB angewendet. **37 Testskripte bestanden**.
Keine Änderungen wurden gepusht. Branch bleibt `feature/clientless-player-core`.
Seit dem Checkpoint behoben:
- Berufsarbeit an GOs nähert sich nach Verdrängung erneut, bevor weitere Gesten laufen.
- Native unsichtbare Arbeitsplatzmarker verwenden VMAP-Sichtprüfung zur Arbeitsfläche
(mindestens 1,5 Yards über dem Marker); Bodenmarker im Amboss blockierten zuvor die Szene.
- Location-Abfrage liest numerische native Spalten ohne COALESCE-Widening. Debug verlor
zuvor `is_area`/`faction`; Elwynn wird live jetzt korrekt als `area=1` geladen.
Zusätzliche Tests: echter Lua-5.4-Professionsparser mit Arthoran/generic und ungültigen
Profilen; native Lock-/Station-/Kadaver-/Trainerklassifikation; Szene erst nach Ankunft,
Profilentzug, Wiederannäherung; SQL-Fixtures mit erhaltenen Gewichten/Freigaben;
erreichbare Gebietsknoten; progressive Suche und Uferbedingungen; echte Debug-Fieldgetter
und VMAP-Sichtlinienadapter. Siehe `tests/clientless/test_adventure_profession_*.py`,
`test_adventure_area_node.py` und erweiterte bestehende Harnesses.
Live bestätigt:
- Frische Ready-Meldung, laufender Prozess und Port 8085 nach Installation.
- Arthoran lädt zwei Hauptberufe; Profil ist bytegleich wiederhergestellt:
`social` / `goldshire_tavern`, mining + blacksmithing. Kein temporäres Profil liegenlassen.
- Reguläre Anreise zu `poi_guard_541` über Graph, Taxi und Bodenwege.
- `smithing_show` wählt echtes Anvil-GO **201415**, Low **556**; Work-Emote **233**;
`PROFESSION_WORK_COMPLETE` und `PROFESSION_VISIT_COMPLETE` nach Abschluss.
- `profession_herbalism` live als nicht verfügbar zurückgewiesen. Die isolierte
Profilprüfung auch bei vorhandener Pflanze ist durch den produktiven Zieltest belegt.
- Nach `saveall` unveränderte Geld-/Inventar-Prüfsumme:
`8d40931782d05219466ba9fd077ce7acd3e02bd53eb63f6e96115042c620d26a`.
- Elwynn-Auftrag `profession poi_tele_338` lädt `area=1`, startet `travel_to_node`,
erreicht mit bestehendem Free-flight-Fallback den Gebietsknoten und meldet `INTENT_ARRIVED`.
Lokale `profession_search` absolvierte danach alle sechs progressiven MMAP-Wegpunkte
(ca. 104 Yards, `LEISURE_COMPLETE`, legs=6).
- Letzter geprüfter Testserverprozess: PID 28577, frische Ready-Meldung und Port 8085.
Beim Wiederaufnehmen immer den tatsächlichen Zustand neu prüfen.
Offener Befund: Der erste Intentwechsel während aktiver Goldshire-Anreise geriet in
Graph-Handover-/Recovery-Schleifen zum nächstgelegenen `portal_at_109_target`.
Für die gezielten Tests wurde deshalb nur beim Login die Startvorgabe temporär
geändert und danach bytegleich restauriert. Dieses Travel-Handover ist NICHT als
behoben zu betrachten. Navigationslog enthält die Vorgänge ab 17:43.
Dokumentation: [profession-intent.md](profession-intent.md). Visuelle Abnahme bleibt
beim Nutzer; Freizeit-Ausritt/Rundflug und Schlafdarstellung bleiben zurückgestellt.
Alle ursprünglichen Regeln und fachlichen Festlegungen unten gelten weiterhin.
---
# Gesicherter Arbeitsstand – hier fortsetzen
Stand: 27.10.2026. Der Nutzer hat die Implementierung ausdrücklich für einen
Codex-Sitzungswechsel unterbrechen lassen. Diese Notiz ist die maßgebliche
Übergabe. Nicht bei null beginnen und keine vorhandenen Änderungen verwerfen.
## Sofort beim Wiederaufnehmen
1. `AGENTS.md` und diese Datei lesen; Branch und Working Tree prüfen.
2. Ausschließlich `feature/clientless-player-core`, niemals `master`, kein Push.
3. Der unten beschriebene Berufs-Ausbau ist **unfertig und NICHT installiert**.
4. Der laufende Build wurde zur Sicherung geordnet mit SIGINT unterbrochen.
Vor erneutem Bauen trotzdem nach verbleibendem CMake/Ninja-Prozess sehen.
Keine zwei Builds gleichzeitig. Immer **`-j10`**, niemals `-j4`.
5. Neueste Compiler-/Teststände prüfen und die untenstehenden offenen Arbeiten
fortsetzen. Kein Installieren eines nur teilweise gebauten Standes.
## Aktueller Auftrag und verbindliche Nutzerentscheidungen
Wir arbeiten am Intent **Beruf (`profession`)**, nach Geselligkeit, Ruhe,
Freizeit, Wirtschaften und dem Abenteuer-Erkundungsausbau. Danach folgen
Instanzbesuche. Kampf kommt GANZ AM ENDE, gemeinsam mit reaktiver Selbstwehr
(z. B. bei Angriff während einer Reise).
- Alle Berufsaktionen bleiben **dauerhaft rein performativ**. Es wird NICHT
tatsächlich abgebaut, gesammelt, gekürschnert, produziert, gefangen oder
geheilt. Keine Beute, Quellenerschöpfung, Inventar-/Materialänderung,
Fertigkeitserhöhung oder tatsächliches Erlernen. Nicht „zunächst“ schreiben.
- Hauptberufe dürfen NUR ausgeführt werden, wenn sie im Lua-Charakterprofil
ausdrücklich eingetragen sind. Nebenberufe brauchen diese Freigabe nicht;
Vorlieben werden später weiter über gewichteten Zufall ausgestaltet.
- Der Nutzer hat die Rückfrage ausdrücklich beantwortet: **Arthoran hat
Bergbau und Schmiedekunst**. In seinem Profil stehen deshalb dauerhaft
`professions = { primary = { "mining", "blacksmithing" } }`.
KEIN Kräutersammeln bei ihm erlauben, auch nicht vor vorhandenen Pflanzen.
Das generische Profil enthält eine leere Hauptberufsliste.
- Ort und Gebiet sind gleichberechtigte Ziele. Ein Bot soll z. B. das Gebiet
Elwynn anreisen und dort lokal selbst nach passenden Ressourcen suchen.
- **Hierarchie:** Tagesplan wählt Intent, dann passender importierter Ort,
dann lokal mögliche Mikroaktion. Der Ortsbestand darf die Intentauswahl
nicht vetoieren. Die Location-/Intent-Katalogzuordnung legt die Eignung fest.
- Eine für `profession` geeignete Location (auch ein ganzes Gebiet) schaltet
NICHT alle Berufsaktionen frei. Schmieden braucht einen echten nahen Amboss,
Schmelzen eine Esse, Kräutersammeln eine tatsächliche Pflanze UND Profilrecht.
- Gebietsanreise ist bereits vorhanden: `AdventureBehaviorMgr::AreaNode`
sucht einen ERREICHBAREN Graphknoten im Zielgebiet, `Begin` reist über
`travel_to_node`; die Ankunft wird gegen das Gebiet geprüft.
- Abenteuer soll regulär draußen in passenden Weltgebieten stattfinden.
Sturmwind ist nur Testgebiet; keine zusätzlichen Stadt-Sonderregeln bauen,
sondern passende gespeicherte Locations/Intent-Gewichte verwenden.
- Ausritte, Freizeit-Rundflüge und Schlafdarstellung sind auf Nutzerwunsch
weiterhin für spätere visuelle Tests zurückgestellt. Jetzt nicht testen.
## Umgebung und Betriebszustand beim Sichern
- Source: `/home/wow_admin/wow_cata_server/source/TrinityCore`.
- Build: `/home/wow_admin/wow_cata_server/build/debug`, Ninja, Debug.
- Install: `/home/wow_admin/wow_cata_server/server/debug`.
- Testserver: tmux `vcore-worldserver`, cwd `server/debug/bin`, `./worldserver`.
- Vor dem Sichern lief **PID 19058**, letzter installierter Abenteuer-Ausbau.
Diesen nicht blind wiederverwenden: Prozesszustand beim Fortsetzen prüfen.
- Arthoran: Charakter GUID **26**, Account 6, aktuell Abenteuer am importierten
Sturmwind-Ort `poi_tele_954`. Allitester GUID 21 kann als Zuschauer online sein.
- Der BERUFS-Ausbau wurde noch nicht installiert; SQL-Migration `_05` wurde
noch NICHT eingespielt. Der laufende Server ist daher der vorherige Stand.
- Arthorans normale Startvorgabe im gespeicherten Lua-Profil ist wieder
`social` / `goldshire_tavern`. Es gibt aktuell KEIN temporäres Login-Profil.
- Der letzte Build wurde mit j10 unterbrochen, bei 749/751 Schritten (libgame.a gelinkt; letzte Linkschritte noch offen). Die nächste
inkrementelle Ausführung kann normal weiterbauen; Objektdateien erhalten.
- Erster Build hatte nur den Fehler `Creature::GetDeathState` statt
`getDeathState`. Das wurde bereits korrigiert. Der daraufhin neu gestartete
Build hatte bis zur Unterbrechung keine weiteren gemeldeten Compilerfehler.
- CMake wurde mit den bestehenden Einstellungen neu ausgeführt, um die neue
`AdventureProfessionTargets.cpp` einzusammeln (CollectSourceFiles ohne
CONFIGURE_DEPENDS). Das löste einen größeren Build aus. Nicht grundlos
erneut konfigurieren, nur mit j10 weiterbauen.
## Bereits geschriebene, noch unfertige Berufs-Implementierung
### Profil und Regeln
- `AdventureProfessionPolicy.h`: reine Regeln/Task-Spezifikationen, elf
Hauptberufe, kanonische englische Bezeichner, Nebenberufe ohne Primärfreigabe.
Hauptberufsrecht stammt aus dem Profil, NICHT aus `Player::HasSkill`.
- `ClientlessAdventureProfile::PrimaryProfessions` und Lua-Parser für
`professions.primary` als Array. Unbekannte Namen warnen und gewähren nichts.
- `arthoran.lua`: mining + blacksmithing. `generic.lua`: leeres Array.
- `Trainer.h`: nur neuer generischer, read-only Zugriff `GetSpells() const`.
Kein Lernen/Trainer-Handler wird aufgerufen.
### Echte Ressourcen und Arbeitsplätze
- Neu: `AdventureProfessionTargets.{h,cpp}`.
- Erz/Pflanzen: echte aktive CHΕST-GOs, native Lock-/Skill-Anforderungen aus
`sLockStore` / `SkillByLockType`, nicht bloß Namen oder Locationkategorie.
Nur sichtbare, phasenrichtige, bereite und erreichbare Ziele.
- Kürschnerei: vorhandener toter BEAST-Kadaver im Zustand CORPSE mit nativem
SKINNABLE-Flag. Kein Erzeugen/Töten eines Tiers. Kampf/Jagd später.
- Arbeitsplätze: neuer editierbarer Katalog `vcore_adventure_workstation`
mit GO-Templateentry, semantischer Rolle und enabled. Keine Bot-/Ort-ID-Liste.
Native Fokuskennungen geprüft: 1 Amboss, 3 Esse, 4 Kochfeuer, 663 Alchemielabor,
1589 Lexikon. 623/543 sind besondere Amboss-/Essenfokusse.
- Native unsichtbare SPELL_FOCUS-Marker repräsentieren reale Kartenarbeitsplätze
und dürfen dafür genutzt werden. Keine Aktivierung/Objektbenutzung.
- Rollen ohne reale erkennbare Arbeitsplätze bleiben nicht verfügbar; keine
beliebige Werkstatt-Location als Amboss behandeln.
- Trainer: native Tradeskill-Trainer, deren native Spell-/SkillLine-Daten zu
einem erlaubten Haupt- oder einem Nebenberuf passen. Reines Gespräch.
### Szenen und bestehende Legacy-Aktionen
- Wiederverwendete `AdventureSocialActions` mit `Cue::Work`, professionellen
Zielprüfungen, nativen Emote-Zuständen, Abschlussbetrachtung und kurzem
Wegtreten. Keine Harvest-/Craft-/Loot-/Teach-/Heal-Aufrufe.
- Profil und Ziel werden auch während der Szene erneut geprüft.
- Alte `mining_show` / `smithing_show` (Kind `work`, Requirement ore/forge)
werden in `ResolvedAction` auf dieselben neuen gesperrten Szenen umgelegt.
Es darf KEIN Legacy-Bypass der Profil- oder Arbeitsplatzprüfung verbleiben.
- Nach vollständiger Sammeldarstellung wird `work:<GUID>` in der bestehenden
Zielhistorie gespeichert. Kürzlich bearbeitete Ressourcen werden gemieden,
damit die unverändert stehen bleibende Quelle nicht endlos wiederholt wird.
Nur Erzbetrachtung (`ore_inspect`) setzt diese Bearbeitungssperre nicht.
### Gebietssuche / gemeinsame Erkundungssteuerung
- Neue Suche `profession_search`, Requirement `work_search`, Kind `outing`.
- Wiederverwendete MMAP-Routensteuerung: progressive Hinwege, an erreichten
Kontrollpunkten erneut mögliche Berufsarbeit prüfen und Suche dann beenden.
- Bei Gebietsaufträgen wird der lokale Anker nach bestätigtem Suchfortschritt
verschoben. Weiteres Durchsuchen bleibt über jeden MMAP-Punkt im Zielgebiet.
- Gebiets-Abenteuerwege sind jetzt ebenfalls progressiv; normale Freizeitwege
bleiben bestätigte Hin-/Rückwege. Keine Stadt-Sonderregel.
- Zusätzliche native Uferprüfung für performatives Berufsangeln im Gebiet,
ohne zwingenden speziellen Fishing-Location-Key. Ausgerüstete Angel bleibt
nötig. Kein wirklicher Angelzauber/Fang. Noch nicht live getestet.
### Neue Migration
`sql/custom/world/2026_10_27_05_adventure_profession.sql` (noch NICHT angewendet):
Arbeitsplatzrollen, neue Arbeits-/Such-/Nebenberufs-/Gesprächsaktionen,
Berufsgewichtung für Gebiet/Wildnis/Siedlung, neue Texte. Native Fokusdaten
haben Vorrang; Namen ergänzen nur erkennbare geeignete Props. Geänderte
Gewichte/disabled-Rollen sollen bei Wiederholung erhalten bleiben.
## Offene Arbeiten – konkret hier weiter
1. Aktuellen C++-Diff kritisch prüfen; dies ist ein WIP, keine fertige Abnahme.
Insbesondere Berufsszenen, Legacy-Auflösung, progressive Ankeraktualisierung,
Ressourcen-Wiederholungsdämpfung und Uferprüfung gegen Nutzerregeln prüfen.
2. `cmake --build /home/wow_admin/wow_cata_server/build/debug -j10` fortsetzen.
Vorher prüfen, dass kein alter Build mehr läuft. Weitere Fehler beheben.
3. Vollständige Tests erneut laufen lassen. Vor dem Berufs-Ausbau waren
**32 Tests grün**. Seitdem gab es 7 Mock-/Harness-Anpassungsfehler, deren
Fixes bereits TEILWEISE geschrieben sind. Alte Fehlerdateien sind historisch!
- Economy/Exploration/Social-fire: neues Policy-Include und Profilfelder,
Targets-Stub für zusätzlich mitkompilierte Zweige.
- Social: Map-/Position-/Origin-Stubs und native Work-Emotes ergänzt;
zuletzt nach INVALID_HEIGHT-Fix wieder grün.
- Exploration und Leisure: nach Anpassungen zuletzt wieder grün.
- Intent-state: neue Scene-Felder Progressive/Route/Step ergänzt;
letzter Fehler fehlende Player::GetExactDist(Position const&). Der
Überladungs-Fix ist bereits geschrieben, aber noch nicht erneut geprüft.
- Rest-fire: PrimaryProfessions in Mock-Profil/-Kontext ergänzt;
aktuellen Zustand durch erneuten Lauf prüfen.
4. Neue aussagekräftige Berufs-Tests fehlen noch! Geplant:
- tatsächlichen neuen Lua-Parser mit realem Lua 5.4 ausführen, inklusive
Arthoran mining/blacksmithing, leeres/ungültiges Profil sperrt Hauptberufe;
- Mining+Smithing darf vorhandene Kräuter NICHT bearbeiten, umgekehrt darf
Herbalism+Alchemy keine Erz-/Schmiedearbeit; sekundäre Aktionen ohne Liste;
- produktive native Zielklassifikation: Lock-Skills statt Namen, Amboss
versus Esse versus bloße Workshop-/Gebietszuordnung, falsche Phase,
despawnte/gelootete Quelle, Kadaverprüfung und passende Trainer;
- native Arbeitsgeste erst NACH tatsächlicher Ankunft, Profilentzug während
laufender Szene, keine Objektbenutzung/Casts/Inventaränderung, Abschluss;
- Migration auf Schemafixtures ausführen, Idempotenz und bearbeitete
Gewichte/Arbeitsplatzfreigaben erhalten;
- Gebiets-Anreise über erreichbaren Graphnode und lokale progressive Suche
innerhalb des Gebiets, Stopp bei gefundenem zulässigem Arbeitsplatz.
5. Erst dann neue Migration auf TEST-DB anwenden. Noch kein profession_apply-
Modus im gesicherten DB-Helfer! Ergänzen oder engen eigenen Helfer schreiben.
6. Erfolgreichen Build nach sauberem Serverstopp installieren, neu starten und
frische Ready-Meldung + Prozess + Port 8085 prüfen. AGENTS-Recovery beachten.
7. Live prüfen: tatsächlicher Amboss in Sturmwind (z. B. importierter
`poi_guard_541`, Schmiedebereich), dann Gebietsziel `poi_tele_338` = Elwynn,
Gebiet 12, echtes travel_to_node und lokale Ressourcen-/Arbeitsplatzsuche.
Kräuter muss Arthoran verweigern. Inventar/Geld und Ressourcen unverändert
nachweisen. Keine gefälschten Ressourcen, Spawns oder Teleports.
8. Berufs-Dokumentation schreiben, Katalog-/Standdokumente aktualisieren und
offen gebliebene Live-/visuelle Prüfungen ehrlich benennen.
## Wichtige vorherige Ergebnisse – nicht neu implementieren
- Reisegraph: optionale virtuelle Exits regelmäßig (6 s) während Weiterbewegung
prüfen, kein Abbruch nach fünf Versuchen, Kante nicht mitten darin umkehren.
Free-flight-Fallback getrennt von künstlichen Normalreise-Auswahlregeln.
- Ruhe/Feuer: gemeinsames natives Kochfeuer 818, neue Feuer nie in Gebäuden/
Städten. Schlafdarstellung weiterhin vertagt.
- Freizeit: Katze (Spell 10673, Creature 7385), Leine (Item 37460, Spell 48722),
echte native Begleiter-/Itemverwendung. Kanal beim Gehen erhalten. Owned-only
Cleanup, keine Veränderung fremder Begleiter. Nutzer hat sichtbare Katze,
Leine, zusammenhängende Routen und flüssige Bewegung ausdrücklich abgenommen.
- Native Follow-Fix: aktive Player-Splinegeschwindigkeit statt Run-Flag wählen;
SetWalk setzt die Gait-Auswahl, nicht MOVEMENTFLAG_WALKING. Das beseitigte
die ständigen Zwei-Meter-Pausen. Nicht wieder entfernen.
- Native Spline-Kurzsegment-Fix: 0,11 Yards Mindestabstand beim Splitten.
- Wirtschaften rein performativ; Händler/Bank/AH und Vergleich mit zwei GUIDs
technisch live geprüft, Geld/Inventar danach bytegleich.
- Importfehler behoben: SMALLINT maps über GetUInt16 statt GetUInt32, das in
Debug Null ergab. Gezielte, idempotente `clientless adventure repairimport`
reparierte 2.159 unveränderte abgeleitete Orte, ergänzte 217. Jetzt **2.864**
aktive semantische Locations / 3.857 Worldpoints. 16 manuelle Orte unverändert.
Vier Horde-Hauptstädte korrekt auf Karte/Fraktion zugeordnet. Nicht die
originalen world-DB-Quellen ändern. Snapshots liegen bei dieser Übergabe.
- Location-Zuordnung: kein versteckter Wirtschaften-Fallback mehr im Code;
`_04` materialisiert ausdrückliche Kategorie-/Intent-Gewichte, inklusive
begrenzter Freizeitgewichtung für Tavernen. Tagesplan-Intent unabhängig davon.
- Abenteuer `_04`: native Objektuntersuchung ohne Use, Scout/Equipment,
zusammenhängende Bodenwege. Zehn neue Aktionen, 32 Tests bestanden, technisch
live in Sturmwind: Pestle's Apothecary 197117, Weller's Arsenal 197121,
80-Yards-Erkundungsweg mit zehn bestätigten Hin-/Rückwegpunkten. Visuelle
Abnahme und gefährliche offene Welt weiterhin separat.
## Werkzeuge, Logs und reproduzierbarer Betrieb
Dauerhafte Kopien für diese Übergabe:
`doc/clientless/checkpoints/2026-10-27-profession/`.
Darin Build-/Configurelogs, historische fehlgeschlagene Testausgaben,
Ortskatalog-Snapshots und die bisherigen schmalen DB-Helfer. Diese Helfer lesen
Verbindungsdaten aus der lokalen Testserverkonfiguration; keine Passwörter
im Chat/Logs ausgeben. Sie enthalten keine fest codierten Zugangsdaten.
Die Helfer bei Bedarf wieder nach `/tmp` kopieren; Pfade gelten für diesen Host.
Wichtige Live-Logs (normal und ohne vorsorgliche Elevation lesen):
`/home/wow_admin/wow_cata_server/server/debug/bin/Server.log`,
`adventurebot-navigation.log`, `DBErrors.log`. Server.log wird beim Start neu
begonnen, Navigations-/DBErrorslogs können ältere Fehler enthalten. Bekannte
alte Script-/Spell-Warnungen nicht mit neuem Startup-Versagen verwechseln.
Buildbefehle: `cmake --build .../build/debug -j10`, bestehende Installation
mit `cmake --install .../build/debug`. Tool-Sandbox für Build/Install/tmux/DB
beachten, aber normale Logs nicht vorsorglich eskalieren. Keine laufende
Executable überschreiben. Kein Push.
Für gezielte Tests nach Restart wurde bisher nur beim Login die Startvorgabe
in arthoran.lua temporär geändert, vorher byteweise gesichert, nach
`[AdventureBot][Profile] loaded guid=26` exakt zurückgesetzt. Die jetzt dauerhaft
vereinbarten Hauptberufe dabei unbedingt erhalten. Keine temporären Profile
liegenlassen. Alternativ normalen Login abwarten und per Console Intent setzen;
auf unerwünschte automatische Goldshire-Anreise achten.
Console-Beispiele ohne führenden Punkt:
`clientless login 26`, `clientless adventure status 26`,
`clientless adventure intent 26 profession poi_guard_541 3600`,
`clientless adventure intent 26 profession poi_tele_338 3600`,
`clientless adventure micro 26 <action_key>`, `saveall`.
Der Nutzer möchte vor allem konkrete, überprüfte Ergebnisse und wenig
Bestätigungsfragen. Die Hauptberufs-Rückfrage ist bereits BEANTWORTET; nicht
noch einmal stellen. Testservermanagement und lokale Commits sind autorisiert.