Add same-transaction outbox, S3-compatible blobstore, and real-process acceptance (U5 remainder) #157

Merged
weichen merged 2 commits from feature/collab-storage-u5-outbox into main 2026-10-11 15:58:18 +00:00
Owner

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.
weichen added 1 commit 2026-10-11 15:57:13 +00:00
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.
weichen added 1 commit 2026-10-11 15:58:08 +00:00
Merge authoritative main into the task branch
ci / vet-and-test (pull_request) Successful in 1m10s
e1dc93d147
weichen merged commit 25fbea8522 into main 2026-10-11 15:58:18 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Backend#157