Skip to content

refactor(runtime): centralize capability result projection - #1311

Merged
morluto merged 20 commits into
mainfrom
agent/centralize-dispatch-failures
Aug 13, 2026
Merged

refactor(runtime): centralize capability result projection#1311
morluto merged 20 commits into
mainfrom
agent/centralize-dispatch-failures

Conversation

@morluto

@morluto morluto commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Problem

The runtime still had two independent CapabilityResult constructors for
dispatch failures, even though successful operation outcomes already flowed
through the final operation projection. Those failure paths also embedded the
entire installed capability inventory or operator policy document in error
output, duplicating discovery and exposing more runtime configuration than a
failed invocation needs.

This advances #1210, #1219, and the #1148 cleanup roadmap.

Solution

  • Route unknown-operation, policy, validation, provider-readiness, adapter, and
    result-validation failures through OperationProjection and the final result
    compiler.
  • Keep bounded unknown-ID recovery at the MCP boundary, where nearby IDs and
    recovery resources are useful, without putting the complete catalog in the
    runtime result.
  • Return bounded policy facts and reason codes without embedding the policy
    definition.
  • Delete the unused external-adapter fixture that retained the old direct
    result-construction path.
  • Add an architecture ratchet, including aliased and qualified imports, so only
    operation_projection.py may construct the public result envelope.

Testing

make check

Focused regression evidence:

uv run --locked pytest -q \
  tests/component/capabilities/test_capability_adapter_authority.py \
  tests/unit/test_operation_projection.py \
  tests/boundary/mcp/test_mcp_errors_and_tracing.py \
  tests/boundary/mcp/test_mcp_invocation_journey.py --maxfail=1
make architecture
make import-contracts

make check passed 872 unit, 906 component, 479 domain, 157 composition,
4 end-to-end, and 64 provider-boundary tests. The focused regression set passed
20 tests; the architecture scan checked 1,684 files and all seven import
contracts were kept.

  • Specialist validation run: provider-boundary and end-to-end lanes ran through
    make check because this changes the common dispatch boundary.

Trust & Compatibility Impact

Mathematical results, checker authorization, verification-record validation,
and artifact lineage are unchanged. Unknown-operation runtime results no longer
contain the complete installed inventory, and policy-denial results no longer
contain the complete policy definition. MCP clients retain bounded recovery
guidance for unknown IDs.

Architecture Budget

No operation or shared abstraction is added. This removes two competing wire
result constructors, one context-building path, and an obsolete fixture; the
single remaining constructor owner is the final operation projection.

Checklist

  • make check passes
  • Explicitly relevant specialist validation is listed above (boundary, Lean, provider, Harbor/Oracle)
  • Harbor task or verifier changes ran make harbor-prepare-task then make harbor-validate-task (not applicable)
  • New ordinary operations fit the documented operation budget (not applicable)
  • New shared abstractions replace duplication in at least two surviving production paths (not applicable; no abstraction added)

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Name                                                               Stmts   Miss Branch BrPart  Cover   Missing
--------------------------------------------------------------------------------------------------------------
src/jacobian/adapters/mcp/cli.py                                      15     15      2      0     0%   3-38
src/jacobian/adapters/mcp/context.py                                  96     14     32     12    80%   71, 98, 114-115, 129, 140, 150, 156, 162, 168, 174, 186, 223-225
src/jacobian/adapters/mcp/core.py                                     83      2     10      2    96%   163, 180
src/jacobian/adapters/mcp/deployment_identity.py                      48      8     10      2    83%   44, 49-50, 63-64, 73-74, 79
src/jacobian/adapters/mcp/projections.py                              53     14     14      1    63%   136-149
src/jacobian/adapters/mcp/remote.py                                  303     18     88     12    92%   75, 78, 82, 107, 115, 117, 119, 155, 157, 217-221, 290, 324, 396->398, 413, 416
src/jacobian/adapters/mcp/remote_cli.py                               53     53     18      0     0%   3-159
src/jacobian/adapters/mcp/server.py                                   34      2      2      1    92%   110-112
src/jacobian/adapters/mcp/tooling.py                                 220     49     48     15    75%   65, 77, 98-99, 104, 113-114, 122, 135, 212->228, 215, 222-227, 234-241, 265-267, 299-300, 314, 319-320, 323-324, 326, 335, 338-339, 341, 349-358, 381-384, 439-474
src/jacobian/artifacts.py                                             43     14     10      4    66%   48, 64, 70-71, 81, 99-112
src/jacobian/bounded_process.py                                      530    153    190     43    68%   85-86, 90-91, 103-114, 128-129, 151, 154, 168, 171, 218, 220, 222, 261-283, 300, 325, 359-362, 379-384, 404->406, 462, 508-516, 623, 625, 629, 634, 636, 644, 646, 648, 685, 691, 697-698, 704-705, 712, 714, 734-735, 756-763, 785, 787, 807, 812-814, 821-822, 827-829, 836-847, 850-873, 880-881, 887-888, 904-907, 911-922, 924, 928-929, 934, 945, 949, 951->940, 954-955, 962-963, 972, 974->976, 985, 988-994, 998->997, 1014->1016
src/jacobian/builtin_capabilities.py                                  30     11      2      0    59%   83-126
src/jacobian/canonical.py                                            168     15     74     10    90%   35, 72, 100, 139, 159, 176, 178, 195, 212, 227-228, 243, 246, 273-274
src/jacobian/capability_discovery.py                                  70      1     20      1    98%   144
src/jacobian/capability_dispatch.py                                  100      4     22      3    94%   90-91, 216, 252
src/jacobian/capability_errors.py                                     27      1      2      1    93%   56
src/jacobian/capability_registry.py                                   29      3      8      3    84%   22, 26, 33
src/jacobian/capability_service.py                                    71      9     26      9    81%   46, 56, 69, 95, 110, 116, 118, 123, 125
src/jacobian/capability_validation.py                                 82     11     38      8    84%   27-28, 42-43, 50, 70, 72, 78, 80, 83, 97, 126->152
src/jacobian/capability_verification.py                               67     13     36     11    77%   40-41, 49, 56, 71, 75, 79, 95, 103, 115, 127, 132, 140
src/jacobian/checker_authorization.py                                 63      1      8      1    97%   225
src/jacobian/checker_identity.py                                     391     38    152     32    87%   102, 130-138, 145, 252, 258, 359, 387, 391, 401, 418-419, 428->423, 468, 537-538, 543, 585, 588, 595, 601-602, 617->619, 623, 638, 660-661, 687, 690, 702, 705, 707->709, 718, 736, 739, 742->744, 750, 755, 775, 780, 792
src/jacobian/checker_operations.py                                   119      9     42      9    89%   44, 52, 136, 157, 179, 185, 190, 246, 250
src/jacobian/checker_worker.py                                       135     63     42      9    46%   56, 60, 73-97, 101-115, 127-139, 151-152, 154, 157, 165, 168, 177-178, 189-193, 201-202, 205->exit
src/jacobian/cli.py                                                  102     11     20      4    86%   32, 57, 122, 149, 166-179, 232
src/jacobian/composition.py                                           35      7      6      2    73%   33->38, 36-37, 40-41, 43, 51-52
src/jacobian/contracts/_verification_rules.py                         22      2     16      2    89%   25, 34
src/jacobian/contracts/capabilities.py                               240     19     74     19    88%   38, 40, 42, 90, 92, 141, 143, 184, 188, 196, 207, 225, 242, 248, 260, 351, 358, 362, 400
src/jacobian/contracts/certified_snf.py                               76      5     16      5    89%   42, 48, 76, 132, 144
src/jacobian/contracts/checkers.py                                   167     14     50     14    87%   99, 130, 134, 143, 168, 170, 183, 193, 195, 269, 277, 294, 319, 326
src/jacobian/contracts/combinatorics.py                              494     64    192     56    82%   93, 119-120, 170, 266, 349, 438, 458, 471, 473, 505, 546, 548, 550, 552, 555, 566, 571, 584, 587, 591, 593, 610, 612, 614, 617, 632, 634, 636, 640, 642, 672, 713, 723, 735, 780, 782, 784, 786, 788, 793, 840, 843, 850, 904, 915, 917, 919, 923, 959, 965, 977, 980-991, 1028, 1035, 1054, 1124, 1138
src/jacobian/contracts/evidence.py                                    47      1      4      1    96%   52
src/jacobian/contracts/exact_domain_verification.py                   65      2     10      2    95%   100, 147
src/jacobian/contracts/finite_coverage.py                            152     14     30     14    85%   53, 57, 76, 84, 104, 106, 108, 125, 132, 165, 169, 185, 233, 235
src/jacobian/contracts/finite_sets.py                                 31      3      6      3    84%   24, 46, 48
src/jacobian/contracts/formal_datasets.py                            226     13     74     13    91%   44, 183, 268, 270, 272, 278, 280, 284, 294, 296, 300, 307, 314
src/jacobian/contracts/geometry.py                                   243     33     80     26    80%   42, 55, 61, 78-86, 109, 195, 203, 212, 214, 226, 228, 241, 244, 247, 256, 281, 286, 312-314, 324, 327, 330, 339, 356, 358, 373, 382, 391, 394
src/jacobian/contracts/graph_coloring.py                              59     10     24     10    76%   28, 31, 36, 81, 83, 85, 87, 91, 100, 102
src/jacobian/contracts/graph_composition.py                           92      2     18      2    96%   182, 184
src/jacobian/contracts/graph_degree_sequence.py                       76      8     18      8    83%   19, 56, 62, 69, 76, 102, 104, 106
src/jacobian/contracts/graph_invariant_operations.py                 136     17     38     16    80%   40, 60, 69, 104, 116, 118, 125, 144, 146, 166, 175, 196, 198, 200, 207-209
src/jacobian/contracts/graph_invariants.py                           192     23     52     23    81%   91, 93, 95, 106, 122, 124, 127, 131, 135, 155, 172, 174, 178, 189, 213, 215, 217, 219, 237, 239, 244, 275, 280
src/jacobian/contracts/graph_isomorphism.py                          109      8     32      8    89%   25, 27, 107, 109, 111, 113, 118, 124
src/jacobian/contracts/graph_optimization.py                         266     38     82     28    79%   34, 54, 82, 110, 118, 159, 190, 192, 199, 205, 210, 219, 225, 244, 302, 305, 307, 333, 341, 343, 353, 355, 357, 369, 384, 386, 392, 400, 433-441, 520-528
src/jacobian/contracts/graph_symmetry.py                             123     14     38     14    83%   44, 56, 60, 67, 70, 74, 101, 109, 181, 201, 242, 248, 254, 284
src/jacobian/contracts/jacobian_syzygy.py                            161     32     72     31    72%   26, 29, 32, 43, 72, 76, 83, 86, 89, 93, 100, 113, 125, 130, 132, 153, 155, 157, 163, 165, 167-168, 177, 183, 202, 233, 238, 244, 248, 252, 266, 272
src/jacobian/contracts/lean.py                                       262     19     60     20    88%   166, 225->227, 232, 248, 250, 263, 266, 320, 324, 359, 386, 388, 390, 395, 405, 407, 415, 417, 421, 430
src/jacobian/contracts/lean_exploration.py                           146     22     32      6    75%   22, 94, 137-139, 152, 182, 185-201
src/jacobian/contracts/lean_metavariable_fields.py                    62      3      2      0    92%   93-97
src/jacobian/contracts/lean_proof_axioms.py                           58      4     18      4    89%   34, 66, 68, 72
src/jacobian/contracts/lean_proof_edit.py                             53      5     14      5    85%   23, 26, 53, 58, 67
src/jacobian/contracts/lean_proof_state_inspect.py                    37      5      6      1    77%   51-55
src/jacobian/contracts/lean_statement.py                             116      8     40      9    89%   42, 88, 96, 98, 99->103, 104, 106, 108, 152
src/jacobian/contracts/lean_term_apply.py                             31      9      8      0    56%   35-49
src/jacobian/contracts/linear.py                                      61      2     12      2    95%   53, 124
src/jacobian/contracts/matrices.py                                    39      4     14      4    85%   51, 53, 76, 78
src/jacobian/contracts/matrix_lattice.py                              34      3      6      3    85%   30, 32, 37
src/jacobian/contracts/matrix_operations.py                          189     12     38     12    89%   94, 98, 151, 169, 237, 239, 241, 258, 260, 294, 327, 329
src/jacobian/contracts/nullstellensatz.py                            165     19     40     19    81%   33, 41, 47, 63, 65, 91, 97, 101, 121, 128, 130, 189, 199, 202, 205, 207, 232, 241, 279
src/jacobian/contracts/number_theory.py                              315     30     94     30    85%   175, 225, 227, 246, 269, 275, 287, 349, 388, 390, 392, 419, 441, 448, 566, 568, 574, 584, 587, 592, 613, 617, 630, 637, 649, 669, 685, 688, 690, 692
src/jacobian/contracts/polynomial_expressions.py                     238     18     66     15    89%   160, 204, 216, 265-266, 268-269, 306-307, 344, 352, 361, 426, 437, 463, 469, 497, 501
src/jacobian/contracts/polynomial_intervals.py                       123     11     26     11    85%   58, 68, 73, 79, 105, 110, 114, 157, 162, 166, 209
src/jacobian/contracts/polynomial_operations.py                      292     27     68     27    85%   58, 85, 97, 108, 116, 176, 178, 183, 195, 224, 249, 275, 277, 287, 304, 306, 322, 327, 335, 340, 401, 435, 448, 450, 491, 493, 495
src/jacobian/contracts/polynomial_positivity.py                       92      4      8      4    92%   57, 66, 70, 143
src/jacobian/contracts/polynomial_systems.py                          87      6     16      6    88%   35, 42, 95, 97, 139, 143
src/jacobian/contracts/polynomials.py                                752     72    238     72    85%   81, 127, 145, 163, 167, 186, 192, 261, 288, 295, 320, 333, 389, 391, 393, 395, 397, 399, 401, 423, 495, 497, 499, 501, 510, 512, 515, 517, 519, 545, 548, 550, 560, 613, 615, 617, 619, 622, 624, 699, 701, 733, 735, 771, 778, 883, 982, 986, 996, 1014, 1018, 1043, 1047, 1054, 1083, 1087, 1119, 1121, 1156, 1158, 1160, 1164, 1168, 1171-1175, 1199, 1206, 1231, 1235, 1267, 1271, 1280
src/jacobian/contracts/polytope.py                                    74      8     22      8    83%   34, 67, 69, 71, 92, 95, 97, 106
src/jacobian/contracts/posets.py                                     307     31    104     32    85%   51, 67, 132, 143, 147, 149, 163, 165, 170, 171->173, 185, 266, 270, 287, 314, 329, 332, 335, 337, 340, 381, 415, 480, 539, 541, 543, 545, 566, 569, 578, 627, 630
src/jacobian/contracts/probability.py                                413     41    138     41    85%   46, 56, 104, 108, 134, 200, 206, 211, 218, 241, 244, 248, 256, 267, 274, 289, 294, 307, 393, 395, 399, 413, 415, 436, 459, 470, 472, 522, 556, 581, 597, 609, 613, 619, 694, 722, 736, 787, 808, 814, 823
src/jacobian/contracts/projective_geometry.py                        140     22     48     20    78%   36, 39, 72, 92-93, 98, 103, 105, 126, 128, 130, 155, 159, 165, 172, 174, 207, 210, 213, 219, 224, 233
src/jacobian/contracts/provider_measurements.py                       48      1     12      1    97%   82
src/jacobian/contracts/results.py                                     80      3     16      3    94%   74, 76, 121
src/jacobian/contracts/sat.py                                        353     25     92     23    89%   65, 76, 78, 80, 161, 296, 300, 328, 332, 351, 373, 433, 437, 468, 470, 472, 507, 509, 511, 560, 564, 566, 585, 679-680
src/jacobian/contracts/sequences.py                                   24      1      0      0    96%   52
src/jacobian/contracts/smt.py                                        259     24     90     19    88%   60-61, 74-75, 80, 91, 96, 108, 111, 150, 160, 164, 183, 188, 195-196, 200, 203, 211, 270, 323, 398, 400, 402
src/jacobian/contracts/topology.py                                   372     41    124     41    83%   66, 95, 100, 102, 119, 142, 164, 166, 249, 273, 279, 286, 293, 319, 369, 374, 392, 395, 405, 407, 436, 440, 443, 449, 504, 506, 513, 520, 541, 544, 546, 557, 585, 603, 624, 676, 684, 697, 718, 747, 751
src/jacobian/contracts/universal_algebra.py                          230     35     74     23    76%   32, 34, 36, 43, 50, 56, 59, 76, 89, 92, 105, 110, 136, 162, 187, 207, 209, 232, 237, 302-330, 332, 348-349, 353
src/jacobian/contracts/urls.py                                        12      2      4      2    75%   14, 16
src/jacobian/contracts/validated_analysis.py                         160     21     52     16    80%   62, 64, 89, 91, 96, 98, 138, 141, 144, 162, 170, 173, 175, 218, 222-230, 274-286
src/jacobian/domains/_certified_snf.py                               110     21     38     10    76%   39, 43-46, 50, 64, 76, 84, 100-111, 146, 159, 193, 225, 230, 234
src/jacobian/domains/analysis/operations.py                           42      6      8      3    82%   64, 69, 113, 123-128
src/jacobian/domains/analysis/protocol.py                             35      2      4      2    90%   43, 45
src/jacobian/domains/analysis/worker.py                               30     30      4      0     0%   3-74
src/jacobian/domains/arithmetic/operations.py                         96      8     14      2    89%   60-63, 115, 139-140, 179-180
src/jacobian/domains/combinatorics/difference_sets.py                 77      2     28      2    96%   130, 157
src/jacobian/domains/combinatorics/operations.py                      98      3     10      3    94%   72, 192, 195
src/jacobian/domains/finite_fields/bundle.py                         103      3     12      3    95%   142, 157, 240
src/jacobian/domains/geometry/operations.py                          176     39     44      5    75%   81, 115-117, 144-147, 162, 197, 212-215, 225-228, 242-243, 251-263, 267-273, 323-327, 407
src/jacobian/domains/graph_optimization/chromatic_number.py           19      2      4      0    91%   30-31
src/jacobian/domains/graph_optimization/distance_matrix.py            22      2      0      0    91%   63-64
src/jacobian/domains/graph_optimization/exact_search.py              143      1     38      1    99%   85
src/jacobian/domains/graph_optimization/finite_optimization.py        55      1     20      1    97%   74
src/jacobian/domains/graph_optimization/graph6.py                     22      2      0      0    91%   40-41
src/jacobian/domains/graph_optimization/hamiltonian_path.py           49      3     12      1    93%   30, 87-94
src/jacobian/domains/graph_optimization/independence.py               14      2      0      0    86%   28-29
src/jacobian/domains/graph_optimization/invariants.py                164     24     34      7    84%   84-85, 163, 173, 245-246, 292-293, 318, 339-340, 345-346, 362-370, 381-399, 430
src/jacobian/domains/graph_optimization/minimum_spanning_tree.py      53      3      8      1    93%   128, 164-171
src/jacobian/domains/graph_optimization/operations.py                 69      3     26      3    94%   99, 138, 208
src/jacobian/domains/matrix_lattice/conversions.py                    39      4     10      4    84%   29, 71, 89, 97
src/jacobian/domains/matrix_lattice/hnf.py                            45      8     10      5    76%   42, 71, 98, 104, 114, 120, 130-131
src/jacobian/domains/matrix_lattice/hnf_protocol.py                   32      2      4      1    92%   38, 60
src/jacobian/domains/matrix_lattice/hnf_worker.py                     33     33      6      0     0%   3-94
src/jacobian/domains/matrix_lattice/lattice.py                        42      7     12      5    78%   66, 97, 109, 115, 123-124, 130
src/jacobian/domains/matrix_lattice/lll_protocol.py                   41      3      6      2    89%   45, 67, 69
src/jacobian/domains/matrix_lattice/lll_worker.py                     59     59     12      0     0%   3-123
src/jacobian/domains/matrix_lattice/operations.py                     60      1      6      1    97%   152
src/jacobian/domains/number_theory/discrete_logarithm.py              36      5      8      3    82%   78, 90, 96, 105-106
src/jacobian/domains/number_theory/discrete_logarithm_worker.py       23     23      4      0     0%   3-61
src/jacobian/domains/number_theory/divisibility_operations.py         49      2      4      2    92%   49, 78
src/jacobian/domains/number_theory/factorization.py                   73      6     14      5    87%   76, 92, 100->102, 103, 111, 188-189
src/jacobian/domains/number_theory/factorization_kernels.py           33     33      8      0     0%   3-83
src/jacobian/domains/number_theory/factorization_worker.py            30     30     14      0     0%   3-91
src/jacobian/domains/number_theory/modular_operations.py              52      1     12      1    97%   46
src/jacobian/domains/optimization/operations.py                       36      8      4      2    75%   59, 64, 74-92
src/jacobian/domains/optimization/worker.py                           57     57      8      0     0%   3-165
src/jacobian/domains/polynomial/_support.py                           30      6      2      0    75%   40-42, 143-148
src/jacobian/domains/polynomial/checkers.py                           76     12     34     12    78%   22, 31, 68, 72, 75, 113, 117, 125, 135, 143, 151, 153
src/jacobian/domains/polynomial/conversions.py                        26      1      8      1    94%   37
src/jacobian/domains/polynomial/elementary_operations.py              95      1      8      1    98%   201
src/jacobian/domains/polynomial/groebner.py                           40      4     10      3    86%   79, 91, 97, 112
src/jacobian/domains/polynomial/groebner_protocol.py                  37      6     10      2    74%   44-49
src/jacobian/domains/polynomial/groebner_worker.py                    20     20      2      0     0%   3-56
src/jacobian/domains/polynomial/jacobian_syzygy.py                   101      4     24      3    94%   79-80, 157, 224->236, 230
src/jacobian/domains/polynomial/operations.py                         60      9      8      2    78%   53, 63, 190-213
src/jacobian/domains/polynomial_nullstellensatz/core.py              136      9     20      4    90%   101-103, 143-144, 270-271, 286, 300
src/jacobian/domains/polynomial_nullstellensatz/singular.py          205     45     72     14    73%   123, 148, 152, 160, 163, 171, 177, 187, 195, 247-266, 288, 293, 306-320, 389-390, 414, 419, 421-427, 467, 482, 497-510
src/jacobian/domains/posets/operations.py                            127      2     28      2    97%   65-66, 162->157
src/jacobian/domains/probability/gaussian_inputs.py                   50      4     14      4    88%   39, 43, 68, 85
src/jacobian/domains/probability/operations.py                       162      1     48      1    99%   70, 328->325
src/jacobian/domains/projective_geometry/arrangements.py              47      5      6      1    89%   40-41, 112, 153-154
src/jacobian/domains/rational_linear/operations.py                    67     23     22     10    63%   52, 75, 94, 99, 101, 125, 131, 133, 135-148, 166, 172, 174, 179-192
src/jacobian/domains/rational_linear/protocol.py                      56      4      4      1    92%   95, 122-123, 128
src/jacobian/domains/rational_linear/worker.py                        57     57     16      0     0%   3-145
src/jacobian/domains/sequences/operations.py                         124      3     20      3    96%   85, 201, 209
src/jacobian/domains/topology/operations.py                          159      8     52      8    92%   113, 168, 180, 217, 220, 294, 417, 456
src/jacobian/eval/graph_oracle.py                                    111    111     76      0     0%   3-192
src/jacobian/eval/telemetry.py                                       355     21    134     10    93%   74-75, 76->69, 115->113, 117->113, 119-120, 159-161, 188, 208-209, 256-257, 487-497, 521, 646, 680, 753-754, 756
src/jacobian/exact_domain_checkers.py                                271     20     78     14    90%   107, 116, 181, 186, 331, 377, 390, 397-403, 417, 485, 536, 620, 849-855, 882, 888, 894-895
src/jacobian/finite_coverage.py                                      136      3     20      3    96%   208, 447, 463
src/jacobian/graphs/artifacts.py                                      53      1      2      1    96%   114
src/jacobian/graphs/atlas.py                                          20      1      4      1    92%   49
src/jacobian/graphs/atlas_search.py                                   89      4     26      4    93%   212, 240, 256, 261
src/jacobian/graphs/composition.py                                   141     19     26      2    81%   237, 434, 441-450, 458-470, 480
src/jacobian/graphs/construction.py                                   46      1      2      1    96%   135
src/jacobian/graphs/degree_sequence.py                                85      5     16      3    92%   100-101, 246, 254, 270
src/jacobian/graphs/invariants.py                                    165     11     64      7    91%   110-111, 216-218, 231, 262, 301, 326, 335, 339
src/jacobian/graphs/isomorphism.py                                   136      8     26      5    92%   164, 206, 381-382, 417-418, 457, 477->473, 485
src/jacobian/graphs/neighborhood_independence.py                      68      4      6      2    92%   99-100, 116, 127
src/jacobian/implementation.py                                       187     68     80     11    59%   29, 32, 35-37, 52-65, 97-98, 117, 123, 126, 129-138, 145, 154, 158, 171, 208-234, 240-245, 254-255, 266, 274-277
src/jacobian/lean_frontend/_state_validation.py                       26     11      4      0    50%   50-90
src/jacobian/lean_frontend/artifacts.py                               30      8      0      0    73%   45, 71, 95-111, 118
src/jacobian/lean_frontend/declaration_operations.py                  27      4      0      0    85%   55-56, 71-72
src/jacobian/lean_frontend/declaration_protocol.py                    98      3     14      3    95%   38, 44, 50
src/jacobian/lean_frontend/declarations.py                           716    245    224     55    62%   141, 145, 152-153, 207->209, 218, 255-256, 258, 266, 268, 270, 272-278, 289, 298-299, 301, 317-318, 323, 356-359, 365, 382-384, 412-437, 445-499, 502-509, 512-530, 533-537, 540-578, 581-585, 619, 631, 653, 656, 661, 675-676, 694-696, 698-699, 724-731, 734, 759-760, 805, 812, 816->818, 833-863, 880, 898, 916-926, 942-957, 968, 983, 997, 1017-1022, 1026-1032, 1055-1057, 1081, 1094-1095, 1112, 1123-1124, 1143, 1155-1156, 1166-1169, 1186-1187, 1192, 1212, 1215-1216, 1218, 1233-1238, 1245, 1259-1264, 1271, 1275-1276, 1278, 1284, 1298, 1305, 1312, 1319, 1354, 1355->1379, 1360, 1367, 1368->1355, 1376-1378, 1413, 1429, 1448, 1458, 1464, 1467-1468, 1476, 1482
src/jacobian/lean_frontend/diagnostics.py                            127     36     52     10    69%   142-154, 188, 218-232, 266, 301, 339, 342, 362, 376, 400-436, 446
src/jacobian/lean_frontend/exploration.py                            179     90     36      7    47%   85-86, 154-217, 240, 242, 245, 267->269, 277, 298, 302-303, 314, 331, 349, 355, 404-437, 446-479, 496-538, 546-548, 552
src/jacobian/lean_frontend/metavariable_fields.py                     68     43      8      0    33%   59-61, 85, 88-101, 104-261, 277
src/jacobian/lean_frontend/premise_retrieval.py                       55     13      4      0    71%   135-207
src/jacobian/lean_frontend/proof_axioms.py                           225     48     64     14    75%   172-173, 188, 198-201, 216, 284, 286, 290, 304-305, 307-308, 326, 332-333, 337-348, 367, 423-424, 453, 462-463, 494, 498-506, 513-520, 544, 554-556
src/jacobian/lean_frontend/proof_edit.py                              61     30      2      0    49%   54-76, 95-98, 127, 130-148, 151-250, 265
src/jacobian/lean_frontend/proof_state.py                            127     58     28      6    48%   133, 138-139, 161, 163-197, 220, 239, 247, 273, 277, 308-310, 337-470
src/jacobian/lean_frontend/proof_state_inspect.py                     57     12      0      0    79%   90-103, 106-139, 158
src/jacobian/lean_frontend/repl.py                                   271    207     96      5    19%   49-54, 67-72, 86-94, 105-132, 143-178, 183-184, 187-224, 227-233, 239, 245, 251, 254-270, 273-277, 284, 293-294, 307-314, 326-333, 349-365, 383-390, 399-427, 430-457, 477-478, 484-492, 496-504, 508-516, 521, 530
src/jacobian/lean_frontend/service.py                                123     93     28      1    21%   48-59, 75-179, 191-202, 207-224, 227-234, 242-274
src/jacobian/lean_frontend/statement.py                              273    172     46      1    32%   95-96, 151-179, 194-197, 214-249, 271-275, 290-301, 316-352, 360-369, 375-392, 398-408, 412-427, 433-441, 445-453, 466-475, 479-482, 490-491, 500-505, 509-512, 553, 654, 657-674, 677-751, 802, 805-823, 826-884, 901
src/jacobian/lean_frontend/term_apply.py                              39     17      2      0    54%   48-49, 103, 106-132, 135-170, 189
src/jacobian/math/combinatorics/recurrence_tables.py                  68      6     22      6    87%   45, 53, 55, 93, 98, 100
src/jacobian/math/finite_fields/_flint.py                             41      7     12      6    75%   23, 26, 37, 50, 53, 77, 84
src/jacobian/math/finite_fields/_sympy.py                             30      1      4      1    94%   89
src/jacobian/math/finite_fields/operations.py                         94      9     30      5    87%   58, 60, 84, 219, 244, 276-280
src/jacobian/math/finite_fields/values.py                            366     56    128     43    80%   38, 48, 55, 57, 81, 134, 139, 170, 172, 176, 201, 203, 214, 238, 240, 248, 285, 305, 310, 316, 346, 348, 353, 355, 360, 380, 387, 414, 419, 438, 441, 450, 452, 454, 456, 461, 479, 488, 507, 509, 511, 516, 518, 525, 554, 575, 578, 580, 586, 591, 621, 632, 655, 666, 701, 720
src/jacobian/math/graphs/_independence_z3.py                          41      5     12      4    83%   31, 49, 101-108
src/jacobian/math/graphs/_networkx.py                                 52      5     22      5    86%   18, 20, 47, 51, 57
src/jacobian/math/graphs/graph6.py                                    62      9     22      9    79%   22, 38, 41, 43, 49, 56, 59, 63, 66
src/jacobian/math/graphs/independence.py                              54      8     18      7    76%   51, 77, 79, 81, 83, 92-94
src/jacobian/math/graphs/values.py                                    34      6     14      6    75%   32, 34, 39, 41, 56, 58
src/jacobian/math/matrices/_sympy.py                                  57      5     20      4    88%   20, 32, 54, 61, 94
src/jacobian/math/matrices/values.py                                  41      6     18      6    80%   38, 40, 45, 47, 52, 65
src/jacobian/math/modular_polynomials.py                              79      8     22      8    84%   36, 42, 57, 62, 93, 97, 103, 108
src/jacobian/math/polynomials/_sympy.py                               44      1      6      1    96%   46
src/jacobian/math/polynomials/operations.py                           44      1      4      1    96%   29
src/jacobian/math/prime_field_linear_algebra.py                       99      3     44      3    96%   31, 33, 118
src/jacobian/math/real_quadratic.py                                   84      9     20      9    83%   34, 36, 38, 42, 63, 74, 107, 127, 137
src/jacobian/operation_bindings.py                                    65      5      8      3    89%   47, 65, 67, 226-227
src/jacobian/operation_installation.py                               136      4     18      2    96%   163, 264, 326-327
src/jacobian/operation_ports.py                                       50      5     24      5    86%   23, 53, 57, 79, 99
src/jacobian/operation_projection.py                                  41      2     12      2    92%   28, 76
src/jacobian/operation_publication.py                                 51      4     10      2    90%   69, 82-83, 104
src/jacobian/operations.py                                            88      4     10      4    92%   27, 81, 85, 152
src/jacobian/persistence/database.py                                 217     24     58     12    86%   91-94, 109-111, 135, 168, 226, 262, 282, 298, 312, 323->327, 329, 341-345, 347->353, 350-352, 361-362, 366
src/jacobian/persistence/decoding.py                                  35      2      2      0    95%   80-81
src/jacobian/persistence/migrations.py                                65      3     22      3    93%   358, 472, 488
src/jacobian/persistence/state_health.py                              74     13     20      7    79%   35, 66, 101, 112-113, 123, 136, 171, 184, 219, 237, 254-255
src/jacobian/polynomial_expression_capabilities.py                    84      8     20      4    87%   124, 186-187, 207, 267-270, 275
src/jacobian/polynomial_expressions.py                                81     12      8      4    82%   91-92, 99, 112-113, 163-164, 171, 182-183, 190, 194
src/jacobian/polynomial_interval_capabilities.py                     157      4     14      3    96%   323-329, 441, 557->559, 605
src/jacobian/polynomial_positivity_capabilities.py                   176     11     20      3    93%   341-347, 468, 484-490, 607->609, 649-653, 717
src/jacobian/polynomial_system_capabilities.py                       100      2     12      2    96%   156, 211
src/jacobian/polynomial_system_search.py                              47      2      4      0    96%   91-92
src/jacobian/polynomials/_support.py                                 244     26     56      7    89%   121, 251-252, 267, 279-280, 291, 310-311, 326, 338-339, 359-379, 389, 559->562, 565-566, 568, 742-748
src/jacobian/polynomials/collision.py                                189      8     40      8    93%   65, 67, 84, 86, 486, 580, 627, 667
src/jacobian/polynomials/evaluation.py                               109      4      6      3    94%   230-235, 326, 394, 486->488
src/jacobian/polynomials/identity.py                                  55      2      6      3    92%   122, 242->239, 251
src/jacobian/polynomials/inverse.py                                  167     12     38      9    90%   198-199, 273, 301, 315, 330, 376-377, 386-387, 412, 690
src/jacobian/polynomials/rational_identity.py                         43      1      2      1    96%   138
src/jacobian/polytope.py                                             188     20     38     13    85%   67->69, 85, 90-96, 168, 171, 199, 211-216, 247, 253-254, 272, 274, 280, 282, 377, 421, 434->439, 678
src/jacobian/polytope_capabilities.py                                 31      1      4      1    94%   95
src/jacobian/portfolio/assembler.py                                   30      3      2      1    88%   32, 58-59
src/jacobian/portfolio/checker_installation.py                        64     25     14      1    54%   114-160, 167-174
src/jacobian/portfolio/core_installation.py                           79      3     22      1    94%   96-98
src/jacobian/portfolio/foundation_installation.py                     50      6     14      1    86%   122-131
src/jacobian/portfolio/model.py                                       29      1     14      1    95%   66
src/jacobian/portfolio/resource_installation.py                       32      2     14      1    89%   76-77
src/jacobian/portfolio/result.py                                      45      4      8      4    85%   35, 51, 53, 71
src/jacobian/process_policy.py                                        93      2     32      3    96%   70->76, 130, 148
src/jacobian/provider_measurements.py                                115     50     30      5    54%   173, 188-189, 205-227, 236, 240, 261-274, 291-294, 307-356, 371-372
src/jacobian/provider_runtime.py                                     225     34     70     14    84%   98, 123-124, 152, 158-164, 212, 215, 270-271, 309-310, 359-360, 394-395, 404, 416, 425, 431-432, 437, 447, 457-458, 474, 483-484, 506, 549, 567, 585
src/jacobian/providers/external_solver_runtime.py                     82      3     24      3    94%   71, 214, 344
src/jacobian/providers/flint_runtime.py                              122     31     22      6    74%   127-128, 171, 211, 228-229, 271-272, 314-315, 357-364, 419-420, 463-464, 504-505, 546-547, 590-591, 663, 675-676, 683, 722, 734-735, 744
src/jacobian/providers/lean_runtime.py                               139     21     40     15    80%   55, 60, 68, 71, 74, 96, 116, 121-123, 157, 160-161, 178-180, 188, 190-191, 223, 229, 234->exit, 249->253
src/jacobian/providers/loader.py                                      99      2     24      3    96%   139, 148, 196->exit
src/jacobian/providers/metadata.py                                    37      1      6      1    95%   39
src/jacobian/registry.py                                             197     17     56     12    89%   107-113, 202, 300, 305, 343, 354-355, 375, 457, 467, 482, 502, 566, 571, 627
src/jacobian/runtime/bootstrap.py                                     35      6      0      0    83%   58-63
src/jacobian/runtime/model.py                                         38     10     12      4    68%   26, 36, 42, 51-52, 54-61, 66
src/jacobian/runtime/portfolio.py                                     29      1     10      1    95%   41
src/jacobian/sat_smt/cadical.py                                      301     36    104     25    85%   93, 97, 103, 171, 192, 202, 280, 285, 332-333, 389, 393, 517, 521, 525, 567-568, 610, 630, 683, 726, 733-734, 736, 746-747, 755, 760, 762, 772, 774, 779, 791, 798, 800, 817
src/jacobian/sat_smt/cvc5.py                                         158     20     44     14    83%   83, 132-133, 145-146, 173, 266-267, 275, 290, 295, 304, 381, 401, 408, 420, 462, 469, 471, 475
src/jacobian/sat_smt/cvc5_worker.py                                  124    102     32      1    15%   43-44, 48-54, 58-62, 72-89, 98-108, 118-140, 150-188, 197-227, 231
src/jacobian/sat_smt/sat.py                                          107     15     14      5    83%   104-105, 119-120, 182, 189-190, 199, 235-236, 243, 250-251, 254, 258
src/jacobian/sat_smt/sat_capabilities.py                             186     11     44      9    91%   175, 363, 438, 478, 485, 536, 588-589, 611, 664, 671
src/jacobian/sat_smt/sat_lrat.py                                     130     10     30      7    89%   125, 169-170, 195, 277, 377, 389, 392-393, 395, 400->407
src/jacobian/sat_smt/smt.py                                           77      8      8      2    88%   85-86, 100-101, 169-170, 173, 177
src/jacobian/sat_smt/smt_capabilities.py                              93      4     22      4    93%   130, 201, 254, 261
src/jacobian/schema_registry.py                                      187      4     54      5    96%   276->278, 287, 291->293, 301-302, 357
src/jacobian/storage/blobs.py                                        164     18     58     15    84%   52, 60, 63->62, 83, 87, 155, 157, 179, 191, 221, 247-248, 278-279, 293-294, 297->299, 323, 340, 342
src/jacobian/storage/errors.py                                        19      2      0      0    89%   16-17
src/jacobian/storage/identity.py                                      48      2      6      2    93%   45, 51
src/jacobian/storage/metadata.py                                     123     10     38      8    89%   133, 170, 173, 238, 242, 247, 390-391, 396, 429
src/jacobian/storage/repository.py                                   138     17     28      6    85%   60, 97-99, 218, 246-247, 270-271, 284, 292-293, 295-297, 305, 313
src/jacobian/storage/transactions.py                                 180     28     38      6    84%   68-69, 123-124, 139-141, 154-155, 164-166, 175, 177-183, 185-191, 205, 209, 218-220, 250->exit
src/jacobian/sympy_polynomial_normalization.py                       115      8     34      9    89%   84, 104, 130, 400, 418, 424, 448, 449->455, 466
src/jacobian/sympy_polynomial_protocol.py                             27      2      2      1    90%   39, 52
src/jacobian/sympy_polynomial_worker.py                               48     48     16      0     0%   3-122
src/jacobian/universal_algebra_capabilities.py                       201      8     40      3    95%   192->196, 523-524, 711, 726-736
src/jacobian/value_references.py                                      64      3      8      2    93%   55, 104-105, 115->113
src/jacobian/verification/_helpers.py                                 47      2     14      3    92%   81, 84->exit, 114
src/jacobian/verification/checker_protocol.py                         36     10     12      2    62%   39-44, 71-74
src/jacobian/verification/executor.py                                 60      9     16      3    84%   134-137, 151, 153-157, 162-166
src/jacobian/verification/plan_builder.py                            133      6     38      6    93%   136, 208, 251, 261, 299, 450
src/jacobian/verification/service.py                                 109      1     16      1    98%   523
src/jacobian/verification_capabilities.py                             83      2      8      0    98%   180-181
src/jacobian_checkers/additive_combinatorics.py                      156     50     66     19    63%   59, 62, 74, 77, 100, 108, 138, 141, 162, 175, 202, 208, 211, 215, 218, 239, 250-263, 269, 274, 294-295, 299-308, 312-334, 369-370
src/jacobian_checkers/bound_artifacts.py                              77      7     38      7    88%   58, 69, 109, 114, 140, 163, 175
src/jacobian_checkers/certified_snf.py                               129     37     54     17    65%   39, 50, 62, 72, 78, 92, 94, 103, 116, 135, 151, 153-154, 163, 184, 191, 203, 211, 236, 248, 260-299
src/jacobian_checkers/erdos_straus.py                                 84     15     44     13    78%   29, 47, 58, 69, 71, 73, 85, 88, 90, 104, 109, 114, 121, 141-142
src/jacobian_checkers/exact_domain_operations.py                     498     86    234     86    77%   81, 88, 92, 95, 106, 112, 129, 132, 135, 138, 142, 151, 154, 164, 172, 189, 191, 202, 212, 214, 225, 236, 247, 250, 256, 289, 297, 309, 316, 340, 364, 392, 405, 421, 427, 441, 446, 448, 458, 462, 475, 478, 482, 509, 542, 548, 554, 563, 567, 575, 584, 600, 660, 688, 690, 696, 728, 730, 735, 738, 741, 743, 760, 762, 771, 773, 793, 795, 800, 804, 846, 851, 856, 860, 890, 906, 944, 986, 988, 998, 1028, 1030, 1037, 1058, 1095, 1127
src/jacobian_checkers/exact_geometry.py                              389    166    204     38    53%   48-69, 76-104, 114-143, 150-166, 170-175, 191-239, 254, 258, 268-271, 301, 307, 311, 314, 320, 326, 332, 342, 345, 348, 359, 370, 419-430, 444, 471-493, 506, 532, 576, 579, 603, 624, 629, 661, 669, 672, 689, 694, 712, 718, 739, 741, 743, 746, 756, 762, 779, 784-796, 806-812, 822-835, 841-844, 851, 877-884, 892-900, 908, 921
src/jacobian_checkers/exact_probability_operations.py                378     59    192     57    80%   66, 69, 75, 79, 82, 88, 113, 116, 122, 126, 128, 130, 136, 148, 152, 157, 177-178, 189, 192, 201, 211, 236, 239, 242, 251, 257, 275, 279, 285, 293, 304, 327, 353, 358, 377, 387, 392, 402, 405, 409, 478, 508, 531, 546, 548, 559, 567, 574, 577, 605, 631, 640, 644, 646, 649, 705, 729, 732
src/jacobian_checkers/finite_coverage.py                             153    153     70      0     0%   3-440
src/jacobian_checkers/finite_field_polynomial.py                     120     19     50     20    77%   35, 48, 53, 67, 79, 87, 109, 112, 119, 129, 140, 188, 190, 196, 207, 237, 253->264, 265, 281, 288
src/jacobian_checkers/finite_field_rank.py                           132     24     60     24    75%   29, 40, 51, 65, 70, 81, 93, 101, 109, 117, 123, 126, 146, 154, 164, 222, 230, 279, 324, 331, 348, 354, 356, 371
src/jacobian_checkers/finite_posets.py                               333     54    146     49    78%   56, 67, 98, 133, 137, 141, 148, 151, 161, 165, 168, 181, 184, 186, 197, 199, 264, 269, 274, 276, 280, 301, 305, 314, 320, 342, 344, 377, 379, 381, 411, 414, 417, 421, 451, 455, 458, 469, 498, 508, 554, 590, 644, 649, 651, 654-656, 658, 662, 671-679
src/jacobian_checkers/graph6.py                                       42     42     14      0     0%   3-88
src/jacobian_checkers/graph_degree_sequence.py                       152     28     74     28    75%   41, 51, 62, 74, 77, 90, 101, 113, 134, 137, 150, 158, 171, 183, 197, 209, 211, 216, 232, 247, 263, 281, 286, 294, 305, 310, 314, 318
src/jacobian_checkers/graph_exact_operations.py                      512     95    256     49    78%   85, 111, 114, 124, 138, 147, 157, 171, 178, 192, 196, 233, 271, 279, 287, 292, 298, 335, 420, 424, 440, 569, 571-580, 592, 594-603, 624, 638, 642, 649, 668, 681, 685, 689, 693, 709, 714, 799, 927, 950, 952, 980, 1037-1038, 1040, 1043->1050, 1067-1127, 1131-1152, 1161, 1178, 1193, 1228-1231, 1249, 1277
src/jacobian_checkers/graph_invariants.py                            130     23     62     23    76%   33, 44, 56, 59, 68, 77, 80, 90, 97, 124, 135, 144, 151, 159, 167, 207, 221, 239, 245, 268, 281, 287, 290
src/jacobian_checkers/graph_isomorphism.py                            52      9     20      7    78%   27, 38, 49, 52, 61, 73, 85, 172-173
src/jacobian_checkers/graph_paths.py                                 354    187    194     45    43%   24-82, 93, 96, 100, 103, 109, 112, 130, 133, 143-144, 152, 157, 175, 186, 197-209, 217, 222, 248-266, 274-317, 321, 335-337, 347-368, 375-393, 418, 421, 427, 429, 432, 434, 438, 447, 472->471, 496, 509, 511, 513, 521, 523, 530-566, 577-590, 598, 600, 602, 608, 611, 614, 627, 637, 640, 648-654, 662, 671, 685, 695
src/jacobian_checkers/graph_shrinking.py                              64     64     36      0     0%   3-102
src/jacobian_checkers/integer_lcm.py                                  40     40     10      0     0%   3-81
src/jacobian_checkers/jacobian_syzygy.py                             263    219    116      3    12%   20, 31, 43, 47, 54, 68-111, 118, 142-149, 156-204, 208, 228-242, 248-283, 287-307, 311-329, 337-347, 353, 395-413, 419-438, 446-460, 475-492, 500-586, 592-608, 612, 621
src/jacobian_checkers/lean4.py                                       358     91    136     40    69%   95, 106, 108, 116, 118, 161, 164, 178, 210, 234-235, 246, 259, 269->271, 298-299, 318, 348, 353, 355-356, 358, 362, 386, 389, 414, 417, 421-477, 492->494, 511-512, 519, 524, 529, 533->544, 541, 551-561, 576, 581-582, 609, 651, 710-713, 721-723, 731, 750, 755, 770, 772, 779, 787, 809, 812, 830, 836-837
src/jacobian_checkers/linear.py                                       83     20     40     20    67%   34, 45, 48, 63, 69, 80, 87, 89, 101, 120, 122, 124, 127, 139, 167, 169, 171, 175, 184, 192
src/jacobian_checkers/matrices.py                                    308    114    166     50    58%   39, 41, 43, 45, 55, 70, 72, 83, 92, 99, 103, 116-117, 124-132, 140-195, 209, 211, 225, 235, 271, 278, 290, 301, 309, 312, 333-334, 345, 347, 349, 360, 363, 365, 375, 384, 391, 399, 405, 409, 415, 423, 425, 437-438, 447-495, 505-507, 516, 521, 526, 535, 538, 544, 558, 562, 569, 583, 586, 595, 597
src/jacobian_checkers/matrix_normal_forms.py                         101     13     52     12    84%   37, 47, 49, 60, 83, 85, 95, 97-98, 108, 151, 175, 184
src/jacobian_checkers/modular_polynomial_identity.py                  50     50     16      0     0%   3-126
src/jacobian_checkers/nullstellensatz.py                             194     32     96     32    78%   61, 72, 75, 81, 84, 89, 104, 107, 132, 140, 184, 188, 191, 194, 209, 214, 216, 222, 227, 233, 246, 269, 274, 291, 320, 327, 329, 343, 345, 363, 375, 420
src/jacobian_checkers/polynomial_expressions.py                      329     76    160     48    73%   121, 134, 152, 155, 161, 165, 181, 194, 206, 208-218, 227, 230, 247, 266-297, 308, 311, 330-331, 355, 366, 376, 378, 380, 382, 390, 399, 410, 412, 418, 431, 440, 445-448, 453, 456, 461, 473, 476, 501, 507, 510, 549, 573, 575, 588, 593, 621, 633, 641, 659, 671, 683, 707
src/jacobian_checkers/polynomial_intervals.py                        185     29     84     29    78%   42, 51, 64, 66, 81, 83, 86, 95, 106, 109, 119, 123, 126, 133, 175, 204, 219, 234, 244, 254, 269, 283, 288, 302, 324, 333, 339, 344, 352
src/jacobian_checkers/polynomial_maps.py                             363     58    164     50    80%   36, 45, 54, 62, 78, 99, 102, 111, 125, 128, 166, 189, 199, 212, 235, 248, 259, 261, 269, 274, 282, 294-295, 303, 331, 345, 399-400, 408, 424, 431, 440, 452, 542, 590, 601, 610, 617, 624, 632, 648, 662-663, 671, 682, 698, 710, 719, 735, 765-766, 785, 798, 842, 857, 859, 872, 874
src/jacobian_checkers/polynomial_positivity.py                       250     41    114     41    77%   43, 52, 55, 65, 67, 71, 82, 84, 87, 95, 106, 109, 117, 121, 124, 131, 150, 165->162, 168, 176, 179, 183->189, 190, 263, 278, 293, 303, 313, 328, 339, 341, 346, 369, 386, 426, 435, 444, 450, 455, 463, 468, 515-516
src/jacobian_checkers/polynomial_systems.py                           87     12     34     12    80%   30, 39, 50, 53, 58, 72, 75, 109, 132, 152, 160, 176
src/jacobian_checkers/polytope.py                                    176    176     96      0     0%   3-326
src/jacobian_checkers/projective_arrangements.py                      77     77     32      0     0%   3-212
src/jacobian_checkers/rational_determinants.py                       219     91    110     25    53%   59, 72, 89, 95, 102, 112, 114, 123, 166, 168-169, 200, 202, 213, 215, 220, 235, 257, 265, 278, 283, 295, 305, 312, 315, 328, 349-353, 362-382, 388-404, 412-433, 442-455, 459-477, 483-519
src/jacobian_checkers/rational_functions.py                           87      4     38      4    94%   35, 60, 63, 68
src/jacobian_checkers/rational_lp.py                                  72     72     26      0     0%   3-182
src/jacobian_checkers/real_quadratic.py                               65     65     26      0     0%   3-136
src/jacobian_checkers/recurrence_series.py                           229     69    106     32    63%   58, 60, 65, 71, 78, 82, 85, 97, 123-124, 134, 136-144, 164, 198, 204, 218, 221, 224, 248, 285, 326, 338, 342, 358, 377, 385, 388, 391, 403, 406, 410, 422-496, 528, 540, 544, 611
src/jacobian_checkers/reject.py                                        4      4      0      0     0%   3-9
src/jacobian_checkers/sat.py                                         300     46    148     42    80%   91, 104, 119, 131, 134, 143, 153, 159, 165, 169, 183, 189, 200, 207, 235, 249, 320, 334, 340-341, 346, 361, 381, 394, 406, 431, 446, 489, 491, 501-502, 535, 537, 542, 545, 630, 632, 643, 645, 650, 665, 674, 696, 701, 723, 748
src/jacobian_checkers/sat_lrat.py                                    189     38     82     26    76%   42-43, 75, 78, 82, 85, 87, 95-96, 105-108, 119->138, 122, 130, 132, 151, 153, 156, 161, 165, 167, 171, 180-181, 189, 192, 224, 226, 255, 269, 313, 322, 352, 359, 364, 366, 368
src/jacobian_checkers/simplicial_topology.py                         430     71    202     62    78%   76, 87, 93, 96, 128, 137, 140, 144, 146, 148, 153, 158, 184, 198, 206, 220, 226, 229-231, 303, 307, 318, 321, 324, 340, 348->350, 351, 363, 366, 368, 384, 399, 472, 508, 512, 515, 518, 529, 535, 538, 546, 552, 564, 621, 659, 691, 736, 742, 786, 827, 840, 860-890, 904, 907-908, 924, 951, 959, 984, 994, 1013, 1028, 1031, 1074
src/jacobian_checkers/smt.py                                         236     60    106     28    71%   80, 93, 106-117, 121-130, 137, 140, 153-155, 161-163, 165-167, 181, 191, 194, 213, 218, 232, 248-249, 256, 259, 268, 274, 344, 363, 366-367, 391, 411, 424, 435, 438, 500, 502, 507, 510
src/jacobian_checkers/universal_algebra.py                           147     22     62     22    79%   32, 46, 57, 64, 71, 80, 117, 132, 145, 150, 152, 163, 177, 182, 192, 202, 206, 214, 216, 307, 331, 341
--------------------------------------------------------------------------------------------------------------
TOTAL                                                              39060   7069  11680   2783    77%

178 files skipped due to complete coverage.

Total coverage: 77% (threshold: 50%)

* refactor(runtime): parse capability inputs once

* docs(architecture): enforce typed adapter boundaries

* fix(runtime): preserve request values before validation
@morluto
morluto marked this pull request as ready for review August 13, 2026 06:36
@cursor

cursor Bot commented Aug 13, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7a3edda3e3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/jacobian/operation_installation.py Outdated
Synchronize #1311 before fixing typed composition-value binding.
Carry a JSON accounting view beside each resolved input-port value, restore the exact validated object for strict Python-mode request binding, and keep ordinary caller payloads on the existing strict JSON parse. Add a regression proving both object identity and rejection of stringly external fields.
Synchronize #1311 after fixing typed composition-value identity.
Restore exact model instances at input ports, keep canonical JSON projection solely for request-size accounting, and parse the assembled typed payload directly in strict Python mode. External requests still cross the strict JSON parser, while direct and referenced composition preserve object identity.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 82dff03b91

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/jacobian/capability_adapters.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 82dff03b91

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/jacobian/capability_adapters.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: adb73d75b5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/check_architecture.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 588431ace9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/jacobian/capability_dispatch.py
@morluto

morluto commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

Reconciled this branch with current main and pushed merge commit 2219b0f. The resolution keeps the current declaration-owned runtime implementation and the dispatch refactor's typed preparation path. Focused validation: 18 passed, 1 skipped because the pinned Lean runtime was unavailable locally.

@morluto
morluto merged commit 76bbd4b into main Aug 13, 2026
29 checks passed
@morluto
morluto deleted the agent/centralize-dispatch-failures branch August 13, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant