Skip to content

Results and History

Wonder separates the trade loop into two player-facing states:

  • an active ready result
  • a persistent history record

When a match completes, Wonder creates a WonderResultReady event. The result projector keeps one active ready result per owner:

  • if a new result is created for the same player, the older active result is replaced
  • the ready result stays hidden until the player opens the reveal flow
  • the result remains claimable until it is claimed or expires

Players normally open their ready result with:

/wonder results

Or by clicking Results from the Wonder main GUI.

The reveal GUI is intentionally separate from queue submission so players can treat Wonder as a delayed surprise instead of an immediate trade confirmation.

When a result is claimed, Wonder:

  • restores the Pokemon to the player’s party
  • removes the active ready result
  • marks the history entry as claimed
  • fires notification and webhook paths for the claim event

Players can also batch-claim:

/wonder claimall

Ready results expire after result-expiry-hours:

wonder {
result-expiry-hours = 168
}

Expired ready results are removed from the active result store. History still records that the result existed, but the ready item itself is no longer claimable.

Every ready result is also written into Wonder history with:

  • owner id
  • source player or pool label
  • channel id
  • payload and extracted attributes
  • created timestamp
  • claimed flag

The history GUI gives players a record of what Wonder has delivered over time, even after the active result is gone.

Wonder exposes recovery commands for broken or stuck state:

/wonder admin recover-queue <entryId>
/wonder admin recover-result <resultId>

These are intended for online-player recovery when a queue or result needs to be manually restored. recover-result can recover either an active ready result or an unclaimed historical result entry.