Repository navigation
test: validate CrewAI native task retry and adversarial recovery - #317
Draft
stringsofthemind-oss wants to merge 1 commit into
Draft
stringsofthemind-oss wants to merge 1 commit into
stringsofthemind-oss wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The existing CrewAI lab exercises native structured tools but owns redispatch itself. This adds an actual
Agent.execute_taskretry: the simulated provider commits a payment and loses its acknowledgement, a subsequent scripted executor failure reaches CrewAI's task retry handler, and the same admitted intent is invoked again. The independent provider ledger records 2 effects without protection versus 1 with Once.The 10-case suite also covers eight competing processes, twelve changed-field conflicts across CLAIMED/UNKNOWN/CONFIRMED, distinct intents with identical fields, unavailable provider truth and later reconciliation, confirmed-record recovery-transition refusals, non-idempotent ABSENT refusal, hard process exit before confirmation, and loss of a confirmed result before framework delivery. Process-death redispatch is explicitly harness-owned. Python Once has no release/force API; the regression tests its actual recovery transitions, not a fictional release contract.
Changes are confined to the existing lab and its dedicated Windows/Linux CI matrix. No SDK production code, unrelated examples, or FIRST 10 adoption records change.
Validation
aa37acded51c75a08edfd9d81350f725b1cfe292336d833bec1506cdc8bb65d6.Scope
Synthetic local payment authority, scripted LLM, one trusted host, persistent shared SQLite, correct logical IDs and complete payment-field binding, authoritative fixture lookup. No live payment/model test, universal exactly-once, multi-host, state-loss, independent-adoption, or retention claim. Neither CrewAI PR head #5822/#6048 was tested; their open/unmerged status and exact heads are documented as of 2026-11-05.
Reproduce: lab instructions. Related upstream discussion: crewAIInc/crewAI#5802. This does not claim to fix that issue.
AI assistance was used to implement and validate this contribution.