feat: 30.2 — unified api surface
Merged
VI
7mo ago+797+797+012345678901234567890123456789-957-957-012345678901234567890123456789
Summary
- Update Python SDK for the unified proto API from Story 30.1
BatchEnqueueRPC removed;enqueue_many()replacesbatch_enqueue()EnqueueRequestnow wrapsrepeated EnqueueMessage;EnqueueResponsereturnsrepeated EnqueueResultwith typed error codesAckRequest/NackRequestnow wraprepeated AckMessage/NackMessagewith per-message resultsConsumeResponseonly hasrepeated messages(singularmessagefield removed)BatchModerenamed toAccumulatorMode;BatchEnqueueResulttoEnqueueResult;BatchEnqueueErrortoEnqueueErrorLinger.batch_sizerenamed toLinger.max_messages- Per-message
EnqueueErrorCodemapped to typed SDK exceptions (e.g.QUEUE_NOT_FOUND->QueueNotFoundError) - Proto regenerated from unified
service.proto;admin.protosynced
Test plan
- 16 unit tests pass (batcher flush, accumulator modes, type constructors)
- 15 integration tests pass against real fila-server (enqueue/consume/ack lifecycle, enqueue_many, accumulator modes, TLS, API key auth)
- No "batch" prefix in public API
🤖 Generated with Claude Code
Summary by cubic
Aligns the Python SDK with the unified v1 gRPC API (Story 30.2): removes BatchEnqueue, adds enqueue_many(), and returns per‑message EnqueueResult with typed errors. Also simplifies consume responses and renames batching to accumulation.
-
New Features
- Added
enqueue_many(); replacesbatch_enqueue()and returnslist[EnqueueResult]. - Per-message
EnqueueErrorCodenow maps to typed SDK exceptions (e.g.,QUEUE_NOT_FOUND->QueueNotFoundError). ConsumeResponseonly includesmessages[](singularmessageremoved).- Ack/Nack protos now wrap repeated messages with per-message results.
- Batching renamed to accumulation:
AccumulatorModereplacesBatchMode; backgroundAutoAccumulator/LingerAccumulator. Linger.max_messagesreplacesLinger.batch_size.- Synced
admin.proto; API key RPCs removed from generated stubs.
- Added
-
Migration
- Replace
batch_enqueue(...)withenqueue_many([...])and handlelist[EnqueueResult]. - Update imports/types:
BatchEnqueueResult->EnqueueResult,BatchEnqueueError->EnqueueError,BatchMode->AccumulatorMode. - Update config:
Linger.batch_size->Linger.max_messages. - If you use raw protos, expect only
messages[]inConsumeResponse.
- Replace