Daniel by Cognitive AIOpen Daniel

Daniel on the hardest SWE-bench Verified issues

SWE-bench Verified is the industry's standard test for AI software engineers: real GitHub issues from major open-source projects, graded by tests the agent never sees. We ran Daniel on 24 of its hardest issues, each rated one to four hours or more for an experienced engineer, and compared it with every agent that publishes per-issue results on the same issues.

19 of 24

Issues resolved by Daniel on its first and only attempt.

18 of 24

Best published agent on the same issues (live-SWE-agent).

3

Issues Daniel resolved that none of the 13 published agents did.

$0.29

Average model cost per issue. Median time: 5 minutes.

Same issues, published results

Each agent's result comes from its own submission to the public SWE-bench experiments repository, filtered to these 24 issues. Devin and Cursor do not publish per-issue SWE-bench Verified results, so they cannot be compared issue by issue.

AgentModelSubmittedResolved
DanielClaude Haiku, Sonnet and Opus, routed per step (standard mode)Oct 202619 of 24
live-SWE-agentClaude Opus 4.5Dec 202518 of 24
mini-SWE-agentGemini 3.5 FlashSep 202615 of 24
mini-SWE-agentClaude Opus 4.6Feb 202613 of 24
Sonar Foundation AgentClaude Opus 4.5Dec 202513 of 24
mini-SWE-agentGPT-5.2 (high)Feb 202612 of 24
OpenHandsClaude Opus 4.5Nov 202512 of 24
WarpMultiple (undisclosed)Sep 202512 of 24
Augment Agent v1UndisclosedJun 202512 of 24
mini-SWE-agentClaude Opus 4.5 (high)Feb 202611 of 24
TRAEUndisclosedMay 202510 of 24
Amazon Q Developer AgentUndisclosedApr 20257 of 24
Google JulesGemini 2.0 FlashDec 20242 of 24
Factory Code DroidUndisclosedJun 20242 of 24

Every issue

IssueExpert estimateDanielPublished agents that solved it
django__django-11138
TIME_ZONE value in DATABASES settings is not used when making dates timezone-aware on MySQL, SQLite, and Oracl
1-4 hours✅
1/1 target · 73/73 regression
4 min · $0.44
8 of 13
django__django-11400
Ordering problem in admin.RelatedFieldListFilter and admin.RelatedOnlyFieldListFilter
1-4 hours✅
6/6 target · 58/58 regression
3 min · $0.17
0 of 13
django__django-12708
Migration crashes deleting an index_together if there is a unique_together on the same fields
1-4 hours✅
1/1 target · 101/101 regression
2 min · $0.10
12 of 13
django__django-13128
make temporal subtraction work without ExpressionWrapper
1-4 hours✅
7/7 target · 134/134 regression
16 min · $0.38
12 of 13
django__django-13212
Make validators include the provided value in ValidationError
1-4 hours❌
3/5 target · 2/2 regression
4 min · $0.15
0 of 13
django__django-13344
Coroutine passed to the first middleware's process_response() instead of HttpResponse.
1-4 hours✅
2/2 target · 356/356 regression
5 min · $0.14
3 of 13
django__django-13837
Allow autoreloading of `python -m pkg_other_than_django runserver`
1-4 hours✅
1/1 target · 57/57 regression
2 min · $0.05
10 of 13
django__django-14007
Database converters (from_db_value) not called for returning_fields on insert
1-4 hours✅
1/1 target · 12/12 regression
2 min · $0.22
12 of 13
django__django-14011
LiveServerTestCase's ThreadedWSGIServer doesn't close database connections after each thread
1-4 hours✅
17/17 target · 2/2 regression
6 min · $0.40
0 of 13
django__django-14631
BaseForm's _clean_fields() and changed_data should access values via BoundField
1-4 hours✅
2/2 target · 117/117 regression
2 min · $0.12
11 of 13
django__django-15128
Query.change_aliases raises an AssertionError
1-4 hours✅
1/1 target · 282/282 regression
5 min · $0.23
10 of 13
django__django-15503
has_key, has_keys, and has_any_keys JSONField() lookups don't handle numeric keys on SQLite, MySQL, and Oracle
1-4 hours✅
2/2 target · 78/78 regression
2 min · $0.24
7 of 13
django__django-15629
Errors with db_collation – no propagation to foreignkeys
1-4 hours✅
2/2 target · 115/115 regression
18 min · $0.54
0 of 13
django__django-16263
Strip unused annotations from count queries
1-4 hours❌
1/3 target · 100/100 regression
12 min · $0.41
0 of 13
django__django-16560
Allow to customize the code attribute of ValidationError raised by BaseConstraint.validate
1-4 hours❌
8/8 target · 65/66 regression
3 min · $0.24
7 of 13
pylint-dev__pylint-8898
bad-names-rgxs mangles regular expressions with commas
1-4 hours✅
1/1 target · 18/18 regression
1 min · $0.10
2 of 13
pytest-dev__pytest-5787
exception serialization should include chained exceptions
1-4 hours✅
2/2 target · 123/123 regression
11 min · $0.28
8 of 13
pytest-dev__pytest-6197
Regression in 5.2.3: pytest tries to collect random __init__.py files
1-4 hours✅
2/2 target · 145/145 regression
14 min · $0.26
9 of 13
sphinx-doc__sphinx-8548
autodoc inherited-members won't work for inherited attributes (data members).
1-4 hours✅
1/1 target · 5/5 regression
5 min · $0.22
4 of 13
sphinx-doc__sphinx-9461
Methods decorated with @classmethod and @property do not get documented.
1-4 hours✅
3/3 target · 59/59 regression
4 min · $0.26
1 of 13
sympy__sympy-12489
combinatorics.Permutation can't be subclassed properly
1-4 hours✅
1/1 target · 8/8 regression
7 min · $0.16
8 of 13
sympy__sympy-13878
Precompute the CDF of several distributions where integration doesn't work well
>4 hours✅
1/1 target · 19/19 regression
58 min · $1.54
9 of 13
sympy__sympy-14248
The difference of MatrixSymbols prints as a sum with (-1) coefficient
1-4 hours❌
1/2 target · 433/433 regression
5 min · $0.25
5 of 13
sympy__sympy-16597
a.is_even does not imply a.is_finite
1-4 hours❌
0/3 target · 74/74 regression
9 min · $0.13
1 of 13

"Target" tests are the issue's FAIL_TO_PASS tests; "regression" tests are its PASS_TO_PASS tests. An issue counts as resolved only when all of both pass. Daniel's full patch for every issue, solved or not, is public: download all patches and grades (JSON).

Method

  1. Issues. 25 issues from SWE-bench Verified's two hardest difficulty groups ("1–4 hours" and ">4 hours"), across Django, SymPy, Sphinx, pytest, pylint and xarray. We picked issues that published agents often fail, so this set is harder than the benchmark as a whole.
  2. What Daniel saw. The repository at the issue's base commit and the issue text, nothing else: no hints, no hidden tests and no reference fix. Daniel ran in its standard mode with one attempt per issue, a 60-minute limit and a $6 budget.
  3. Environment. Each project's pinned Python environment from SWE-bench's own environment files, built in an isolated sandbox. Before grading Daniel, we applied the maintainers' reference fix to the same environment and confirmed it passes, so a broken setup can never count against Daniel.
  4. Grading. Exactly the SWE-bench rules: apply Daniel's patch, restore and apply the hidden tests, run them, and read the log with the official SWE-bench log parsers. Resolved means every target and regression test passes.

What to keep in mind