Skip to content
This repository was archived by the owner on Oct 1, 2026. It is now read-only.

fix: fence ensemble responses by run token - #18

Merged
joshrotenberg merged 1 commit into
mainfrom
fix/dispatch-run-fencing
Oct 1, 2026
Merged

joshrotenberg merged 1 commit into
mainfrom
fix/dispatch-run-fencing

Conversation

@joshrotenberg

Copy link
Copy Markdown
Contributor

A late panelist response from a failed Consensus run could be counted in the next queued run because the server reduced each GenAgent reference to an agent name before invoking the strategy. Dispatches now carry the outer run token; the server retains that token with the reference and ignores responses or errors after the token has a terminal result. All published built-in strategies pass their token, including concurrent Pool dispatches. The old three-element operation remains available to external strategies, but it cannot provide run fencing.

Controlled backend tests cover the reported A1-error/B1-late sequence, late errors, repeated queued submissions, and a Consensus round boundary. The existing IEx drain test now compares entries without assuming lexicographic token order. The lockfile is refreshed to satisfy the current sibling adapters' wrapper requirements.

Validation: mix format --check-formatted, mix compile --warnings-as-errors, mix credo --strict, mix test (90 passed), mix dialyzer, mix docs --warnings-as-errors.

Addresses genagent/gen_agent#61. The unpublished local Graph feature branch still uses the legacy dispatch operation; it must be migrated before publication. This PR does not publish Graph.

@joshrotenberg
joshrotenberg merged commit 43bf5ea into main Oct 1, 2026
2 checks passed
@joshrotenberg
joshrotenberg deleted the fix/dispatch-run-fencing branch October 1, 2026 01:45
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant