feat(worker-rejoin-resync): add reconciliation wire codec helpers (task 1.4)

Add xce_job_state_query_req()/xce_job_state_report_req() to request.c,
paginating job IDs / job-state entries across OPCode_jobStateQuery /
OPCode_jobStateReport messages via direct Request.body union arms
(mirroring xce_jobdispatch_req/xce_notify_req's direct-send shape, not
xce_push_data_req's XceData-table multiplexing -- these are dedicated
union arms, not multiplexed push/reply-get traffic). 8 round-trip tests
(normal/empty/multi-page for both query and report, covering all 4
JobStateStatus values and both queried states) all pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y4M5MJM2zK6nU43da267Ku
This commit is contained in:
Rongsong Shen 2026-09-01 09:34:25 +00:00
parent 9fbbd12b36
commit 9f3dfe7903
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
6 changed files with 581 additions and 1 deletions

View file

@ -21,7 +21,7 @@
- _Boundary: worker test infrastructure_
- _Note: satisfied by pre-existing infrastructure — see Implementation Notes._
- [ ] 1.4 (P) Add wire encode/decode helpers for the reconciliation exchange
- [x] 1.4 (P) Add wire encode/decode helpers for the reconciliation exchange
- Add request/reply encode and decode helpers for the new query and report messages, following the existing paginated-list pattern already used for job/worker/resource listings
- Observable completion: a round-trip encode-then-decode of a query and of a report (including an empty page and a multi-page case) reproduces the original data exactly
- _Requirements: 8.1, 8.2, 8.3_