EOAQuartermaster-2.5.18.zip
What's new
EOA Quartermaster — Changelog Since 2.5.13
2.5.14 — Manage Player Window Redesign
Player Switching
Added a searchable Player dropdown directly inside the Manage Player window.
Officers can switch between players without closing Manage Player and returning to the Players tab.
The selector includes:
- Active mains
- Legacy mains
- Deleted mains
Changing the selected player immediately refreshes the existing Manage Player window.
The Players-tab selection and Player Alts sidecar follow the newly selected player.
Manage Player Layout
Reorganized Manage Player into clearer sections:
- Player selection/details
- Class / Main Spec
- Player Actions
Centered the Class and Main Spec labels and dropdown controls.
Standardized the dropdown widths.
Moved Save Class/Spec onto its own centered row.
Added additional spacing between Main Spec and Save Class/Spec to eliminate control overlap.
Reorganized player-management actions into balanced button rows.
This release contains no synchronization or data-model changes.
Protocol: 16 Database Schema: 14
2.5.15 — Incremental Sync Performance Overhaul
Normal /dkp sync
Reworked normal officer-to-officer synchronization to avoid replaying complete datasets when only a small amount of data differs.
Added compact digest comparison for major synchronized state groups:
- Transactions
- Approvals
- Players/settings/mappings/admins/buffs
- Raid/attendance state
State groups whose digest already matches are skipped entirely.
Transaction Reconciliation
Replaced full transaction-history replay during ordinary synchronization with bucketed ledger reconciliation.
Transactions are divided into 16 deterministic buckets.
Clients initially exchange only bucket digests.
Only buckets whose contents differ are inventoried.
Only actual differences are transmitted:
- Missing transactions
- Transactions present only on the other officer
- Same-ID transactions whose contents differ
Bidirectional officer merge behavior remains intact.
If two officers independently create different transactions while disconnected, both records are retained and exchanged.
Same-ID corrupted transaction conflicts still resolve using the selected sync donor’s authoritative copy.
Performance
- A synthetic 130-transaction ledger with one new transaction dropped from roughly 264 raw addon packets in the previous sync design to about 18 packets for the entire reconciliation workflow.
- Fully matched officer syncs now require only a very small handshake rather than resending the database.
Intentional Exceptions
/dkp joincontinues to perform a full authoritative database transfer.- Read-only clients continue to receive a full transaction replay when needed because they cannot participate in the trusted-admin bidirectional reconciliation process.
Protocol: 17 / DKPLedger17
Database Schema: 14
2.5.16 — Compressed Full Sync & Large-Ledger Bootstrap
Compressed Full Synchronization
Added a compressed full-database transfer path for:
/dkp join- Other complete authoritative synchronization operations
When supported by both clients, full synchronized state is:
- Serialized into bounded record batches.
- Compressed using Blizzard’s native compression API.
- Encoded for safe addon-message transport.
- Split into normal wire-safe communication chunks.
- Decompressed and processed on the receiving client.
Compressed State Coverage
Compression applies to the large historical portions of the database, including:
- Transactions
- Raid records
- Attendance records
- Other synchronized bootstrap state
Decompressed records are fed through the existing validation and application handlers rather than bypassing authorization or integrity checks.
Capability Negotiation
- Added capability negotiation between clients.
- Compressed full sync is used only when both clients support the required Blizzard compression/encoding APIs.
- If those APIs are unavailable, synchronization automatically falls back to the previous safe row-by-row transport.
Full-Sync Integrity Manifest
Added a batch manifest before compressed transfer begins.
The receiver tracks:
- Expected batch count
- Expected logical record count
- Serialized byte totals
- Compressed byte totals
- Encoded byte totals
Authoritative synchronization will not finalize unless every announced batch is received and validated.
An interrupted or incomplete
/dkp joincannot accidentally be treated as a completed authoritative database replacement.
Large-Ledger Performance
Synthetic testing with approximately:
- 5,000 transactions
- 125 raids
- 5,000 attendance records
- 10,125 total synchronized records
reduced the approximate full-sync packet count from about 15,125 packets to roughly 1,015 packets.
A 5,000-transaction-only test showed approximately a 15× reduction in wire traffic.
Safety
Existing protections remain in force after decompression:
- Guild binding
- Trusted-admin validation
- Configured guild-rank authorization
- Two-admin approval validation
- Reset-generation handling
- Bootstrap donor validation
- Transaction conflict handling
Protocol: 18 / DKPLedger18
Database Schema: 14
2.5.17 — Local Sync Console Message Control
Sync Message Preference
Added a client-side option for every addon user to control routine synchronization messages in chat.
New setting:
- Appearance → Show sync messages in chat
The option is available to:
- Trusted admins
- Write-enabled officers
- Read-only addon users
Default & Persistence
- Sync console messages default to Off for all clients.
- The setting is stored only in local preferences.
- The selected value persists on that specific client until the user changes it again.
- The preference is never synchronized or included in administrative approval workflows.
Hidden When Disabled
Routine synchronization chatter can now be suppressed, including:
- Sync request messages
- Initial sync request messages
- Successful sync completion notices
- Incremental reconciliation progress
- Ledger repair progress/completion
- Compressed full-sync statistics
- Routine reset-generation adoption messages during bootstrap
Messages That Remain Visible
Important failures continue to print regardless of the preference, including:
- Malformed or missing compressed batches
- Failed full-sync manifest verification
- Rejected bootstrap donors
- Invalid synchronization requests
- Other actionable synchronization failures
- Explicit
/dkp ledgerdiffdiagnostic output
This release contains no protocol or database-schema changes.
Protocol: 18 Database Schema: 14
2.5.18 — Head & Heart Player-Level Filtering
Show Player Filter
- Renamed the Head & Heart Show Toon filter to Show Player.
- The filter dropdown now lists DKP mains/players only rather than listing every individual mapped alt.
- Added an All players option for the complete Head & Heart ledger.
Main + Alt Expansion
Selecting a player automatically includes Head & Heart records associated with:
- The selected main
- Any currently mapped alts belonging to that main
Filtering resolves character identities through the current main/alt mapping rather than requiring individual alt selection.
Drop Filtering
A selected player also matches records where the Dropped By toon resolves to:
- The selected main
- Any of their mapped alts
Actual-Toon Visibility Preserved
The Head & Heart table continues to show the actual:
- Toon
- Dropped By
values so officers can still identify which character physically held or used the item.
Entry Workflows Unchanged
- Head & Heart record-entry selectors still allow individual mains and alts.
- Dropped by toon continues to select the actual toon because those records intentionally track the specific character rather than only the DKP account.
This release contains no protocol or database-schema changes.
Protocol: 18 Database Schema: 14
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

