Add Review 61 verification evidence
This commit is contained in:
@@ -6,7 +6,8 @@
|
|||||||
"pull_request": 13,
|
"pull_request": 13,
|
||||||
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
|
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
|
||||||
"review_id": 61,
|
"review_id": 61,
|
||||||
"reviewed_head": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
"reviewed_parent_sha": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
||||||
|
"reviewed_head": "1b9eda683c66d3c7129716b9899eddf61df3362d",
|
||||||
"preserved_semantics": [
|
"preserved_semantics": [
|
||||||
{
|
{
|
||||||
"criterion": "N01-loan-balance-definition",
|
"criterion": "N01-loan-balance-definition",
|
||||||
|
|||||||
@@ -0,0 +1,222 @@
|
|||||||
|
{
|
||||||
|
"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/contract-preservation-inventory.json",
|
||||||
|
"sha256": "88af35b340db2bef5db20f5de168f9183b4152d40c78176148460b48d7f6c5fa",
|
||||||
|
"git_blob": "6a52e68b558254086ae37faabe2ce3758c49a00a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/verification/issue-12-review-61/evidence-plan.json",
|
||||||
|
"sha256": "72708a42b163d1773aaa5a944e57f39af6a15017e5e6e11e027b9354256837dd",
|
||||||
|
"git_blob": "2191546f7c6a4da21eef99fc6ecea43e1ab4a198"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "docs/verification/issue-12-review-61/finding-matrix.json",
|
||||||
|
"sha256": "9b51fac9cd9c5a71cd29b43c9dd5ccef8ae9603fbaa5b6c539350b0bb117271f",
|
||||||
|
"git_blob": "9a6d12806ef8c69b4373986b4ef60d6829f97fb2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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."
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -5,7 +5,8 @@
|
|||||||
"issue": 12,
|
"issue": 12,
|
||||||
"pull_request": 13,
|
"pull_request": 13,
|
||||||
"review_id": 61,
|
"review_id": 61,
|
||||||
"reviewed_head": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
"reviewed_parent_sha": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
||||||
|
"reviewed_head": "1b9eda683c66d3c7129716b9899eddf61df3362d",
|
||||||
"implementation_parent": "b8b8811a2a50371795a02e4fa65f097c9d9508ac",
|
"implementation_parent": "b8b8811a2a50371795a02e4fa65f097c9d9508ac",
|
||||||
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
|
"contract_sha256": "6d86b591b022fcc722611bfec6d24e54a64216ab6f7c4098f357e25420218818",
|
||||||
"manifest_generator": {
|
"manifest_generator": {
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "diff-check",
|
"id": "diff-check",
|
||||||
"argv": ["git", "diff", "--check", "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8..<SOURCE_SHA>"]
|
"argv": ["git", "diff", "--check", "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8..1b9eda683c66d3c7129716b9899eddf61df3362d"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"bound_paths": [
|
"bound_paths": [
|
||||||
|
|||||||
@@ -5,13 +5,14 @@
|
|||||||
"issue": 12,
|
"issue": 12,
|
||||||
"pull_request": 13,
|
"pull_request": 13,
|
||||||
"review_id": 61,
|
"review_id": 61,
|
||||||
"reviewed_head": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
"reviewed_parent_sha": "5e721b0ddd648f3e80f341a3c304d1cc3ca47ee8",
|
||||||
|
"reviewed_head": "1b9eda683c66d3c7129716b9899eddf61df3362d",
|
||||||
"implementation_parent": "b8b8811a2a50371795a02e4fa65f097c9d9508ac",
|
"implementation_parent": "b8b8811a2a50371795a02e4fa65f097c9d9508ac",
|
||||||
"findings": [
|
"findings": [
|
||||||
{
|
{
|
||||||
"id": "N01-loan-balance-definition",
|
"id": "N01-loan-balance-definition",
|
||||||
"classification": "implementation_defect",
|
"classification": "implementation_defect",
|
||||||
"status": "resolved_at_implementation_parent",
|
"status": "resolved_and_verified_at_source_head",
|
||||||
"root_cause": "Internal candidate writers could persist loan balance evidence without an explicit representative liability definition, and unsupported loan purposes could bypass the definition rule.",
|
"root_cause": "Internal candidate writers could persist loan balance evidence without an explicit representative liability definition, and unsupported loan purposes could bypass the definition rule.",
|
||||||
"tests": [
|
"tests": [
|
||||||
"test_direct_loan_candidate_requires_liability_definition_and_writes_nothing",
|
"test_direct_loan_candidate_requires_liability_definition_and_writes_nothing",
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"schema": "gitea-agent.green-evidence/v1",
|
||||||
|
"finding": "N01-account-type-conversion-bypass",
|
||||||
|
"source_commit": "1b9eda683c66d3c7129716b9899eddf61df3362d",
|
||||||
|
"tests": [
|
||||||
|
"test_bank_to_loan_conversion_rejects_existing_undefined_valuation_without_mutation",
|
||||||
|
"test_bank_to_loan_conversion_without_valuations_remains_allowed"
|
||||||
|
],
|
||||||
|
"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"
|
||||||
|
],
|
||||||
|
"started_at_utc": "2026-10-07T03:59:49.130624Z",
|
||||||
|
"finished_at_utc": "2026-10-07T03:59:51.888407Z",
|
||||||
|
"exit_code": 0,
|
||||||
|
"expected_exit_code": 0,
|
||||||
|
"result": "GREEN",
|
||||||
|
"output": ".. [100%]\n",
|
||||||
|
"fixture_policy": "synthetic only; no credentials or real financial data"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user