Repository navigation
fix(file-doc): stop the permission resend loop and restore the 10 MB proxy body limit - #9057
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
[High impact] This PR appears safe to merge; no actionable new issues were found. SummaryThis PR stops repeated document permission messages and update resends. It restores the default 10 MiB proxy limit while letting Project document snapshots bypass that buffer.
No actionable new issues were found in the changes since the previous review. No previous review threads were supplied.
|
…eep capability through the per-socket de-dup
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
…nd persist attribution with tests
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
Summary
Changes only flag-gated Project file paths (behind the
projectsflag).create,update_content,upload_complete,versions.revert,extract_archive) declarechargesStorageand take it exclusively up front, so a shared hold is never upgraded. Lifecycle, payer transfer, retention, and account deletion stay exclusive and still exclude every file operation.acquirePermissionGroupOrgReadLock): group writes, workspace creation, and OAuth refresh still wait for it and the capability decision stays current through commit, but file operations no longer serialize on it. The 5slock_timeoutnow bounds only the acquisition and the caller's setting is restored.readProjectFileContentand version content reads drop an unused preflight transaction (prepareFromSnapshot); their snapshot use case authorizes, and the final transaction still revalidates after the storage read.ProjectFileRevisionConflictError) or cached-history conflicts; Project lock timeouts and lifecycle conflicts surface immediately instead of being retried and reported as a document conflict. Persist reads at most the largest editable file size.Expected conflicts for the stacked Project file PRs:
knip.jsonc(#9018 adds entries; its newproject-file*.tscontract files lose the glob ignore),projects/files/application/authorization.ts(#9018 exports helpers),billing/storage/tracking.tsandprojects/membership.ts(#9034).Type of Change
Testing
projects/files/__integration__/authorization.integration.ts: concurrent reads and a folder create proceed while a read holds the Project,lock_timeoutis restored, and exclusive Project and permission-group holders still wait; a storage-charging write still excludes shared holdersprojects/files/application/documents.test.ts: lock conflicts are surfaced, revision conflicts still retry (verified red on the old predicate)Checklist
test-auditauthoring gate)