acdream/src/AcDream.Core/Items
Erik 02b735ba4a
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets
Both chains pinned by the live [vendor-diag] run (vendor-diag.log)
after three code-reading rounds each failed:

The split bar: ACE serializes descStackSize=1 for EVERY browse row
(live wire, log 343-348) — the R1-era "ACE never populates desc"
claim is retracted with the line quoted. Retail's vendor sites read
pwd._maxStackSize directly (four sites, incl. UpdateItemsList
@0x004c1ea0 stamping min(remaining, _maxStackSize));
ResolveAuthoredStackSize flips to max-first for its vendor-only
consumers. Taper ceiling 1000, scarab 100, seed 1 for exempt.
Pricing still reads the desc (per-1 values on ACE).

Walk-to-use: the local player's getObjectA seam was bound to
TryGetPhysicsHost, which resolves only INSTALLED physics hosts — a
never-animated vendor has none, so TargetManager.SetTarget got null,
the MoveToObject armed with zero nodes, and UseTime never dispatched.
The log's natural=False completions were the user's own movement keys
(retail-correct input-edge cancels); attempt 4 worked because the
greeting animation had installed a host. RuntimePhysicsState gains
the retail CObjectMaint::GetObjectA seam (bound canonical resolver
with installed-host fallback); the graphical host binds the SAME
lazy-minimal-host resolver every remote already uses — whose own doc
comment names this exact never-animated hazard. The reservation
release was already correct (2b premise refuted with evidence); the
production-wiring invariants are now pinned by four new tests
including the pre-fix pathology as a permanent sabotage control.

AP-169 rewritten a second time, honestly. The [vendor-diag] probe
family (ACDREAM_DUMP_VENDOR) lands env-gated for future live triage.

Clean-room complete solution: 11,536 passed / 4 skipped / 0 failed.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-08-08 17:17:04 +02:00
..
AetheriaUnlockState.cs fix(paperdoll): port quest-gated Aetheria slots 2026-07-13 09:55:20 +02:00
ClientObject.cs fix(physics): #297 — keep the PWD bitfield live so PK status reaches the client 2026-08-03 20:59:01 +02:00
ClientObjectTable.cs fix(vendor): grand-gate findings — wire-truth container counts, the live split bar, arrival-gated use, prepend-order race 2026-08-08 14:03:57 +02:00
ExternalContainerState.cs refactor(net): converge live session state reset 2026-07-21 12:00:48 +02:00
HouseRestrictions.cs feat(runtime): seal dormant SetPosition evaluations 2026-08-01 11:31:58 +02:00
InventoryTransactionState.cs refactor(runtime): own inventory transaction state 2026-07-26 08:20:32 +02:00
ItemCooldownDisplay.cs feat(items): port retail shared cooldown overlays 2026-07-23 10:41:16 +02:00
ItemInteractionPolicy.cs fix(vendor): 6b/6c review corrections — pre-send guards, accumulating staging, trade-note exemption, drag-over tab switch, full-stack sells 2026-08-08 12:50:28 +02:00
ItemManaState.cs refactor(runtime): expose canonical gameplay state 2026-07-26 09:12:30 +02:00
ItemWireEnums.cs feat(core): name AmmoType, CombatUse, and ItemUseable 2026-07-29 01:31:01 +02:00
PaperdollSelectionPolicy.cs fix(ui): port exact paperdoll body selection 2026-07-11 11:56:26 +02:00
ShortcutDropPlanner.cs feat(ui): complete retail item drop branches 2026-07-11 09:46:32 +02:00
ShortcutEntry.cs feat(ui): preserve exact retail shortcut records 2026-07-11 09:17:33 +02:00
ShortcutStore.cs refactor(runtime): close canonical gameplay ownership 2026-07-26 09:48:51 +02:00
StackMergePlanner.cs feat(ui): complete retail item drop branches 2026-07-11 09:46:32 +02:00
StackSplitQuantityState.cs fix(ui): port retail partial stack transfers 2026-07-11 10:34:13 +02:00
ToolbarAmmoPolicy.cs feat(ui): port retail toolbar ammo count 2026-07-11 12:29:51 +02:00
VendorDiagnostics.cs fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets 2026-08-08 17:17:04 +02:00
VendorPricing.cs fix(runtime/core): Slice 5.3 review corrections — retirement/transit close, per-unit pricing, guarded auto-close dispatch 2026-08-07 16:15:57 +02:00
VendorSellAcceptability.cs fix(vendor): 6b/6c review corrections — pre-send guards, accumulating staging, trade-note exemption, drag-over tab switch, full-stack sells 2026-08-08 12:50:28 +02:00
VendorSplitPolicy.cs fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets 2026-08-08 17:17:04 +02:00
VendorStagingList.cs fix(vendor): 6b/6c review corrections — pre-send guards, accumulating staging, trade-note exemption, drag-over tab switch, full-stack sells 2026-08-08 12:50:28 +02:00
VendorState.cs fix(vendor): evidence-based pass — max-first stack ceiling; the local player resolves never-animated MoveTo targets 2026-08-08 17:17:04 +02:00