294 lines
11 KiB
JSON
294 lines
11 KiB
JSON
{
|
|
"date": "2026-11-02",
|
|
"increment": "WORKSHOP-MATERIAL-CYCLE-SIM-v1",
|
|
"status": "local_synthetic_implementation",
|
|
"proofs": [
|
|
{
|
|
"file": "workshop-stock-1793634406841.xml",
|
|
"sha256": "eabad22dca4fe162777bc04adbec9806fcbdf20ccedce2cd7ef97aa270211e13",
|
|
"tests": 20,
|
|
"assertions": 740,
|
|
"errors": 0,
|
|
"failures": 0
|
|
},
|
|
{
|
|
"file": "workshop-stock-1793634619557.xml",
|
|
"sha256": "dd5a1f08095d33adad82180ade2d92ecac37c62728f2f4a79208818192569362",
|
|
"tests": 5,
|
|
"assertions": 219,
|
|
"errors": 0,
|
|
"failures": 0
|
|
},
|
|
{
|
|
"file": "workshop-stock-1793634796037.xml",
|
|
"sha256": "c22d26fc7c607027727d1f37ab21f881033ca0be44962e38a5ab9fa1957b9101",
|
|
"tests": 9,
|
|
"assertions": 363,
|
|
"errors": 0,
|
|
"failures": 0
|
|
},
|
|
{
|
|
"file": "workshop-stock-1793634950240.xml",
|
|
"sha256": "d08140e0984173c271737f42b28f22f6da66648fd816604900866225469eacb3",
|
|
"tests": 1,
|
|
"assertions": 63,
|
|
"errors": 0,
|
|
"failures": 0
|
|
}
|
|
],
|
|
"selection": "Latest passing evidence selected per test name; repeated affected cases are not counted twice. Earlier intermediate failure is excluded. Later warehouse receipt declaration, history controls and ordered opening-stock timestamp were verified only in affected cases.",
|
|
"totals": {
|
|
"distinct_tests": 22,
|
|
"assertions": 820
|
|
},
|
|
"selected_cases": [
|
|
{
|
|
"name": "test_stock_return_unconsumed_material_restores_only_remaining_quantity_once",
|
|
"assertions": 63,
|
|
"proof": "workshop-stock-1793634950240.xml"
|
|
},
|
|
{
|
|
"name": "test_stock_return_refuses_consumed_client_unverified_excess_and_stale_capacity",
|
|
"assertions": 52,
|
|
"proof": "workshop-stock-1793634619557.xml"
|
|
},
|
|
{
|
|
"name": "test_stock_return_failure_after_decision_rolls_back_movement_and_recovers",
|
|
"assertions": 32,
|
|
"proof": "workshop-stock-1793634619557.xml"
|
|
},
|
|
{
|
|
"name": "test_stock_return_concurrency_cannot_restore_quantity_twice",
|
|
"assertions": 40,
|
|
"proof": "workshop-stock-1793634619557.xml"
|
|
},
|
|
{
|
|
"name": "test_partial_delivery_links_multiple_origins_without_debit_and_rechecks_remaining",
|
|
"assertions": 60,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_partial_delivery_requires_enabled_capability_and_rolls_back_allocation_failure",
|
|
"assertions": 26,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_partial_delivery_concurrent_proposals_cannot_overallocate",
|
|
"assertions": 41,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_has_zero_effect_independent_decision_and_no_duplicate",
|
|
"assertions": 44,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_refuses_mismatch_stale_book_and_recovers_from_failure",
|
|
"assertions": 39,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_can_reconcile_fully_depleted_stock_without_new_issue",
|
|
"assertions": 30,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_rejects_reversal_and_does_not_adopt_history",
|
|
"assertions": 20,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_refuses_missing_original_hash",
|
|
"assertions": 21,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_other_company_cannot_prepare_or_confirm",
|
|
"assertions": 26,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_individual_impact_independence_exact_issue_and_replay",
|
|
"assertions": 45,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_client_unverified_fraction_and_unknown_delivery_do_not_debit",
|
|
"assertions": 48,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_stale_book_mapping_permission_scope_and_failure_recovery",
|
|
"assertions": 31,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_corrected_source_requires_review_and_never_consumes_the_same_origin_twice",
|
|
"assertions": 39,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_other_company_cannot_read_or_confirm_origin_and_changed_command_is_refused",
|
|
"assertions": 29,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
},
|
|
{
|
|
"name": "test_concurrent_confirmation_has_one_claim_and_movement",
|
|
"assertions": 30,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_delivery_link_concurrent_confirmation_has_one_claim_without_movement",
|
|
"assertions": 30,
|
|
"proof": "workshop-stock-1793634406841.xml"
|
|
},
|
|
{
|
|
"name": "test_stock_return_revoked_right_stale_context_and_foreign_company_do_not_write",
|
|
"assertions": 36,
|
|
"proof": "workshop-stock-1793634619557.xml"
|
|
},
|
|
{
|
|
"name": "test_history_filters_and_pagination_preserve_order_and_scope",
|
|
"assertions": 38,
|
|
"proof": "workshop-stock-1793634796037.xml"
|
|
}
|
|
],
|
|
"scenario_asserted": {
|
|
"opening_milli": "10000",
|
|
"delivered_milli": "5000",
|
|
"physical_after_issue": "5000",
|
|
"consumed_allocation_milli": "2000",
|
|
"physical_after_allocation": "5000",
|
|
"returned_milli": "3000",
|
|
"physical_after_return": "8000",
|
|
"unallocated_after_return": "0",
|
|
"total_movements": 3,
|
|
"original_issue_unchanged": true,
|
|
"opening_entry_precedes_issue": true,
|
|
"stock_read_sees_same_book": true,
|
|
"explicit_warehouse_receipt_required": true,
|
|
"service_and_writer_replay_original_return": true
|
|
},
|
|
"partial_allocations_asserted": {
|
|
"multiple_origins_one_delivery": true,
|
|
"quantity_bound_by_delivery": true,
|
|
"physical_effect_zero": true,
|
|
"stale_remaining_refused": true,
|
|
"already_allocated_origin_not_consumed_again": true,
|
|
"disabling_capability_does_not_erase_history_protection": true,
|
|
"failure_atomic_and_retry_once": true
|
|
},
|
|
"return_asserted": {
|
|
"consumed_client_unverified_unrepresentable_and_excess_refused": true,
|
|
"stale_capacity_refused": true,
|
|
"independent_confirmation_required": true,
|
|
"missing_receiving_declaration_422": true,
|
|
"right_revoked_403": true,
|
|
"stale_context_409": true,
|
|
"other_company_403_and_empty_history": true,
|
|
"decision_failure_rolls_back_movement_and_operation": true
|
|
},
|
|
"concurrency_asserted": {
|
|
"processes": 2,
|
|
"company_row_blocker_observed_with_pg_blocking_pids": true,
|
|
"competing_allocations_3_plus_3_against_5": "first associates 3; second after release refuses 409",
|
|
"competing_returns_3_plus_3_against_5": "one positive movement of 3; second after release refuses 409"
|
|
},
|
|
"history_asserted": {
|
|
"server_page_size": 25,
|
|
"proposal_fixture_count": 51,
|
|
"descending_id_order": true,
|
|
"pages_disjoint": true,
|
|
"status_filters": [
|
|
"all",
|
|
"pending",
|
|
"confirmed"
|
|
],
|
|
"confirmed_includes_allocations_and_returns": true,
|
|
"unknown_parameters_refused": true,
|
|
"tenant_company_unit_isolation": true
|
|
},
|
|
"package": {
|
|
"id": "tempo-inventory-return",
|
|
"version": "0.1.0",
|
|
"files": {
|
|
"bootstrap.php": "f6735623101377038cde58085d5f00e030249066bc6a67f30b718caab73288be",
|
|
"src/DeliveryReturnWriter.php": "a7c65169a5c1f3510f9a2762cbf4163ee4cc81b0a23174a7abed96147e16790a"
|
|
},
|
|
"manifest_sha256": "2850a4f5cb678acfe3a9dbc7a7d62eb233bc72722ad0de374681c2679c90557c",
|
|
"canonical_identical": true,
|
|
"native_return_command_integrated": false
|
|
},
|
|
"source_sha256": {
|
|
"app/Modules/Workshop/WorkshopStock.php": "840cd559f5189c8c2934d6e0a761cf3ee6b4f8e4e48a3964829ffd02504d7181",
|
|
"app/Modules/Workshop/Http/WorkshopStockController.php": "35f090c753b9d9f55ea85b4b566c1f08e34d3e6a5d28bb43768da1bfab90b712",
|
|
"resources/js/WorkshopStockWorkspace.jsx": "8adc2fcf8818a6b5b0c51f55520f6e60811c03a46c0b5711bcff880b6df26884",
|
|
"tests/Feature/WorkshopStockTest.php": "8a884fa62fcf000530197c61dd641e1ef1751f242f27384057f3cc355ab59b58",
|
|
"tests/Support/workshop-stock-worker.php": "538e01a699f0d81c01a4eb4ed0bac9b0d8f7494b2cdda5e00759f3152d4374f1",
|
|
"packages/inventory-return/src/DeliveryReturnWriter.php": "a7c65169a5c1f3510f9a2762cbf4163ee4cc81b0a23174a7abed96147e16790a",
|
|
"routes/web.php": "9469393870f2123f2a3ecd4b3027309777c7aeb5d20996b937c0dab1878192be"
|
|
},
|
|
"qa_postcheck": {
|
|
"qa_identity": {
|
|
"db": "sgf_tempo_test",
|
|
"role": "sgf_test_runner",
|
|
"port": 55439,
|
|
"cluster": "sgf_modular_regression_2576427d1939"
|
|
},
|
|
"temporary_grants_remaining": 0,
|
|
"constraint_sha256": "40046092cba51f1b46d26d5f0da8af47e8336e90a8d50b8de3a8c390758f1783",
|
|
"operational_workshop_stock_bindings": 0,
|
|
"read_only": true
|
|
},
|
|
"ui": {
|
|
"path": "docs/proofs/workshop-material-cycle-ui-20261102.json",
|
|
"sha256": "d143d458bc779260f4b5d3ae2cb618cf789794bb0b0aa9e4724614b05395321a",
|
|
"kind": "static_impact_render_and_source_checks",
|
|
"allocation_zero_effect": true,
|
|
"remaining_quantity_visible": true,
|
|
"return_positive_effect_visible": true,
|
|
"physical_receiving_checkbox_required_in_source": true,
|
|
"explicit_treatment_choice_in_source": true,
|
|
"history_controls_and_query_in_source": true,
|
|
"source_sha256": "8adc2fcf8818a6b5b0c51f55520f6e60811c03a46c0b5711bcff880b6df26884",
|
|
"backend_requests": 0,
|
|
"browser_interactions_tested": false,
|
|
"visual_review": false
|
|
},
|
|
"build": {
|
|
"passed": true,
|
|
"node": "24.22.1",
|
|
"vite": "8.3.5",
|
|
"manifest_sha256": "aa0c7cad4edc66a14c410667b54345a3c6e6c27c482cf3434a0e162612a62a4f"
|
|
},
|
|
"reused_proofs": {
|
|
"docs/proofs/workshop-delivery-link-20261102.json": "f84d9f219d4b4ef41d92edbbc0ad9f0c433da6ef1fa66b9d22738b615649be1f",
|
|
"docs/proofs/workshop-stock-20261102.json": "c13b22eed190e379d8311a8e02586e201f993a89bfc4490be5d9d325d6ca00c3",
|
|
"docs/proofs/stock-read-load-20261102.json": "4fc1d7d13d480a30966b259611de1066fc22ef31f7a0e782da4872211801c72e",
|
|
"docs/proofs/stock-receipt-link-20261102.json": "b763ab326abf49271d16b32d22f01a8a8d31d1ab015141e42dcf5963ee914143"
|
|
},
|
|
"preservation": {
|
|
"new_qa_schemas_and_actors_only": true,
|
|
"regression_not_reset": true,
|
|
"six_protected_records_untouched": true,
|
|
"blocked_cache_untouched": true,
|
|
"demos_untouched": true,
|
|
"previous_association_proofs_unchanged": true,
|
|
"real_rights_or_data_changed": false,
|
|
"indices_in_qa_fixture_only": true,
|
|
"purchasing_activation": false,
|
|
"publication": false,
|
|
"checkpoint": false
|
|
},
|
|
"limits": [
|
|
"One origin may not span multiple deliveries.",
|
|
"Consumed-material compensation and amendment/release of confirmed allocations are not implemented.",
|
|
"Returns accept quantity only: no lots, reservations, quality/quarantine or spare parts.",
|
|
"Native Purchasing return command not integrated; local artifact alone is not runtime integration.",
|
|
"Operational installer and one installed procurement-to-workshop composition pending.",
|
|
"No write-load benchmark or deployment-capacity evidence; no browser interaction or visual review."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|