{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":".dockerignore\u0000.github/dependabot.yml\u0000.github/pull_request_template.md\u0000.github/workflows/cicd.yaml\u0000.github/workflows/deploy_mkdocs.yml\u0000.github/workflows/publish.yml\u0000.gitignore\u0000.pre-commit-config.yaml\u0000CHANGES.md\u0000CONTRIBUTING.md\u0000Dockerfile\u0000Dockerfile.docs\u0000LICENSE\u0000Makefile\u0000README.md\u0000RELEASING.md\u0000VERSION\u0000docker-compose.docs.yml\u0000docs/mkdocs.yml\u0000docs/src/benchmarks.html\u0000docs/src/contributing.md\u0000docs/src/index.md\u0000docs/src/migrations/v3.0.0.md\u0000docs/src/release-notes.md\u0000docs/src/stylesheets/extra.css\u0000docs/src/tips-and-tricks.md\u0000pyproject.toml\u0000scripts/publish\u0000stac_fastapi/api/README.md\u0000stac_fastapi/api/setup.cfg\u0000stac_fastapi/api/setup.py\u0000stac_fastapi/api/stac_fastapi/api/__init__.py\u0000stac_fastapi/api/stac_fastapi/api/app.py\u0000stac_fastapi/api/stac_fastapi/api/config.py\u0000stac_fastapi/api/stac_fastapi/api/errors.py\u0000stac_fastapi/api/stac_fastapi/api/middleware.py\u0000stac_fastapi/api/stac_fastapi/api/models.py\u0000stac_fastapi/api/stac_fastapi/api/openapi.py\u0000stac_fastapi/api/stac_fastapi/api/routes.py\u0000stac_fastapi/api/stac_fastapi/api/version.py\u0000stac_fastapi/api/tests/benchmarks.py\u0000stac_fastapi/api/tests/conftest.py\u0000stac_fastapi/api/tests/test_api.py\u0000stac_fastapi/api/tests/test_app.py\u0000stac_fastapi/api/tests/test_app_prefix.py\u0000stac_fastapi/api/tests/test_middleware.py\u0000stac_fastapi/api/tests/test_models.py\u0000stac_fastapi/extensions/README.md\u0000stac_fastapi/extensions/setup.cfg\u0000stac_fastapi/extensions/setup.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/aggregation/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/aggregation/aggregation.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/aggregation/client.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/aggregation/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/aggregation/types.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/context.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/fields/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/fields/fields.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/fields/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/filter/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/filter/client.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/filter/filter.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/filter/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/pagination/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/pagination/pagination.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/pagination/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/pagination/token_pagination.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/query/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/query/query.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/query/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/sort/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/sort/request.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/sort/sort.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/core/transaction.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/third_party/__init__.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/third_party/bulk_transactions.py\u0000stac_fastapi/extensions/stac_fastapi/extensions/version.py\u0000stac_fastapi/extensions/tests/test_aggregation.py\u0000stac_fastapi/extensions/tests/test_filter.py\u0000stac_fastapi/extensions/tests/test_query.py\u0000stac_fastapi/extensions/tests/test_transaction.py\u0000stac_fastapi/types/README.md\u0000stac_fastapi/types/setup.cfg\u0000stac_fastapi/types/setup.py\u0000stac_fastapi/types/stac_fastapi/types/__init__.py\u0000stac_fastapi/types/stac_fastapi/types/config.py\u0000stac_fastapi/types/stac_fastapi/types/conformance.py\u0000stac_fastapi/types/stac_fastapi/types/core.py\u0000stac_fastapi/types/stac_fastapi/types/errors.py\u0000stac_fastapi/types/stac_fastapi/types/extension.py\u0000stac_fastapi/types/stac_fastapi/types/links.py\u0000stac_fastapi/types/stac_fastapi/types/requests.py\u0000stac_fastapi/types/stac_fastapi/types/rfc3339.py\u0000stac_fastapi/types/stac_fastapi/types/search.py\u0000stac_fastapi/types/stac_fastapi/types/stac.py\u0000stac_fastapi/types/stac_fastapi/types/version.py\u0000stac_fastapi/types/tests/test_limit.py\u0000stac_fastapi/types/tests/test_rfc3339.py\u0000","stderr_tail":"","stdout_sha256":"9064a574aea9143cde1c2b9d4b50ec2995773afa4f7c849234f8e80f7ab0e0a9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:37:26.789304Z","duration_s":0.003837,"timed_out":false,"image_before":"bc305b6b-c48f-4ee2-9380-020699859f19","image_after":"3f6577db-365a-4a8a-a59f-7094503685e6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python3 -c \"\nfrom dataclasses import make_dataclass\n\nclass A:\n    def __post_init__(self):\n        print('A post init!')\n        self.x = self.x * 2\n\n@make_dataclass('C', [('x', int)], bases=(A,))\nclass C:\n    pass\n\nc = C(x=5)\nprint(f'Result: {c.x}')\n\"","path":null,"exit_code":1,"stdout_tail":"A post init!\n","stderr_tail":"Traceback (most recent call last):\n  File \"<string>\", line 10, in <module>\n  File \"<string>\", line 4, in __init__\n  File \"<string>\", line 7, in __post_init__\nTypeError: unsupported operand type(s) for *: 'type' and 'int'\n","stdout_sha256":"2bfef2cdb809b35af8d98ce3dbfd197683c2d883f8691dcc332d5b012b404455","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:37:47.219237Z","duration_s":0.029099,"timed_out":false,"image_before":"3f6577db-365a-4a8a-a59f-7094503685e6","image_after":"ca57198d-6438-485d-8749-07e61d171b90","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python3 -c \"\nfrom dataclasses import make_dataclass\n\n@make_dataclass('A', [])\nclass A:\n    def __post_init__(self):\n        print('A post init!')\n        if hasattr(self, 'fields'):\n            self.fields = self.fields.split(',') if isinstance(self.fields, str) else self.fields\n\n@make_dataclass('C', [('fields', str)], bases=(A,))\nclass C:\n    pass\n\nc = C(fields='a,b')\nprint(f'Result: {c.fields}')\n\"","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"Traceback (most recent call last):\n  File \"<string>\", line 5, in <module>\nTypeError: A.__init__() takes 1 positional argument but 2 were given\n","stdout_sha256":"23ffd021bc88e21cd33c3ead413e65857a46e50326d1d04083646a9fa5a030a1","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-3.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:37:50.724854Z","duration_s":0.030347,"timed_out":false,"image_before":"ca57198d-6438-485d-8749-07e61d171b90","image_after":"51bba2f9-0911-41e0-aac0-1c4718d643dd","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python3 -c \"\nfrom dataclasses import make_dataclass\n\n@make_dataclass('A', [('fields', str, None)])\nclass A:\n    def __post_init__(self):\n        print('A post init!')\n        if self.fields:\n            self.fields = self.fields.split(',') if isinstance(self.fields, str) else self.fields\n\n@make_dataclass('C', [('fields', str)], bases=(A,))\nclass C:\n    pass\n\ntry:\n    c = C(fields='a,b')\n    print(f'Result: {c.fields}')\nexcept Exception as e:\n    print(f'ERROR: {e}')\n\n# Try reverse - child declares the field\n@make_dataclass('A2', [])  \nclass A2:\n    def __post_init__(self):\n        print('A2 post init!')\n        if hasattr(self, 'fields') and self.fields:\n            self.fields = self.fields.split(',') if isinstance(self.fields, str) else self.fields\n\n@make_dataclass('C2', [('fields', str)], bases=(A2,))\nclass C2:\n    pass\n\ntry:\n    c2 = C2(fields='a,b') \n    print(f'Result2: {c2.fields}')\nexcept Exception as e:\n    print(f'ERROR2: {e}')\n\"","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"Traceback (most recent call last):\n  File \"<string>\", line 11, in <module>\n  File \"/usr/local/lib/python3.10/dataclasses.py\", line 1397, in make_dataclass\n    cls = types.new_class(cls_name, bases, {}, exec_body_callback)\n  File \"/usr/local/lib/python3.10/types.py\", line 77, in new_class\n    return meta(name, resolved_bases, ns, **kwds)\nTypeError: A.__init__() takes from 1 to 2 positional arguments but 4 were given\n","stdout_sha256":"0c833e1a08465f268e60203802e6635cbe6f807b885b0bc2603820791b9e72df","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:37:54.022628Z","duration_s":0.030803999999999998,"timed_out":false,"image_before":"51bba2f9-0911-41e0-aac0-1c4718d643dd","image_after":"af6605a3-cbfc-4b54-8b7e-07707b72d97f","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-ba1a3001732d4b84886c8a1e6118bf8c/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-ba1a3001732d4b84886c8a1e6118bf8c/incoming/d05d5e3670f22b849d2b125d009b203439c6d77cddc8e0c3c5d0bd7fcd431dad /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"d05d5e3670f22b849d2b125d009b203439c6d77cddc8e0c3c5d0bd7fcd431dad","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-5.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:00.949372Z","duration_s":0.005164,"timed_out":false,"image_before":"af6605a3-cbfc-4b54-8b7e-07707b72d97f","image_after":"89ae0907-e003-4a95-a93e-5b3a869d8d94","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-946f5e8174264d36bd246befe8e25793/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-946f5e8174264d36bd246befe8e25793/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-6.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n>       assert model.collections == [\"test1\", \"test2\"]\nE       assert 'test1,test2' == ['test1', 'test2']\nE        +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\n\nstac_fastapi/api/tests/test_models.py:36: AssertionError\n------------ generated xml file: /opt/receipts/reports/agent1-6.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.20s ===============================\n","stderr_tail":"","stdout_sha256":"b05444cbcd333025dfe8bff16be639488a60d45874bdfdd85f4f92661a7ea3e8","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-6.log","tree_digest":"a14c9dedfb1dcc961b08e2f9ea6654aaea91306c266317414e407dad8ccd2f67","tree_download_s":1.8679067909251899,"started_at":"2026-10-03T16:38:03.598956Z","duration_s":1.3271870000000001,"timed_out":false,"image_before":"89ae0907-e003-4a95-a93e-5b3a869d8d94","image_after":"0cd3cb49-4261-4fc1-9c1d-318116c9e379","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"assert 'test1,test2' == ['test1', 'test2']\n +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\ndef test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n>       assert model.collections == [\"test1\", \"test2\"]\nE       assert 'test1,test2' == ['test1', 'test2']\nE        +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\n\nstac_fastapi/api/tests/test_models.py:36: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-819f56b0d3004752ad2c7c0844a2fd03/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-819f56b0d3004752ad2c7c0844a2fd03/incoming/9229a7fc048dda17eaff223280bb7196ae1c33e65f25f02fdaa656cca3dc323a /tmp/debug_test.py'","path":"/tmp/debug_test.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"9229a7fc048dda17eaff223280bb7196ae1c33e65f25f02fdaa656cca3dc323a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-7.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:21.984770Z","duration_s":0.004817,"timed_out":false,"image_before":"0cd3cb49-4261-4fc1-9c1d-318116c9e379","image_after":"b4f56b48-bfa4-4b39-acc3-e923fea4a8b6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-8","seq":8,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python debug_test.py","path":null,"exit_code":1,"stdout_tail":"=== Testing with FieldsExtension ===\nAdded extension model: <class 'stac_fastapi.extensions.core.fields.request.FieldsExtensionGetRequest'>\nAll models: [<class 'stac_fastapi.extensions.core.fields.request.FieldsExtensionGetRequest'>, <class 'stac_fastapi.types.search.BaseSearchGetRequest'>]\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/debug_test.py\", line 68, in <module>\n    request_model = debug_create_get_request_model([FieldsExtension()])\n  File \"/tmp/debug_test.py\", line 59, in debug_create_get_request_model\n    return debug_create_request_model(\n  File \"/tmp/debug_test.py\", line 56, in debug_create_request_model\n    raise TypeError(\"Mixed Request Model types. Check extension request types.\")\nTypeError: Mixed Request Model types. Check extension request types.\n","stdout_sha256":"4b50ebfbfb60f4e26e94940f53eb4dfb1972d7c67eaf9d34d70487e5252f89c3","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-8.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:24.846105Z","duration_s":0.413143,"timed_out":false,"image_before":"b4f56b48-bfa4-4b39-acc3-e923fea4a8b6","image_after":"b6835c05-716b-4bf4-b80c-3f4a67043dae","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-9","seq":9,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-3d49ab0790f141628ec84e3197e3b200/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-3d49ab0790f141628ec84e3197e3b200/incoming/b0b81b9970c79f7bd6bfcc6f5dff110680cca2a76c07695e7909827b4f5d4007 /tmp/debug_test.py'","path":"/tmp/debug_test.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"b0b81b9970c79f7bd6bfcc6f5dff110680cca2a76c07695e7909827b4f5d4007","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-9.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:29.279164Z","duration_s":0.004386,"timed_out":false,"image_before":"b6835c05-716b-4bf4-b80c-3f4a67043dae","image_after":"a67dbbc4-c8fc-4bef-a073-c1bffd693b17","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-10","seq":10,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python debug_test.py","path":null,"exit_code":1,"stdout_tail":"=== Testing with FieldsExtension ===\nAdded extension model: <class 'stac_fastapi.extensions.core.fields.request.FieldsExtensionGetRequest'>\nAll models: [<class 'stac_fastapi.extensions.core.fields.request.FieldsExtensionGetRequest'>, <class 'stac_fastapi.types.search.BaseSearchGetRequest'>]\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/debug_test.py\", line 69, in <module>\n    request_model = debug_create_get_request_model([FieldsExtension()])\n  File \"/tmp/debug_test.py\", line 60, in debug_create_get_request_model\n    return debug_create_request_model(\n  File \"/tmp/debug_test.py\", line 32, in debug_create_request_model\n    from stac_fastapi.types.extension import APIRequest\nImportError: cannot import name 'APIRequest' from 'stac_fastapi.types.extension' (/stac-fastapi/stac_fastapi/types/stac_fastapi/types/extension.py)\n","stdout_sha256":"b60657416505e7959ba289cf04ec45cf1fab9401d0239ed5d8234de7a5c8873b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-10.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:31.617899Z","duration_s":0.36984100000000003,"timed_out":false,"image_before":"a67dbbc4-c8fc-4bef-a073-c1bffd693b17","image_after":"51f831c7-b435-4c91-8280-5195013b7fe2","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-11","seq":11,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-7c0342c6620842d4bad88e7c37488b08/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-7c0342c6620842d4bad88e7c37488b08/incoming/f070dea84d60960a2b4a2c9ee10883dc099d9d6d94328b44fb89b0e48b189ca7 /tmp/debug_test2.py'","path":"/tmp/debug_test2.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"f070dea84d60960a2b4a2c9ee10883dc099d9d6d94328b44fb89b0e48b189ca7","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-11.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:41.052146Z","duration_s":0.00472,"timed_out":false,"image_before":"51f831c7-b435-4c91-8280-5195013b7fe2","image_after":"29bf11e4-3023-49e3-b8fb-f14637aae3a1","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-12","seq":12,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python debug_test2.py","path":null,"exit_code":1,"stdout_tail":"=== Testing with FieldsExtension ===\nModels to process: ['FieldsExtensionGetRequest', 'BaseSearchGetRequest']\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/debug_test2.py\", line 82, in <module>\n    request_model = debug_create_get_request_model([FieldsExtension()])\n  File \"/tmp/debug_test2.py\", line 73, in debug_create_get_request_model\n    return debug_create_request_model(\n  File \"/tmp/debug_test2.py\", line 70, in debug_create_request_model\n    raise TypeError(\"Mixed Request Model types. Check extension request types.\")\nTypeError: Mixed Request Model types. Check extension request types.\n","stdout_sha256":"4b5db3692d36b2316f55e1908f0ca6981b10d7db0c27eff600ab881be95c5618","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-12.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:43.956260Z","duration_s":0.385815,"timed_out":false,"image_before":"29bf11e4-3023-49e3-b8fb-f14637aae3a1","image_after":"88b28f68-0d85-48c2-a93d-ea0150c4ee16","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-13","seq":13,"branch_id":"agent1","kind":"command","cmd":"pwd && ls -la","path":null,"exit_code":0,"stdout_tail":"/stac-fastapi\ntotal 80\ndrwxrwxrwx 1 root root   420 Apr 30 16:54 .\ndrwxr-xr-x 1 root root   174 Apr 30 16:54 ..\n-rw-r--r-- 1 root root    99 Feb 21  2026 .dockerignore\ndrwxrwxrwx 1 root root   184 Oct  3 16:37 .git\ndrwxrwxrwx 1 root root    94 Apr 30 16:54 .github\n-rw-r--r-- 1 root root  1502 Feb 21  2026 .gitignore\n-rw-r--r-- 1 root root   178 Feb 21  2026 .pre-commit-config.yaml\n-rw-r--r-- 1 root root 27035 Feb 21  2026 CHANGES.md\n-rw-r--r-- 1 root root   895 Feb 21  2026 CONTRIBUTING.md\n-rw-r--r-- 1 root root   598 Feb 21  2026 Dockerfile\n-rw-r--r-- 1 root root   514 Feb 21  2026 Dockerfile.docs\n-rw-r--r-- 1 root root  1066 Feb 21  2026 LICENSE\n-rw-r--r-- 1 root root   484 Feb 21  2026 Makefile\n-rw-r--r-- 1 root root  3939 Feb 21  2026 README.md\n-rw-r--r-- 1 root root  1964 Feb 21  2026 RELEASING.md\n-rw-r--r-- 1 root root     8 Feb 21  2026 VERSION\n-rw-r--r-- 1 root root   408 Feb 21  2026 docker-compose.docs.yml\ndrwxrwxrwx 1 root root    26 Apr 30 16:54 docs\n-rw-r--r-- 1 root root  1804 Feb 21  2026 pyproject.toml\ndrwxrwxrwx 1 root root    14 Apr 30 16:54 scripts\ndrwxrwxrwx 1 root root    36 Apr 30 16:54 stac_fastapi\n","stderr_tail":"","stdout_sha256":"d18f9e34305749d36b90ba9688ada26b5bfad431485cc993e50c7340b0863019","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-13.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:48.218643Z","duration_s":0.0036810000000000002,"timed_out":false,"image_before":"88b28f68-0d85-48c2-a93d-ea0150c4ee16","image_after":"18b0636b-f4f4-4a17-a7be-25e7f99b213b","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-14","seq":14,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-8309e63a9fdb43b1bd916e4c7e660dcf/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-8309e63a9fdb43b1bd916e4c7e660dcf/incoming/311b1824fb991f2ea1c139f92cb5b696981dc9462cb5d00f1d66f7a3eef535b1 /tmp/simple_test.py'","path":"/tmp/simple_test.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"311b1824fb991f2ea1c139f92cb5b696981dc9462cb5d00f1d66f7a3eef535b1","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-14.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:38:59.928423Z","duration_s":0.004941,"timed_out":false,"image_before":"18b0636b-f4f4-4a17-a7be-25e7f99b213b","image_after":"287e8523-6737-41ae-933b-9c1b1d9b41cd","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-15","seq":15,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python simple_test.py","path":null,"exit_code":1,"stdout_tail":"BaseSearchGetRequest fields: ['collections', 'ids', 'bbox', 'intersects', 'datetime', 'limit']\nFieldsExtensionGetRequest fields: ['fields']\n\n=== Test 1: BaseSearchGetRequest only ===\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/simple_test.py\", line 14, in <module>\n    class Test1:\n  File \"<string>\", line 9, in __init__\n  File \"/stac-fastapi/stac_fastapi/types/stac_fastapi/types/search.py\", line 70, in __post_init__\n    self.collections = str2list(self.collections)  # type: ignore\n  File \"/stac-fastapi/stac_fastapi/types/stac_fastapi/types/search.py\", line 30, in str2list\n    return x.split(\",\")\nAttributeError: type object 'Test1' has no attribute 'split'\n","stdout_sha256":"a19c4adb3d4555123d3febe0e314ce24f56532c850894cc2312ff01c146bbcf9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-15.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:02.162543Z","duration_s":0.369999,"timed_out":false,"image_before":"287e8523-6737-41ae-933b-9c1b1d9b41cd","image_after":"63c3509a-4fa6-4c7c-b571-898d13259f42","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-16","seq":16,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-e44834ad19e24c3c933558f88ca366c6/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-e44834ad19e24c3c933558f88ca366c6/incoming/cf3a48d2a47df453dc0b4fe04ff7b69bf13a898ee7829de5cb04d0402c85d021 /tmp/test2.py'","path":"/tmp/test2.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cf3a48d2a47df453dc0b4fe04ff7b69bf13a898ee7829de5cb04d0402c85d021","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-16.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:08.317570Z","duration_s":0.004353,"timed_out":false,"image_before":"63c3509a-4fa6-4c7c-b571-898d13259f42","image_after":"008abf19-4a84-4092-9c72-f65593a1a880","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-17","seq":17,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test2.py","path":null,"exit_code":1,"stdout_tail":"=== Test: Simple dataclass parent ===\nParent post_init called with x=<class '__main__.Child'>\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test2.py\", line 16, in <module>\n    class Child:\n  File \"<string>\", line 4, in __init__\n  File \"/tmp/test2.py\", line 12, in __post_init__\n    self.x = self.x.upper()\nAttributeError: type object 'Child' has no attribute 'upper'\n","stdout_sha256":"1f2b7ae8ac83ac6ecd1d03cc3814339d93c5b2fe2e936f1c11cb54dc14e24f1b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-17.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:10.714849Z","duration_s":0.031806,"timed_out":false,"image_before":"008abf19-4a84-4092-9c72-f65593a1a880","image_after":"af537337-1004-4392-b913-112037eab50d","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-18","seq":18,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-091189ec2d784e5391cca9ffd0087a62/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-091189ec2d784e5391cca9ffd0087a62/incoming/c9caa471eb675234d9ba5f732154e9430b5e5e56dd8b55205bbff9a6f2f0ef37 /tmp/test3.py'","path":"/tmp/test3.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"c9caa471eb675234d9ba5f732154e9430b5e5e56dd8b55205bbff9a6f2f0ef37","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-18.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:18.280295Z","duration_s":0.004346,"timed_out":false,"image_before":"af537337-1004-4392-b913-112037eab50d","image_after":"7e380c71-f775-424a-ab20-82c35a73e54d","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-19","seq":19,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test3.py","path":null,"exit_code":0,"stdout_tail":"=== Test with explicit field in make_dataclass ===\nParent __post_init__: self type = <class 'types.Child'>, x = <class '__main__.Child'>\nParent __post_init__ finished: x = <class '__main__.Child'>\nERROR: 'Child' object is not callable\n\n=== Test: No fields in make_dataclass but field in parent ===\nParent __post_init__: self type = <class 'types.Child2'>, x = <class '__main__.Child2'>\nParent __post_init__ finished: x = <class '__main__.Child2'>\nERROR: 'Child2' object is not callable\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test3.py\", line 21, in <module>\n    c = Child(x=\"hello\")\nTypeError: 'Child' object is not callable\nTraceback (most recent call last):\n  File \"/tmp/test3.py\", line 34, in <module>\n    c2 = Child2(x=\"hello\")\nTypeError: 'Child2' object is not callable\n","stdout_sha256":"acafb0127511b584f8739df1a4d58b830439d6fab44edf9bf7936362d957cea9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-19.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:20.905698Z","duration_s":0.031013,"timed_out":false,"image_before":"7e380c71-f775-424a-ab20-82c35a73e54d","image_after":"691f5154-2cff-4e2a-9ca7-92f738f0044b","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-20","seq":20,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-65cb4b2619b140d0a71c07d0fbefbcdd/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-65cb4b2619b140d0a71c07d0fbefbcdd/incoming/cb37595a6ac5fc79ad6d1fbfd8245cbf4c64e950c2d8ed1714db5c1a49529cb9 /tmp/test4.py'","path":"/tmp/test4.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cb37595a6ac5fc79ad6d1fbfd8245cbf4c64e950c2d8ed1714db5c1a49529cb9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-20.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:25.625422Z","duration_s":0.005875,"timed_out":false,"image_before":"691f5154-2cff-4e2a-9ca7-92f738f0044b","image_after":"68a74f75-8e47-4aac-86b8-a2b1c8ee2ef1","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-21","seq":21,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test4.py","path":null,"exit_code":1,"stdout_tail":"=== Test: Simple manual conversion ===\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test4.py\", line 23, in <module>\n    class Child:\n  File \"<string>\", line 4, in __init__\n  File \"/tmp/test4.py\", line 14, in __post_init__\n    for ch in self.x:\nTypeError: 'type' object is not iterable\n","stdout_sha256":"1240c4d68f057a9e39a6df7aaa8b319be7d81348b0dc857e5a2a5b2823a834ee","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-21.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:28.779441Z","duration_s":0.030427,"timed_out":false,"image_before":"68a74f75-8e47-4aac-86b8-a2b1c8ee2ef1","image_after":"be3fcf3c-535d-45fc-b213-be1a10da4829","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-22","seq":22,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-dbe2dbaf43314620a153a56c69046d5c/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-dbe2dbaf43314620a153a56c69046d5c/incoming/24a284637226c703a035a54e3e9fa3e2762743c2f4d3d61d76e45258146e8034 /tmp/test5.py'","path":"/tmp/test5.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"24a284637226c703a035a54e3e9fa3e2762743c2f4d3d61d76e45258146e8034","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-22.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:34.008282Z","duration_s":0.005047,"timed_out":false,"image_before":"be3fcf3c-535d-45fc-b213-be1a10da4829","image_after":"20238618-90e9-4652-9e01-85d1177969ea","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-23","seq":23,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test5.py","path":null,"exit_code":0,"stdout_tail":"=== Test: Override __post_init__ in child ===\nIn parent __post_init__, self.type = <class 'types.Child'>\nERROR: 'Child' object is not callable\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test5.py\", line 25, in <module>\n    c = Child(x=\"hello\")\nTypeError: 'Child' object is not callable\n","stdout_sha256":"c49d1c705c521525c81baa3d87cad0e257c6af63f867fde5ce254fd8ec7ebbcb","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-23.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:36.994386Z","duration_s":0.030865,"timed_out":false,"image_before":"20238618-90e9-4652-9e01-85d1177969ea","image_after":"d08e20d9-c96d-4197-a9d5-228c830222dc","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-24","seq":24,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-93b6269d7cf44ea096d84cf32e01074c/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-93b6269d7cf44ea096d84cf32e01074c/incoming/aaeb04556e042e80e671c93521833df8655127e143b24d1fb94f4b3a5424c904 /tmp/test6.py'","path":"/tmp/test6.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"aaeb04556e042e80e671c93521833df8655127e143b24d1fb94f4b3a5424c904","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-24.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:41.146015Z","duration_s":0.004601,"timed_out":false,"image_before":"d08e20d9-c96d-4197-a9d5-228c830222dc","image_after":"4fe7af98-c716-4a8e-a3df-7f24c4c9de3e","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-25","seq":25,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test6.py","path":null,"exit_code":0,"stdout_tail":"=== Test: Child inherits but doesn't override __post_init__ ===\nIn parent __post_init__, self.type = <class 'types.Child'>\nERROR: 'Child' object is not callable\n","stderr_tail":"","stdout_sha256":"e2d772c4506bb360cafa0e33955befe16ce2cf147e7b9e9659c24ad60b6fb3d9","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-25.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:44.048851Z","duration_s":0.030594,"timed_out":false,"image_before":"4fe7af98-c716-4a8e-a3df-7f24c4c9de3e","image_after":"b0dc395b-a7e8-42be-a4f4-35d227825736","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-26","seq":26,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-7a989326954841a68fc22aaa8ddd1039/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-7a989326954841a68fc22aaa8ddd1039/incoming/d842166e8e491e63b8e52ca6e07c83636871bedeffc40a772734acbb91574fa8 /tmp/test7.py'","path":"/tmp/test7.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"d842166e8e491e63b8e52ca6e07c83636871bedeffc40a772734acbb91574fa8","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-26.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:48.979242Z","duration_s":0.004911,"timed_out":false,"image_before":"b0dc395b-a7e8-42be-a4f4-35d227825736","image_after":"1a29ecae-cef4-4b31-bc96-97f0f0c2e031","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-27","seq":27,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test7.py","path":null,"exit_code":0,"stdout_tail":"=== Test: See if we can get past construction ===\nIn parent __post_init__, self.type = <class 'types.Child'>\nFinished parent __post_init__, x = <class '__main__.Child'>\nAbout to create Child instance...\nERROR: 'Child' object is not callable\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test7.py\", line 22, in <module>\n    c = Child(x=\"hello\")\nTypeError: 'Child' object is not callable\n","stdout_sha256":"8f3236fe18326c21951fcdd834613e0a09c7e7b924cee2024015cf7344fd22ae","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-27.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:52.040126Z","duration_s":0.031374,"timed_out":false,"image_before":"1a29ecae-cef4-4b31-bc96-97f0f0c2e031","image_after":"4eaa2cbd-1af9-4db1-89c6-bf780accd3ba","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-28","seq":28,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-13db21dbef0149d79708d012023b4d28/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-13db21dbef0149d79708d012023b4d28/incoming/9b7a6ab2d14469a643b3f7481297a172ab9d865494a5f011d25a487c7527ae4e /tmp/test8.py'","path":"/tmp/test8.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"9b7a6ab2d14469a643b3f7481297a172ab9d865494a5f011d25a487c7527ae4e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-28.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:39:57.922003Z","duration_s":0.004906,"timed_out":false,"image_before":"4eaa2cbd-1af9-4db1-89c6-bf780accd3ba","image_after":"eef93516-10fe-4456-a3ac-44eb04cd6a5c","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-29","seq":29,"branch_id":"agent1","kind":"command","cmd":"cd /tmp && python test8.py","path":null,"exit_code":0,"stdout_tail":"=== Inspect what make_dataclass produces ===\nChildCls = <class 'types.Child'>\nChildCls.__mro__ = (<class 'types.Child'>, <class '__main__.SimpleParent'>, <class 'object'>)\nChildCls.__dataclass_fields__ = {'x': Field(name='x',type=<class 'str'>,default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76c2770>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}\n\n=== Trying manual instantiation ===\n__init__ signature: (self, x: str = None) -> None\nInit error: 'NoneType' object has no attribute 'x'\n\n=== Correct way to test __init__ ===\nCreated raw instance: Child(x=None)\nIn dummy_init: self=<class 'types.Child'>, x=hello\nCalling __post_init__\nAfter init: x = 'hello'\n","stderr_tail":"","stdout_sha256":"58b078f7e0bb8d9c5084f7e66136f225400f2b7ababca74aef244a9ac7942fb4","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-29.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:00.552238Z","duration_s":0.030949,"timed_out":false,"image_before":"eef93516-10fe-4456-a3ac-44eb04cd6a5c","image_after":"698c632e-3eed-493f-a973-508e4916fbf4","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-30","seq":30,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-e8589cc1607e4d97bff910dae811a871/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-e8589cc1607e4d97bff910dae811a871/incoming/cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577 /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-30.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:29.295872Z","duration_s":0.0047290000000000006,"timed_out":false,"image_before":"698c632e-3eed-493f-a973-508e4916fbf4","image_after":"150b8f67-e132-47e4-8f70-0b9c406176bc","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-31","seq":31,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-cfaafec989554a67bb39c042643defe2/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-cfaafec989554a67bb39c042643defe2/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-31.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-31.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.38s ===============================\n","stderr_tail":"","stdout_sha256":"e8e1952e676dd384a9efca82e19cfce0db434fffa7e445a23f86db1bd853bb9d","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-31.log","tree_digest":"c88f7d993b7cf0ff7b03fa9d59e391430c541427022456b4c36c7546585174bf","tree_download_s":2.2539902080316097,"started_at":"2026-10-03T16:40:32.809405Z","duration_s":1.479414,"timed_out":false,"image_before":"150b8f67-e132-47e4-8f70-0b9c406176bc","image_after":"decd6c4f-26ea-4d45-b236-22647ef9da81","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-32","seq":32,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-cfc559d2e0014b6da3537390b8b83ce3/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-cfc559d2e0014b6da3537390b8b83ce3/incoming/a77ffca58a0d02990a6afa1b030d529d5dcf60e94c09c8ea992e513869e8ff76 /tmp/debug_fields.py'","path":"/tmp/debug_fields.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"a77ffca58a0d02990a6afa1b030d529d5dcf60e94c09c8ea992e513869e8ff76","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-32.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:43.217782Z","duration_s":0.004856,"timed_out":false,"image_before":"decd6c4f-26ea-4d45-b236-22647ef9da81","image_after":"eda1eede-8813-425f-b4ec-926554d8a76b","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-33","seq":33,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/debug_fields.py","path":null,"exit_code":0,"stdout_tail":"=== Examining dataclass fields ===\ncollections:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\nids:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\nbbox:\n  type: typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\nintersects:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\ndatetime:\n  type: typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\nlimit:\n  type: typing.Annotated[typing.Optional[int], Query(PydanticUndefined)]\n  default: 10\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\n\n=== Examining FieldsExtensionGetRequest fields ===\nfields:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff76c2dd0>\n","stderr_tail":"","stdout_sha256":"ed910abdc3b8a9f0bd1ffc6f2bd9d35a17072f9342e2f21d991eb42c7fd8306c","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-33.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:46.706663Z","duration_s":0.3676,"timed_out":false,"image_before":"eda1eede-8813-425f-b4ec-926554d8a76b","image_after":"5cac54cd-9be8-47ce-9fd5-869c94fe99b5","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-34","seq":34,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && cp stac_fastapi/api/stac_fastapi/api/models.py stac_fastapi/api/stac_fastapi/api/models.py.bak","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-34.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:54.750449Z","duration_s":0.003226,"timed_out":false,"image_before":"5cac54cd-9be8-47ce-9fd5-869c94fe99b5","image_after":"2a67ae4a-f7d3-4fa9-ad21-04ba88541113","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-35","seq":35,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && sed -i '/# Handle GET requests/,/return Dataclass/s/# Create the dataclass with collected fields/# Create the dataclass with collected fields\\n        # DEBUG: Print what we\\'re about to pass to make_dataclass\\n        # print(f\\\"[DEBUG] Fields for {model_name}: {list(fields.keys())}\\\")/' stac_fastapi/api/stac_fastapi/api/models.py","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"sed: -e expression #1, char 168: unterminated `s' command\n","stdout_sha256":"66ea7ee558f2ab2e3fc164ac10c60000e7f0a42f101a6eddae9adbf347ce93c0","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-35.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:40:58.313756Z","duration_s":0.002943,"timed_out":false,"image_before":"2a67ae4a-f7d3-4fa9-ad21-04ba88541113","image_after":"09c4235c-83d2-4a8f-a9e8-357920e6f189","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-36","seq":36,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-7debbda776dd4a1ab043cd1b6ec72a81: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 75902de1e8fde07976e60bf29003cef272dfc942","path":null,"exit_code":0,"stdout_tail":"diff --git a/stac_fastapi/api/stac_fastapi/api/models.py b/stac_fastapi/api/stac_fastapi/api/models.py\nindex 1c2146d..4fb3c50 100644\n--- a/stac_fastapi/api/stac_fastapi/api/models.py\n+++ b/stac_fastapi/api/stac_fastapi/api/models.py\n@@ -47,7 +47,30 @@ def create_request_model(\n \n     # Handle GET requests\n     if all([issubclass(m, APIRequest) for m in models]):\n-        return make_dataclass(model_name, [], bases=tuple(models))\n+        # Collect fields from all parent models to avoid __post_init__ conflicts\n+        for model in models:\n+            if hasattr(model, '__dataclass_fields__'):\n+                for k, field_info in model.__dataclass_fields__.items():\n+                    if k not in fields:  # Avoid duplicates, parents take precedence\n+                        fields[k] = (field_info.type, field_info.default)\n+            elif hasattr(model, 'model_fields'):\n+                for k, field_info in model.model_fields.items():\n+                    if k not in fields:  # Avoid duplicates\n+                        fields[k] = (field_info.annotation, field_info.default)\n+        \n+        # Create the dataclass with collected fields\n+        Dataclass = make_dataclass(model_name, list(fields.items()), bases=tuple(models))\n+        \n+        # Add a __post_init__ method that properly chains to parent __post_init__ methods\n+        def _post_init__(self):\n+            \"\"\"Chain to all parent __post_init__ methods.\"\"\"\n+            # Call __post_init__ on each parent class in MRO order (excluding self and object)\n+            for cls in type(self).__mro__[1:-1]:  # Skip self (index 0) and object (last)\n+                if hasattr(cls, '__post_init__'):\n+                    cls.__post_init__(self)\n+        \n+        Dataclass.__post_init__ = _post_init__\n+        return Dataclass\n \n     # Handle POST requests\n     elif all([issubclass(m, BaseModel) for m in models]):\n@@ -134,4 +157,4 @@ class GeoJSONResponse(JSONResponse):\n class JSONSchemaResponse(JSONResponse):\n     \"\"\"JSON with custom, vendor content-type.\"\"\"\n \n-    media_type = \"application/schema+json\"\n+    media_type = \"application/schema+json\"\n\\ No newline at end of file\n","stderr_tail":"","stdout_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","log_path":null,"tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.1517574170138687,"started_at":"2026-10-03T16:41:04.719987Z","duration_s":0.04431145894341171,"timed_out":false,"image_before":"09c4235c-83d2-4a8f-a9e8-357920e6f189","image_after":"09c4235c-83d2-4a8f-a9e8-357920e6f189","junit":null,"diff":{"files":[{"path":"stac_fastapi/api/stac_fastapi/api/models.py","added":25,"deleted":2,"category":"source","status":"modified"}],"patch_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/artifacts/agent1/agent1-36.patch"},"patch_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","dropped_paths":[],"snapshot_sha":"75902de1e8fde07976e60bf29003cef272dfc942"}
{"receipt_id":"agent1-37","seq":37,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-776b3dfe6b5a4c81949f9b9caa7c1d2e/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-776b3dfe6b5a4c81949f9b9caa7c1d2e/incoming/cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577 /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-37.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:41:23.375698Z","duration_s":0.005169,"timed_out":false,"image_before":"09c4235c-83d2-4a8f-a9e8-357920e6f189","image_after":"2e98233a-5bed-45b5-b466-a328177f6a32","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-38","seq":38,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-2639d432901c41a3a5b5555cd5f62871/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-2639d432901c41a3a5b5555cd5f62871/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-38.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-38.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.38s ===============================\n","stderr_tail":"","stdout_sha256":"e6576df52e2847a171302cf559502f07310ba37efa2db59dc89fbc7044548ef2","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-38.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.1519828750751913,"started_at":"2026-10-03T16:41:27.584882Z","duration_s":1.477682,"timed_out":false,"image_before":"2e98233a-5bed-45b5-b466-a328177f6a32","image_after":"015313bc-4536-420e-95a6-1b7a99278acd","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-39","seq":39,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && git stash","path":null,"exit_code":0,"stdout_tail":"Saved working directory and index state WIP on (no branch): 75902de receipts snapshot\n","stderr_tail":"","stdout_sha256":"57805b048c17fcfb90fc4fd25389bd8937e973dbcafd3804c6344517ca83346d","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-39.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:41:35.348058Z","duration_s":0.016134,"timed_out":false,"image_before":"015313bc-4536-420e-95a6-1b7a99278acd","image_after":"a729ef79-b21d-4b14-a2d0-09c4c08ed695","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-40","seq":40,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-a5059f1bd64242df97a3c268f57fa7d5/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-a5059f1bd64242df97a3c268f57fa7d5/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-40.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n>       assert model.collections == [\"test1\", \"test2\"]\nE       assert 'test1,test2' == ['test1', 'test2']\nE        +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\n\nstac_fastapi/api/tests/test_models.py:36: AssertionError\n----------- generated xml file: /opt/receipts/reports/agent1-40.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.21s ===============================\n","stderr_tail":"","stdout_sha256":"8f6729b11bd54c876be0ec20ac2e32b9fda482b181a5c70c2daaee02c2d01f58","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-40.log","tree_digest":"ab7a97afdac792cf9e2251fa336653ae79064a24822b2746259e12400719066a","tree_download_s":5.308410750003532,"started_at":"2026-10-03T16:41:38.980532Z","duration_s":1.299985,"timed_out":false,"image_before":"a729ef79-b21d-4b14-a2d0-09c4c08ed695","image_after":"8ab25272-00f4-4004-84eb-9cb0a9ece5e2","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"assert 'test1,test2' == ['test1', 'test2']\n +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\ndef test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n>       assert model.collections == [\"test1\", \"test2\"]\nE       assert 'test1,test2' == ['test1', 'test2']\nE        +  where 'test1,test2' = SearchGetRequest(collections='test1,test2', ids='test1,test2', bbox='0,0,1,1', intersects='{\"type\": \"Polygon\", \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]}', datetime='2020-01-01T00:00:00Z', limit=10, fields=None, filter='test==test', filter_crs='epsg:4326', filter_lang='cql2-text').collections\n\nstac_fastapi/api/tests/test_models.py:36: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-41","seq":41,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-d9f5f95ce7604f41a24b4144be44bb34/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-d9f5f95ce7604f41a24b4144be44bb34/incoming/ea7bd0faf88df57efbe8d9444bcf06bd26f4c3a9c9d9256c3be96ff417398a17 /tmp/check_original.py'","path":"/tmp/check_original.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"ea7bd0faf88df57efbe8d9444bcf06bd26f4c3a9c9d9256c3be96ff417398a17","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-41.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:41:56.694382Z","duration_s":0.005271,"timed_out":false,"image_before":"8ab25272-00f4-4004-84eb-9cb0a9ece5e2","image_after":"cee2cb3a-63bd-4d77-bd37-2ffa0628da90","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-42","seq":42,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/check_original.py","path":null,"exit_code":0,"stdout_tail":"=== Creating model with extensions (original) ===\n[ORIGINAL] Making dataclass with EMPTY fields list\n[ORIGINAL] Models: ['FieldsExtensionGetRequest', 'FilterExtensionGetRequest', 'BaseSearchGetRequest']\nModel: <class 'abc.SearchGetRequest'>\nModel fields: {'collections': Field(name='collections',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'ids': Field(name='ids',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'bbox': Field(name='bbox',type=typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'intersects': Field(name='intersects',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'datetime': Field(name='datetime',type=typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'limit': Field(name='limit',type=typing.Annotated[typing.Optional[int], Query(PydanticUndefined)],default=10,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter': Field(name='filter',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter_crs': Field(name='filter_crs',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter_lang': Field(name='filter_lang',type=typing.Annotated[typing.Optional[typing.Literal['cql-json', 'cql2-json', 'cql2-text']], Query(PydanticUndefined)],default='cql2-text',default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'fields': Field(name='fields',type=typing.Annotated[typing.Optional[str], Query(PydanticUndefined)],default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76dabc0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}\n\n=== Creating instance ===\nInstance: SearchGetRequest(collections='test1,test2', ids=None, bbox=None, intersects=None, datetime=None, limit=10, filter=None, filter_crs=None, filter_lang='cql2-text', fields=None)\ncollections: test1,test2\n","stderr_tail":"","stdout_sha256":"3159b139053407ab1c2b0b59736dd4a99804461eb35fafabc26e639cca193499","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-42.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:41:59.611715Z","duration_s":0.37925200000000003,"timed_out":false,"image_before":"cee2cb3a-63bd-4d77-bd37-2ffa0628da90","image_after":"1c7b9abe-475c-48f5-964a-fa511cc548ec","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-43","seq":43,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && git stash pop","path":null,"exit_code":0,"stdout_tail":"Not currently on any branch.\nChanges not staged for commit:\n  (use \"git add <file>...\" to update what will be committed)\n  (use \"git restore <file>...\" to discard changes in working directory)\n\tmodified:   stac_fastapi/api/stac_fastapi/api/models.py\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nDropped refs/stash@{0} (05a71f710cb30ba6d46899102a3f315ea692f977)\n","stderr_tail":"","stdout_sha256":"a86d225a781a450dacdae565e365e98b77d40e1cfb411b90e61e40fbe4fc311b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-43.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:04.252247Z","duration_s":0.014797999999999999,"timed_out":false,"image_before":"1c7b9abe-475c-48f5-964a-fa511cc548ec","image_after":"7a0d05f7-01ee-4818-8ac6-f864cefeb4a6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-44","seq":44,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-a6823eafcce748bd9da50f0c9fb26d50/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-a6823eafcce748bd9da50f0c9fb26d50/incoming/db5a55df83a4521fefbc9c8c243b91f4e75b19bef419fab8086f39350484df35 /tmp/check_fixed.py'","path":"/tmp/check_fixed.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"db5a55df83a4521fefbc9c8c243b91f4e75b19bef419fab8086f39350484df35","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-44.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:12.689266Z","duration_s":0.004379,"timed_out":false,"image_before":"7a0d05f7-01ee-4818-8ac6-f864cefeb4a6","image_after":"ed1f0954-7012-4185-85db-93ba3eb7a427","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-45","seq":45,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/check_fixed.py","path":null,"exit_code":0,"stdout_tail":"=== Creating model with extensions (fixed) ===\nModel: <class 'abc.SearchGetRequest'>\nModel fields: {'collections': Field(name='collections',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'ids': Field(name='ids',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'bbox': Field(name='bbox',type=(typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'intersects': Field(name='intersects',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'datetime': Field(name='datetime',type=(typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'limit': Field(name='limit',type=(typing.Annotated[typing.Optional[int], Query(PydanticUndefined)], 10),default=10,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter': Field(name='filter',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter_crs': Field(name='filter_crs',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filter_lang': Field(name='filter_lang',type=(typing.Annotated[typing.Optional[typing.Literal['cql-json', 'cql2-json', 'cql2-text']], Query(PydanticUndefined)], 'cql2-text'),default='cql2-text',default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'fields': Field(name='fields',type=(typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None),default=None,default_factory=<dataclasses._MISSING_TYPE object at 0x7ffff76debf0>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}\nHas __post_init__: True\n\n=== Creating instance ===\nInstance: SearchGetRequest(collections=['test1', 'test2'], ids=None, bbox=None, intersects=None, datetime=None, limit=10, filter=None, filter_crs=None, filter_lang='cql2-text', fields=None)\ncollections: ['test1', 'test2'] (type: <class 'list'>)\n","stderr_tail":"","stdout_sha256":"37ad93f935681d942b86b74a3a7547acaeb9387db43642398fdb0366e99cbb9b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-45.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:16.018546Z","duration_s":0.388343,"timed_out":false,"image_before":"ed1f0954-7012-4185-85db-93ba3eb7a427","image_after":"aacd6dae-2740-42e4-ac9c-a5b8240bede0","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-46","seq":46,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-8fab575d59884a4b8435c8f03d0df6ba/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-8fab575d59884a4b8435c8f03d0df6ba/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-46.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-46.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.38s ===============================\n","stderr_tail":"","stdout_sha256":"0ef80ebd8d210a486de9def3c1f98c71585cc0aa4b3ec07f0fb1996516dde54f","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-46.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.1753452920820564,"started_at":"2026-10-03T16:42:20.300609Z","duration_s":1.486657,"timed_out":false,"image_before":"aacd6dae-2740-42e4-ac9c-a5b8240bede0","image_after":"604d703f-5c5e-4c18-99ad-43627853ae96","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-47","seq":47,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && sed -i 's/return Dataclass/# TEMP DEBUG\\n        print(f\"[DEBUG] About to return Dataclass: {Dataclass}\")\\n        print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, \\\"__post_init__\\\", \\\"MISSING\\\")}\")\\n        return Dataclass/' stac_fastapi/api/stac_fastapi/api/models.py","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-47.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:35.257438Z","duration_s":0.003875,"timed_out":false,"image_before":"604d703f-5c5e-4c18-99ad-43627853ae96","image_after":"a2b46f16-8f0f-47cc-a390-c4dcf7612b56","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-48","seq":48,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-c3f1c7c0ef73462ab29ab35af0295a9c/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-c3f1c7c0ef73462ab29ab35af0295a9c/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -s -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-48.xml","path":null,"exit_code":4,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 0 items / 1 error\n\n==================================== ERRORS ====================================\n____________ ERROR collecting stac_fastapi/api/tests/test_models.py ____________\n/usr/local/lib/python3.10/site-packages/_pytest/python.py:507: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.10/site-packages/_pytest/pathlib.py:587: in import_path\n    importlib.import_module(module_name)\n/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n<frozen importlib._bootstrap>:1050: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1027: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:688: in _load_unlocked\n    ???\n/usr/local/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:197: in exec_module\n    exec(co, module.__dict__)\nstac_fastapi/api/tests/test_models.py:8: in <module>\n    from stac_fastapi.api.models import create_get_request_model, create_post_request_model\nE     File \"/stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py\", line 75\nE       print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, \"__post_init__\", \"MISSING\")}\")\nE                                                                     ^^^^^^^^^^^^^\nE   SyntaxError: f-string: unmatched '('\n----------- generated xml file: /opt/receipts/reports/agent1-48.xml ------------\n=========================== short test summary info ============================\nERROR stac_fastapi/api/tests/test_models.py\n=============================== 1 error in 0.19s ===============================\n","stderr_tail":"ERROR: found no collectors for /stac-fastapi/stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n\n","stdout_sha256":"3099b23f41dea2d75a23e32b2faeb9d07efdb753b6d81d20faf39f9297626997","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-48.log","tree_digest":"793e61e8c4d384dc06c4136461f0d684e0e4cb5888d43308ade6d870dac67b11","tree_download_s":4.422006374923512,"started_at":"2026-10-03T16:42:39.477405Z","duration_s":1.3073290000000002,"timed_out":false,"image_before":"a2b46f16-8f0f-47cc-a390-c4dcf7612b56","image_after":"d704ceaf-7dff-439b-be2d-2528355ed065","junit":{"passed":[],"failed":[],"errors":[],"skipped":[],"collection_errors":["stac_fastapi/api/tests/test_models.py"],"failure_text":{"stac_fastapi/api/tests/test_models.py":"collection failure\n/usr/local/lib/python3.10/site-packages/_pytest/python.py:507: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.10/site-packages/_pytest/pathlib.py:587: in import_path\n    importlib.import_module(module_name)\n/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n<frozen importlib._bootstrap>:1050: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1027: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:688: in _load_unlocked\n    ???\n/usr/local/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:197: in exec_module\n    exec(co, module.__dict__)\nstac_fastapi/api/tests/test_models.py:8: in <module>\n    from stac_fastapi.api.models import create_get_request_model, create_post_request_model\nE     File \"/stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py\", line 75\nE       print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, \"__post_init__\", \"MISSING\")}\")\nE                                                                     ^^^^^^^^^^^^^\nE   SyntaxError: f-string: unmatched '('"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-49","seq":49,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && sed -i 's/print(f\"\\[DEBUG\\] Dataclass.__post_init__: {getattr(Dataclass, \"__post_init__\", \"MISSING\")}\")/print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, '\\''__post_init__'\\'', \\\"MISSING\\\")}\")/' stac_fastapi/api/stac_fastapi/api/models.py","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-49.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:49.153997Z","duration_s":0.003665,"timed_out":false,"image_before":"d704ceaf-7dff-439b-be2d-2528355ed065","image_after":"116799e1-2afa-4dc2-8ce0-22408cc4ef9d","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-50","seq":50,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && sed -i 's/print(f\"\\[DEBUG\\] About to return Dataclass: {Dataclass}\")/print(f\"[DEBUG] About to return Dataclass: {Dataclass}\")/' stac_fastapi/api/stac_fastapi/api/models.py","path":null,"exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-50.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:42:52.398194Z","duration_s":0.004114,"timed_out":false,"image_before":"116799e1-2afa-4dc2-8ce0-22408cc4ef9d","image_after":"51eb3c22-1441-4de5-97a4-77d66ac5d948","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-51","seq":51,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-0316ff78856c4e44a1c292f217e50a5e/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-0316ff78856c4e44a1c292f217e50a5e/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -s -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-51.xml","path":null,"exit_code":4,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 0 items / 1 error\n\n==================================== ERRORS ====================================\n____________ ERROR collecting stac_fastapi/api/tests/test_models.py ____________\n/usr/local/lib/python3.10/site-packages/_pytest/python.py:507: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.10/site-packages/_pytest/pathlib.py:587: in import_path\n    importlib.import_module(module_name)\n/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n<frozen importlib._bootstrap>:1050: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1027: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:688: in _load_unlocked\n    ???\n/usr/local/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:197: in exec_module\n    exec(co, module.__dict__)\nstac_fastapi/api/tests/test_models.py:8: in <module>\n    from stac_fastapi.api.models import create_get_request_model, create_post_request_model\nE     File \"/stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py\", line 75\nE       print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, '__post_init__', \"MISSING\")}\")\nE                                                                                      ^^^^^^^\nE   SyntaxError: f-string: unmatched '('\n----------- generated xml file: /opt/receipts/reports/agent1-51.xml ------------\n=========================== short test summary info ============================\nERROR stac_fastapi/api/tests/test_models.py\n=============================== 1 error in 0.20s ===============================\n","stderr_tail":"ERROR: found no collectors for /stac-fastapi/stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n\n","stdout_sha256":"bbf908d040e388bd3b75f370e5dc0c7583a2c658213fa1263a7fb2e384b4c914","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-51.log","tree_digest":"745afc3adba3dd6815a03f58baf50974f25762f2df6d86e4b1f35f97364d1b8e","tree_download_s":2.269681583158672,"started_at":"2026-10-03T16:42:56.249629Z","duration_s":1.3380070000000002,"timed_out":false,"image_before":"51eb3c22-1441-4de5-97a4-77d66ac5d948","image_after":"88ed1797-a01b-4c38-ad92-7fcfdd010a24","junit":{"passed":[],"failed":[],"errors":[],"skipped":[],"collection_errors":["stac_fastapi/api/tests/test_models.py"],"failure_text":{"stac_fastapi/api/tests/test_models.py":"collection failure\n/usr/local/lib/python3.10/site-packages/_pytest/python.py:507: in importtestmodule\n    mod = import_path(\n/usr/local/lib/python3.10/site-packages/_pytest/pathlib.py:587: in import_path\n    importlib.import_module(module_name)\n/usr/local/lib/python3.10/importlib/__init__.py:126: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\n<frozen importlib._bootstrap>:1050: in _gcd_import\n    ???\n<frozen importlib._bootstrap>:1027: in _find_and_load\n    ???\n<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked\n    ???\n<frozen importlib._bootstrap>:688: in _load_unlocked\n    ???\n/usr/local/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:197: in exec_module\n    exec(co, module.__dict__)\nstac_fastapi/api/tests/test_models.py:8: in <module>\n    from stac_fastapi.api.models import create_get_request_model, create_post_request_model\nE     File \"/stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py\", line 75\nE       print(f\"[DEBUG] Dataclass.__post_init__: {getattr(Dataclass, '__post_init__', \"MISSING\")}\")\nE                                                                                      ^^^^^^^\nE   SyntaxError: f-string: unmatched '('"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-52","seq":52,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-3e2898ca126e4157a05adf6f7524267e/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-3e2898ca126e4157a05adf6f7524267e/incoming/db8c199551966ea11adeb7fc8256cd39654dbfa198b54e8eb411ab4f717d49cf /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"db8c199551966ea11adeb7fc8256cd39654dbfa198b54e8eb411ab4f717d49cf","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-52.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:43:19.567018Z","duration_s":0.0046890000000000005,"timed_out":false,"image_before":"88ed1797-a01b-4c38-ad92-7fcfdd010a24","image_after":"6d17ceca-035d-4049-a146-e1b343169ad7","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-53","seq":53,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-99cf0d74807f4102809fe7047981fc01/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-99cf0d74807f4102809fe7047981fc01/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -s -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-53.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model [DEBUG] About to return Dataclass: <class 'abc.SearchGetRequest'>\n[DEBUG] Dataclass.__post_init__: <function create_request_model.<locals>._post_init__ at 0x7ffff4e01f30>\nFAILED\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-53.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.38s ===============================\n","stderr_tail":"","stdout_sha256":"5a36aa6c92305c4abefdf0fcf654a7d68d00808cae4f46f526db6ea9df1fb75f","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-53.log","tree_digest":"f0eb4e3b41a68e1aabb99891c11060ad84197202b9d62ecdf14e05c8b9f18905","tree_download_s":2.9134827910456806,"started_at":"2026-10-03T16:43:22.482601Z","duration_s":1.4954479999999999,"timed_out":false,"image_before":"6d17ceca-035d-4049-a146-e1b343169ad7","image_after":"db57f5a3-8d22-4c1f-8eff-da6903d246d3","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-54","seq":54,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-c70187f625464953b657dfde7cb6d0ac/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-c70187f625464953b657dfde7cb6d0ac/incoming/39686aca71f5d28f7aca92447f6b5cfa3dcd58f582e8763d9fa4cb16dbc74f07 /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"39686aca71f5d28f7aca92447f6b5cfa3dcd58f582e8763d9fa4cb16dbc74f07","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-54.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:43:44.196483Z","duration_s":0.004657,"timed_out":false,"image_before":"db57f5a3-8d22-4c1f-8eff-da6903d246d3","image_after":"f2aaad60-81a0-4a76-9ff8-d798a72ce490","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-55","seq":55,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-2c66ca839ab342388811614ccaf0ebdc/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-2c66ca839ab342388811614ccaf0ebdc/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-55.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], Field(name='collections',type=typing.Annotated[typi...0x7ffff7447340>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD))\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], Field(name='collections',type=typ.\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-55.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.39s ===============================\n","stderr_tail":"","stdout_sha256":"fd1b8999ebc82e03d992f0b26ef850dcc757352602af84367d2b8c9c72505b1b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-55.log","tree_digest":"5e837f685dabc66c2c10d50d650937df1ada36f4b2829ccadd8396a474d56ae4","tree_download_s":2.1677959591615945,"started_at":"2026-10-03T16:43:47.373866Z","duration_s":1.4981749999999998,"timed_out":false,"image_before":"f2aaad60-81a0-4a76-9ff8-d798a72ce490","image_after":"9af2320f-b161-4c42-942c-59b180ec74c0","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]epr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD))\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], Field(name='collections',type=typ.\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-56","seq":56,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-e84113b4498b4c25a4617298766ff22a/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-e84113b4498b4c25a4617298766ff22a/incoming/7f44273daf33f0e6dadad4d1c75259957e54879951df9d6d06dd613ca67a92cf /tmp/field_inspect.py'","path":"/tmp/field_inspect.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"7f44273daf33f0e6dadad4d1c75259957e54879951df9d6d06dd613ca67a92cf","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-56.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:08.212997Z","duration_s":0.005018,"timed_out":false,"image_before":"9af2320f-b161-4c42-942c-59b180ec74c0","image_after":"e076c29a-0874-4d71-9794-994c20cba5e6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-57","seq":57,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/field_inspect.py","path":null,"exit_code":1,"stdout_tail":"","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/field_inspect.py\", line 13, in <module>\n    class TestBase:\nTypeError: TestBase.__init__() takes 1 positional argument but 2 were given\n","stdout_sha256":"c20c8737e239bd49c0e80e35c950796d88b78ef50b93ceaf18e4b41dd481fdaf","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-57.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:12.245328Z","duration_s":0.295976,"timed_out":false,"image_before":"e076c29a-0874-4d71-9794-994c20cba5e6","image_after":"213ad9dd-041f-4120-b1ae-35f80fc0a59c","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-58","seq":58,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-a4c379b58d6741fb857e295d14cf46bf/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-a4c379b58d6741fb857e295d14cf46bf/incoming/225e66324bc521725b3e86189744d35b7e8ad865452f389c3ebd82355e624fc5 /tmp/simple_field.py'","path":"/tmp/simple_field.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"225e66324bc521725b3e86189744d35b7e8ad865452f389c3ebd82355e624fc5","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-58.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:21.040792Z","duration_s":0.004557,"timed_out":false,"image_before":"213ad9dd-041f-4120-b1ae-35f80fc0a59c","image_after":"73bf8e96-a16c-4948-a7cf-b4abaf521867","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-59","seq":59,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/simple_field.py","path":null,"exit_code":0,"stdout_tail":"FieldInfo for BaseModel.x:\n  annotation: typing.Optional[str]\n  default: None\n\nDataclass FieldInfo for DCInspectModel.x:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff7427c10>\n\nTesting what make_dataclass expects for fields parameter:\nFAILED: Basic (type, default): name 'make_dataclass' is not defined\nFAILED: Annotation-only: name 'make_dataclass' is not defined\n","stderr_tail":"","stdout_sha256":"3049b7cea724bd5862d13fbd198bddcebd8edfc606873bb9183e8a57ac19dfd5","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-59.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:24.824983Z","duration_s":0.26427300000000004,"timed_out":false,"image_before":"73bf8e96-a16c-4948-a7cf-b4abaf521867","image_after":"22c6d697-02be-4e51-849a-529ba9418d17","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-60","seq":60,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-3c725494568a4a2f8bcf4923027e4afa/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-3c725494568a4a2f8bcf4923027e4afa/incoming/cb915f7f9eb5fc820829edf47fd1cd93345a75853b9ef13b5e96842d8aa0da3e /tmp/simple_field2.py'","path":"/tmp/simple_field2.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cb915f7f9eb5fc820829edf47fd1cd93345a75853b9ef13b5e96842d8aa0da3e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-60.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:31.555821Z","duration_s":0.005402,"timed_out":false,"image_before":"22c6d697-02be-4e51-849a-529ba9418d17","image_after":"1a969093-78cd-4dbb-be26-06f3f722359c","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-61","seq":61,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/simple_field2.py","path":null,"exit_code":0,"stdout_tail":"FieldInfo for BaseModel.x:\n  annotation: typing.Optional[str]\n  default: None\n\nDataclass FieldInfo for DCInspectModel.x:\n  type: typing.Annotated[typing.Optional[str], Query(PydanticUndefined)]\n  default: None\n  default_factory: <dataclasses._MISSING_TYPE object at 0x7ffff7427d00>\n\nTesting what make_dataclass expects for fields parameter:\nSUCCESS: Basic (type, default) works: x=hello\nFAILED: Annotation-only: TestClass2.__init__() missing 1 required positional argument: 'x'\n","stderr_tail":"","stdout_sha256":"f8a74e2ea73e1e145058541d3e18c16353bfa5a189ddde248e1786de5e1f7d3d","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-61.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:35.648879Z","duration_s":0.253721,"timed_out":false,"image_before":"1a969093-78cd-4dbb-be26-06f3f722359c","image_after":"90d5dbee-5d19-48c9-bfbb-b41977c4e8d9","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-62","seq":62,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-daaf57e4ecbb4589a89f674668f4af99/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-daaf57e4ecbb4589a89f674668f4af99/incoming/6491a7093288d70610bdb8db73287651989bc80baa0dca304e95d11bb8fdfd6c /tmp/debug_real.py'","path":"/tmp/debug_real.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"6491a7093288d70610bdb8db73287651989bc80baa0dca304e95d11bb8fdfd6c","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-62.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:45.038064Z","duration_s":0.004614,"timed_out":false,"image_before":"90d5dbee-5d19-48c9-bfbb-b41977c4e8d9","image_after":"e667f1bf-6854-48c8-99d9-7f956965d784","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-63","seq":63,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/debug_real.py","path":null,"exit_code":0,"stdout_tail":"=== Testing debug version ===\n[DEBUG] Processing models: ['BaseSearchGetRequest']\n[DEBUG] Handling as GET request\n[DEBUG] Checking model: BaseSearchGetRequest\n[DEBUG]   Has __dataclass_fields__\n[DEBUG]     Added field collections: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field ids: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field bbox: (typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field intersects: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field datetime: (typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field limit: (typing.Annotated[typing.Optional[int], Query(PydanticUndefined)], 10) (was: (empty))\n[DEBUG] Final fields dict: {'collections': (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None), 'ids': (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None), 'bbox': (typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)], None), 'intersects': (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None), 'datetime': (typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)], None), 'limit': (typing.Annotated[typing.Optional[int], Query(PydanticUndefined)], 10)}\n[DEBUG] Returning Dataclass: <class 'abc.SearchGetRequest'>\n[DEBUG] Dataclass has __post_init__: True\nGot model: <class 'abc.SearchGetRequest'>\n\n=== Creating instance ===\nSUCCESS: instance = SearchGetRequest(collections=['test1', 'test2'], ids=None, bbox=None, intersects=None, datetime=None, limit=10)\ncollections = ['test1', 'test2']\n","stderr_tail":"","stdout_sha256":"527358adbf100ab10f4542d562516e76c4a7484beb73d8db8f8e39f3e8ffa773","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-63.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:48.589263Z","duration_s":0.327823,"timed_out":false,"image_before":"e667f1bf-6854-48c8-99d9-7f956965d784","image_after":"8a3805c0-d36c-41c5-8f01-d956e34414db","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-64","seq":64,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-6fd660260a16470c8c6f468e1dfa6209/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-6fd660260a16470c8c6f468e1dfa6209/incoming/2eb21b1ec6e656bb0ff0a8a0aefc3fa7eb9b9d4813a1816fda7b3b0aabb12976 /tmp/debug_real_with_ext.py'","path":"/tmp/debug_real_with_ext.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"2eb21b1ec6e656bb0ff0a8a0aefc3fa7eb9b9d4813a1816fda7b3b0aabb12976","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-64.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:44:58.457894Z","duration_s":0.004699,"timed_out":false,"image_before":"8a3805c0-d36c-41c5-8f01-d956e34414db","image_after":"c9fd434e-0a22-4984-9739-957cafd03d32","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-65","seq":65,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/debug_real_with_ext.py","path":null,"exit_code":1,"stdout_tail":"=== Testing debug version WITH EXTENSIONS ===\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/debug_real_with_ext.py\", line 104, in <module>\n    model = debug_create_request_model(extensions=[FieldsExtensionGetRequest(), FilterExtensionGetRequest()])\n  File \"/tmp/debug_real_with_ext.py\", line 39, in debug_create_request_model\n    if extension_model := extension.get_request_model(request_type):\nAttributeError: 'FieldsExtensionGetRequest' object has no attribute 'get_request_model'\n","stdout_sha256":"b44d68995bcbd4539c178c5ebdcd88234a0a320f71e1bdc2f80e331386ee6e1e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-65.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:01.919266Z","duration_s":0.377906,"timed_out":false,"image_before":"c9fd434e-0a22-4984-9739-957cafd03d32","image_after":"05065df2-b81e-4b5c-a408-93f40a30f1be","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-66","seq":66,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-ab2eec9bf9a044d0b820ccb2375161d3/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-ab2eec9bf9a044d0b820ccb2375161d3/incoming/c7895f442287bc9071d76575a5e4121d5ca9a593ae9c4c1b353f9a24b7eeb57f /tmp/debug_real_with_ext2.py'","path":"/tmp/debug_real_with_ext2.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"c7895f442287bc9071d76575a5e4121d5ca9a593ae9c4c1b353f9a24b7eeb57f","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-66.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:13.226937Z","duration_s":0.004814,"timed_out":false,"image_before":"05065df2-b81e-4b5c-a408-93f40a30f1be","image_after":"e9746914-f414-45f1-9c5c-b311dc685a18","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-67","seq":67,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/debug_real_with_ext2.py","path":null,"exit_code":1,"stdout_tail":"=== Testing debug version WITH EXTENSIONS ===\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/debug_real_with_ext2.py\", line 104, in <module>\n    model = debug_create_request_model(extensions=[FieldsExtensionGetRequest(), FilterExtensionGetRequest()])\n  File \"/tmp/debug_real_with_ext2.py\", line 39, in debug_create_request_model\n    if extension_model := extension.get_request_model(request_type):\nAttributeError: 'FieldsExtensionGetRequest' object has no attribute 'get_request_model'\n","stdout_sha256":"aff404696f93ef29bc58e7f4c4200101a4440e1a56c86eb9ad84ccce428e661b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-67.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:16.627330Z","duration_s":0.372366,"timed_out":false,"image_before":"e9746914-f414-45f1-9c5c-b311dc685a18","image_after":"e352584d-a937-4750-993b-99850295d9af","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-68","seq":68,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-15751f4e35fe4a4ea9189872e19e8e08/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-15751f4e35fe4a4ea9189872e19e8e08/incoming/80cdb40a3a013b7fe0255e8edfc8f80ab25ae27007bd9805bbfae56389a97170 /tmp/debug_final.py'","path":"/tmp/debug_final.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"80cdb40a3a013b7fe0255e8edfc8f80ab25ae27007bd9805bbfae56389a97170","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-68.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:37.637362Z","duration_s":0.004837,"timed_out":false,"image_before":"e352584d-a937-4750-993b-99850295d9af","image_after":"a0a03167-cc38-489f-ac76-2ff9358ddbd1","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-69","seq":69,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/debug_final.py","path":null,"exit_code":0,"stdout_tail":"=== Testing debug version WITH EXTENSIONS (INSTANTIATED) ===\n[DEBUG] Processing models: ['FieldsExtensionGetRequest', 'FilterExtensionGetRequest', 'BaseSearchGetRequest']\n[DEBUG] Handling as GET request\n[DEBUG] Checking model: FieldsExtensionGetRequest\n[DEBUG]   Has __dataclass_fields__\n[DEBUG]     Added field fields: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG] Checking model: FilterExtensionGetRequest\n[DEBUG]   Has __dataclass_fields__\n[DEBUG]     Added field filter: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field filter_crs: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field filter_lang: (typing.Annotated[typing.Optional[typing.Literal['cql-json', 'cql2-json', 'cql2-text']], Query(PydanticUndefined)], 'cql2-text') (was: (empty))\n[DEBUG] Checking model: BaseSearchGetRequest\n[DEBUG]   Has __dataclass_fields__\n[DEBUG]     Added field collections: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field ids: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field bbox: (typing.Annotated[typing.Union[typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], typing.Tuple[typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int], typing.Union[float, int]], NoneType], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field intersects: (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field datetime: (typing.Annotated[typing.Union[datetime.datetime, typing.Tuple[datetime.datetime, datetime.datetime], typing.Tuple[datetime.datetime, NoneType], typing.Tuple[NoneType, datetime.datetime], NoneType], Query(PydanticUndefined)], None) (was: (empty))\n[DEBUG]     Added field limit: (typing.Annotated[typing.Optional[int], Query(PydanticUndefined)], 10) (was: (empty))\n[DEBUG] Final fields dict: ['fields', 'filter', 'filter_crs', 'filter_lang', 'collections', 'ids', 'bbox', 'intersects', 'datetime', 'limit']\n[DEBUG] Returning Dataclass: <class 'abc.SearchGetRequest'>\n[DEBUG] Dataclass has __post_init__: True\nGot model: <class 'abc.SearchGetRequest'>\n\n=== Creating instance ===\nSUCCESS: instance = SearchGetRequest(collections=['test1', 'test2'], ids=None, bbox=None, intersects=None, datetime=None, limit=10, filter=None, filter_crs=None, filter_lang='cql2-text', fields=['a', 'b'])\ncollections = ['test1', 'test2']\nfields = ['a', 'b']\n","stderr_tail":"","stdout_sha256":"9b5b9e1f57e9b9d4e52439ca895ed1a0c437d1afc0f7f2d7b5f5aa6d1d1237c8","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-69.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:41.931936Z","duration_s":0.370544,"timed_out":false,"image_before":"a0a03167-cc38-489f-ac76-2ff9358ddbd1","image_after":"19d2c351-72b3-4d35-9d31-cb327f227310","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-70","seq":70,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-8e739d00130f42649d8f93669a3d4841/bin/busybox sh -c 'mkdir -p /stac-fastapi/stac_fastapi/api/stac_fastapi/api && cp /opt/receipts-8e739d00130f42649d8f93669a3d4841/incoming/cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577 /stac-fastapi/stac_fastapi/api/stac_fastapi/api/models.py'","path":"stac_fastapi/api/stac_fastapi/api/models.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"cef18b5d0ae4b8aba2338018ceb6b07c30066bd0b6f476db340e24130c7b8577","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-70.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:45:51.582168Z","duration_s":0.004675,"timed_out":false,"image_before":"19d2c351-72b3-4d35-9d31-cb327f227310","image_after":"e5f491aa-4c96-43b4-bb0d-77bbdb1a913b","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-71","seq":71,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-dcec7d8b6f154bddbd72baec77b99faa/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-dcec7d8b6f154bddbd72baec77b99faa/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-71.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-71.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.38s ===============================\n","stderr_tail":"","stdout_sha256":"32f0c0a616a285efe04050867911b8ffd9737c3b59c7d4c1371972a219bd189e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-71.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.245540125062689,"started_at":"2026-10-03T16:45:55.983958Z","duration_s":1.4873349999999999,"timed_out":false,"image_before":"e5f491aa-4c96-43b4-bb0d-77bbdb1a913b","image_after":"6f649647-f62a-44e3-be04-beddaa9dd389","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-72","seq":72,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-831f6dc8294f4cb88234cb10d389e4b6/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-831f6dc8294f4cb88234cb10d389e4b6/incoming/8aca7060f8398a7eed7eaf774b199e7b0bc2ff92b4f95a49c4dba268b18c3e1c /tmp/test_datetime.py'","path":"/tmp/test_datetime.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"8aca7060f8398a7eed7eaf774b199e7b0bc2ff92b4f95a49c4dba268b18c3e1c","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-72.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:46:08.303518Z","duration_s":0.004594,"timed_out":false,"image_before":"6f649647-f62a-44e3-be04-beddaa9dd389","image_after":"6031a514-5987-477a-8bfc-6aa8a43dd5f6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-73","seq":73,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/test_datetime.py","path":null,"exit_code":1,"stdout_tail":"=== Testing datetime validation with extensions ===\n","stderr_tail":"Traceback (most recent call last):\n  File \"/tmp/test_datetime.py\", line 9, in <module>\n    base_model=BaseSearchGetRequest,\nNameError: name 'BaseSearchGetRequest' is not defined\n","stdout_sha256":"37f67b04982182e9f71fc3fddfeac83dd9bbdb9e2077db0d80d9138aba3912bf","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-73.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:46:12.272488Z","duration_s":0.389719,"timed_out":false,"image_before":"6031a514-5987-477a-8bfc-6aa8a43dd5f6","image_after":"7d78845f-fe65-49e4-a536-c94dcb4525ec","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-74","seq":74,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-4e71c16eacd044569d9e341385cb47cf/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-4e71c16eacd044569d9e341385cb47cf/incoming/e90e97a4f8cf1701171de0934ac9901d015957c36a13dc09288418e597a807c0 /tmp/test_datetime_final.py'","path":"/tmp/test_datetime_final.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"e90e97a4f8cf1701171de0934ac9901d015957c36a13dc09288418e597a807c0","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-74.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:46:21.686498Z","duration_s":0.004568,"timed_out":false,"image_before":"7d78845f-fe65-49e4-a536-c94dcb4525ec","image_after":"dc7f8344-bc6c-42ee-ba2d-0368ac9aa337","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-75","seq":75,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && python /tmp/test_datetime_final.py","path":null,"exit_code":0,"stdout_tail":"=== Testing datetime validation with extensions ===\nTesting good datetime:\nSUCCESS: datetime = 2020-01-01 00:00:00+00:00\n\nTesting bad datetime:\nEXPECTED ERROR: 400: Invalid RFC3339 datetime.\n","stderr_tail":"","stdout_sha256":"cb24c37817cc985e5498c33ad82eb019c66164e2123e36739d444e5bb2571334","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-75.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:46:26.147163Z","duration_s":0.36945300000000003,"timed_out":false,"image_before":"dc7f8344-bc6c-42ee-ba2d-0368ac9aa337","image_after":"a3126798-8952-46c3-adaf-d18e59a40b48","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-76","seq":76,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-e08e2436e83b463bac060c7c19317464/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-e08e2436e83b463bac060c7c19317464/receipts_pytest.py stac_fastapi/api/tests/test_models.py -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-76.xml","path":null,"exit_code":1,"stdout_tail":"tby1-True] PASSED [ 77%]\nstac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[sortby2-False] PASSED [ 88%]\nstac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[test-False] PASSED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-76.xml ------------\n=========================== short test summary info ============================\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model[None-True]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model[filter1-True]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model[test==test-False]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model[filter3-False]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[None-True]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[sortby1-True]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[sortby2-False]\nPASSED stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[test-False]\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n========================= 1 failed, 8 passed in 0.41s ==========================\n","stderr_tail":"","stdout_sha256":"dc49be81e43f54898642e0c0d6a7c7b1bd7406a44fef36c8fbd803fa48a9920a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-76.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.7673236248083413,"started_at":"2026-10-03T16:46:31.244985Z","duration_s":1.506404,"timed_out":false,"image_before":"a3126798-8952-46c3-adaf-d18e59a40b48","image_after":"2cb926c8-6262-4cfe-b53e-20380655ccc7","junit":{"passed":["stac_fastapi/api/tests/test_models.py::test_create_post_request_model[None-True]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model[filter1-True]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model[test==test-False]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model[filter3-False]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[None-True]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[sortby1-True]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[sortby2-False]","stac_fastapi/api/tests/test_models.py::test_create_post_request_model_nested_fields[test-False]"],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-77","seq":77,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-28458515f7a944f3bf13b823d5432b6c/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-28458515f7a944f3bf13b823d5432b6c/receipts_pytest.py stac_fastapi/api/tests/test_app.py -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-77.xml","path":null,"exit_code":1,"stdout_tail":"\"\"Test if request models are passed correctly.\"\"\"\n    \n        @attr.s\n        class CollectionsRequest(APIRequest):\n            user: Annotated[str, Query(...)] = attr.ib()\n    \n        @attr.s\n        class CollectionRequest(APIRequest):\n            collection_id: Annotated[str, Path(description=\"Collection ID\")] = attr.ib()\n            user: Annotated[str, Query(...)] = attr.ib()\n    \n        @attr.s\n        class ItemsRequest(APIRequest):\n            collection_id: Annotated[str, Path(description=\"Collection ID\")] = attr.ib()\n            user: Annotated[str, Query(...)] = attr.ib()\n    \n        @attr.s\n        class ItemRequest(APIRequest):\n            collection_id: Annotated[str, Path(description=\"Collection ID\")] = attr.ib()\n            item_id: Annotated[str, Path(description=\"Item ID\")] = attr.ib()\n            user: Annotated[str, Query(...)] = attr.ib()\n    \n        test_app = app.StacApi(\n            settings=ApiSettings(),\n            client=AsyncTestCoreClient(),\n            collections_get_request_model=CollectionsRequest,\n            collection_get_request_model=CollectionRequest,\n            items_get_request_model=ItemsRequest,\n            item_get_request_model=ItemRequest,\n            extensions=[],\n        )\n    \n>       with TestClient(test_app.app) as client:\n\nstac_fastapi/api/tests/test_app.py:362: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:688: in __enter__\n    portal.call(self.wait_startup)\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:334: in call\n    return cast(T_Retval, self.start_task_soon(func, *args).result())\n/usr/local/lib/python3.10/concurrent/futures/_base.py:451: in result\n    return self.__get_result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:403: in __get_result\n    raise self._exception\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:259: in _call_func\n    retval = await retval_or_awaitable\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:717: in wait_startup\n    message = await receive()\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:714: in receive\n    self.task.result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:451: in result\n    return self.__get_result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:403: in __get_result\n    raise self._exception\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:259: in _call_func\n    retval = await retval_or_awaitable\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:704: in lifespan\n    await self.app(scope, self.stream_receive.receive, self.stream_send.send)\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1134: in __call__\n    await super().__call__(scope, receive, send)\n/usr/local/lib/python3.10/site-packages/starlette/applications.py:106: in __call__\n    self.middleware_stack = self.build_middleware_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff3c54610>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff3c566e0>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-77.xml ------------\n=========================== short test summary info ============================\nPASSED stac_fastapi/api/tests/test_app.py::test_client_openapi\nFAILED stac_fastapi/api/tests/test_app.py::test_client_response_type - TypeEr...\nFAILED stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[True]\nFAILED stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[False]\nFAILED stac_fastapi/api/tests/test_app.py::test_filter_extension[True] - Type...\nFAILED stac_fastapi/api/tests/test_app.py::test_filter_extension[False] - Typ...\nFAILED stac_fastapi/api/tests/test_app.py::test_fields_extension[True] - Type...\nFAILED stac_fastapi/api/tests/test_app.py::test_fields_extension[False] - Typ...\nFAILED stac_fastapi/api/tests/test_app.py::test_request_model - TypeError: ca...\n========================= 8 failed, 1 passed in 1.35s ==========================\n","stderr_tail":"","stdout_sha256":"dc1bfe3992ef89e3ec4edb12dc113bce8385bce8622ec7245dd9fc924b4d5d9b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-77.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.8795005418360233,"started_at":"2026-10-03T16:46:41.357266Z","duration_s":2.458396,"timed_out":false,"image_before":"2cb926c8-6262-4cfe-b53e-20380655ccc7","image_after":"28d74f79-1882-4a34-a454-5b9bdfdc5863","junit":{"passed":["stac_fastapi/api/tests/test_app.py::test_client_openapi"],"failed":["stac_fastapi/api/tests/test_app.py::test_client_response_type","stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[True]","stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[False]","stac_fastapi/api/tests/test_app.py::test_filter_extension[True]","stac_fastapi/api/tests/test_app.py::test_filter_extension[False]","stac_fastapi/api/tests/test_app.py::test_fields_extension[True]","stac_fastapi/api/tests/test_app.py::test_fields_extension[False]","stac_fastapi/api/tests/test_app.py::test_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_app.py::test_client_response_type":"[...]re_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff499f970>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff499f9d0>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError","stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[True]":"[...]re_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff4ed5bd0>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff482f730>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError","stac_fastapi/api/tests/test_app.py::test_client_invalid_response_type[False]":"[...]re_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff4f7fd30>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff4f7d090>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError","stac_fastapi/api/tests/test_app.py::test_filter_extension[True]":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError","stac_fastapi/api/tests/test_app.py::test_filter_extension[False]":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError","stac_fastapi/api/tests/test_app.py::test_fields_extension[True]":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError","stac_fastapi/api/tests/test_app.py::test_fields_extension[False]":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError","stac_fastapi/api/tests/test_app.py::test_request_model":"[...]re_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff3c54610>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff3c566e0>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-78","seq":78,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && git stash","path":null,"exit_code":0,"stdout_tail":"Saved working directory and index state WIP on (no branch): 75902de receipts snapshot\n","stderr_tail":"","stdout_sha256":"57805b048c17fcfb90fc4fd25389bd8937e973dbcafd3804c6344517ca83346d","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-78.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:46:54.110535Z","duration_s":0.016921,"timed_out":false,"image_before":"28d74f79-1882-4a34-a454-5b9bdfdc5863","image_after":"5c51a5e0-dd5d-4d76-904c-9734ed9ee071","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-79","seq":79,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-1aff7001b5944caf88a2e9270256b546/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-1aff7001b5944caf88a2e9270256b546/receipts_pytest.py stac_fastapi/api/tests/test_app.py::test_client_response_type -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-79.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_app.py::test_client_response_type FAILED     [100%]\n\n=================================== FAILURES ===================================\n__________________________ test_client_response_type ___________________________\n\nTestCoreClient = <class 'conftest.TestCoreClient.<locals>.CoreClient'>\n\n    def test_client_response_type(TestCoreClient):\n        \"\"\"Test all GET endpoints. Verify that responses are valid STAC items.\"\"\"\n    \n        test_app = app.StacApi(\n            settings=ApiSettings(),\n            client=TestCoreClient(),\n        )\n    \n>       with TestClient(test_app.app) as client:\n\nstac_fastapi/api/tests/test_app.py:34: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:688: in __enter__\n    portal.call(self.wait_startup)\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:334: in call\n    return cast(T_Retval, self.start_task_soon(func, *args).result())\n/usr/local/lib/python3.10/concurrent/futures/_base.py:451: in result\n    return self.__get_result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:403: in __get_result\n    raise self._exception\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:259: in _call_func\n    retval = await retval_or_awaitable\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:717: in wait_startup\n    message = await receive()\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:714: in receive\n    self.task.result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:451: in result\n    return self.__get_result()\n/usr/local/lib/python3.10/concurrent/futures/_base.py:403: in __get_result\n    raise self._exception\n/usr/local/lib/python3.10/site-packages/anyio/from_thread.py:259: in _call_func\n    retval = await retval_or_awaitable\n/usr/local/lib/python3.10/site-packages/starlette/testclient.py:704: in lifespan\n    await self.app(scope, self.stream_receive.receive, self.stream_send.send)\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1134: in __call__\n    await super().__call__(scope, receive, send)\n/usr/local/lib/python3.10/site-packages/starlette/applications.py:106: in __call__\n    self.middleware_stack = self.build_middleware_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff4c5b2b0>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff4c5b250>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-79.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_app.py::test_client_response_type - TypeEr...\n============================== 1 failed in 0.39s ===============================\n","stderr_tail":"","stdout_sha256":"876a458482986ab835d9db6a634574c2acfb05955e12dbd48d881b5d4d90a108","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-79.log","tree_digest":"ab7a97afdac792cf9e2251fa336653ae79064a24822b2746259e12400719066a","tree_download_s":2.3120204580482095,"started_at":"2026-10-03T16:46:58.092685Z","duration_s":1.501083,"timed_out":false,"image_before":"5c51a5e0-dd5d-4d76-904c-9734ed9ee071","image_after":"07f3d13d-0ac7-40ea-a330-ef741d314a1e","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_app.py::test_client_response_type"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_app.py::test_client_response_type":"[...]re_stack()\n/usr/local/lib/python3.10/site-packages/fastapi/applications.py:1042: in build_middleware_stack\n    app = cls(app, *args, **kwargs)\nstac_fastapi/api/stac_fastapi/api/middleware.py:35: in __init__\n    super().__init__(\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <stac_fastapi.api.middleware.CORSMiddleware object at 0x7ffff4c5b2b0>\napp = <brotli_asgi.BrotliMiddleware object at 0x7ffff4c5b250>\nallow_origins = ('*',), allow_methods = ('OPTIONS', 'POST', 'GET')\nallow_headers = ('Content-Type',), allow_credentials = False\nallow_origin_regex = None, allow_private_network = (), expose_headers = 600\nmax_age = 600\n\n    def __init__(\n        self,\n        app: ASGIApp,\n        allow_origins: Sequence[str] = (),\n        allow_methods: Sequence[str] = (\"GET\",),\n        allow_headers: Sequence[str] = (),\n        allow_credentials: bool = False,\n        allow_origin_regex: str | None = None,\n        allow_private_network: bool = False,\n        expose_headers: Sequence[str] = (),\n        max_age: int = 600,\n    ) -> None:\n        if \"*\" in allow_methods:\n            allow_methods = ALL_METHODS\n    \n        compiled_allow_origin_regex = None\n        if allow_origin_regex is not None:\n            compiled_allow_origin_regex = re.compile(allow_origin_regex)\n    \n        allow_all_origins = \"*\" in allow_origins\n        allow_all_headers = \"*\" in allow_headers\n        preflight_explicit_allow_origin = not allow_all_origins or allow_credentials\n    \n        simple_headers: dict[str, str] = {}\n        if allow_all_origins:\n            simple_headers[\"Access-Control-Allow-Origin\"] = \"*\"\n        if allow_credentials:\n            simple_headers[\"Access-Control-Allow-Credentials\"] = \"true\"\n        if expose_headers:\n>           simple_headers[\"Access-Control-Expose-Headers\"] = \", \".join(expose_headers)\nE           TypeError: can only join an iterable\n\n/usr/local/lib/python3.10/site-packages/starlette/middleware/cors.py:45: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-80","seq":80,"branch_id":"agent1","kind":"command","cmd":"cd /stac-fastapi && git stash pop","path":null,"exit_code":0,"stdout_tail":"Not currently on any branch.\nChanges not staged for commit:\n  (use \"git add <file>...\" to update what will be committed)\n  (use \"git restore <file>...\" to discard changes in working directory)\n\tmodified:   stac_fastapi/api/stac_fastapi/api/models.py\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nDropped refs/stash@{0} (5f079e7c07012555477ae1ad77f419b60623b665)\n","stderr_tail":"","stdout_sha256":"b0ce1aa5a2b5ea1d723b3d7233025181fe8a961dc23b5266605cd834d9438154","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-80.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T16:47:09.391477Z","duration_s":0.014095,"timed_out":false,"image_before":"07f3d13d-0ac7-40ea-a330-ef741d314a1e","image_after":"6622ebdf-c2a9-485c-8c71-2622d3c60d44","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-81","seq":81,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-b2383b5b1bef4bd785927fda02eb29f5/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-b2383b5b1bef4bd785927fda02eb29f5/receipts_pytest.py stac_fastapi/api/tests/test_models.py::test_create_get_request_model -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-81.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /stac-fastapi\nconfigfile: pyproject.toml\nplugins: anyio-4.12.1, asyncio-1.3.0, cov-7.0.0\nasyncio: mode=strict, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function\ncollecting ... collected 1 item\n\nstac_fastapi/api/tests/test_models.py::test_create_get_request_model FAILED [100%]\n\n=================================== FAILURES ===================================\n________________________ test_create_get_request_model _________________________\n\n    def test_create_get_request_model():\n        request_model = create_get_request_model(\n            extensions=[FilterExtension(), FieldsExtension()],\n            base_model=BaseSearchGetRequest,\n        )\n    \n        model = request_model(\n            collections=\"test1,test2\",\n            ids=\"test1,test2\",\n            bbox=\"0,0,1,1\",\n            intersects=json.dumps(\n                {\n                    \"type\": \"Polygon\",\n                    \"coordinates\": [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]],\n                }\n            ),\n            datetime=\"2020-01-01T00:00:00Z\",\n            limit=10,\n            filter=\"test==test\",\n            filter_crs=\"epsg:4326\",\n            filter_lang=\"cql2-text\",\n        )\n    \n        assert model.collections == [\"test1\", \"test2\"]\n        assert model.filter_crs == \"epsg:4326\"\n    \n        with pytest.raises(HTTPException):\n            request_model(datetime=\"yo\")\n    \n        app = FastAPI()\n    \n        @app.get(\"/test\")\n>       def route(model=Depends(request_model)):\n\nstac_fastapi/api/tests/test_models.py:45: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1125: in decorator\n    self.add_api_route(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:1064: in add_api_route\n    route = route_class(\n/usr/local/lib/python3.10/site-packages/fastapi/routing.py:665: in __init__\n    self.dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:301: in get_dependant\n    sub_dependant = get_dependant(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:279: in get_dependant\n    param_details = analyze_param(\n/usr/local/lib/python3.10/site-packages/fastapi/dependencies/utils.py:508: in analyze_param\n    field = create_model_field(\n/usr/local/lib/python3.10/site-packages/fastapi/utils.py:73: in create_model_field\n    return v2.ModelField(mode=mode, name=name, field_info=field_info)\n<string>:7: in __init__\n    ???\n/usr/local/lib/python3.10/site-packages/fastapi/_compat/v2.py:151: in __post_init__\n    Annotated[annotated_args],\n/usr/local/lib/python3.10/typing.py:312: in inner\n    return func(*args, **kwds)\n/usr/local/lib/python3.10/typing.py:1702: in __class_getitem__\n    origin = _type_check(params[0], msg, allow_special_forms=True)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError\n----------- generated xml file: /opt/receipts/reports/agent1-81.xml ------------\n=========================== short test summary info ============================\nFAILED stac_fastapi/api/tests/test_models.py::test_create_get_request_model\n============================== 1 failed in 0.39s ===============================\n","stderr_tail":"","stdout_sha256":"892874b377c58c1f158f0ca6d11a26e3b59392d8167aceba9de2b9cd25b01745","log_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/logs/agent1/agent1-81.log","tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.7654799590818584,"started_at":"2026-10-03T16:47:13.683780Z","duration_s":1.504152,"timed_out":false,"image_before":"6622ebdf-c2a9-485c-8c71-2622d3c60d44","image_after":"94968838-168a-4a77-9d7c-23e17f78ee2c","junit":{"passed":[],"failed":["stac_fastapi/api/tests/test_models.py::test_create_get_request_model"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"stac_fastapi/api/tests/test_models.py::test_create_get_request_model":"[...]_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\narg = (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None)\nmsg = 'Annotated[t, ...]: t must be a type.', is_argument = True, module = None\n\n    def _type_check(arg, msg, is_argument=True, module=None, *, allow_special_forms=False):\n        \"\"\"Check that the argument is a type, and return it (internal helper).\n    \n        As a special case, accept None and return type(None) instead. Also wrap strings\n        into ForwardRef instances. Consider several corner cases, for example plain\n        special forms like Union are not valid, while Union[int, str] is OK, etc.\n        The msg argument is a human-readable error message, e.g::\n    \n            \"Union[arg, ...]: arg should be a type.\"\n    \n        We append the repr() of the actual value (truncated to 100 chars).\n        \"\"\"\n        invalid_generic_forms = (Generic, Protocol)\n        if not allow_special_forms:\n            invalid_generic_forms += (ClassVar,)\n            if is_argument:\n                invalid_generic_forms += (Final,)\n    \n        arg = _type_convert(arg, module=module, allow_special_forms=allow_special_forms)\n        if (isinstance(arg, _GenericAlias) and\n                arg.__origin__ in invalid_generic_forms):\n            raise TypeError(f\"{arg} is not valid as type argument\")\n        if arg in (Any, NoReturn, Final, TypeAlias):\n            return arg\n        if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):\n            raise TypeError(f\"Plain {arg} is not valid as type argument\")\n        if isinstance(arg, (type, TypeVar, ForwardRef, types.UnionType, ParamSpec,\n                            ParamSpecArgs, ParamSpecKwargs)):\n            return arg\n        if not callable(arg):\n>           raise TypeError(f\"{msg} Got {arg!r:.100}.\")\nE           TypeError: Annotated[t, ...]: t must be a type. Got (typing.Annotated[typing.Optional[str], Query(PydanticUndefined)], None).\n\n/usr/local/lib/python3.10/typing.py:176: TypeError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-82","seq":82,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-477d05f37a5241a492a6dfd84c9a7591: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 75902de1e8fde07976e60bf29003cef272dfc942","path":null,"exit_code":0,"stdout_tail":"diff --git a/stac_fastapi/api/stac_fastapi/api/models.py b/stac_fastapi/api/stac_fastapi/api/models.py\nindex 1c2146d..4fb3c50 100644\n--- a/stac_fastapi/api/stac_fastapi/api/models.py\n+++ b/stac_fastapi/api/stac_fastapi/api/models.py\n@@ -47,7 +47,30 @@ def create_request_model(\n \n     # Handle GET requests\n     if all([issubclass(m, APIRequest) for m in models]):\n-        return make_dataclass(model_name, [], bases=tuple(models))\n+        # Collect fields from all parent models to avoid __post_init__ conflicts\n+        for model in models:\n+            if hasattr(model, '__dataclass_fields__'):\n+                for k, field_info in model.__dataclass_fields__.items():\n+                    if k not in fields:  # Avoid duplicates, parents take precedence\n+                        fields[k] = (field_info.type, field_info.default)\n+            elif hasattr(model, 'model_fields'):\n+                for k, field_info in model.model_fields.items():\n+                    if k not in fields:  # Avoid duplicates\n+                        fields[k] = (field_info.annotation, field_info.default)\n+        \n+        # Create the dataclass with collected fields\n+        Dataclass = make_dataclass(model_name, list(fields.items()), bases=tuple(models))\n+        \n+        # Add a __post_init__ method that properly chains to parent __post_init__ methods\n+        def _post_init__(self):\n+            \"\"\"Chain to all parent __post_init__ methods.\"\"\"\n+            # Call __post_init__ on each parent class in MRO order (excluding self and object)\n+            for cls in type(self).__mro__[1:-1]:  # Skip self (index 0) and object (last)\n+                if hasattr(cls, '__post_init__'):\n+                    cls.__post_init__(self)\n+        \n+        Dataclass.__post_init__ = _post_init__\n+        return Dataclass\n \n     # Handle POST requests\n     elif all([issubclass(m, BaseModel) for m in models]):\n@@ -134,4 +157,4 @@ class GeoJSONResponse(JSONResponse):\n class JSONSchemaResponse(JSONResponse):\n     \"\"\"JSON with custom, vendor content-type.\"\"\"\n \n-    media_type = \"application/schema+json\"\n+    media_type = \"application/schema+json\"\n\\ No newline at end of file\n","stderr_tail":"","stdout_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","log_path":null,"tree_digest":"e0cb09b7190d94de5e00b4e094a40b47fa52b6477de2034c8883bd92a5f59452","tree_download_s":2.617959124967456,"started_at":"2026-10-03T16:47:30.875699Z","duration_s":0.035988332936540246,"timed_out":false,"image_before":"94968838-168a-4a77-9d7c-23e17f78ee2c","image_after":"94968838-168a-4a77-9d7c-23e17f78ee2c","junit":null,"diff":{"files":[{"path":"stac_fastapi/api/stac_fastapi/api/models.py","added":25,"deleted":2,"category":"source","status":"modified"}],"patch_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/stac-utils__stac-fastapi-729/runs/pilot-stac-utils__stac-fastapi-729-07063ad25c/artifacts/agent1/agent1-82.patch"},"patch_sha256":"356e4e0545ebbcdfb2a1c1f83f447b328282456d6e9dce637f85437b14dee520","dropped_paths":[],"snapshot_sha":"75902de1e8fde07976e60bf29003cef272dfc942"}
