Plan U5 remainder (KTD5/KTD9 + section-5 exit), continuation toward completion.
backend PR #157: EnqueueCommandInTx in-transaction command outbox (rollback removes, commit publishes both, idempotent); AppendEvents notifies in the same transaction (KTD6 front half); blobstore.S3 (SigV4, presigned GET, prefix isolation, idempotent delete, env-driven with local fallback) injected at the composition root; realproc acceptance - testbinary self-spawn of two real serve processes (per-process identity + command consumers, one schema): same-conversation contention, cross-instance cancel claimed exactly once, stale-owner settle fenced with run unchanged.
Dev: architecture baseline ratchet for app->blobstore.
Evidence (SELF via evidence tool in the task card): make test, make test-backend-pg against isolated real PostgreSQL 18.6 + Redis, make build - all exit 0. CI GATE first run on this PR (test-pg runs the real-process matrix).
Plan U5 remainder (KTD5/KTD9 + section-5 exit), continuation toward completion.
- backend PR #157: EnqueueCommandInTx in-transaction command outbox (rollback removes, commit publishes both, idempotent); AppendEvents notifies in the same transaction (KTD6 front half); blobstore.S3 (SigV4, presigned GET, prefix isolation, idempotent delete, env-driven with local fallback) injected at the composition root; realproc acceptance - testbinary self-spawn of two real serve processes (per-process identity + command consumers, one schema): same-conversation contention, cross-instance cancel claimed exactly once, stale-owner settle fenced with run unchanged.
- Dev: architecture baseline ratchet for app->blobstore.
Evidence (SELF via evidence tool in the task card): make test, make test-backend-pg against isolated real PostgreSQL 18.6 + Redis, make build - all exit 0. CI GATE first run on this PR (test-pg runs the real-process matrix).
Task card: .task/feature-collab-storage-u5-outbox.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u5-outbox.md; R0=0933a3be588739f867abebaa3aa4c0283d005e40.
Impact: task metadata only; the feature workspace starts at 0933a3be58.
Refs: .task/feature-collab-storage-u5-outbox.md
Why: the parent must pin the merged component SHA for combined build and CI.
Evidence: backend origin-main merge of #157 fetched post-merge.
Impact: gitlink only.
Refs: backend PR #157.
Why: U5 injects the S3-compatible blobstore from the app composition root (env-driven, local fallback) - a legitimate dependency recorded in the baseline.
Evidence: lint-boundaries green after the update.
Impact: baseline bookkeeping only.
Refs: backend PR #157.
Why: stage review needs results and evidence in the card before the PR.
Evidence: make test / test-backend-pg / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #157.
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 + section-5 exit), continuation toward completion.
Evidence (SELF via evidence tool in the task card): make test, make test-backend-pg against isolated real PostgreSQL 18.6 + Redis, make build - all exit 0. CI GATE first run on this PR (test-pg runs the real-process matrix).
Task card: .task/feature-collab-storage-u5-outbox.md