@tangle-network/agent-bench 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/adapters.js +2 -2
  3. package/dist/benchmarks/humaneval.d.ts +10 -1
  4. package/dist/benchmarks/humaneval.js +5 -3
  5. package/dist/{chunk-PPYSEKFM.js → chunk-5H5XV76F.js} +73 -15
  6. package/dist/chunk-5H5XV76F.js.map +1 -0
  7. package/dist/{chunk-5SBJCB6W.js → chunk-PWQVGAJB.js} +2 -2
  8. package/dist/index.js +2 -2
  9. package/package.json +5 -4
  10. package/scripts/run-package-tests.mjs +30 -8
  11. package/scripts/verify-pier-agent.mts +1 -0
  12. package/src/benchmarks/humaneval.test.mts +122 -0
  13. package/src/benchmarks/humaneval.ts +100 -27
  14. package/src/david-attribution.mts +78 -0
  15. package/src/david-goliath.mts +149 -0
  16. package/src/hev-improve.mts +25 -6
  17. package/src/humaneval-object-ablation.mts +201 -0
  18. package/src/live-improve-campaign-mbpp.mts +641 -0
  19. package/src/live-improve-campaign.mts +500 -0
  20. package/src/mbpp-structural.mts +12 -7
  21. package/src/stream-observe.py +45 -0
  22. package/src/stream-observe.tpl.html +247 -0
  23. package/src/supervisor-arena.mts +816 -0
  24. package/src/swe-arena/analyze.ts +211 -0
  25. package/src/swe-arena/arms.ts +788 -0
  26. package/src/swe-arena/bootstrap-meta.mts +188 -0
  27. package/src/swe-arena/bootstrap-meta.test.mts +51 -0
  28. package/src/swe-arena/calibrate.ts +116 -0
  29. package/src/swe-arena/capabilities.mts +76 -0
  30. package/src/swe-arena/capabilities.test.mts +57 -0
  31. package/src/swe-arena/capacity.ts +194 -0
  32. package/src/swe-arena/cell-evidence.mts +405 -0
  33. package/src/swe-arena/cell-evidence.test.mts +248 -0
  34. package/src/swe-arena/diagnosis-ensemble.test.mts +210 -0
  35. package/src/swe-arena/diagnosis-ensemble.ts +520 -0
  36. package/src/swe-arena/execution.test.mts +1170 -0
  37. package/src/swe-arena/fixtures/analyze.py +80 -0
  38. package/src/swe-arena/fixtures/excludes.txt +8 -0
  39. package/src/swe-arena/fixtures/gen1-salvage/README.md +45 -0
  40. package/src/swe-arena/fixtures/gen1-salvage/cand0-e6d7361.diff +116 -0
  41. package/src/swe-arena/fixtures/gen1-salvage/cand1-76a8590.diff +293 -0
  42. package/src/swe-arena/fixtures/holdout-preregister.log +12 -0
  43. package/src/swe-arena/fixtures/holdout.json +44 -0
  44. package/src/swe-arena/fixtures/instances.json +146 -0
  45. package/src/swe-arena/fixtures/ledger.jsonl +12 -0
  46. package/src/swe-arena/fixtures/patches/pallets__flask-5014.solo.patch +36 -0
  47. package/src/swe-arena/fixtures/patches/pydata__xarray-4687.sup.patch +33 -0
  48. package/src/swe-arena/fixtures/rejudge.jsonl +15 -0
  49. package/src/swe-arena/fixtures/rematch.jsonl +3 -0
  50. package/src/swe-arena/fixtures/rematch2.jsonl +3 -0
  51. package/src/swe-arena/fixtures/rematch3.jsonl +3 -0
  52. package/src/swe-arena/fixtures/sup-journal-true.json +19 -0
  53. package/src/swe-arena/fixtures/verify/astropy__astropy-13033.sh +48 -0
  54. package/src/swe-arena/fixtures/verify/django__django-11532.sh +50 -0
  55. package/src/swe-arena/fixtures/verify/matplotlib__matplotlib-20826.sh +76 -0
  56. package/src/swe-arena/fixtures/verify/pydata__xarray-4687.sh +44 -0
  57. package/src/swe-arena/fixtures/verify/pytest-dev__pytest-6197.sh +32 -0
  58. package/src/swe-arena/fixtures/verify/sphinx-doc__sphinx-9658.sh +51 -0
  59. package/src/swe-arena/fixtures/worker-tokens.json +42 -0
  60. package/src/swe-arena/fixtures.ts +104 -0
  61. package/src/swe-arena/holdout-certify.mts +408 -0
  62. package/src/swe-arena/holdout-certify.test.mts +160 -0
  63. package/src/swe-arena/judge-child.mts +37 -0
  64. package/src/swe-arena/manifest.mts +293 -0
  65. package/src/swe-arena/manifest.test.mts +169 -0
  66. package/src/swe-arena/materialize.ts +142 -0
  67. package/src/swe-arena/outer-loop.mts +2145 -0
  68. package/src/swe-arena/outer-loop.test.mts +696 -0
  69. package/src/swe-arena/parity.test.mts +87 -0
  70. package/src/swe-arena/proc.test.mts +174 -0
  71. package/src/swe-arena/proc.ts +260 -0
  72. package/src/swe-arena/profiles/default-author.profile.json +4 -0
  73. package/src/swe-arena/proposer-fanout.mts +489 -0
  74. package/src/swe-arena/proposer-fanout.test.mts +372 -0
  75. package/src/swe-arena/reconcile.ts +0 -0
  76. package/src/swe-arena/replay.mts +183 -0
  77. package/src/swe-arena/replay.test.mts +300 -0
  78. package/src/swe-arena/run-experiment.mts +361 -0
  79. package/src/swe-arena/run-supervisor.mjs +297 -0
  80. package/src/swe-arena/run-supervisor.test.mts +498 -0
  81. package/src/swe-arena/serialized-judge.ts +414 -0
  82. package/src/swe-arena/types.ts +166 -0
  83. package/src/swe-code-improve.mts +328 -0
  84. package/src/swe-emit-patch.mts +104 -0
  85. package/src/swe-improve.mts +232 -0
  86. package/src/swe-jail.ts +2 -2
  87. package/src/swe-local-proof.mts +169 -0
  88. package/src/swe-repro-calibrate.mts +446 -0
  89. package/src/swe-stream.mts +1497 -0
  90. package/dist/chunk-PPYSEKFM.js.map +0 -1
  91. /package/dist/{chunk-5SBJCB6W.js.map → chunk-PWQVGAJB.js.map} +0 -0
@@ -0,0 +1,44 @@
1
+ [
2
+ {
3
+ "iid": "astropy__astropy-14182",
4
+ "repo": "astropy/astropy",
5
+ "gold_official_resolved": true,
6
+ "verify_calibrated": true,
7
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
8
+ },
9
+ {
10
+ "iid": "django__django-12774",
11
+ "repo": "django/django",
12
+ "gold_official_resolved": true,
13
+ "verify_calibrated": true,
14
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
15
+ },
16
+ {
17
+ "iid": "django__django-14140",
18
+ "repo": "django/django",
19
+ "gold_official_resolved": true,
20
+ "verify_calibrated": true,
21
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
22
+ },
23
+ {
24
+ "iid": "scikit-learn__scikit-learn-14894",
25
+ "repo": "scikit-learn/scikit-learn",
26
+ "gold_official_resolved": true,
27
+ "verify_calibrated": true,
28
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
29
+ },
30
+ {
31
+ "iid": "sympy__sympy-20438",
32
+ "repo": "sympy/sympy",
33
+ "gold_official_resolved": true,
34
+ "verify_calibrated": true,
35
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
36
+ },
37
+ {
38
+ "iid": "pytest-dev__pytest-7236",
39
+ "repo": "pytest-dev/pytest",
40
+ "gold_official_resolved": true,
41
+ "verify_calibrated": true,
42
+ "selected_at_commit": "4a06fc54bd180789d1402c843a63ed245df9f8eb"
43
+ }
44
+ ]
@@ -0,0 +1,146 @@
1
+ {
2
+ "astropy__astropy-13033": {
3
+ "base_commit": "298ccb478e6bf092953bca67a3d29dc6c35f6752",
4
+ "environment_setup_commit": "298ccb478e6bf092953bca67a3d29dc6c35f6752",
5
+ "image": "swebench/sweb.eval.x86_64.astropy_1776_astropy-13033:latest",
6
+ "repo": "astropy/astropy"
7
+ },
8
+ "astropy__astropy-14182": {
9
+ "base_commit": "a5917978be39d13cd90b517e1de4e7a539ffaa48",
10
+ "environment_setup_commit": "5f74eacbcc7fff707a44d8eb58adaa514cb7dcb5",
11
+ "image": "swebench/sweb.eval.x86_64.astropy_1776_astropy-14182:latest",
12
+ "repo": "astropy/astropy"
13
+ },
14
+ "astropy__astropy-14369": {
15
+ "base_commit": "fa4e8d1cd279acf9b24560813c8652494ccd5922",
16
+ "environment_setup_commit": "5f74eacbcc7fff707a44d8eb58adaa514cb7dcb5",
17
+ "image": "swebench/sweb.eval.x86_64.astropy_1776_astropy-14369:latest",
18
+ "repo": "astropy/astropy"
19
+ },
20
+ "astropy__astropy-14508": {
21
+ "base_commit": "a3f4ae6cd24d5ecdf49f213d77b3513dd509a06c",
22
+ "environment_setup_commit": "5f74eacbcc7fff707a44d8eb58adaa514cb7dcb5",
23
+ "image": "swebench/sweb.eval.x86_64.astropy_1776_astropy-14508:latest",
24
+ "repo": "astropy/astropy"
25
+ },
26
+ "django__django-11532": {
27
+ "base_commit": "a5308514fb4bc5086c9a16a8a24a945eeebb073c",
28
+ "environment_setup_commit": "419a78300f7cd27611196e1e464d50fd0385ff27",
29
+ "image": "swebench/sweb.eval.x86_64.django_1776_django-11532:latest",
30
+ "repo": "django/django"
31
+ },
32
+ "django__django-12774": {
33
+ "base_commit": "67f9d076cfc1858b94f9ed6d1a5ce2327dcc8d0d",
34
+ "environment_setup_commit": "0668164b4ac93a5be79f5b87fae83c657124d9ab",
35
+ "image": "swebench/sweb.eval.x86_64.django_1776_django-12774:latest",
36
+ "repo": "django/django"
37
+ },
38
+ "django__django-14140": {
39
+ "base_commit": "45814af6197cfd8f4dc72ee43b90ecde305a1d5a",
40
+ "environment_setup_commit": "475cffd1d64c690cdad16ede4d5e81985738ceb4",
41
+ "image": "swebench/sweb.eval.x86_64.django_1776_django-14140:latest",
42
+ "repo": "django/django"
43
+ },
44
+ "matplotlib__matplotlib-20826": {
45
+ "base_commit": "a0d2e399729d36499a1924e5ca5bc067c8396810",
46
+ "environment_setup_commit": "f93c0a3dcb82feed0262d758626c90d4002685f3",
47
+ "image": "swebench/sweb.eval.x86_64.matplotlib_1776_matplotlib-20826:latest",
48
+ "repo": "matplotlib/matplotlib"
49
+ },
50
+ "mwaskom__seaborn-3187": {
51
+ "base_commit": "22cdfb0c93f8ec78492d87edb810f10cb7f57a31",
52
+ "environment_setup_commit": "d25872b0fc99dbf7e666a91f59bd4ed125186aa1",
53
+ "image": "swebench/sweb.eval.x86_64.mwaskom_1776_seaborn-3187:latest",
54
+ "repo": "mwaskom/seaborn"
55
+ },
56
+ "pallets__flask-5014": {
57
+ "base_commit": "7ee9ceb71e868944a46e1ff00b506772a53a4f1d",
58
+ "environment_setup_commit": "182ce3dd15dfa3537391c3efaf9c3ff407d134d4",
59
+ "image": "swebench/sweb.eval.x86_64.pallets_1776_flask-5014:latest",
60
+ "repo": "pallets/flask"
61
+ },
62
+ "psf__requests-1766": {
63
+ "base_commit": "847735553aeda6e6633f2b32e14ba14ba86887a4",
64
+ "environment_setup_commit": "4bceb312f1b99d36a25f2985b5606e98b6f0d8cd",
65
+ "image": "swebench/sweb.eval.x86_64.psf_1776_requests-1766:latest",
66
+ "repo": "psf/requests"
67
+ },
68
+ "psf__requests-2317": {
69
+ "base_commit": "091991be0da19de9108dbe5e3752917fea3d7fdc",
70
+ "environment_setup_commit": "091991be0da19de9108dbe5e3752917fea3d7fdc",
71
+ "image": "swebench/sweb.eval.x86_64.psf_1776_requests-2317:latest",
72
+ "repo": "psf/requests"
73
+ },
74
+ "psf__requests-2931": {
75
+ "base_commit": "5f7a3a74aab1625c2bb65f643197ee885e3da576",
76
+ "environment_setup_commit": "bbeb0001cdc657ac8c7fef98e154229bc392db0e",
77
+ "image": "swebench/sweb.eval.x86_64.psf_1776_requests-2931:latest",
78
+ "repo": "psf/requests"
79
+ },
80
+ "pydata__xarray-4687": {
81
+ "base_commit": "d3b6aa6d8b997df115a53c001d00222a0f92f63a",
82
+ "environment_setup_commit": "1c198a191127c601d091213c4b3292a8bb3054e1",
83
+ "image": "swebench/sweb.eval.x86_64.pydata_1776_xarray-4687:latest",
84
+ "repo": "pydata/xarray"
85
+ },
86
+ "pylint-dev__pylint-8898": {
87
+ "base_commit": "1f8c4d9eb185c16a2c1d881c054f015e1c2eb334",
88
+ "environment_setup_commit": "a0ce6e424e3a208f3aed1cbf6e16c40853bec3c0",
89
+ "image": "swebench/sweb.eval.x86_64.pylint-dev_1776_pylint-8898:latest",
90
+ "repo": "pylint-dev/pylint"
91
+ },
92
+ "pytest-dev__pytest-6197": {
93
+ "base_commit": "e856638ba086fcf5bebf1bebea32d5cf78de87b4",
94
+ "environment_setup_commit": "f36ea240fe3579f945bf5d6cc41b5e45a572249d",
95
+ "image": "swebench/sweb.eval.x86_64.pytest-dev_1776_pytest-6197:latest",
96
+ "repo": "pytest-dev/pytest"
97
+ },
98
+ "pytest-dev__pytest-7236": {
99
+ "base_commit": "c98bc4cd3d687fe9b392d8eecd905627191d4f06",
100
+ "environment_setup_commit": "678c1a0745f1cf175c442c719906a1f13e496910",
101
+ "image": "swebench/sweb.eval.x86_64.pytest-dev_1776_pytest-7236:latest",
102
+ "repo": "pytest-dev/pytest"
103
+ },
104
+ "scikit-learn__scikit-learn-14087": {
105
+ "base_commit": "a5743ed36fbd3fbc8e351bdab16561fbfca7dfa1",
106
+ "environment_setup_commit": "7e85a6d1f038bbb932b36f18d75df6be937ed00d",
107
+ "image": "swebench/sweb.eval.x86_64.scikit-learn_1776_scikit-learn-14087:latest",
108
+ "repo": "scikit-learn/scikit-learn"
109
+ },
110
+ "scikit-learn__scikit-learn-14894": {
111
+ "base_commit": "fdbaa58acbead5a254f2e6d597dc1ab3b947f4c6",
112
+ "environment_setup_commit": "7e85a6d1f038bbb932b36f18d75df6be937ed00d",
113
+ "image": "swebench/sweb.eval.x86_64.scikit-learn_1776_scikit-learn-14894:latest",
114
+ "repo": "scikit-learn/scikit-learn"
115
+ },
116
+ "sphinx-doc__sphinx-9658": {
117
+ "base_commit": "232dbe41c5250eb7d559d40438c4743483e95f15",
118
+ "environment_setup_commit": "6c6cc8a6f50b18331cb818160d168d7bb9c03e55",
119
+ "image": "swebench/sweb.eval.x86_64.sphinx-doc_1776_sphinx-9658:latest",
120
+ "repo": "sphinx-doc/sphinx"
121
+ },
122
+ "sympy__sympy-14976": {
123
+ "base_commit": "9cbea134220b0b951587e11b63e2c832c7246cbc",
124
+ "environment_setup_commit": "e53e809176de9aa0fb62e85689f8cdb669d4cacb",
125
+ "image": "swebench/sweb.eval.x86_64.sympy_1776_sympy-14976:latest",
126
+ "repo": "sympy/sympy"
127
+ },
128
+ "sympy__sympy-17318": {
129
+ "base_commit": "d4e0231b08147337745dcf601e62de7eefe2fb2d",
130
+ "environment_setup_commit": "70381f282f2d9d039da860e391fe51649df2779d",
131
+ "image": "swebench/sweb.eval.x86_64.sympy_1776_sympy-17318:latest",
132
+ "repo": "sympy/sympy"
133
+ },
134
+ "sympy__sympy-20438": {
135
+ "base_commit": "33b47e4bd60e2302e42616141e76285038b724d6",
136
+ "environment_setup_commit": "3ac1464b8840d5f8b618a654f9fbf09c452fe969",
137
+ "image": "swebench/sweb.eval.x86_64.sympy_1776_sympy-20438:latest",
138
+ "repo": "sympy/sympy"
139
+ },
140
+ "sympy__sympy-23534": {
141
+ "base_commit": "832c24fec1046eaa544a4cab4c69e3af3e651759",
142
+ "environment_setup_commit": "9a6104eab0ea7ac191a09c24f3e2d79dcd66bda5",
143
+ "image": "swebench/sweb.eval.x86_64.sympy_1776_sympy-23534:latest",
144
+ "repo": "sympy/sympy"
145
+ }
146
+ }
@@ -0,0 +1,12 @@
1
+ {"iid": "pallets__flask-5014", "solo_resolved": true, "sup_resolved": true, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 36, "sup_patch_lines": 14, "solo_wall_s": 116, "sup_wall_s": 261, "solo_tokens": 30738, "solo_usage": {"steps": 20, "in": 26753, "out": 3035, "reasoning": 950, "cache_w": 0, "cache_r": 532096, "max_ctx": 33285, "oc_cost": 0.0, "total_io": 30738}, "sup_spentTokens": 15731, "sup_spentUsd": 0.012379399999999999, "sup_spawned": 2, "sup_settled": 1, "sup_subtasks": [], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pallets__flask-5014.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pallets__flask-5014.sup.patch", "_note": "sup patch re-extracted vs BASE commit (supervisor commits delivery); re-judged resolved=true"}
2
+ {"iid": "psf__requests-2931", "solo_resolved": false, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 15, "sup_patch_lines": 96, "solo_wall_s": 166, "sup_wall_s": 1058, "solo_tokens": 23145, "solo_usage": {"steps": 25, "in": 16970, "out": 3037, "reasoning": 3138, "cache_w": 0, "cache_r": 695104, "max_ctx": 35652, "oc_cost": 0.0, "total_io": 23145}, "sup_spentTokens": 54894, "sup_spentUsd": 0.0426564, "sup_spawned": 3, "sup_workers": 2, "sup_settled": 2, "sup_subtasks": ["fix-binary-payload-to_native_string", "refine-actual-to_native_string-fix"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2931.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2931.sup.patch"}
3
+ {"iid": "psf__requests-2317", "solo_resolved": false, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 13, "sup_patch_lines": 68, "solo_wall_s": 131, "sup_wall_s": 682, "solo_tokens": 38719, "solo_usage": {"steps": 22, "in": 34502, "out": 2802, "reasoning": 1415, "cache_w": 0, "cache_r": 738816, "max_ctx": 41281, "oc_cost": 0.0, "total_io": 38719}, "sup_spentTokens": 26076, "sup_spentUsd": 0.0216536, "sup_spawned": 2, "sup_workers": 1, "sup_settled": 1, "sup_subtasks": ["fix-bytes-method-handling"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.sup.patch"}
4
+ {"iid": "psf__requests-1766", "solo_resolved": true, "sup_resolved": true, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 13, "sup_patch_lines": 13, "solo_wall_s": 34, "sup_wall_s": 352, "solo_tokens": 19500, "solo_usage": {"steps": 8, "in": 18828, "out": 596, "reasoning": 76, "cache_w": 0, "cache_r": 176832, "max_ctx": 25468, "oc_cost": 0.0, "total_io": 19500}, "sup_spentTokens": 38224, "sup_spentUsd": 0.02752, "sup_spawned": 3, "sup_workers": 2, "sup_settled": 2, "sup_subtasks": ["survey-digest-auth", "fix-qop-quoting"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-1766.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-1766.sup.patch", "_note": "sup patch byte-identical to solo patch; original sup judge false was a flake; re-judged 2x stable resolved=true"}
5
+ {"iid": "sympy__sympy-23534", "solo_resolved": true, "sup_resolved": true, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 13, "sup_patch_lines": 13, "solo_wall_s": 150, "sup_wall_s": 212, "solo_tokens": 39965, "solo_usage": {"steps": 25, "in": 34557, "out": 4085, "reasoning": 1323, "cache_w": 0, "cache_r": 761984, "max_ctx": 40877, "oc_cost": 0.0, "total_io": 39965}, "sup_spentTokens": 26274, "sup_spentUsd": 0.0238716, "sup_spawned": 2, "sup_workers": 1, "sup_settled": 1, "sup_subtasks": ["fix-symbols-cls-propagation"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sympy__sympy-23534.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sympy__sympy-23534.sup.patch"}
6
+ {"iid": "sympy__sympy-14976", "solo_resolved": true, "sup_resolved": true, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 17, "sup_patch_lines": 16, "solo_wall_s": 212, "sup_wall_s": 337, "solo_tokens": 60193, "solo_usage": {"steps": 42, "in": 52108, "out": 5940, "reasoning": 2145, "cache_w": 0, "cache_r": 1951168, "max_ctx": 57875, "oc_cost": 0.0, "total_io": 60193}, "sup_spentTokens": 28694, "sup_spentUsd": 0.0270036, "sup_spawned": 2, "sup_workers": 1, "sup_settled": 1, "sup_subtasks": ["fix-mpmath-rational-wrapping"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sympy__sympy-14976.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sympy__sympy-14976.sup.patch"}
7
+ {"iid": "astropy__astropy-13033", "solo_resolved": true, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": false, "solo_patch_lines": 34, "sup_patch_lines": 0, "solo_wall_s": 350, "sup_wall_s": 1550, "solo_tokens": 59496, "solo_usage": {"steps": 35, "in": 48041, "out": 6296, "reasoning": 5159, "cache_w": 0, "cache_r": 1401408, "max_ctx": 53915, "oc_cost": 0.0, "total_io": 59496}, "sup_spentTokens": 0, "sup_spentUsd": 0, "sup_spawned": 4, "sup_workers": 3, "sup_settled": 3, "sup_subtasks": ["fix-timeseries-misleading-exception", "apply-and-verify-timeseries-fix", "apply-and-verify-timeseries-fix-v2"], "sup_delivered": false, "sup_status": "completed", "sup_verdict": "no-winner", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/astropy__astropy-13033.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/astropy__astropy-13033.sup.patch"}
8
+ {"iid": "pydata__xarray-4687", "solo_resolved": false, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": true, "solo_patch_lines": 32, "sup_patch_lines": 33, "solo_wall_s": 322, "sup_wall_s": 504, "solo_tokens": 56098, "solo_usage": {"steps": 45, "in": 47437, "out": 5678, "reasoning": 2983, "cache_w": 0, "cache_r": 1823296, "max_ctx": 53147, "oc_cost": 0.0, "total_io": 56098}, "sup_spentTokens": 27341, "sup_spentUsd": 0.020335799999999998, "sup_spawned": 2, "sup_workers": 1, "sup_settled": 1, "sup_subtasks": ["where-keep-attrs-fix"], "sup_delivered": true, "sup_status": "completed", "sup_verdict": "delivered", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pydata__xarray-4687.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pydata__xarray-4687.sup.patch"}
9
+ {"iid": "django__django-11532", "solo_resolved": true, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": false, "solo_patch_lines": 40, "sup_patch_lines": 0, "solo_wall_s": 293, "sup_wall_s": 1704, "solo_tokens": 65706, "solo_usage": {"steps": 23, "in": 53078, "out": 4289, "reasoning": 8339, "cache_w": 0, "cache_r": 1005248, "max_ctx": 59360, "oc_cost": 0.0, "total_io": 65706}, "sup_spentTokens": null, "sup_spentUsd": null, "sup_spawned": 5, "sup_workers": 4, "sup_settled": 3, "sup_subtasks": ["fix-unicode-dns-punycode", "apply-and-verify-punycode", "minimal-fix-verify", "edit-files-and-run-tests"], "sup_delivered": null, "sup_status": "running", "sup_verdict": null, "solo_oc_rc": 0, "sup_driver_rc": 3, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/django__django-11532.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/django__django-11532.sup.patch"}
10
+ {"iid": "pytest-dev__pytest-6197", "solo_resolved": false, "sup_resolved": false, "solo_verify_pass": false, "sup_verify_pass": false, "solo_patch_lines": 0, "sup_patch_lines": 0, "solo_wall_s": 755, "sup_wall_s": 248, "solo_tokens": 133032, "solo_usage": {"steps": 37, "in": 90328, "out": 3993, "reasoning": 38711, "cache_w": 0, "cache_r": 1805248, "max_ctx": 96107, "oc_cost": 0.0, "total_io": 133032}, "sup_spentTokens": 0, "sup_spentUsd": 0, "sup_spawned": 1, "sup_workers": 0, "sup_settled": 0, "sup_subtasks": [], "sup_delivered": false, "sup_status": "completed", "sup_verdict": "no-winner", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pytest-dev__pytest-6197.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pytest-dev__pytest-6197.sup.patch"}
11
+ {"iid": "matplotlib__matplotlib-20826", "solo_resolved": true, "sup_resolved": false, "solo_verify_pass": true, "sup_verify_pass": false, "solo_patch_lines": 23, "sup_patch_lines": 0, "solo_wall_s": 1000, "sup_wall_s": 1702, "solo_tokens": 109119, "solo_usage": {"steps": 79, "in": 81255, "out": 14156, "reasoning": 13708, "cache_w": 0, "cache_r": 4371328, "max_ctx": 85881, "oc_cost": 0.0, "total_io": 109119}, "sup_spentTokens": null, "sup_spentUsd": null, "sup_spawned": 4, "sup_workers": 3, "sup_settled": 2, "sup_subtasks": ["survey-bug-location", "fix-axclear-ticks", "apply-and-verify"], "sup_delivered": null, "sup_status": "running", "sup_verdict": null, "solo_oc_rc": 124, "sup_driver_rc": 3, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/matplotlib__matplotlib-20826.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/matplotlib__matplotlib-20826.sup.patch"}
12
+ {"iid": "sphinx-doc__sphinx-9658", "solo_resolved": false, "sup_resolved": false, "solo_verify_pass": false, "sup_verify_pass": false, "solo_patch_lines": 0, "sup_patch_lines": 0, "solo_wall_s": 240, "sup_wall_s": 514, "solo_tokens": 39701, "solo_usage": {"steps": 19, "in": 33537, "out": 1934, "reasoning": 4230, "cache_w": 0, "cache_r": 577152, "max_ctx": 40548, "oc_cost": 0.0, "total_io": 39701}, "sup_spentTokens": 0, "sup_spentUsd": 0, "sup_spawned": 1, "sup_workers": 0, "sup_settled": 0, "sup_subtasks": [], "sup_delivered": false, "sup_status": "completed", "sup_verdict": "no-winner", "solo_oc_rc": 0, "sup_driver_rc": 0, "solo_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sphinx-doc__sphinx-9658.solo.patch", "sup_patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/sphinx-doc__sphinx-9658.sup.patch"}
@@ -0,0 +1,36 @@
1
+ diff --git a/CHANGES.rst b/CHANGES.rst
2
+ index 498d5e51..c37dd2a2 100644
3
+ --- a/CHANGES.rst
4
+ +++ b/CHANGES.rst
5
+ @@ -35,6 +35,7 @@ Unreleased
6
+ - Ensure subdomains are applied with nested blueprints. :issue:`4834`
7
+ - ``config.from_file`` can use ``text=False`` to indicate that the parser wants a
8
+ binary file instead. :issue:`4989`
9
+ +- A blueprint named with an empty string raises a ``ValueError``. :issue:`4944`
10
+
11
+
12
+ Version 2.2.4
13
+ diff --git a/src/flask/blueprints.py b/src/flask/blueprints.py
14
+ index eb50585d..a36722c9 100644
15
+ --- a/src/flask/blueprints.py
16
+ +++ b/src/flask/blueprints.py
17
+ @@ -159,6 +159,9 @@ class Blueprint(Scaffold):
18
+ automatic detection can fail, so the path can be specified
19
+ manually instead.
20
+
21
+ + .. versionchanged:: 2.3.0
22
+ + Avoids the ``name`` being an empty string, which can cause errors.
23
+ +
24
+ .. versionchanged:: 1.1.0
25
+ Blueprints have a ``cli`` group to register nested CLI commands.
26
+ The ``cli_group`` parameter controls the name of the group under
27
+ @@ -182,6 +185,9 @@ class Blueprint(Scaffold):
28
+ root_path: t.Optional[str] = None,
29
+ cli_group: t.Optional[str] = _sentinel, # type: ignore
30
+ ):
31
+ + if not name:
32
+ + raise ValueError("'name' may not be empty.")
33
+ +
34
+ super().__init__(
35
+ import_name=import_name,
36
+ static_folder=static_folder,
@@ -0,0 +1,33 @@
1
+ diff --git a/xarray/core/computation.py b/xarray/core/computation.py
2
+ index 9fe93c88..e2dd1c0b 100644
3
+ --- a/xarray/core/computation.py
4
+ +++ b/xarray/core/computation.py
5
+ @@ -1727,7 +1727,7 @@ def dot(*arrays, dims=None, **kwargs):
6
+ return result.transpose(*all_dims, missing_dims="ignore")
7
+
8
+
9
+ -def where(cond, x, y):
10
+ +def where(cond, x, y, keep_attrs=None):
11
+ """Return elements from `x` or `y` depending on `cond`.
12
+
13
+ Performs xarray-like broadcasting across input arguments.
14
+ @@ -1743,6 +1743,11 @@ def where(cond, x, y):
15
+ values to choose from where `cond` is True
16
+ y : scalar, array, Variable, DataArray or Dataset
17
+ values to choose from where `cond` is False
18
+ + keep_attrs : bool or None, optional
19
+ + If True, the attributes (``attrs``) will be copied
20
+ + from the first argument to the result. If None, the
21
+ + global default (``OPTIONS[keep_attrs]``) is used,
22
+ + which defaults to False.
23
+
24
+ Returns
25
+ -------
26
+ @@ -1817,6 +1822,7 @@ def where(cond, x, y):
27
+ join="exact",
28
+ dataset_join="exact",
29
+ dask="allowed",
30
+ + keep_attrs=keep_attrs,
31
+ )
32
+
33
+
@@ -0,0 +1,15 @@
1
+ {"iid": "pallets__flask-5014", "tag": "gold-control", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/gates/pallets__flask-5014.gold.patch", "resolved": true, "score": 1, "secs": 22, "patch_bytes": 390}
2
+ {"iid": "psf__requests-2931", "tag": "gold", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/gates/psf__requests-2931.gold.patch", "resolved": false, "score": 0, "secs": 26, "patch_bytes": 723}
3
+ {"iid": "psf__requests-2317", "tag": "gold", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/gates/psf__requests-2317.gold.patch", "resolved": null, "error": "parse", "raw": ""}
4
+ {"iid": "pydata__xarray-4687", "tag": "gold", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/gates/pydata__xarray-4687.gold.patch", "resolved": true, "score": 1, "secs": 71, "patch_bytes": 1539}
5
+ {"iid": "astropy__astropy-13033", "tag": "solo-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/astropy__astropy-13033.solo.patch", "resolved": true, "score": 1, "secs": 58, "patch_bytes": 1596}
6
+ {"iid": "django__django-11532", "tag": "solo-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/django__django-11532.solo.patch", "resolved": true, "score": 1, "secs": 29, "patch_bytes": 1349}
7
+ {"iid": "matplotlib__matplotlib-20826", "tag": "solo-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/matplotlib__matplotlib-20826.solo.patch", "resolved": true, "score": 1, "secs": 70, "patch_bytes": 1057}
8
+ {"iid": "psf__requests-2931", "tag": "sup-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2931.sup.patch", "resolved": false, "score": 0, "secs": 21, "patch_bytes": 3385}
9
+ {"iid": "psf__requests-2317", "tag": "solo-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.solo.patch", "resolved": null, "error": "parse", "raw": ""}
10
+ {"iid": "psf__requests-2317", "tag": "sup-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.sup.patch", "resolved": null, "error": "parse", "raw": ""}
11
+ {"iid": "pydata__xarray-4687", "tag": "solo-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pydata__xarray-4687.solo.patch", "resolved": false, "score": 0, "secs": 71, "patch_bytes": 1133}
12
+ {"iid": "pydata__xarray-4687", "tag": "sup-final", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/pydata__xarray-4687.sup.patch", "resolved": false, "score": 0, "secs": 68, "patch_bytes": 1142}
13
+ {"iid": "psf__requests-2317", "tag": "gold2", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/gates/psf__requests-2317.gold.patch", "resolved": false, "score": 0, "secs": 1142, "patch_bytes": 763}
14
+ {"iid": "psf__requests-2317", "tag": "solo-final2", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.solo.patch", "resolved": false, "score": 0, "secs": 1134, "patch_bytes": 396}
15
+ {"iid": "psf__requests-2317", "tag": "sup-final2", "patch": "/tmp/claude-1000/-home-drew-code-supervisor-lab/f06fd156-042a-4ef9-bd88-f2ec7f52b90c/scratchpad/hh/patches/psf__requests-2317.sup.patch", "resolved": false, "score": 0, "secs": 1129, "patch_bytes": 2362}
@@ -0,0 +1,3 @@
1
+ {"iid": "astropy__astropy-13033", "arm": "SUP2", "resolved": false, "verify_pass": true, "patch_lines": 48, "wall_s": 1262, "spawned": 8, "workers": 7, "sup_status": "completed", "sup_verdict": "best-effort", "delivered": true, "spentTokens": 146618}
2
+ {"iid": "django__django-11532", "arm": "SUP2", "resolved": false, "verify_pass": true, "patch_lines": 64, "wall_s": 1070, "spawned": 3, "workers": 2, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 54623}
3
+ {"iid": "matplotlib__matplotlib-20826", "arm": "SUP2", "resolved": false, "verify_pass": false, "patch_lines": 0, "wall_s": 1530, "spawned": 7, "workers": 6, "sup_status": "completed", "sup_verdict": "no-winner", "delivered": false, "spentTokens": 181765}
@@ -0,0 +1,3 @@
1
+ {"iid": "astropy__astropy-13033", "arm": "SUP3", "resolved": false, "verify_pass": true, "patch_lines": 47, "wall_s": 741, "spawned": 2, "workers": 1, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 28077}
2
+ {"iid": "django__django-11532", "arm": "SUP3", "resolved": false, "verify_pass": true, "patch_lines": 69, "wall_s": 1422, "spawned": 3, "workers": 2, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 56265}
3
+ {"iid": "matplotlib__matplotlib-20826", "arm": "SUP3", "resolved": false, "verify_pass": false, "patch_lines": 0, "wall_s": 1704, "spawned": 3, "workers": 2, "sup_status": "running", "sup_verdict": null, "delivered": null, "spentTokens": null}
@@ -0,0 +1,3 @@
1
+ {"iid": "astropy__astropy-13033", "arm": "SUP4", "resolved": false, "verify_pass": true, "patch_lines": 38, "wall_s": 555, "spawned": 3, "workers": 2, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 64387}
2
+ {"iid": "django__django-11532", "arm": "SUP4", "resolved": false, "verify_pass": true, "patch_lines": 50, "wall_s": 1031, "spawned": 4, "workers": 3, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 86094}
3
+ {"iid": "matplotlib__matplotlib-20826", "arm": "SUP4", "resolved": true, "verify_pass": true, "patch_lines": 23, "wall_s": 901, "spawned": 3, "workers": 2, "sup_status": "completed", "sup_verdict": "delivered", "delivered": true, "spentTokens": 62611}
@@ -0,0 +1,19 @@
1
+ {
2
+ "_provenance": {
3
+ "source": "runs/<iid>/SUP/ws/.loops/supervisor/*/journal.jsonl metered events, input+output summed",
4
+ "extraction": "identical to analyze.py _true_sup_tok; captured 2026-07-15 before scratchpad deletion",
5
+ "note": "null = no supervisor journal found; sphinx-doc__sphinx-9658 had a journal with zero metered events (true 0)"
6
+ },
7
+ "astropy__astropy-13033": 122399,
8
+ "django__django-11532": 125857,
9
+ "matplotlib__matplotlib-20826": 62872,
10
+ "pallets__flask-5014": 15731,
11
+ "psf__requests-1766": 38224,
12
+ "psf__requests-2317": 26076,
13
+ "psf__requests-2931": 54894,
14
+ "pydata__xarray-4687": 27341,
15
+ "pytest-dev__pytest-6197": 32192,
16
+ "sphinx-doc__sphinx-9658": 0,
17
+ "sympy__sympy-14976": 28694,
18
+ "sympy__sympy-23534": 26274
19
+ }
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env bash
2
+ # Self-repro verify for astropy__astropy-13033 — AUTHORED FROM THE PROBLEM
3
+ # STATEMENT ONLY (honesty firewall: gold patch never read by the author; it is
4
+ # applied mechanically by calibration). Exit 0 = fixed, nonzero = bug present.
5
+ #
6
+ # Issue: removing a required column from a TimeSeries raises a MISLEADING
7
+ # ValueError ("expected 'time' as the first columns but found 'time'") instead
8
+ # of telling the user which required columns are missing.
9
+ #
10
+ # Runs inside the instance's swebench image (conda testbed env) with the
11
+ # CURRENT worktree ($PWD) mounted read-only over /testbed — the same jail
12
+ # pattern as the repro calibrator (PYTHONPATH=/testbed is load-bearing).
13
+ set -euo pipefail
14
+ IMG="swebench/sweb.eval.x86_64.astropy_1776_astropy-13033:latest"
15
+ WS="${1:-$PWD}"
16
+ TMP="$(mktemp -d)"
17
+ trap 'rm -rf "$TMP"' EXIT
18
+ cat > "$TMP/repro.py" <<'PY'
19
+ import sys
20
+ import numpy as np
21
+ from astropy.time import Time
22
+ from astropy.timeseries import TimeSeries
23
+
24
+ time = Time(np.arange(100000, 100003), format='jd')
25
+ ts = TimeSeries(time=time, data={"flux": [99.9, 99.8, 99.7]})
26
+ ts._required_columns = ["time", "flux"]
27
+ try:
28
+ ts.remove_column("flux")
29
+ except ValueError as e:
30
+ msg = str(e)
31
+ print("ValueError:", msg)
32
+ # Fixed behavior: the exception tells the user required column(s) are
33
+ # missing — it must name the missing column ('flux') or say "missing".
34
+ if "flux" in msg or "missing" in msg.lower():
35
+ print("VERIFY PASS: exception names the missing required column")
36
+ sys.exit(0)
37
+ print("VERIFY FAIL: misleading exception (does not name the missing required column)")
38
+ sys.exit(1)
39
+ except Exception as e: # any other exception type is not the informative error either
40
+ print("VERIFY FAIL: unexpected exception:", type(e).__name__, e)
41
+ sys.exit(1)
42
+ print("VERIFY FAIL: no exception raised on removing a required column")
43
+ sys.exit(1)
44
+ PY
45
+ exec timeout -k 10 240 docker run --rm --network none \
46
+ -v "$WS":/testbed:ro -v "$TMP":/repro:ro -w /testbed \
47
+ -e PYTHONDONTWRITEBYTECODE=1 \
48
+ "$IMG" bash -lc 'source /opt/miniconda3/etc/profile.d/conda.sh && conda activate testbed && cd /testbed && timeout -s KILL 180 env PYTHONPATH=/testbed python /repro/repro.py'
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env bash
2
+ # Self-repro verify for django__django-11532 — AUTHORED FROM THE PROBLEM
3
+ # STATEMENT ONLY (honesty firewall: gold patch never read by the author; it is
4
+ # applied mechanically by calibration). Exit 0 = fixed, nonzero = bug present.
5
+ #
6
+ # Issue: email messages crash with UnicodeEncodeError when the hostname
7
+ # (DNS_NAME) is non-ASCII and the email encoding is non-unicode
8
+ # (iso-8859-1); the domain should be converted to punycode. The issue's own
9
+ # acceptance test: with DNS_NAME patched to "漢字", the Message-ID header must
10
+ # contain the punycode form 'xn--p8s937b'.
11
+ set -euo pipefail
12
+ IMG="swebench/sweb.eval.x86_64.django_1776_django-11532:latest"
13
+ WS="${1:-$PWD}"
14
+ TMP="$(mktemp -d)"
15
+ trap 'rm -rf "$TMP"' EXIT
16
+ cat > "$TMP/repro.py" <<'PY'
17
+ import sys
18
+ from unittest.mock import patch
19
+
20
+ from django.conf import settings
21
+
22
+ settings.configure()
23
+
24
+ from django.core.mail import EmailMessage
25
+
26
+ # Simulate the issue's exact trigger — "Set hostname to non iso-8859-1 value
27
+ # (i.e. hostname 正宗)" — at its true source: DNS_NAME lazily derives the
28
+ # domain from socket.getfqdn() on first use, so patching getfqdn BEFORE the
29
+ # first message build runs the full production path through whatever
30
+ # conversion the fix adds.
31
+ try:
32
+ with patch('socket.getfqdn', return_value='漢字'):
33
+ email = EmailMessage('subject', '', 'from@example.com', ['to@example.com'])
34
+ email.encoding = 'iso-8859-1'
35
+ message = email.message()
36
+ msgid = str(message['Message-ID'])
37
+ print("Message-ID:", msgid)
38
+ if 'xn--p8s937b' in msgid:
39
+ print("VERIFY PASS: non-ASCII hostname converted to punycode in Message-ID")
40
+ sys.exit(0)
41
+ print("VERIFY FAIL: Message-ID does not contain the punycode domain")
42
+ sys.exit(1)
43
+ except UnicodeEncodeError as e:
44
+ print("VERIFY FAIL: UnicodeEncodeError (bug present):", e)
45
+ sys.exit(1)
46
+ PY
47
+ exec timeout -k 10 240 docker run --rm --network none \
48
+ -v "$WS":/testbed:ro -v "$TMP":/repro:ro -w /testbed \
49
+ -e PYTHONDONTWRITEBYTECODE=1 \
50
+ "$IMG" bash -lc 'source /opt/miniconda3/etc/profile.d/conda.sh && conda activate testbed && cd /testbed && timeout -s KILL 180 env PYTHONPATH=/testbed python /repro/repro.py'
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env bash
2
+ # Self-repro verify for matplotlib__matplotlib-20826 — AUTHORED FROM THE
3
+ # PROBLEM STATEMENT ONLY (honesty firewall: gold patch never read by the
4
+ # author; it is applied mechanically by calibration). Exit 0 = fixed,
5
+ # nonzero = bug present.
6
+ #
7
+ # Issue: on shared axes (plt.subplots(2, 2, sharex=True, sharey=True)),
8
+ # ax.clear() un-hides tick labels that sharing should hide and adds extra
9
+ # top/right ticks. The problem statement's own control: with the clear() call
10
+ # removed, the plot is identical to the correct output. So the check is a
11
+ # paired comparison — per-subplot tick/label visibility state must be
12
+ # IDENTICAL between a cleared and an uncleared figure.
13
+ set -euo pipefail
14
+ IMG="swebench/sweb.eval.x86_64.matplotlib_1776_matplotlib-20826:latest"
15
+ WS="${1:-$PWD}"
16
+ TMP="$(mktemp -d)"
17
+ trap 'rm -rf "$TMP"' EXIT
18
+ cat > "$TMP/repro.py" <<'PY'
19
+ import sys
20
+
21
+ import matplotlib
22
+ matplotlib.use('Agg')
23
+ import matplotlib.pyplot as plt
24
+ import numpy as np
25
+
26
+ x = np.arange(0.0, 2 * np.pi, 0.01)
27
+ y = np.sin(x)
28
+
29
+
30
+ def make(clear):
31
+ fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)
32
+ for ax in axes.flatten():
33
+ if clear:
34
+ ax.clear()
35
+ ax.plot(x, y)
36
+ fig.canvas.draw()
37
+ return fig, axes
38
+
39
+
40
+ def tick_state(ax):
41
+ def axis_state(axis):
42
+ return [
43
+ (
44
+ bool(t.tick1line.get_visible()),
45
+ bool(t.tick2line.get_visible()),
46
+ bool(t.label1.get_visible()),
47
+ bool(t.label2.get_visible()),
48
+ )
49
+ for t in axis.get_major_ticks()
50
+ ]
51
+ return {'x': axis_state(ax.xaxis), 'y': axis_state(ax.yaxis)}
52
+
53
+
54
+ fig_ref, axes_ref = make(clear=False)
55
+ fig_test, axes_test = make(clear=True)
56
+
57
+ mismatches = []
58
+ for (i, j) in [(0, 0), (0, 1), (1, 0), (1, 1)]:
59
+ ref = tick_state(axes_ref[i][j])
60
+ test = tick_state(axes_test[i][j])
61
+ if ref != test:
62
+ mismatches.append((i, j, ref, test))
63
+
64
+ if mismatches:
65
+ for i, j, ref, test in mismatches:
66
+ print(f"VERIFY FAIL: axes[{i}][{j}] tick/label visibility differs after clear()")
67
+ print(" without clear:", ref)
68
+ print(" with clear: ", test)
69
+ sys.exit(1)
70
+ print("VERIFY PASS: clear() preserves shared-axis tick/label visibility")
71
+ sys.exit(0)
72
+ PY
73
+ exec timeout -k 10 240 docker run --rm --network none \
74
+ -v "$WS":/testbed:ro -v "$TMP":/repro:ro -w /testbed \
75
+ -e PYTHONDONTWRITEBYTECODE=1 \
76
+ "$IMG" bash -lc 'source /opt/miniconda3/etc/profile.d/conda.sh && conda activate testbed && cd /testbed && timeout -s KILL 180 env PYTHONPATH=/testbed python /repro/repro.py'
@@ -0,0 +1,44 @@
1
+ set -euo pipefail
2
+ IMG="swebench/sweb.eval.x86_64.pydata_1776_xarray-4687:latest"
3
+ WS="${1:-$PWD}"
4
+ TMP="$(mktemp -d)"
5
+ trap 'rm -rf "$TMP"' EXIT
6
+ cat > "$TMP/repro.py" <<'PY'
7
+ import sys
8
+
9
+ import xarray as xr
10
+
11
+ # Issue: xr.where drops the attributes of its DataArray argument. Expected
12
+ # behavior per the report: "Attributes should be preserved or at least there
13
+ # should be a choice (e.g. ... keep_attrs=True)". Accept either design: attrs
14
+ # preserved on a plain call (from whichever DataArray argument carries them),
15
+ # or preserved when explicitly requested via keep_attrs=True. At the buggy
16
+ # base ALL variants drop attrs (and keep_attrs is not accepted), so this
17
+ # fails; a fix satisfying the issue makes at least one variant preserve them.
18
+ da = xr.DataArray(1)
19
+ da.attrs['foo'] = 'bar'
20
+
21
+ def attempts():
22
+ yield 'default, attrs on y', lambda: xr.where(da == 0, -1, da)
23
+ yield 'default, attrs on x', lambda: xr.where(da == 1, da, -1)
24
+ yield 'keep_attrs=True, attrs on y', lambda: xr.where(da == 0, -1, da, keep_attrs=True)
25
+ yield 'keep_attrs=True, attrs on x', lambda: xr.where(da == 1, da, -1, keep_attrs=True)
26
+
27
+ for label, call in attempts():
28
+ try:
29
+ res = call()
30
+ except TypeError as err:
31
+ print(f"variant skipped ({label}): {err}")
32
+ continue
33
+ if res.attrs.get('foo') == 'bar':
34
+ print(f"VERIFY PASS: xr.where preserves DataArray attributes ({label})")
35
+ sys.exit(0)
36
+ print(f"variant dropped attrs ({label}): got {dict(res.attrs)!r}")
37
+
38
+ print("VERIFY FAIL: no xr.where invocation preserves DataArray attributes")
39
+ sys.exit(1)
40
+ PY
41
+ exec timeout -k 10 240 docker run --rm --network none \
42
+ -v "$WS":/testbed:ro -v "$TMP":/repro:ro -w /testbed \
43
+ -e PYTHONDONTWRITEBYTECODE=1 \
44
+ "$IMG" bash -lc 'source /opt/miniconda3/etc/profile.d/conda.sh && conda activate testbed && cd /testbed && timeout -s KILL 180 env PYTHONPATH=/testbed python /repro/repro.py'
@@ -0,0 +1,32 @@
1
+ set -euo pipefail
2
+ IMG="swebench/sweb.eval.x86_64.pytest-dev_1776_pytest-6197:latest"
3
+ WS="${1:-$PWD}"
4
+ TMP="$(mktemp -d)"
5
+ trap 'rm -rf "$TMP"' EXIT
6
+ cat > "$TMP/repro.sh" <<'SH'
7
+ set -u
8
+ # Issue repro: a non-test package __init__.py under rootdir must NOT be
9
+ # imported during collection. At the regressed base, `pytest` errors out
10
+ # collecting foobar/__init__.py (assert False) and exits nonzero.
11
+ PROJ="$(mktemp -d)"
12
+ cd "$PROJ"
13
+ mkdir foobar
14
+ echo 'assert False' > foobar/__init__.py
15
+ cat > test_foo.py <<'EOF'
16
+ def test_foo():
17
+ assert True
18
+ EOF
19
+ # pytest 5.2.x is a src layout; put the workspace checkout first on the path.
20
+ PYTHONPATH=/testbed/src python -m pytest -p no:cacheprovider
21
+ rc=$?
22
+ if [ "$rc" -ne 0 ]; then
23
+ echo "VERIFY FAIL: pytest collected/imported foobar/__init__.py (rc=$rc)"
24
+ exit 1
25
+ fi
26
+ echo "VERIFY PASS: pytest ran the test without touching the stray __init__.py"
27
+ exit 0
28
+ SH
29
+ exec timeout -k 10 240 docker run --rm --network none \
30
+ -v "$WS":/testbed:ro -v "$TMP":/repro:ro -w /testbed \
31
+ -e PYTHONDONTWRITEBYTECODE=1 \
32
+ "$IMG" bash -lc 'source /opt/miniconda3/etc/profile.d/conda.sh && conda activate testbed && timeout -s KILL 180 bash /repro/repro.sh'