Add a durable internal upload-attempt manifest scoped by tenant, project and actor with forced PostgreSQL RLS. Require a non-superuser, non-BYPASSRLS database role and persist a one-way dispatch claim before a future caller performs a network write. Replays must match the original source checksum, size and fingerprint; a started attempt is never automatically retried or marked complete.
Validation
Three real PostgreSQL tests pass using an isolated database and a non-superuser role, including cross-scope denial, no unscoped reads, repeated connections and eight concurrent dispatch attempts with exactly one claimant.
A separate isolated PostgreSQL container was restarted; the started claim survived and the non-superuser still could not read unscoped rows. This is not production backup or restore proof.
Full local suite: 1,263 passed, 193 skipped, including the three database tests which were separately executed with their opt-in test database. Typecheck, targeted lint and local Next.js build passed.
Local build uses an existing copied dependency tree whose source lockfile differs; CI must verify a locked build.
This is an internal primitive only. It does not authenticate callers, authorize projects, calculate or verify the DOC0-compatible fingerprint, dispatch files, migrate production, reconcile storage, settle credits, or expose a customer route.
## Change
Add a durable internal upload-attempt manifest scoped by tenant, project and actor with forced PostgreSQL RLS. Require a non-superuser, non-BYPASSRLS database role and persist a one-way dispatch claim before a future caller performs a network write. Replays must match the original source checksum, size and fingerprint; a started attempt is never automatically retried or marked complete.
## Validation
- Three real PostgreSQL tests pass using an isolated database and a non-superuser role, including cross-scope denial, no unscoped reads, repeated connections and eight concurrent dispatch attempts with exactly one claimant.
- A separate isolated PostgreSQL container was restarted; the started claim survived and the non-superuser still could not read unscoped rows. This is not production backup or restore proof.
- Full local suite: 1,263 passed, 193 skipped, including the three database tests which were separately executed with their opt-in test database. Typecheck, targeted lint and local Next.js build passed.
- Local build uses an existing copied dependency tree whose source lockfile differs; CI must verify a locked build.
This is an internal primitive only. It does not authenticate callers, authorize projects, calculate or verify the DOC0-compatible fingerprint, dispatch files, migrate production, reconcile storage, settle credits, or expose a customer route.
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.
Change
Add a durable internal upload-attempt manifest scoped by tenant, project and actor with forced PostgreSQL RLS. Require a non-superuser, non-BYPASSRLS database role and persist a one-way dispatch claim before a future caller performs a network write. Replays must match the original source checksum, size and fingerprint; a started attempt is never automatically retried or marked complete.
Validation
This is an internal primitive only. It does not authenticate callers, authorize projects, calculate or verify the DOC0-compatible fingerprint, dispatch files, migrate production, reconcile storage, settle credits, or expose a customer route.