{ "schema": "gitea-agent.evidence-manifest/v1", "owner": "jsfamily", "repository": "jarca-ledger-mcp", "issue": 12, "pull_request": 13, "review": 61, "reviewed_parent_sha": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8", "source_head_sha": "1b9eda683c66d3c7129716b9899eddf61df3362d", "contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818", "environment": { "platform": "Linux-6.18.34+rpt-rpi-v8-aarch64-with-glibc2.41", "python": "3.13.5", "uv": "uv 0.11.6 (aarch64-unknown-linux-musl)", "fixture_policy": "synthetic repository fixtures only; no credentials or real financial data" }, "commands": [ { "id": "conversion-regression", "argv": [ "uv", "run", "--frozen", "--extra", "dev", "--extra", "dashboard", "pytest", "-q", "-rs", "tests/test_account_valuation_edge_contracts.py::test_bank_to_loan_conversion_rejects_existing_undefined_valuation_without_mutation", "tests/test_account_valuation_edge_contracts.py::test_bank_to_loan_conversion_without_valuations_remains_allowed" ], "purpose": "Verify conversion rejection is atomic and history-free conversion remains compatible", "started_at_utc": "2026-10-07T03:59:49.130624Z", "finished_at_utc": "2026-10-07T03:59:51.888407Z", "duration_seconds": 2.757882494479418, "exit_code": 0, "expected_exit_code": 0, "output": ".. [100%]\n" }, { "id": "review61-regressions", "argv": [ "uv", "run", "--frozen", "--extra", "dev", "--extra", "dashboard", "pytest", "-q", "-rs", "tests/test_account_valuation_edge_contracts.py", "tests/test_issue_12_review59_account.py", "tests/test_valuation_contract_docs.py" ], "purpose": "Run Review 61 and independent-review named regressions", "started_at_utc": "2026-10-07T03:59:51.888570Z", "finished_at_utc": "2026-10-07T03:59:58.351942Z", "duration_seconds": 6.463426006026566, "exit_code": 0, "expected_exit_code": 0, "output": "........................ [100%]\n" }, { "id": "full-suite", "argv": [ "uv", "run", "--frozen", "--extra", "dev", "--extra", "dashboard", "pytest", "-q", "-rs" ], "purpose": "Run the complete repository test suite at the exact source head", "started_at_utc": "2026-10-07T03:59:58.352023Z", "finished_at_utc": "2026-10-07T04:01:03.222283Z", "duration_seconds": 64.87031899858266, "exit_code": 0, "expected_exit_code": 0, "output": "........................................................................ [ 25%]\n........................................................................ [ 51%]\n...............................................................ss....... [ 77%]\n.....................................................ss...... [100%]\n=============================== warnings summary ===============================\ntests/test_dashboard_auth_server.py:11\n /opt/data/gitea-agent/repositories/jsfamily/jarca-ledger-mcp/worktrees/issue-12/checkout/tests/test_dashboard_auth_server.py:11: StarletteDeprecationWarning: Using `httpx` with `starlette.testclient` is deprecated; install `httpx2` instead.\n from starlette.testclient import TestClient\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n=========================== short test summary info ============================\nSKIPPED [1] tests/test_kb_bank_pdf.py:26: sample KB Bank PDF/password is not available\nSKIPPED [1] tests/test_kb_bank_pdf.py:42: sample KB Bank PDF/password is not available\nSKIPPED [1] tests/test_toss_securities_pdf.py:20: sample Toss Securities PDF is not available\nSKIPPED [1] tests/test_toss_securities_pdf.py:32: sample Toss Securities PDF is not available\n" }, { "id": "ruff", "argv": [ "uv", "run", "--frozen", "--extra", "dev", "--extra", "dashboard", "ruff", "check", "." ], "purpose": "Run Python lint checks", "started_at_utc": "2026-10-07T04:01:03.222360Z", "finished_at_utc": "2026-10-07T04:01:03.426930Z", "duration_seconds": 0.20462407637387514, "exit_code": 0, "expected_exit_code": 0, "output": "All checks passed!\n" }, { "id": "compileall", "argv": [ "python3", "-m", "compileall", "-q", "jarca_ledger_mcp", "dashboard", "tests", "scripts" ], "purpose": "Compile production, dashboard, test, and script Python surfaces", "started_at_utc": "2026-10-07T04:01:03.427003Z", "finished_at_utc": "2026-10-07T04:01:03.684488Z", "duration_seconds": 0.25754371751099825, "exit_code": 0, "expected_exit_code": 0, "output": "" }, { "id": "diff-check", "argv": [ "git", "diff", "--check", "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8..1b9eda683c66d3c7129716b9899eddf61df3362d" ], "purpose": "Check the complete rework diff for whitespace errors", "started_at_utc": "2026-10-07T04:01:03.684567Z", "finished_at_utc": "2026-10-07T04:01:03.730543Z", "duration_seconds": 0.04603164829313755, "exit_code": 0, "expected_exit_code": 0, "output": "" } ], "changed_files": [ { "path": "docs/data-model.md", "sha256": "f9932a04f3c74907da1c21d754a16e1401f64fd948945017d410de7d91494dca", "git_blob": "70f26ce1522b8609a93471655c9506040a4078f1" }, { "path": "docs/interface-contract.md", "sha256": "01a3f37e23ee17b2b928b44e3e07d4d6982faead1ab6f0298889225b0c5ce916", "git_blob": "4304427a604949b8295b4f93cb6054357805fe92" }, { "path": "docs/requirements/req-003_account-valuation-history.md", "sha256": "f5a3bf9f69d622451a1a08854062218382f03355a3464538a35b1e270ca5b70f", "git_blob": "2a7be4d780999fce47402f15f0b05d0b92990715" }, { "path": "docs/verification/issue-12-review-61/red-evidence.json", "sha256": "567c03d28e6de74b6adfc0f6141dd96e9e129bab9d4455761615a1655870b4bf", "git_blob": "b5f4bc9286b4ea443671ab0744935a11c295b124" }, { "path": "jarca_ledger_mcp/application/account_valuation_service.py", "sha256": "f7f5bac1e224401dfd02efb321b7e7bd87e02875b727a5366bcc223bf633fb57", "git_blob": "0dfd7b7ce94a699b855e40b336afa7bf5cdc2595" }, { "path": "jarca_ledger_mcp/application/accounts_write_services.py", "sha256": "41dd6579dc422549316da05347c6d5e33d89da1e1502d6065b5b78a0160776d3", "git_blob": "48a1dd5acfe782c9cc35e8bd615dc71671dadf6f" }, { "path": "tests/test_account_valuation_edge_contracts.py", "sha256": "fed17aec3518e2380d00b46252402ad69a71e7d265961a6264b03d790d579f42", "git_blob": "0b08cb32af63084225e01642d333ca291c7445c4" }, { "path": "tests/test_issue_12_review59_account.py", "sha256": "a8a7491c7b78841c2be0dbc66913c1e076bdd231281fd64818493a0f3a1de550", "git_blob": "f5cee3e993f189e688f8e8ab3829b5c4ab34cf5a" }, { "path": "tests/test_valuation_contract_docs.py", "sha256": "7443b8425d6b733e0e95d21b3c460a42dceeb2f99f84e1fb8fadcd88f6b77514", "git_blob": "c473ee14a530496e11c28e33008b0d8a50d774cb" } ], "added_line_security_scan": { "hardcoded_secret": [], "shell_injection": [], "dynamic_eval": [], "pickle": [], "interpolated_sql": [] }, "worktree_clean_after": true, "limitations": [ "Four external private PDF fixture tests may be skipped when fixtures are unavailable.", "Gitea status/readiness is not functional acceptance evidence." ], "changed_files_scope": "Behavior-bearing source, tests, normative docs, and immutable RED evidence at source_head_sha; mutable verification metadata and generated GREEN/manifest artifacts are intentionally excluded from hash binding." }