{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":".coveragerc\u0000.github/ISSUE_TEMPLATE/bug_report.md\u0000.github/ISSUE_TEMPLATE/enhancement_request.md\u0000.github/ISSUE_TEMPLATE/feature_request.md\u0000.github/ISSUE_TEMPLATE/submission.yml\u0000.github/PULL_REQUEST_TEMPLATE.md\u0000.github/actions/run-tests/action.yml\u0000.github/workflows/ecosystem-batch-badge-update.yml\u0000.github/workflows/ecosystem-batch-repo-check.yml\u0000.github/workflows/ecosystem-batch-save-temp-res-to-db.yml\u0000.github/workflows/ecosystem-main_repos_fetch.yml\u0000.github/workflows/ecosystem-project-check.yml\u0000.github/workflows/ecosystem-submission.yml\u0000.github/workflows/test_payloads/batch-repo-check-payload.json\u0000.github/workflows/test_payloads/batch-save-temp-res-to-db-payload.json\u0000.github/workflows/test_payloads/my.env\u0000.github/workflows/test_payloads/project-check-payload.json\u0000.github/workflows/test_payloads/submission-wf-commenttrigger.json\u0000.github/workflows/test_payloads/submission-wf-newissue.json\u0000.github/workflows/tests.yml\u0000.gitignore\u0000.pylintrc\u0000CODE_OF_CONDUCT.md\u0000CONTRIBUTING.md\u0000LICENSE\u0000README.md\u0000badges/.gitkeep\u0000badges/Blueqat.svg\u0000badges/Entanglement forging.svg\u0000badges/QiskitBot.svg\u0000badges/Quantum Random Access Optimization.svg\u0000badges/Quantum kernel training.svg\u0000badges/c3.svg\u0000badges/kaleidoscope.svg\u0000badges/mitiq.svg\u0000badges/mthree.svg\u0000badges/pennylane-qiskit.svg\u0000badges/pyEPR.svg\u0000badges/python-open-controls.svg\u0000badges/pytket-extensions.svg\u0000badges/pytorch-quantum.svg\u0000badges/qiskit-aer.svg\u0000badges/qiskit-alt.svg\u0000badges/qiskit-cold-atom.svg\u0000badges/qiskit-dynamics.svg\u0000badges/qiskit-ecosystem_template.svg\u0000badges/qiskit-finance.svg\u0000badges/qiskit-ibm-provider.svg\u0000badges/qiskit-ibm-runtime.svg\u0000badges/qiskit-ionq.svg\u0000badges/qiskit-machine-learning.svg\u0000badges/qiskit-metal.svg\u0000badges/qiskit-nature.svg\u0000badges/qiskit-optimization.svg\u0000badges/qiskit-rigetti.svg\u0000badges/qiskit-superstaq.svg\u0000badges/qiskit-terra.svg\u0000badges/qtcodes.svg\u0000badges/quantumcat.svg\u0000badges/quantuminspire.svg\u0000check_time.txt\u0000docs/images/ecosystem_architecture.png\u0000docs/project_overview.md\u0000ecosystem/__init__.py\u0000ecosystem/commands/__init__.py\u0000ecosystem/commands/command.py\u0000ecosystem/daos/__init__.py\u0000ecosystem/daos/jsondao.py\u0000ecosystem/exception.py\u0000ecosystem/manager.py\u0000ecosystem/models/__init__.py\u0000ecosystem/models/configuration.py\u0000ecosystem/models/execution_summary.py\u0000ecosystem/models/files_template.py\u0000ecosystem/models/repository.py\u0000ecosystem/models/test_results.py\u0000ecosystem/models/test_type.py\u0000ecosystem/models/tier.py\u0000ecosystem/models/utils.py\u0000ecosystem/resources/members.json\u0000ecosystem/runners/__init__.py\u0000ecosystem/runners/main_repos_report_runner.py\u0000ecosystem/runners/python_coverages_runner.py\u0000ecosystem/runners/python_styles_runner.py\u0000ecosystem/runners/python_tests_runner.py\u0000ecosystem/runners/runner.py\u0000ecosystem/templates/.coveragerc\u0000ecosystem/templates/.pylintrc\u0000ecosystem/templates/configured_tox.ini\u0000ecosystem/templates/readme.md\u0000ecosystem/utils/__init__.py\u0000ecosystem/utils/custom_requests.py\u0000ecosystem/utils/submission_parser.py\u0000ecosystem/utils/utils.py\u0000manager.py\u0000requirements-dev.txt\u0000requirements.txt\u0000setup.cfg\u0000setup.py\u0000tests/__init__.py\u0000tests/commands/__init__.py\u0000tests/commands/test_commands.py\u0000tests/common.py\u0000tests/daos/__init__.py\u0000tests/daos/test_dao.py\u0000tests/models/__init__.py\u0000tests/models/test_configuration.py\u0000tests/models/test_execution_summary.py\u0000tests/models/test_repository.py\u0000tests/resources/configured_python_repository/.pylintrc\u0000tests/resources/configured_python_repository/.pylintrc_default\u0000tests/resources/configured_python_repository/ecosystem.json\u0000tests/resources/configured_python_repository/qlib/__init__.py\u0000tests/resources/configured_python_repository/qlib/impl.py\u0000tests/resources/configured_python_repository/requirements-dev.txt\u0000tests/resources/configured_python_repository/requirements.txt\u0000tests/resources/configured_python_repository/setup.cfg\u0000tests/resources/configured_python_repository/setup.py\u0000tests/resources/configured_python_repository/tests/__init__.py\u0000tests/resources/configured_python_repository/tests/test_impl.py\u0000tests/resources/issue.md\u0000tests/resources/simple_python_repository/qlib/__init__.py\u0000tests/resources/simple_python_repository/qlib/impl.py\u0000tests/resources/simple_python_repository/requirements.txt\u0000tests/resources/simple_python_repository/setup.cfg\u0000tests/resources/simple_python_repository/setup.py\u0000tests/resources/simple_python_repository/tests/__init__.py\u0000tests/resources/simple_python_repository/tests/test_impl.py\u0000tests/resources/test_ecosystem_config.json\u0000tests/runners/__init__.py\u0000tests/runners/test_runner.py\u0000tests/test_manager.py\u0000tests/test_members_file.py\u0000tests/utils/__init__.py\u0000tests/utils/test_utils.py\u0000tox.ini\u0000","stderr_tail":"","stdout_sha256":"0357fdba58939c0c8a9baa0e3234cd3ff8ca7c6f63fe21a5db503c68ccc893ac","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:58:02.600271Z","duration_s":0.004008,"timed_out":false,"image_before":"55f1c4f5-cf02-463f-820a-d2c373c66616","image_after":"a79c3fcd-9e23-4718-a574-7a67ad10c982","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-48522b5b9215419cb63fad83d6a17be9/bin/busybox sh -c 'mkdir -p /ecosystem/ecosystem/daos && cp /opt/receipts-48522b5b9215419cb63fad83d6a17be9/incoming/2da7c89da3aeb6c011e329d24b63a030497080cd354fa42dbddc200d2697ae71 /ecosystem/ecosystem/daos/jsondao.py'","path":"ecosystem/daos/jsondao.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"2da7c89da3aeb6c011e329d24b63a030497080cd354fa42dbddc200d2697ae71","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:58:15.486322Z","duration_s":0.004448,"timed_out":false,"image_before":"a79c3fcd-9e23-4718-a574-7a67ad10c982","image_after":"403cf869-87d9-41e1-84e3-a7450436b364","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-b1633e5bb2a1451082e5c5bafc865b93/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-b1633e5bb2a1451082e5c5bafc865b93/receipts_pytest.py tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order -v --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-3.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\ncollecting ... collected 1 item\n\ntests/daos/test_dao.py::TestJsonDao::test_add_test_result_order FAILED   [100%]\n\n=================================== FAILURES ===================================\nE   NameError: name 'TestType' is not defined\n/ecosystem/ecosystem/daos/jsondao.py:114: NameError: name 'TestType' is not defined\n------------ generated xml file: /opt/receipts/reports/agent1-3.xml ------------\n=========================== short test summary info ============================\nFAILED tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order - Name...\n============================== 1 failed in 0.42s ===============================\n","stderr_tail":"","stdout_sha256":"17825959fad0fd6aa11492c8ed7b39874be62c6f16c468f611c6cb5137e4d56e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-3.log","tree_digest":"766e40480169f2af6cea00ac17df84dba78f63e2e6c9f1621dc077912cc8fc96","tree_download_s":3.6166002079844475,"started_at":"2026-10-03T17:58:18.723482Z","duration_s":0.854773,"timed_out":false,"image_before":"403cf869-87d9-41e1-84e3-a7450436b364","image_after":"7ca4ac78-320b-4e8d-a01d-16923149550f","junit":{"passed":[],"failed":["tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order":"NameError: name 'TestType' is not defined\nE   NameError: name 'TestType' is not defined"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-dea16106b3d64c35a06dc4dd24228b7a/bin/busybox sh -c 'mkdir -p /ecosystem/ecosystem/daos && cp /opt/receipts-dea16106b3d64c35a06dc4dd24228b7a/incoming/991a17964ad88f9537de635b6030cddc0079d190bc4319619d7a717f8c9b9c70 /ecosystem/ecosystem/daos/jsondao.py'","path":"ecosystem/daos/jsondao.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"991a17964ad88f9537de635b6030cddc0079d190bc4319619d7a717f8c9b9c70","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:58:29.589718Z","duration_s":0.005371,"timed_out":false,"image_before":"7ca4ac78-320b-4e8d-a01d-16923149550f","image_after":"cd5f64a3-de6e-41a8-a0f0-a3d0def1d334","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-3511ca68d8bc408cba6571c4c46eee47/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-3511ca68d8bc408cba6571c4c46eee47/receipts_pytest.py tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order -v --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-5.xml","path":null,"exit_code":0,"stdout_tail":"============================= test session starts ==============================\ncollecting ... collected 1 item\n\ntests/daos/test_dao.py::TestJsonDao::test_add_test_result_order PASSED   [100%]\n\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-5.xml ------------\n=========================== short test summary info ============================\nPASSED tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order\n============================== 1 passed in 0.44s ===============================\n","stderr_tail":"","stdout_sha256":"9c76d9700cc2c481a9d3776542ad52c26d5f95bcc0be33208b231da92fd57370","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-5.log","tree_digest":"39a47a2b93340c860b6287bd1f9439c7e9f197b82068bb8ba40cf2e5ea9c7165","tree_download_s":2.9737045830115676,"started_at":"2026-10-03T17:58:33.452689Z","duration_s":0.867011,"timed_out":false,"image_before":"cd5f64a3-de6e-41a8-a0f0-a3d0def1d334","image_after":"d98e1ae7-8f22-40b7-85dd-56f8d35fcdb1","junit":{"passed":["tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order"],"failed":[],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-01cfbef78a904853b6af12b92770331d/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-01cfbef78a904853b6af12b92770331d/receipts_pytest.py tests/daos/test_dao.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-6.xml","path":null,"exit_code":0,"stdout_tail":"============================= test session starts ==============================\ncollected 4 items\n\ntests/daos/test_dao.py ....                                              [100%]\n\n=============================== warnings summary ===============================\necosystem/models/test_results.py:7\n  /ecosystem/ecosystem/models/test_results.py:7: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: tests/daos/test_dao.py)\n    class TestResult(JsonSerializable):\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-6.xml ------------\n=========================== short test summary info ============================\nPASSED tests/daos/test_dao.py::TestJsonDao::test_add_test_result\nPASSED tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order\nPASSED tests/daos/test_dao.py::TestJsonDao::test_move_from_tier_to_tier\nPASSED tests/daos/test_dao.py::TestJsonDao::test_repository_insert_and_delete\n========================= 4 passed, 1 warning in 0.44s =========================\n","stderr_tail":"","stdout_sha256":"f4edffc646790c27f4eecc320f7a8fd5b4309bed5ac16a5fcaf29978ce911ec6","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/logs/agent1/agent1-6.log","tree_digest":"39a47a2b93340c860b6287bd1f9439c7e9f197b82068bb8ba40cf2e5ea9c7165","tree_download_s":2.1013400838710368,"started_at":"2026-10-03T17:58:42.508460Z","duration_s":0.86821,"timed_out":false,"image_before":"d98e1ae7-8f22-40b7-85dd-56f8d35fcdb1","image_after":"a81fa0fc-942c-468c-9f9f-28c274a17f12","junit":{"passed":["tests/daos/test_dao.py::TestJsonDao::test_add_test_result","tests/daos/test_dao.py::TestJsonDao::test_add_test_result_order","tests/daos/test_dao.py::TestJsonDao::test_move_from_tier_to_tier","tests/daos/test_dao.py::TestJsonDao::test_repository_insert_and_delete"],"failed":[],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-f0a7dd427133409b85e2d7b1af24bd17: /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 bb2eb53960969790779b32475fdd1ffbd95db2d1","path":null,"exit_code":0,"stdout_tail":"diff --git a/ecosystem/daos/jsondao.py b/ecosystem/daos/jsondao.py\nindex 5087412..bad15f9 100644\n--- a/ecosystem/daos/jsondao.py\n+++ b/ecosystem/daos/jsondao.py\n@@ -3,7 +3,7 @@ from typing import Optional, List\n \n from tinydb import TinyDB, Query\n \n-from ecosystem.models import TestResult, StyleResult, CoverageResult\n+from ecosystem.models import TestResult, StyleResult, CoverageResult, TestType\n from ecosystem.models.repository import Repository\n \n \n@@ -93,6 +93,7 @@ class JsonDAO:\n     ) -> Optional[List[int]]:\n         \"\"\"Adds test result for repository.\n         Overwrites latest test results and adds to historical test results.\n+        Test results are kept in order: DEV_COMPATIBLE, STABLE_COMPATIBLE, STANDARD.\n \n         Args:\n             repo_url: url of the repo\n@@ -108,18 +109,36 @@ class JsonDAO:\n         if fetched_repo_json is not None:\n             repo = Repository.from_dict(fetched_repo_json)\n \n-            new_test_results = [\n+            # Update test results, keeping only one per type and sorting by precedence\n+            test_type_order = {\n+                TestType.DEV_COMPATIBLE: 0,\n+                TestType.STABLE_COMPATIBLE: 1,\n+                TestType.STANDARD: 2,\n+            }\n+            # Remove existing entries of the same test type\n+            filtered_tests = [\n                 tr for tr in repo.tests_results if tr.test_type != test_result.test_type\n-            ] + [test_result]\n-            repo.tests_results = new_test_results\n-\n-            new_historical_est_results = [\n+            ]\n+            # Append new result\n+            filtered_tests.append(test_result)\n+            # Sort according to predefined order\n+            repo.tests_results = sorted(\n+                filtered_tests, key=lambda tr: test_type_order[tr.test_type]\n+            )\n+\n+            # Same for historical test results (also deduplicate by type+version)\n+            filtered_historical = [\n                 tr\n                 for tr in repo.historical_test_results\n-                if tr.test_type != test_result.test_type\n-                or tr.terra_version != test_result.terra_version\n-            ] + [test_result]\n-            repo.historical_test_results = new_historical_est_results\n+                if not (\n+                    tr.test_type == test_result.test_type\n+                    and tr.terra_version == test_result.terra_version\n+                )\n+            ]\n+            filtered_historical.append(test_result)\n+            repo.historical_test_results = sorted(\n+                filtered_historical, key=lambda tr: test_type_order[tr.test_type]\n+            )\n \n             return table.upsert(repo.to_dict(), repository.url == repo_url)\n         return None\n","stderr_tail":"","stdout_sha256":"0ecf2517930b11cf7b7fcd77ae6d48fb764f92d5028f263059c21ecce49f6437","log_path":null,"tree_digest":"39a47a2b93340c860b6287bd1f9439c7e9f197b82068bb8ba40cf2e5ea9c7165","tree_download_s":2.21118350001052,"started_at":"2026-10-03T17:58:53.793865Z","duration_s":0.03508875006809831,"timed_out":false,"image_before":"a81fa0fc-942c-468c-9f9f-28c274a17f12","image_after":"a81fa0fc-942c-468c-9f9f-28c274a17f12","junit":null,"diff":{"files":[{"path":"ecosystem/daos/jsondao.py","added":29,"deleted":10,"category":"source","status":"modified"}],"patch_sha256":"0ecf2517930b11cf7b7fcd77ae6d48fb764f92d5028f263059c21ecce49f6437","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/qiskit-community__ecosystem-159/runs/pilot-qiskit-community__ecosystem-159-7b8e059aa3/artifacts/agent1/agent1-7.patch"},"patch_sha256":"0ecf2517930b11cf7b7fcd77ae6d48fb764f92d5028f263059c21ecce49f6437","dropped_paths":[],"snapshot_sha":"bb2eb53960969790779b32475fdd1ffbd95db2d1"}
