Skip to content

Restore battle log and ship sync for the current client (build 267) - #315

Merged
netniV merged 1 commit into
STFC-Mod:devfrom
blevouschurverantunt:fix/sync-client-2026-09-29
Oct 1, 2026
Merged

netniV merged 1 commit into
STFC-Mod:devfrom
blevouschurverantunt:fix/sync-client-2026-09-29

Conversation

@blevouschurverantunt

Copy link
Copy Markdown

Summary

Since client build 267 (2026-09-29), battle logs and ships stop syncing. The client now sends battle result headers as entity group 219 (BattleResultHeadersResponse) and owned ships as group 251 (PlayerShipsResponse) instead of in the Json group. The 219 processor was a stub and there was no case for 251, so both were dropped.

This implements the 219 processor and adds a 251 processor. The emitted battlelog and ship events are unchanged.

Fixes #314

What changes

  • processors::battle_result_headers parses group 219; the de-dupe/enqueue/persist logic moves into a shared queue_battle_ids that the Json path also calls.
  • New processors::player_ships parses group 251 into a shared sync_ships. The Json handlers stay as thin wrappers over the same helpers and are behaviour-preserving; say if you'd rather I delete them. The dispatcher Ships case is gated by ships.
  • EntityGroup.h and the proto Type enum gain values 242-252. Only Ships is used and live-verified; the other names come from the client's enum.
  • Proto messages (JournalHeaderProto, BattleResultHeadersResponse, PlayerShipData, PlayerShipsResponse) are declared with only the fields that are read; happy to swap for regenerated full messages if you have them. The names are the client's own class names.

Verified

Windows client build 267, mod 1.1.9.beta.1 + this change:

  • 219 = 300 headers newest-first at login and after each battle.
  • 251 = full owned-ship list at login and after ship actions.
  • The sync target received the 300-header backlog plus each new fight within ~8 s, and all 37 ships.
  • macOS not tested.

Overlaps with #295 in processors; I'll rebase whichever lands second.

Checks

  • Fork CI: build-win, build-mac arm64 / x86_64, package-mac, validate example configs — all green on this exact commit
  • Local MSVC release build clean
  • No CHANGELOG, version or config changes

🤖 Generated with Claude Code

Client build 267 (2026-09-29) delivers battle result headers as entity
group 219 (BattleResultHeadersResponse) and owned ships as group 251
(PlayerShipsResponse) instead of the Json group.

Implement the 219 processor and add a 251 processor, sharing helpers with
the Json handlers. Add the client's EntityGroup values 242-252, and declare
only the proto fields that are read.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

@netniV netniV left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't really see anything wrong here, but as it's sync and affects both STFC:Data and SpocksClub (among others), I'm gonna tag @lightbull-stfc and @ChronoXNL for a review. Would take Jess too but I don't think she uses GitHub like we do :)

@netniV
netniV merged commit bc39646 into STFC-Mod:dev Oct 1, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants