Plan U5 remainder (KTD5/KTD9 + exit): EnqueueCommandInTx in-transaction outbox + AppendEvents notifies in the same tx; blobstore.S3 (SigV4, presigned GET, prefix isolation, env-driven with local fallback); real-process multi-instance acceptance via testbinary self-spawn (two serve processes, per-process identity and command consumers, one schema): same-conversation contention, cross-instance cancel exactly-once, stale-owner settle fenced. Green on SQLite and real PG 18.6. Refs: plan U5; R4/R7/R10.
Plan U5 remainder (KTD5/KTD9 + exit): EnqueueCommandInTx in-transaction outbox + AppendEvents notifies in the same tx; blobstore.S3 (SigV4, presigned GET, prefix isolation, env-driven with local fallback); real-process multi-instance acceptance via testbinary self-spawn (two serve processes, per-process identity and command consumers, one schema): same-conversation contention, cross-instance cancel exactly-once, stale-owner settle fenced. Green on SQLite and real PG 18.6. Refs: plan U5; R4/R7/R10.
Why: plan U5 remainder (KTD5/KTD9 + exit criteria) - commands must commit atomically with business writes, artifacts need a shared object store for multi-instance, and the two-real-process acceptance matrix must run in CI.
Evidence: full suite green on SQLite and real PostgreSQL 18.6 (35 packages each tier) - outbox tx test (rollback removes the command, commit makes both visible, idempotent re-enqueue), S3 store tests (SigV4-signed round trip, 404 sentinel, idempotent delete, presigned GET, env fallback), real-process acceptance (testbinary self-spawn of two serve processes with per-process identity and command consumers against one schema: same-conversation contention, cross-instance cancel command claimed exactly once, stale-owner settle fenced with run unchanged).
Impact: EnqueueCommandInTx for in-transaction command outbox and AppendEvents now notifies in the same transaction (KTD6 front half); blobstore.S3 (SigV4, presign, prefix isolation) injected from BLOBSTORE_S3_* env when configured, local fallback otherwise; realproc_test provides the process-level multi-instance acceptance gate (PG-env gated, runs in CI test-pg job).
Refs: proposals/2026-10-11-collaboration-storage-and-distribution.md U5 KTD5/KTD9, section 5 exit criteria; R4/R7/R10.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Plan U5 remainder (KTD5/KTD9 + exit): EnqueueCommandInTx in-transaction outbox + AppendEvents notifies in the same tx; blobstore.S3 (SigV4, presigned GET, prefix isolation, env-driven with local fallback); real-process multi-instance acceptance via testbinary self-spawn (two serve processes, per-process identity and command consumers, one schema): same-conversation contention, cross-instance cancel exactly-once, stale-owner settle fenced. Green on SQLite and real PG 18.6. Refs: plan U5; R4/R7/R10.