fix(RC-3/phase2): per-mpack_key dedup for mpack.index + dedup_payload_key on enqueue_job
enqueue_push_intel now partitions jobs into coarse (all except mpack.index) and index buckets. Coarse types share one SELECT IN for dedup as before. Each mpack.index job is deduped per payload['mpack_key'] via a JSONB WHERE clause, so two pushes with distinct mpack keys each produce their own index row instead of the second being silently dropped.
Empty mpack_key falls back to coarse dedup, preserving legacy/no-key callers (MIE-4, B4). compute_job_id receives "mpack.index:<key>" as the job_type arg to prevent primary-key collision when two distinct keys arrive at the same timestamp.
enqueue_job gains an optional dedup_payload_key kwarg that scopes the idempotency check and job_id generation to a specific payload value.
Tests: MWP3_07 (distinct keys → two rows), MWP3_08 (same key → one row), MWP3_08b × 3 (enqueue_job dedup_payload_key variants), MWP3_09 (coarse types unaffected). All 12 MWP3 tests + B1-B4 + MIE1-5 + FMC_18 pass.
Semantic Changes
8 symbols
0 comments
muse hub commit comment sha256:58981a2606ddc4f96980b255b0f771d2a0f9f6f4786cebb0edb4e6640d3beea5 --body "your comment"
No comments yet. Be the first to start the discussion.