Update Healer Man server

This commit is contained in:
phenom committed 2026-10-04 13:13:35 -04:00
1 parent 39458d5de6
commit 6cc1b9217f
203 files changed
+133929 -31271

No files matched your search

+286
View File
@@ -4,8 +4,238 @@ This file is the durable record of runtime behavior, regressions, and the
evidence required before calling a visual bug fixed. Update it whenever scene,
camera, input, physics, mob-rendering, or asset-loading code changes.
## 2026-10-04 Timed mechanics and campaign bosses
- Shared Killing Spree now schedules five player/companion assaults over two
seconds, including the application pulse. Companion AI selects the learned
action; actual scene relocation and owner-local cleanup have focused coverage.
This supersedes the immediate-player/NPC-gap limitation in the older entry.
Child weapon amounts, seeded target choice and teleport geometry retain the
documented simulator approximations.
- The exact five native builds were audited. Knight/Scout Blood Punishment now
grants +15% received healing and +5% Holy damage on Blood Arrow. Actual NPC
casts use combat effect schools and consume outgoing aura modifiers once on
their respective native/compatibility paths. The separate current-CoA Blood
Arrow base-toggle/cost migration remains open; no loot or cap change.
- The player and spectator follow cameras share physical terrain and visible
wall/pillar obstruction queries. Final-build Wailing screenshots near the
formerly clipped pose show loaded character bodies and equipped silhouettes,
right-drag rotation, and a stable released view. The old foreground obstruction
is absent at this nearby sample. Other cave viewpoints remain partially framed
by rock; this does not certify universal camera visibility.
- Normal final-build Barren Caves clears Anglo 1/1 in 13:36.9. The rendered FULL
DUNGEON CLEAR panel agrees with dead/zero-HP boss telemetry. The initially
level-30 Priest/Knight naturally reaches 36; Rorik dies and the other four
actors survive. Effective healing totals 46,328.47. Living-party separation
peaks at 12.52 m in periodic route samples and 15.56 m after packs. The native
overlay stops further input; no loot action is taken. Evidence:
`playtest-artifacts/campaign-boss-pass/final-build-20261004-150021873/`.
- Strict Wailing movement reaches Lady's anchor without the earlier fall:
433.96 m traveled, all 284 movement vertices checked and five actors surviving.
Lady fights and is defeated during pack stabilization before the endpoint;
actual source Bolt/player damage events and captured "already defeated"
feedback establish that result. The old endpoint-only classifier misses this
earlier fight after the boss leaves active state. Full Wailing clear and its
remaining seven bosses/Naralex event are unverified. Effective healing totals
28,587.81. Empty guard-attempt records are not guard-clear proof. Evidence:
`playtest-artifacts/campaign-boss-pass/final-build-20261004-151549020/`.
- At both sampled Wailing camera probes, held right-drag changes yaw by -0.378
radians; pointer lock stays null and released/unheld movement changes yaw by
zero. Player displacement during either drag is below 0.001 m. The early
probe is 5.18 m from the old clipped pose, so the screenshots establish nearby
visual improvement, not an exact-pose boom measurement.
- Ordinary final-build Boss Testing confirms Vow cancels a real source Lightning
Bolt 9532 and applies the 8,400-ms Silence status to source creature 3671,
without staging enemy casts or editing live combat state. The aura cancels the
cast before the explicit interrupt effect, so no Nature school lock is set.
Source immunities are Fear/Horror only. A longer observation then reveals
Nature Thorns casts starting during silence, requiring a separate cast-gate
correction; that pre-correction run establishes initial cancellation only.
Evidence: `playtest-artifacts/vow-live-final/final-build-20261004-151736260/`.
- Production build and 266 focused assertions across eleven files pass, plus
Ready-five's seven game/twenty Python tests. Route assets are
`index-DHQInfBp.js`, `combatStore-Cx06rFzG.js`, `GameRuntime-D87YWi4Q.js`,
`PartyFrames-5jlxKxxK.js`, `romAbilityCatalog-CHjYfHkT.js`, and
`index-499eecpe.css`. Browser results on later assets must be labeled separately.
- The corrected final-build Vow replay passes full suppression: the real Bolt
is canceled before release, no nonphysical cast is observed during the actual
8,400-ms Silence status, and source Nature Bolt resumes naturally 61 ms after
expiry. Lady is defeated with all five actors alive, no XP/loot and no readiness
change. Pre/post cast and boss-defeated images were visually inspected; bodies
and equipped silhouettes render. No cast-cancel presentation event is claimed.
Evidence: `playtest-artifacts/vow-live-final/final-build-20261004-153859692/`.
Corrected assets: `index-Cm7Olrd2.js`, `combatStore-1B4KOVhS.js`,
`GameRuntime-hM1AaOYR.js`, `PartyFrames-BfZEkXH5.js`,
`romAbilityCatalog-DjRUCJbs.js`, and `index-499eecpe.css`. The preceding campaign
runs retain their recorded earlier assets. Final build and 30 additional
cast/Vow/source assertions pass (296 focused total across fourteen files);
Ready-five's seven game/twenty Python tests are rechecked after the correction.
See `docs/MECHANIC_PARITY_CAMPAIGN_PASS_2026-10-04.md` and its scoped reports for
source limits, normal-campaign outcomes and the independent live Vow evidence.
## 2026-10-04 First CoA party kickoff diagnostic
- The selected party is Guardian/Vanguard, Witch Doctor/Brewing,
Barbarian/Brutality, Ranger/Archery, and Pyromancer/Incineration. Offline
preparation fixes those five build identities and writes a source/mechanic
inventory plus five explicit active-player configurations.
- Exposed 124 sourced active Talent actions across these five classes, retaining
their learned-rank gates and passive exclusions. Verified Potion Toss's base
heal and Mana payment on a player and companion, Decapitate's strictly below
35% target-health gate, and Ranger primary Focus spending/recovery. Ingredient
riders, execute Energy conversion, and full class state remain pending.
- Automated targeted runs use level 60, seed 1, and Taragaman the Hungerer only,
capped at 30 seconds. Guardian/Witch Doctor/Ranger/Pyromancer active seats
reach the time limit with 80,065/79,292/12,782/14,724 boss health remaining;
Barbarian's active seat defeats the boss in 12.6 seconds. All five runs record
zero deaths. Raw evidence is under `artifacts/coa-first-party/level-60/`.
- Companion casts remain sparse and player-seat results differ substantially.
The healer-seat Ranger companion casts three times and records 32.3% Focus
starvation after its primary-pool correction. This baseline identifies work;
it does not establish class correctness, tank/healer pressure coverage, or
balance. No live browser/visual playtest was performed in this kickoff.
- Validation: 87 focused game tests across 15 files; Ready-five seven game and
twenty Python tests; production TypeScript/build/asset audits/compression and
bundle verification pass. Readiness and ordinary Ready-only pools are unchanged.
See `docs/COA_FIRST_PARTY_MILESTONE.md` for the source anchors, evidence gaps,
repeatable commands, and completion gate.
## 2026-10-04 Interrupt, sustain and campaign follow-up
- Correct the pinned AzerothCore creature-immunity importer: `CreatureImmunitiesId`
is a foreign key. Lady Anacondra's row -93 supplies Fear/Horror only; the
source-registered Lightning Bolt regression now cancels under Vow of Silence.
True Silence/Interrupt immunity remains protected. This supersedes the source
interpretation of the older failed browser attempt below; that full fight was
not rerun after the correction.
- The native Knight player plus owned Priest/Rogue/Scout/Mage party clears three
consecutive Anglo pulls at levels 60 and 80, preserving resources, effects
and cooldowns through 10-second/90-second rests. Six clears, zero deaths, no
empty Priest Mana pools. Delivered overheal is 63.9%/30.6%; direct heals start
on injured snapshots even with Regenerate active. Recovery and healing AI are
unchanged. Actual owned-NPC telemetry is separate from player pressure data.
- Killing Spree's representative signature now checks its source class-script
selector, while preserving the ten-strike player regression. The linked child
61851 damage aura is corrected from 1% to 20% for two seconds. Companions still
lack this script; immediate player assaults and deterministic selection remain
approximations. This supersedes the earlier 30/31 test result below.
- The floating Roster details toggle intercepted Continue at 1440x900. The
single-screen roster now reserves footer space. Normal pointer hit checks and
screenshots show clearance at 1440x900 and 390x844; body/staff remain visible.
Other compact layout details and dual-display layouts are not certified here.
- Original campaign entry plus 90-second entrance/encounter segments are checked
independently. Barren records 69.34 accumulated travel units, 41 keyboard
steps, 15 effective player heals (~6,155), seven player damage events (549),
and no deaths; earned XP naturally raises the player from 30 to 31. Its valid
phase is in `playtest-artifacts/native-routes/final-20261004-051413627/`.
- Corrected Wailing records 23.76 travel units, 15 keyboard steps, 11 effective
heals (~6,831), three observed entrance enemy deaths and no party deaths.
Player DPS is zero and remains unverified there. Normal Attack/Defend inputs
keep the entrance fight near the healer. Evidence:
`playtest-artifacts/native-routes/final-20261004-052623521/`.
- Preserve the first longer Wailing trace in `final-20261004-051737171/`: the
tank died after repeated out-of-range heals while automated steering fell
behind. The harness now follows actual companion positions, prefers a bound
ranged attack and waits for casts. Game balance/recovery are unchanged.
Final phases have no page errors; the logged 404 URL is favicon.ico.
- Campaign midpoint/endpoint images were visually inspected. Midpoints show
Urgent Heal on an injured native tank and loaded bodies/equipment. Endpoint
views are partially occluded by cave geometry. Full dungeon completion,
route-guide accuracy, camera visibility and complete mobile QA remain unproven.
- Final production build passes TypeScript, asset audits, bundling, compression
and bundle verification. Chunks: `index-CAMDJqEC.js`,
`combatStore-t7bO4yKt.js`, `GameRuntime-otPnJCWI.js`,
`PartyFrames-BsBsesPR.js`, and `index-499eecpe.css` with the roster clearance.
Focused checks pass 40 interrupt/enemy cases, five importer cases, 81
Rogue/catalog/rotation cases and the six-pull sustain diagnostic; the final
Vow-only rerun passes eight. Ready-five remains seven Vitest/twenty Python.
See `docs/ROM_INTERRUPT_SUSTAIN_ROUTE_FOLLOWUP_2026-10-04.md` and its linked
source, sustain, Rogue and campaign reports for attribution and scope limits.
## 2026-10-03 Selectable RoM native stats
### Source recovery, equipment completion and full selected fights
- The final build passes app TypeScript, production bundling, asset audits,
compression and bundle verification. Exact chunks: `index-DzLgXnx0.js`,
`combatStore-Dh-12M9R.js`, `GameRuntime-C95Du8PI.js`,
`PartyFrames-Cf7FSiBA.js`. Source/recovery/resource checks pass 156 tests;
native pacing passes five; legacy pacing passes 18 with all 83 timing samples;
the unchanged 80-pull native cohort has zero deaths/invalid casts.
- Native player/owned-NPC HP and Mana now use source ReHP/ReMP pulses, retaining
per-actor compatibility choices. All 440 imported NPC equipment defaults and
11,000 candidate pairs resolve supported snapshots. Extra off-hand/bow swings
are not scheduled. Source recovery required early native boss calibration:
level-one boss factor 0.30 becomes 0.20, with trash/later anchors unchanged.
Holy Strike keeps its Holy amount while starting physical auto-attacks; early
native Priest healers reserve one learned direct heal before hostile spending.
- `--full-fights` creates a native level-30 Priest/Knight healer and the other
four native identities, then completes original-cooldown Boss Testing scenes
on this exact build. Anglo clears in 39.9s, Lady Anacondra in 16.5s; all five
actors survive and there are no page errors. Player Mana ends at 88.9%/91.0%.
These testing-room health pools are separate from campaign durability.
- Anglo Physical Trample/Bash cancellations are observed before completion
alongside resolved healer counter inputs. Gulp clears from the tank 1.85s
before expiry after a resolved cleanse; a Rogue's separate Gulp expires
naturally. Lady retains Nature-school Lightning Bolt; her Mage's Slumber
clears 4.74s before expiry after cleanse. A single Vow of Silence attempt does
not cancel Lightning Bolt, so that particular cross-source counter is unproven.
- Full fights record zero movement inputs. Separate labeled same-build fixtures
retain Trample's source 1.8s warning/radius five/effect. Real W movement carries
the player 2.75 units from distance 3.93 to 6.69 while the cast stays live:
player damage is zero, nearby Rogue damage 262. Trample, Bash and Gulp each
release once; source attack selection/readiness, repeat cooldown, positions,
threat and companion pause are fixture setup.
- Roster body/staff, loaded player/party bodies and held weapon/shield/staff/bow
silhouettes at mid-fight, native recovery/Training gear UI, defeated-boss
results and Trample warning/movement images were visually inspected. Early
NPC loading placeholders resolve by mid-fight. Evidence:
`playtest-artifacts/native-combat/full-fights-20261004-024033763/` and the
same-build fixture `playtest-artifacts/native-combat/results.json`.
- Ready-five passes seven Vitest/twenty Python cases; avatar checks pass 47.
An additional shared rotation selection passes 30/31, with the existing
unsupported Rogue Killing Spree signature check still failing. High-level
native healer Mana remains comfortable. No all-class sweep, loot wiring,
cap change, readiness submission or deployment. This is selected desktop
scene evidence, not full navigation/mobile/every-encounter certification.
See `docs/ROM_NATIVE_RECOVERY_EQUIPMENT_PACING_PASS_2026-10-03.md` for source
ownership, measured pressure, test boundaries and pre/post evidence.
### Five-class scaling follow-up
- The subsequent final build passed with `index-Ba_szGct.js`,
`combatStore-BGky6YlB.js`, and `PartyFrames-CcpsvWIi.js`. Exact-dist Edge QA
passed after native NPC level/cap reconciliation and Training gear label fixes.
`scripts/playtest-stat-rulesets.cjs` used an isolated temporary account/server.
- RoM Equipment slots and fallback names display Training gear, with the
automatic level-79 cap note. Native player tabs and Durnik's native Mage NPC
Attributes panel passed; desktop and 390-pixel layouts remained readable.
Legacy profiles, independent stat choices, switching locks, build/checkpoint
preservation, and both native/compatibility dungeon runs passed again.
- Roster and both dungeon captures visibly show character bodies and held starter
staffs. Dungeon overlays and loading intro were closed for those captures.
Native player/NPC HP and MP displays remained whole and readable.
- No page errors, HTTP failures, or failed application-resource responses
occurred; the only console response error was the optional favicon 404.
- Latest evidence supersedes the shared artifact path below:
`playtest-artifacts/stat-rulesets/results.json` and its eleven screenshots,
including `05-native-npc-stats-attributes-desktop.png`,
`04-native-dungeon-gameplay-overlays-closed.png`,
`08-wow-compatibility-dungeon-gameplay-overlays-closed.png`, and
`07-native-stats-attributes-mobile.png`.
- Final focused validation passed 176 tests across twelve files; Ready-five
passed seven Vitest and twenty Python checks. Avatar validation passed 47 tests
before the subsequent party-only fixes. The targeted Barren Caves diagnostic
recorded uneven pacing, including slow low-level bosses and brief high-level
trash; no enemy HP, loot, or readiness policy was changed. Full diagnostic and
remaining boundaries: `docs/ROM_FIVE_NATIVE_SCALING_2026-10-03.md`.
### Original stat-ruleset implementation
- `scripts/playtest-stat-rulesets.cjs` passed against the final production build
in Edge with an isolated temporary offline account/server. Checked chunks:
`index-CGkT8hBz.js`, `combatStore-CVXgxk1Z.js`, and
@@ -4295,3 +4525,59 @@ Vite's existing large-chunk advisory remains informational.
- This is a representative catalog/UI smoke check. It does not exercise an
unlocked Shadowhound, the other CoA classes' combat mechanics, or balance.
All CoA specializations remain Needs Testing.
## 2026-10-03 — Native RoM five combat pass
- Added native source amount dispatch for direct Priest healing and supported direct attacks, including separate periodic HolyHeal snapshots. Player/NPC Heal, Urgent Heal, Regenerate, target absorption, aura-adjusted Wisdom/MDMG/HealPower, and WoW fallback regressions pass. Native training weapon amounts/speeds feed physical auto attacks; existing semantic haste and race-affix timing remain common simulator stages.
- The targeted full-player/four-NPC diagnostic covers the exact five identities at levels 1/10/30/60/65/66/79/80 against Barren Caves trash and Anglo. All 80 pulls clear with zero deaths or invalid casts. Native-mode health budgets produce trash kills in 4.5–9 seconds and Anglo kills in 39–53.4 seconds. Static placement omits navigation and encounter scripts; this is not balance certification. The legacy WoW-stat RoM curve and enemy damage are preserved.
- The focused 15-file validation passed 210 tests before the extra Reflected Shot consumer-fallback regression; that regression and the five-build amount parity test both pass. Ready-five validation passed 7 Vitest and 20 Python checks; all 47 avatar/equipment checks passed. The final full build, asset audits, compression, and release-bundle verification passed.
- The final native damage selection passed 13 tests: seven source-helper, two amount/parity/fallback, and four actual combat-event integration checks. Player Knight main-hand, NPC Scout ranged, NPC Rogue off-hand, and player Scout Shot use their verified source channels; the auto-event checks also verify semantic haste timing. The final project TypeScript check passed.
- The final production browser smoke used `index-D_h9IRuA.js` and `combatStore-BiA9BOQG.js`, isolated server/account data, and desktop plus 390x844 viewports. Native player and actual party-owner stats, automatic training labels, legacy save migration, build/gear/checkpoint preservation, combat/activity switching guards, and switching back to WoW stats passed. Ordinary live generated RoM companions all belonged to the active five. The first browser attempt exposed a QA-only hardcoded Durnik selection assumption; the script now inspects an actual native party member and the final run passes.
- Visually reviewed `playtest-artifacts/stat-rulesets/01-roster-native-rom.png`, `04-native-dungeon-gameplay-overlays-closed.png`, `05-native-npc-stats-attributes-desktop.png`, and `07-native-stats-attributes-mobile.png`. Roster and dungeon bodies remain visible with starter staff, shield, and sword silhouettes; baseline RoM clothing/underwear appearance remains unchanged. Native player/NPC attributes and training labels are readable, and the narrow panel scrolls inside the viewport. Results and 11 representative screenshots are in `playtest-artifacts/stat-rulesets/results.json`.
- No browser page errors, server errors, or failed HTTP requests were recorded. The only console error was the existing optional favicon 404. The separate `combatRotation.test.ts` has 30/31 passing assertions; the existing unsupported-only Combat Rogue Killing Spree signature assertion remains outside this RoM pass.
- At this earlier checkpoint, source target share/ordinal falloff, throw/prior-hit/shield-category damage inputs, unverified custom weapon profiles, and native defense/hit/critical channels still had explicit simulator boundaries. The follow-up below resolves the supported Throw, shield, multi-target, defense, hit, and critical paths; prior-hit inputs and unsupported/custom gear remain explicit boundaries. Reflected Shot stays on the common amount fallback until actual target enumeration reaches the native adapter. Public add-on/CoA research informed clean-room rotation priorities; a Cloudflare challenge blocked the KittyCombo archive download, so no add-on code or preset was imported.
- Level cap remains 80. No loot wiring, deployment, commits, or readiness promotion. See `docs/ROM_NATIVE_COMBAT_PASS_2026-10-03.md` for formulas and remaining source boundaries.
## 2026-10-03 — Native enemy equipment, manual packets and pressure
- The equipment/formula/encounter follow-up is documented in `docs/ROM_NATIVE_ENEMY_ENCOUNTER_PASS_2026-10-03.md`. Native source equipment supports 398/440 imported NPC snapshots under default deterministic selection; 42 unsupported snapshots retain declared fallback. Exact bound fixed/MaxHP enemy packets now use source absorption and target ordering without generic DEF/resistance/crit. Unbound Throw/post-table absorption remains unsupported. No loot is wired and cap 80 remains.
- The new native shared-damage budget interpolates 1:1, 10:1, 30:3, 60:10, 65:12, 66:20, 79/80:40. Exact manual source packets bypass this curve. Native health anchors, compatibility scaling and difficulty sliders remain intact. Live mob registration supplies the budget and passes repeat-registration/mode-switch regressions.
- Six headless encounter/pressure checks cover actual Anglo Trample/Bash warning-time movement, Gulp targeting/manual dispels, a real companion interrupt and a real NPC Priest cleanse. Self-Regenerate now enters the healing ledger; interrupt/control cancellation clears cast presentation. Sixteen pressure pulls separate enemy damage from native ability health costs and all clear with no deaths/invalid controller casts. Shared mana sustain is still an open balance limitation.
- The regenerated 80-pull active-five diagnostic clears all pulls with no player/NPC deaths or invalid casts. Trash takes 4.9–8.7 seconds and Anglo 42.0–58.5 seconds. Focused source/native checks pass 141 distinct tests across 22 files, including 40 actual player/NPC fixed/MaxHP packet cases. Ready-five passes seven Vitest and twenty Python checks; avatar checks pass 47. A separate legacy scaler suite passes 13 checks and fails four compatibility-pacing expectations. The committed-scaler replay reproduces the two WoW starter failures and RoM Mage level-eight failure; the exact level-80 healer case was not replayed. Current/committed scaler outputs match all four original inputs. Compatibility pacing is not retuned.
- The final production build passes bootstrap/assets, TypeScript/Vite, compression and release-bundle verification. Exact chunks are `index-pDR2PGJY.js`, `combatStore-7m63VWbc.js` and `GameRuntime-CGZMQPoV.js`. Actual level-30 Anglo/Lady Boss Testing snapshots record native budget 3 (attack damage 289/354), confirming live population passthrough.
- Final Edge fixtures pass with zero page errors and preserve source cast times/ranges/effects/telegraphs. Trample movement avoids player damage; Bash releases once at source range; Gulp controls a nearby Rogue and expires naturally. This browser sample does not prove NPC cleansing; the headless test separately does. The fixture-only final run reuses successful normal-scene snapshots from the same build (`normalScenesReran: false`); it does not certify a normal full clear or navigation. See `playtest-artifacts/native-combat/results.json`, normal sample JSON and screenshots, plus six `anglo-*-fixture.png` captures. Roster, party/dungeon and selected mechanic screenshots were visually inspected and retain bodies and starter shield/sword/staff silhouettes. No readiness/report submission occurs.
## 2026-10-03 — Native RoM combat resolution and enemy damage types
The equipment/manual-formula, damage-pressure and production QA evidence above supersedes this earlier pass's corresponding limits and measurements; its native health anchors remain current.
- The supported native path now resolves defense, hit/avoidance, criticals, periodic damage, special Throw and shield inputs, and multi-target damage for the five canonical active builds with canonical training gear. Player and companion actors keep independent rulesets; incoming resolution uses the recipient's own secondary class, gender, and ruleset, so a WoW-mode recipient keeps the compatibility resolver when another actor uses native stats. Native points are never converted into WoW ratings. Exact RuneWaker NPC identity travels independently from WoW creature/server entry IDs. Missing NPCs, unsupported source calculations, ambiguous source equipment, and custom/unverified gear retain an explicit fallback.
- The enemy classifier keeps WoW and RuneWaker spell ID namespaces separate. WoW packets retain DBC `DmgClass` and full `SchoolMask`; RuneWaker's six source resistance channels stay distinct even when simulator aliases share a school. Direct and periodic parts of one source cast share their per-target application hit gate. Periodic ticks reuse application snapshots without new hit, critical, armor, or resistance rolls; HP-percent ticks use the recipient's current maximum health. Enemy periodic effects have their own scheduler and are cleared by dispels and encounter resets. Multi-target source sharing and ordinal falloff are applied once.
- A shared hit-gate regression for unsupported NPC `CalcType` 4 packets was fixed in runtime and covered by a regression test.
- `artifacts/rom-five-native-rotation/report.json` is the final native pacing sample: 80/80 clears, zero invalid casts, zero player or companion deaths, and source-supported trash and Anglo in every sample. Trash took 4.9–8.7 seconds and Anglo 40.5–58.5 seconds. The five identities rotate through the player seat at levels 1/10/30/60/65/66/79/80, with four native companions and fixed actor positions. This diagnostic does not cover movement or authored encounter mechanics and is not readiness certification.
- After the shared-gate fix, focused validation passed 140 tests across 18 files, and the native HP/pacing selection passed 7/7. The 80-sample report was regenerated with the same pacing, maximum live enemy level 80, source support for all samples, zero deaths, and zero invalid casts.
- Final native RoM health factors are [level, trash, boss]: [1, 0.4, 0.3], [10, 1.0, 0.6], [30, 1.1, 0.85], [60, 1.5, 1.5], [65, 1.8, 1.9], [66, 2.6, 2.8], [79, 4.5, 4.8], and [80, 4.5, 4.8], with linear interpolation between anchors. These are simulator training-party pacing budgets, not imported monster-health formulas. The player level cap remains 80; no new loot wiring, matchmaking, or readiness promotion is included. Existing saved WoW-stat mode and per-actor rulesets remain supported.
- Ready-five (7 Vitest and 20 Python checks) and all 47 avatar/equipment checks were also run during this follow-up. The final TypeScript/Vite build, bootstrap/asset audits, compression and release-bundle verification passed; six shared-gate/periodic checks passed after the final result-field cleanup.
- Final production browser QA uses `index-DyCSc4Cz.js` and `combatStore-nQykOmDD.js`. Stat-ruleset checks pass on desktop and 390×844 mobile, covering native/compatibility mode, saves, guards and each actor's own panel. Isolated Boss Testing observes Anglo's Gulp control effect and Lady Anacondra's Nature-school Lightning Bolt against the native party, with no page errors and no readiness/report submission. Results are in `playtest-artifacts/stat-rulesets/results.json` and `playtest-artifacts/native-combat/results.json`.
- Visually reviewed the roster, normal native dungeon, native NPC stats, mobile equipment and both selected boss-mechanic screenshots. Character bodies and starter staff, shield and weapon silhouettes remain visible; stat labels are readable and the narrow panel scrolls inside the viewport. The targeted scenes do not certify every mechanic or dungeon. See `docs/ROM_NATIVE_COMBAT_RESOLUTION_PASS_2026-10-03.md` for source boundaries and formulas.
## Desktop performance check (2026-10-04)
- Production headless Edge on the Radeon RX 9070 XT exercised Wailing Caverns entry combat, movement, pause/resume, synthetic visibility changes, and three entry/exit cycles. Evidence is in `artifacts/playtest/performance/before/`, `after/`, and `confirmation/`; the reusable route is `scripts/playtest-performance.cjs`.
- Fixed repeated full-catalog scan/sort and pack-receipt checks with an immutable manifest index and publication-invalidated usability cache. The before profile spent about 925 ms of an eight-second sample inside catalog lookup; that hotspot disappeared after the change. A same-manifest benchmark of 100 lookups measured 746.06 ms for the old scan/sort, 14.91 ms to build the index once, and 0.023 ms for cached lookups.
- HUD, aura and periodic-effect presentation clocks stop during local pause/map/companion and while hidden. Target-filtered shallow subscriptions avoid unrelated unit updates; normal dungeon play no longer starts the two invisible race HUD clocks. Visible shared-online timers retain their menu behavior.
- Bounded decoded audio retention to 64 cues or 32 MiB of PCM, with recent-use eviction, shared pending decodes, failure retry, and preserved active playback. This is a cache budget, not a total-process memory limit.
- Stable 20-second paused main-thread busy time improved from 5.41% to 0.49%, reproduced at 0.46%. Stable pause and synthetic hidden-page samples submitted zero draw calls. Resume restored continuous drawing. After three dungeon exits, JavaScript heap returned to 59.59 MiB (59.71 MiB in confirmation), with backing storage near 22.61 MiB. All three runs reported zero page errors.
- A later pause sample showed a transient demand-mode burst; confirmation captured an idle paused CPU profile and zero draws/layouts through an extra settled 20 seconds. The burst was not reproduced or conclusively attributed. Active samples vary with NPC appearance, combat progression, and concurrent project work, so their heap/draw differences are not claimed as isolated optimization gains.
- Reviewed active, resumed and paused screenshots: the player/party/enemy models and starter equipment remained visible, effects rendered, and HUD/menu controls were readable. No visual-quality settings were reduced.
- Validation: 59 focused tests passed; production TypeScript/Vite build, KTX2/environment audits, compression and release-bundle verification passed; release check passed. Scope and remaining original-effect cache/GPU profiling targets are recorded in `docs/PERFORMANCE_CHECK_2026-10-04.md`. These browser counters do not measure whole-system CPU, total RAM, GPU utilization percentage, or VRAM.
## 2026-10-04 — Visible party armor and original RoM starter weapons
- Fixed the presentation gap for synthetic heirlooms and other unmapped armor: WoW player, companion, creator, and roster models now receive native starter/representative chest, leg, boot, glove, shoulder, and cloak appearances. Supported exact drop visuals override the corresponding starter slots. Cloth, leather, and heavy chest appearances differ. This changes presentation only, with no item/stat migration.
- Rebuilt all five native RoM race/gender rigs with the original `cloth010-001` torso, hand, leg, and foot components instead of the bare-body components. All five GLBs passed the Khronos validator with zero errors and warnings. Packaged six original client ROS props for sword, mace, shield, staff, bow, and dagger; retained source and output hashes in their import manifest. Native props use the original RoM socket frame; each item preserves its own error/Suspense boundary and procedural fallback.
- `scripts/playtest-party-equipment.cjs` exercises isolated offline profiles in production headless Edge at 1600 × 1000. It installs each optional character pack before the final native roster/dungeon captures. Fresh profiles initially use the bundled human fallback, so a pre-download screenshot is not evidence for the original RoM rig. The completed WoW/RoM route reported zero page, console, or non-favicon HTTP errors.
- Visually reviewed `playtest-artifacts/party-equipment/WoW-roster.png`, `WoW-party-front.png`, `RoM-roster.png`, `RoM-dungeon.png`, `RoM-party-front.png`, and `RoM-party-open.png`. WoW party bodies have visible robes or armor, shoulder pads, leggings, and capes. The native RoM player and nearby companions wear the source burgundy/orange starter outfit; the mage carries the original textured staff, and the knight carries the original metal mace and wooden shield. Bodies remain visible while equipment loads. The Forsaken Abbey entrance camera crowds the party near a wall, so these captures do not claim every companion is simultaneously unobstructed or certify dungeon positioning.
- Roster previews now receive saved equipped items. Optional equipment completion requests a preview bounds refit after the initial ready-pose blend. Final `RoM-roster.png` shows the full native staff, character body, and boots within the viewport; the earlier immediate refit used bind-pose bounds and cropped the staff tip. The final RoM-only follow-up reported zero browser or asset errors.
- Validation: all 53 avatar tests passed; the production TypeScript/Vite build, asset audits, bootstrap/bundle verification, and release check passed. Refreshed local content as `content-f39a3ad523d546d5`. Original RoM armor is currently a common starter outfit; per-drop modular armor replacement and exact skins for every weapon/armor item remain outside this change. See `docs/CHARACTER_EQUIPMENT_APPEARANCE.md` for regeneration and content-pack requirements.