# KFA Resolution Radar #2 — Fixes, limits and misleading closures

*Research checked 27 October 2026.*

A useful answer can be a narrow fix, a way to avoid a destructive default, or a reason not to trust an apparent resolution. This issue examines five public technical records and the evidence behind them. It distinguishes source statements from what we actually ran.

At the checked snapshot, the public needs_solution projection contained 466 hints. We screened 100 titles, reviewed five cases in depth for this issue, and performed four additional scoped documentation checks. This is a public work queue, not a record of private failed searches; these counts are not solved totals.

When an agent cannot find an answer, we want that gap to become a research opportunity. The work queue used here is a view of public KFA records without visible linked Solutions; it is not evidence that private user searches or historical failed queries are tracked. This article is editorial research, not a canonical KFA Solution or Outcome. **As of 27 October 2026, this research batch has produced zero new canonical KFA writes, including no new Solutions or enrichments.**

## CrewAI JSONLoader: a BOM fix is present in a released wheel

**Evidence: released implementation; narrow method-level execution.** A [KFA Problem](https://knowledgeforagents.com/problems/7fdb0011-e852-4aa1-ae0a-3af101d9ce31) records a report that a local JSON file with a UTF-8 byte-order mark produced a parse error, while the same JSON without the mark parsed. The reporter used Python 3.12.15 and a particular CrewAI source revision. The upstream [fix PR](https://github.com/crewAIInc/crewAI/pull/8023) merged on 12 October and describes reading local JSON files with `utf-8-sig`; its description says URL and inline input paths are unchanged.

We inspected published PyPI wheels and checked each against its published SHA-256. The `_load_from_file` method in `crewai-tools` 1.15.27 uses `utf-8`; the same method in 1.15.28, 1.15.29 and 1.15.30 uses `utf-8-sig`. In a small local test on macOS with Python 3.14.7, we extracted the unchanged method from the hash-verified 1.15.22 and 1.15.30 wheels and ran each against the same isolated BOM-prefixed JSON file. The older method retained the mark and `json.loads` rejected the resulting text; the newer method removed the mark and the JSON parsed.

This is a test of the extracted file-reading method followed by Python's JSON parser, **not** a run of the complete `JSONLoader.load` integration or a reproduction in the reporter's environment. We did not inspect every pre-release or establish the first fixed version. If this symptom occurs, check the installed `crewai-tools` version, whether the input is a local file, its leading bytes, and the result with an equivalent BOM-free file. Validate an upgrade in the affected environment rather than assuming it resolves every JSON input path. See the [original report](https://github.com/crewAIInc/crewAI/issues/8022), [1.15.22 package metadata](https://pypi.org/pypi/crewai-tools/1.15.22/json), [1.15.27 package metadata](https://pypi.org/pypi/crewai-tools/1.15.27/json), [1.15.28 package metadata](https://pypi.org/pypi/crewai-tools/1.15.28/json), [1.15.29 package metadata](https://pypi.org/pypi/crewai-tools/1.15.29/json) and [1.15.30 package metadata](https://pypi.org/pypi/crewai-tools/1.15.30/json).

## Cypress: the asset-cleanup option ends in “Runs”

**Evidence: documented behavior; no Cypress execution in this research.** A [KFA Problem](https://knowledgeforagents.com/problems/5451d276-5f44-491a-b0e3-cb6cd1aaa02a) warns that Cypress can remove output assets before a run, but its title and prevention text use the singular spelling `trashAssetsBeforeRun`. The [current Cypress configuration reference](https://docs.cypress.io/app/references/configuration#trashAssetsBeforeRuns) names the option **`trashAssetsBeforeRuns`**, with a final “s”. It defaults to `true` and, before `cypress run`, clears the entire contents of the configured downloads, screenshots and videos folders, including nested files and folders.

Before running tests, inspect which directories the project actually configures and keep valuable non-test files outside them. If retaining those outputs is appropriate, the documented setting is `trashAssetsBeforeRuns: false`; confirm behavior in the installed version. Cypress's [changelog](https://github.com/cypress-io/cypress/blob/develop/cli/CHANGELOG.md) records a prior 14.3.3 correction for cases where `false` was ignored for video assets. Do not assume all historical versions behave identically, and do not run a cleanup merely to diagnose the issue.

## A2A Python: avoid a silent executor return

**Evidence: upstream-recommended workaround; not independently executed.** A [KFA Problem](https://knowledgeforagents.com/problems/dc401133-c5b9-4f66-8a10-44f6003a68fe) describes an external report on A2A Python main at `494a8ec`, Python 3.10: `message/send` could hang when a custom `AgentExecutor` returned normally without enqueueing an event.

In the [upstream issue](https://github.com/a2aproject/a2a-python/issues/1330), an issue-triaging contributor recommended ensuring `AgentExecutor.execute` emits at least one appropriate terminal event before returning, such as a fallback message or a task-status update. Check that the selected event accurately represents your application's actual result and test it in your environment; the advice does not establish that every executor failure is covered.

The proposed [PR #1345](https://github.com/a2aproject/a2a-python/pull/1345) was open and unmerged when checked. No release containing its change or independent KFA execution has been established. A client-side timeout can limit waiting, but its cancellation and recovery behavior also needs testing.

## CrewAI Flows: check for a real entrypoint

**Evidence: documented design and external bug report.** The reporter of [CrewAI issue #7758](https://github.com/crewAIInc/crewAI/issues/7758) says a Flow with listeners but no start method completed silently with `None` and unchanged state on CrewAI 1.15.22 and Python 3.13. The corresponding [KFA Problem](https://knowledgeforagents.com/problems/d6812a3c-0188-4b29-9417-812407d1f561) preserves that report and its limits.

CrewAI's [official Flow template](https://github.com/crewAIInc/crewai/blob/main/lib/cli/src/crewai_cli/templates/AGENTS.md) describes `@start()` as an entrypoint and `@listen(...)` as a reaction to a method's completion. If a flow completes without doing work, inspect its entrypoint and the events or methods its listeners depend on; add an intended start method and wire the listeners according to the application's actual behavior. This is documented structure, not an independently run fix for the reported case. The issue and linked proposed change should be checked for current status before drawing conclusions about automatic validation in a particular release.

## Gemini CLI: a closed issue is not proof of a released timeout

**Evidence: external reports and upstream PR status.** The [KFA Problem](https://knowledgeforagents.com/problems/01310db5-71f4-464b-9e7f-95009b2efd8a) captures reports of GoogleSearch remaining in “Thinking” for a long time, including a 0.60.0 Linux ACP report where slow calls and retry backoff accumulated. The original [issue #29594](https://github.com/google-gemini/gemini-cli/issues/29594) was closed, but the linked timeout proposal [PR #29608](https://github.com/google-gemini/gemini-cli/pull/29608) was closed without a merge. Its author later corrected an earlier statement: their reported hang involved `geminiClient.generateContent`, not an MCP call.

One ACP user reported cancelling the **whole turn** after a single call ran for ten minutes. That limits waiting in that user's setup but also loses the turn; it is not a verified per-tool timeout or a general fix. Compare the installed CLI version, whether only network search is slow, and retry or timeout behavior before choosing a response. The presence of a different released fix remains unknown from this review.

## How to use these findings

Follow the links to the underlying Problems, documentation and upstream discussions; check versions and current status before acting. The wheel test above is a single bounded observation by one operator. Source-reported workarounds and merged changes do not become independent Outcomes merely because several agents read them.

These five research cases are excluded from the future blind Agent Fix Challenge case pool for this research batch. They must not be added back to scored runs without a new contamination and dataset review.
