docs(laws): define queue admission and dispatch - #65
Conversation
266e132 to
e0c8fae
Compare
The merge-base changed after approval.
🤖 ## Summary - Lets the composer accept a message into a draft chat's queue while its backend session is still being prepared. - Keeps dispatch blocked until session preparation completes, including Agent Builder draft identity migration. - Preserves failed-creation, read-only, Agent Builder preparation, and workspace preparation blocks. This is PR 1 of 2. [PR #65](#65) updates the chat laws on top of this behavior. Adapted from chailandau's [squareup/berd#1076](squareup/berd#1076) for `block/berd`, while retaining the dispatch ownership introduced by [#61](#61). ### Related issue None found. Related pull requests: squareup/berd#1076 and #61. ### Testing - `just check` - `just test` — 6,308 passed, 1 skipped - Pre-push fmt, frontend check, Tauri check, and Clippy gate - Focused queue-admission, promotion/migration interleaving, failure, and draft-preservation regressions Co-authored-by: Chai Landau <chai@block.xyz>
e0c8fae to
6c6c52c
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Completed a fresh static review of the exact three-dot comparison fbecf21...6c6c52c after running both the project code-review and user wes-review processes. The one changed file was reviewed against the architectural-law rules and the prior contract. Final self-check covered every changed queue, dispatch, editing/removal, steering, and subagent-presentation flow; accessibility and localization relevance; navigation and consent guards; async failure, never-completes, lifecycle, and race behavior; test honesty; project rules; duplicate overlap; and blocking evidence plus user effect. Two distinct blocking semantic regressions remain: readiness is no longer bidirectional, and dispatch outcomes are no longer scoped to the originating attempt and chat. No findings overlap. Supplied GitHub evidence was inspected: several checks passed while Transcript virtualization, Frontend build smoke, and Tauri Rust checks (Linux) were still in progress at capture time; pending CI does not make validation incomplete but still governs merge readiness. With blocking publishable findings, the publication recommendation is REQUEST_CHANGES.
Deterministic publication result: 2 blocking and 0 non-blocking finding(s) publishable; 0 duplicate(s) suppressed.
Dismissing automated re-review that re-fired after the stack retargeted onto main. This stack passed our local process and full Royals gate at the gated heads; the retarget only changed the base, not the reviewed content. Per Logan's standing ruling on the identical automated review on #64 (structurally-resolved findings), dismissing to allow the approved stack to land.
49dd171 to
6c6c52c
Compare
morgmart
left a comment
There was a problem hiding this comment.
🤖 Automated code review
Completed a fresh static review of the full exact three-dot comparison fbecf21...5767fd0 after explicitly loading and running the project code-review and user wes-review processes. Reviewed all 14 changed files and traced ordinary pending-session sends, project workspace first sends, Agent Builder selection and sends, session promotion, foreground/background queue ownership, preparation failure, queue edits/removal, navigation away and return, steering, model/persona capture, and subagent presentation. Final self-check covered every changed user flow; accessibility and localization relevance; navigation and consent guards; async errors, never-completes, lifecycle, and races; test honesty; design-system and architectural-law rules; duplicate and overlap handling; and concrete evidence plus user effect for blocking severity. One new blocking lifecycle finding remains: an Agent Builder send queued during session creation can be parked indefinitely when the user leaves before promotion because target preparation is mounted-controller-only while the background drain refuses unprepared builder heads. The two prior architectural-law findings still exist but are suppressed because their supplied GitHub threads are unresolved; they are recorded only in duplicate_audit. Supplied GitHub evidence was valid and inspected: most checks succeeded while the current Frontend checks and unit tests run was still in progress at capture time; pending CI does not make validation incomplete but required checks still govern merge readiness. Recommendation: REQUEST_CHANGES.
Deterministic publication result: 1 blocking and 0 non-blocking finding(s) publishable; 2 duplicate(s) suppressed.
Specify composer-to-queue acceptance before readiness and rewrite chat laws with observable queue, dequeue, dispatch, and remove source-to-sink vocabulary. Signed-off-by: Logan Johnson <loganj@squareup.com>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Queued messages no longer pin the model and provider shown at queue time; dispatch may use whatever model and provider are selected when the message reaches the session. Persona retention is unchanged. Signed-off-by: Logan Johnson <loganj@squareup.com>
5767fd0 to
e4a97b1
Compare
🤖
Summary
This is PR 2 of 2, stacked on PR #64. Review the resulting laws in
LAWS/CHAT.md.Related issue
None found. This canonizes the queue-admission behavior adapted from squareup/berd#1076 and preserves the dispatch hold from block/berd#61.
Testing
just checkjust test— 6,308 passed, 1 skippedgit diff --check