chore: baseline snapshot — prior-session work + ha-consistency-invariants spec family

Pre-existing uncommitted work: ha-repl-hardening payload data plane (7.x),
heartbeat liveness fix (Req 1.3), connection-reuse ASAN fixes, doc cleanup.
New: ha-consistency-invariants umbrella (requirements/design/research) and
its four implementation sub-specs (specs generated via batch, cross-spec
review applied), steering roadmap + product.md Raft+CP decision.
This commit is contained in:
Rongsong Shen 2026-06-11 13:21:50 +00:00
parent 084244941b
commit 06135954ff
88 changed files with 25611 additions and 5285 deletions

View file

@ -112,6 +112,47 @@ extern int xce_replconfig_reply_ssl_decode(SSL *ssl,
*/
extern void xce_free_request(xce_request_t *req);
/*
* xce_wal_batch_encode_raw / xce_wal_batch_req_raw: encode/send an
* OPCode_walCatchupEntry batch carrying raw WAL payload bytes.
*
* Bypasses the generated encode path (payload :Data cannot be carried
* through xce_data_t — same limitation as replConfigPush). Each
* entries[i]->raw_payload/raw_payload_len is written as a capnp Data
* (List(UInt8)); the legacy xce_data_t payload field is ignored.
* The receiver's xce_decode() extracts the bytes back into
* raw_payload/raw_payload_len on each decoded sub-entry.
*
* encode_raw fills pkt (caller frees via free_packet on error paths);
* req_raw allocates the packet and enqueues it on ep (non-blocking).
*/
extern int xce_wal_batch_encode_raw(wal_catchup_entry_t **entries,
int n_entries,
xce_peerinfo_t *from,
uint64_t seq,
io_packet_t *pkt);
extern int xce_wal_batch_req_raw(endpoint_t *ep,
wal_catchup_entry_t **entries,
int n_entries);
/*
* xce_snapshot_chunk_encode_raw / xce_snapshot_chunk_req_raw: encode/send
* an OPCode_snapshotTransfer chunk carrying raw snapshot file bytes.
* Same raw-Data convention as xce_wal_batch_req_raw; chunk envelope
* fields (snapshot_lsn, chunk_index, chunk_offset, total_size, is_last)
* are taken from *chunk, payload bytes from payload/payload_len.
*/
extern int xce_snapshot_chunk_encode_raw(const snapshot_transfer_t *chunk,
const uint8_t *payload,
size_t payload_len,
xce_peerinfo_t *from,
uint64_t seq,
io_packet_t *pkt);
extern int xce_snapshot_chunk_req_raw(endpoint_t *ep,
const snapshot_transfer_t *chunk,
const uint8_t *payload,
size_t payload_len);
/*
* xce_upgrade_config_req_extract: extract sha256 + bytes from a decoded
* OP_upgradeConfig request. xce_decode() stores malloc'd copies in