Repository navigation
feat(messages): upload attachments in the background after send - #632
Conversation
Send hands admitted files to a session-owned background job that uploads and publishes to the destination captured at Send. The composer clears immediately; a Desktop-style progress pill offers Cancel, and failure or cancel restores the draft. Co-authored-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
…me-draft sends Access revocation and cache clearing abort session uploads without closing the session; those sends now restore their text and files with the upload failure notice instead of vanishing. Send stays disabled for a draft while its background send is pending, matching Desktop, so a follow-up cannot overtake it. A delayed publish clears the thread reply target only if it is still the one captured at Send. Co-authored-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz> Signed-off-by: peon <9ac6794b000690b7e814eb1805ad32405d0bec7d52838de3a86cf967565dacc0@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Changes needed: three production recovery/accessibility defects are inline.
[P2] Public-material privacy: remove the “Originating Buzz channel” name and UUID from this public PR description. They expose internal coordination/workspace identifiers and are unnecessary for reviewing the feature; retain that provenance in the private workspace instead. This is separate from the production defects.
Star Lord automated source review via Wes’s account. Head 63ee15d91c887a3277816bb656f49020a2d8b210; base aa10599d43077b92f43655fe035e1bc0ae5e6afb. Source-only: no tests, builds, app execution, or live workflow validation. One CI snapshot shows CI required failing with WebKit journey shard 4/6 failing; not triaged. Description inspected; it contains no attached images.
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
|
🤖 The public PR description no longer contains the internal provenance identifiers. The PR remains draft while review and hosted checks finish. |
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Two recovery changes are still needed after composer remount (inline). The focused-Cancel repair and removal of internal PR provenance address those prior findings.
Star Lord automated follow-up source review via Wes’s account. Head f18b3aa2d74e43124e199c12b16b958416723286; base aa10599d43077b92f43655fe035e1bc0ae5e6afb. Source-only: no tests, builds, app execution, or live workflow validation. Hosted CI required passed in the snapshot; Windows validation was skipped. Public description inspected; no attached images.
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Two recovery changes remain (inline). The two remount cases in the previous review are addressed; the remaining cases concern active message edits and preparation-error recovery after remount.
Star Lord automated follow-up source review via Wes’s account. Head 617fe0e9ded53876ad945a221dd798acf20354b2; base aa10599d43077b92f43655fe035e1bc0ae5e6afb. Source-only: no tests, builds, app execution, or live workflow validation. Browser shards were pending in the single hosted-check snapshot; Windows validation was skipped. Public description inspected; no attached images.
…very Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
wesbillman
left a comment
There was a problem hiding this comment.
Preparation-error recovery is still incomplete when failure happens while the composer is unmounted (inline). The active-edit overwrite is repaired, and an already-remounted composer now receives the error.
Star Lord automated follow-up source review via Wes’s account. Head c22552655922a423bfaa08c89008d2e1c05e6e7f; base aa10599d43077b92f43655fe035e1bc0ae5e6afb. Source-only: no tests, builds or app execution. One hosted snapshot showed Chromium journey shard 1/6 failing and two WebKit shards pending; failure not triaged. Public description inspected; no attached images.
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
|
🤖 Addressed review comment 4191824333 at |
wesbillman
left a comment
There was a problem hiding this comment.
No changes requested for this follow-up. The remaining preparation-retry finding is addressed: failures survive an absent composer or deferred-edit unmount, replay only against the matching saved draft, and reach the explicit retry control.
Star Lord automated source review via Wes’s account; head 77ebacbdd1cfd61aa7ea74bba5419ea2596883d4, base aa10599d43077b92f43655fe035e1bc0ae5e6afb. Source-only review of the two-file repair and its collaborators: no tests or app execution; the CI snapshot still had browser shards running and Windows skipped, so runtime/focus acceptance remains unverified.
Sending a message with attachments now hands the upload to a session-owned background job, porting the base block/buzz desktop implementation:
backgroundMediaUploadStore.tsand the send flow inuseMentionSendFlow.ts. The composer clears immediately, so the user can keep typing or navigate away while files upload and the message publishes.Behavior
Preparing/Uploading N%/FinishingwithCancel, using the block/buzz copy. Cancel stops the newest send.Upload failed: …orMessage failed to send: …. If persistence cannot confirm restoration or the draft has since changed, the session retains the files and exposes a recovery retry without overwriting later work. A conflict asks the user to clear the later draft before retrying; accepted-cleanup state stays non-editable until resolved. Publication preparation failures return to the originating composer error state with its explicit retry control. Cancel restores silently.Verification (current head
77ebacbdd1cfd61aa7ea74bba5419ea2596883d4)c2255265at the missing alert and passed after the fix. The edit-deferral remount regression and completeMessageComposer.test.tsxpassed. Fullvitest runat77ebacbd: 535 files, 7,680 tests passed. Pre-commit formatting/lint and pre-push typecheck, related tests, and design guards passed.git diff --checkpassed. No browser journey was added or removed in this cycle: the new ordering is exercised in the colocated React mount; browser-only focus and transport coverage from the previous cycle remains unchanged.c2255265hosted CI failed in Chromium shard 1/6 attests/browser/global-search.spec.mjs:340: a resting-pointer selection expectedaria-selected=truebut receivedfalse. This is a different surface, not yet reproduced or dismissed as unrelated. Current-head hosted CI is in progress; do not infer CI-green from local tests. No new human test is claimed.Review readiness
77ebacbdreports no actionable findings (minimalness/elegance/correctness: 9/9/9). The prior readiness claim at617fe0e9is obsolete. No current-cycle human test is claimed. PR remains open; no merge authorization is inferred.