Skip to content

[08.6] Make vendor purchases fully atomic#109

Merged
alseif0x merged 13 commits into
3.4.3from
108-086-m07-make-vendor-purchases-fully-atomic
Jul 21, 2026
Merged

[08.6] Make vendor purchases fully atomic#109
alseif0x merged 13 commits into
3.4.3from
108-086-m07-make-vendor-purchases-fully-atomic

Conversation

@alseif0x

Copy link
Copy Markdown
Owner

Closes #108

What changed

  • Plans vendor currency gains, currency costs, item turn-ins, inventory, and gold without publishing partial runtime state before durable success.
  • Commits all purchase-owned CharacterDB mutations atomically and quarantines cancelled or indeterminate COMMIT outcomes for reload.
  • Matches the C++ vendor item metadata, packet order, and realm/instance routing.
  • Hardens cross-socket post-COMMIT fanout so transient write backpressure does not suppress already-committed responses.
  • Adds focused tests, paired C++/Rust bot QA, retained capture provenance, and a strict clean vendor-purchase capture fixture.

Why

The currency-vendor path and item extended-cost path previously published currency changes before the database COMMIT completed. A rollback, cancellation, or lost COMMIT response could leave runtime and durable inventory/currency state inconsistent.

Validation

  • ./tools/pr-preflight.sh full origin/3.4.3 passed with Rust 1.88.0 and pinned protoc.
  • Full wow-world, network, map/entity, focused vendor, bot, and capture-diff suites passed.
  • Local exhaustive Codex review: CLEAN.
  • Paired real C++/Rust bot run proved currency 30 -> 15, one durable item after fresh authentication, correct packet routing, and complete fixture cleanup.
  • Installed original-client QA passed two extended-cost purchases across relog; CharacterDB retained exactly one of each item and the correct currency balance, then the character fixture was fully restored.

Boundaries

Finite-stock oversell (D-H11), buyback/refund, the missing achievement SMSG_CRITERIA_UPDATE, and broader vendor validation remain separately scoped.

@alseif0x alseif0x linked an issue Jul 21, 2026 that may be closed by this pull request
@alseif0x

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Hooray!

Reviewed commit: fc85e0c197

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@alseif0x alseif0x added the qa-artifact Build and verify downloadable world-server QA artifacts label Jul 21, 2026
@alseif0x
alseif0x merged commit 662897d into 3.4.3 Jul 21, 2026
11 checks passed
@alseif0x
alseif0x deleted the 108-086-m07-make-vendor-purchases-fully-atomic branch July 21, 2026 10:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs area:map-runtime area:world qa-artifact Build and verify downloadable world-server QA artifacts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[08.6] [M0.7] Make vendor purchases fully atomic

1 participant