feat(coalesce): give the batching lane the Discord summon path #975
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!975
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/coalesce-discord-lane"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #958.
The coalescing lane landed runnable and measurable in
a325437and nothing on the Discord summon path called it, so a member's rapid comments still queued behind the one execution slot atagent.go:193. This wires it in.What is here
SIRENS_ECHO_COALESCE_ENABLEDselects the lane. It defaults off, so the serial slot is still the shipped behaviour and the flag is the rollback path. With it on, ingress builds the turn and marks the comment, the window batches per member, and a pool worker runs the one turn that answers the batch.The tuning #958 asked for arrives as
SIRENS_ECHO_COALESCE_*knobs through the sameoverridablehelper as everything else, with the high-water mark derived from the pool and the narrow batch rather than set beside them.task/free-the-config-numbershas since merged, which is what had blocked this.Turn shape: the comment that arrives last carries the reply, the earlier ones folding into what it asks in arrival order and in the member's own words, and the transcript reads from before the oldest of them so no comment is history for itself. Uploads on every folded comment are carried. Dedupe collapses the work rather than the asks, so a repeated question is answered once and both comments are marked.
Three decisions #958 did not specify
COALESCE_DEADLINEknob. The pool's hard bound on one turn isSIRENS_ECHO_REQUEST_TIMEOUT. A second ceiling underneath it would cut turns the service otherwise allows, and this keeps one number moving the whole shape the way sirens-echo#942 set up.SIRENS_ECHO_MAX_PENDINGbounds the wait for the execution slot and there is no slot to wait for, soSIRENS_ECHO_COALESCE_CAPACITYis the backlog bound and sheds where the cap refused. The per-user, per-context, and global tiers are unchanged and still charged on arrival.The batch worker carries the same panic guard the serial handler has, so a crashed batch does not take down a deployment serving other guilds.
Against the freeze
#929 as amended releases work that changes only how well the agent does what it already does. Landing this changes nothing at all: with the flag off the summon path is byte-for-byte the path it is today. What would change member-visible behaviour is turning the flag on, and that is a
coilyco-bridge/deploydecision rather than this diff. Read that way this is an operational improvement with its rollback identified before it lands, and the frozen half is the flag flip. Flagging it rather than deciding it: if the read is that a new lane is a capability regardless of its default, this waits for August 20.Opened as a pull request rather than merged, although the repository is on
merge-remote-mainuntil August 20, because this touches the demo service's summon path 34 hours before a live recording.Verification
just gatepasses: build, policy-check, vet, test, test-skips, pre-commit.go test -race ./...is clean. New tests cover the folded ask, the history anchor, the folded uploads, the dedupe, the reply target, the once-only hold, the knobs reaching the policy, and three rapid comments reaching one batch under the shipped numbers.Not verified against a live Discord guild. Nothing in this change has run against a real gateway.
🤖 Generated with Claude Code