fire(trigger) step 4 is loop-shaped, so reviewers get dispatched serially #88
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence#88
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
seams.md:119 "Concurrent dispatch" already states the rule and names this exact case as an example: "Independent dispatches over disjoint payloads (the per-plan executors of a parallel phase, per-doc verifiers, the two reviewers of one artifact) fire concurrently in ONE message."
But
references/review-triggers.md:55- the file a coordinator actually executesfire(trigger)from - restates it as:followed by one long bullet per backend. Two problems:
For eachis a serial construct. The parallelism is a subordinate clause inside a loop, andwhere the host allowsreads as permission to decide the host might not allow it.in ONE messagephrasing nor a pointer to seams.md Concurrent dispatch appears.Every sibling surface states it mechanically -
workflows/execute.md:186("CONCURRENTLY in one message"),workflows/decision-review.md:70("dispatch them CONCURRENTLY in one message"),workflows/phase.md:49("batch them in one message; conventions.md Parallel work"),workflows/docs-verify.md:26. review-triggers.md is the only one phrased as permission.Observed: during
/cad-execute 1thedifftrigger dispatchedcad-reviewer(~470s), waited for its full return, then started the cross-model provider call. Doubled wall-clock and spend for no added signal, on anadvisorygate that could not change the outcome.Acceptance criteria
references/review-triggers.mdstep 4 is batch-shaped, not loop-shaped: the unit issued is the whole reviewer set in ONE message, with the per-backend notes describing how to READ each result rather than when to issue it. It cites seams.md Concurrent dispatch, and thewhere the host allowshedge is gone.self-verify.mjsgains a check overcadence-core/workflows/*.mdandcadence-core/references/*.mdthat fails when a multi-dispatch instruction lacks the mandated one-message phrasing, so the weak restatement cannot reappear. Same species as the phase-1 checks 7 and 8.fire()should hand back a resolved dispatch manifest (every reviewer, route resolved once, payload attached) instead of a list the coordinator walks - holding one object makes the batch the obvious next action. Design call, not required by 1-3.Also worth deciding
fire()spends the same on anadvisorygate as on ablockingone. Nothing in the procedure tells the coordinator to weigh cost against a gate that cannot halt anything. Possibly a note in step 1, possibly out of scope here.