Files
SGF/docs/proofs/workshop-stock-closure-20261102.json
2026-11-02 20:29:34 +02:00

340 lines
13 KiB
JSON

{
"date": "2026-11-02",
"increment": "WORKSHOP-STOCK-PROPOSAL-CLOSURE-SIM-v1",
"status": "local_synthetic_implementation",
"proofs": [
{
"file": "workshop-stock-1793641924753.xml",
"sha256": "cc0d1b6a5f55586303a8d6cb740f03b1bdfb72c7da7aee6e99edb890beb2a8c5",
"tests": 10,
"assertions": 319,
"failures": 1,
"errors": 0,
"selected_passing_cases": 9
},
{
"file": "workshop-stock-1793642136561.xml",
"sha256": "0b1e3e4aa6f139cb042b9bd704e374aefd8b08dff8ac46956219cd7d08497056",
"tests": 1,
"assertions": 41,
"failures": 0,
"errors": 0,
"selected_passing_cases": 1
},
{
"file": "workshop-stock-1793642158453.xml",
"sha256": "462f040b1ca17b2a7478d4f1bef68c89523281b208cd98450373df21e3c09705",
"tests": 22,
"assertions": 820,
"failures": 0,
"errors": 0,
"selected_passing_cases": 22
},
{
"file": "workshop-stock-1793642231864.xml",
"sha256": "3182db7e3e3379bc54b4b53aeb939cf9f8f0372bec115c031c1efaa432703894",
"tests": 1,
"assertions": 28,
"failures": 0,
"errors": 0,
"selected_passing_cases": 1
}
],
"selection": "All current WorkshopStockTest cases covered exactly once by name, selecting passing cases only. Initial history assertion omitted the schema-discovery SELECT: its failure is retained, excluded and replaced by the targeted passing rerun distinguishing one catalogue lookup and one batch data lookup. Other passing cases were reused. No native, association or unrelated suites repeated.",
"totals": {
"distinct_tests": 33,
"assertions": 1181
},
"closure_cases": {
"tests": 11,
"assertions": 361
},
"selected_cases": [
{
"name": "test_closure_withdraws_stale_preview_and_replay_does_not_reopen_it",
"assertions": 50,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_requires_current_right_context_independence_hash_and_version",
"assertions": 35,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_of_confirmed_proposal_requires_separate_physical_correction",
"assertions": 28,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_failure_rolls_back_audit_and_recovers_with_one_decision",
"assertions": 27,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_cannot_cross_company_or_unit_even_with_shared_source_binding",
"assertions": 25,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_for_delivery_allocation_and_return_never_moves_or_claims_material",
"assertions": 39,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_withdrawal_wins_over_concurrent_confirmation",
"assertions": 29,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_confirmation_wins_over_concurrent_withdrawal",
"assertions": 29,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_concurrent_identical_withdrawals_replay_one_decision",
"assertions": 30,
"proof": "workshop-stock-1793641924753.xml"
},
{
"name": "test_closure_history_filters_and_pages_use_only_the_current_page",
"assertions": 41,
"proof": "workshop-stock-1793642136561.xml"
},
{
"name": "test_stock_return_unconsumed_material_restores_only_remaining_quantity_once",
"assertions": 63,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_stock_return_refuses_consumed_client_unverified_excess_and_stale_capacity",
"assertions": 52,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_stock_return_failure_after_decision_rolls_back_movement_and_recovers",
"assertions": 32,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_stock_return_concurrency_cannot_restore_quantity_twice",
"assertions": 40,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_stock_return_revoked_right_stale_context_and_foreign_company_do_not_write",
"assertions": 36,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_partial_delivery_links_multiple_origins_without_debit_and_rechecks_remaining",
"assertions": 60,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_partial_delivery_requires_enabled_capability_and_rolls_back_allocation_failure",
"assertions": 26,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_partial_delivery_concurrent_proposals_cannot_overallocate",
"assertions": 41,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_history_filters_and_pagination_preserve_order_and_scope",
"assertions": 38,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_has_zero_effect_independent_decision_and_no_duplicate",
"assertions": 44,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_refuses_mismatch_stale_book_and_recovers_from_failure",
"assertions": 39,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_can_reconcile_fully_depleted_stock_without_new_issue",
"assertions": 30,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_rejects_reversal_and_does_not_adopt_history",
"assertions": 20,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_refuses_missing_original_hash",
"assertions": 21,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_other_company_cannot_prepare_or_confirm",
"assertions": 26,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_individual_impact_independence_exact_issue_and_replay",
"assertions": 45,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_client_unverified_fraction_and_unknown_delivery_do_not_debit",
"assertions": 48,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_stale_book_mapping_permission_scope_and_failure_recovery",
"assertions": 31,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_corrected_source_requires_review_and_never_consumes_the_same_origin_twice",
"assertions": 39,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_other_company_cannot_read_or_confirm_origin_and_changed_command_is_refused",
"assertions": 29,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_concurrent_confirmation_has_one_claim_and_movement",
"assertions": 30,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_delivery_link_concurrent_confirmation_has_one_claim_without_movement",
"assertions": 30,
"proof": "workshop-stock-1793642158453.xml"
},
{
"name": "test_closure_absent_in_legacy_synthetic_source_does_not_disable_confirmation",
"assertions": 28,
"proof": "workshop-stock-1793642231864.xml"
}
],
"workflow": {
"withdraw_requires_original_preparer_and_current_prepare_right": true,
"reject_requires_independent_current_confirmer": true,
"explicit_reason": true,
"presented_state_version_and_source_hash_required": true,
"stale_physical_preview_can_be_closed_without_execution": true,
"confirmed_effect_cannot_be_closed_or_reversed_by_this_command": true,
"replay_same_body_actor_and_state_only": true,
"new_review_requires_new_proposal": true,
"zero_stock_effect": true,
"original_immutable": true,
"append_only_decision_with_before_after_actor_time_reason": true,
"audit_in_same_transaction": true
},
"concurrency": {
"separate_processes": 2,
"company_lock_observed_with_pg_blocking_pids": true,
"withdraw_then_confirm": "second refuses 409 after release; no physical movement",
"confirm_then_withdraw": "second refuses 409 after release; original movement retained",
"identical_withdrawals": "second replays original; one decision"
},
"history": {
"fixture_proposals": 51,
"closed": 3,
"pending": 48,
"page_size": 25,
"closure_catalog_discovery_selects": 1,
"closure_batch_data_selects": 1,
"pages_disjoint": true,
"not_a_capacity_benchmark": true,
"filters": [
"all",
"pending",
"confirmed",
"withdrawn",
"rejected"
],
"repeatable_read_read_only": true,
"no_universe_loaded": true
},
"recovery": {
"audit_failure_rolls_back_decision": true,
"retry_creates_one_decision": true,
"database_update_of_closure_refused": true
},
"source_sha256": {
"app/Modules/Workshop/WorkshopStock.php": "6460a4235fe7b0b4602b0aeb63a47f1a97e367e93baba6aa774be5fa0dac4e6e",
"app/Modules/Workshop/Http/WorkshopStockController.php": "06c9f85f926b4268636887f50458cd19fc1a467ae636dea94caba586fb463c0e",
"resources/js/WorkshopStockWorkspace.jsx": "195526f823813a47f797b9f09203d0fecde921a95138fdbda5238b0a7cc5106d",
"routes/web.php": "3c3c3bfcb0d50bbf813e8b049191ce8691f74c1396d5f32bd1d83768a3d2b1e8",
"tests/Feature/WorkshopStockTest.php": "d20cc5f2f07e1e4bef96785913bf77f45e10c107a4e823542b8ed4e90e03d7ab",
"tests/Support/workshop-stock-worker.php": "d216643380bbde379695887ec456987c20babf5f8223cac0de27ebb501f81bf3",
"config/workshop_stock.php": "603c5ea718e59b9e43c6dc01a4238813a56a63755fe60b63354b3957f6a0af49"
},
"ui": {
"proof": "docs/proofs/workshop-stock-closure-ui-20261102.json",
"sha256": "60c4f12e14f91ddfadfa35ff57b6e88f8dc4e24ad6347fbd5b25572eb149c5d4",
"kind": "static_closure_impact_render_and_source_guards",
"closure_zero_effect_visible": true,
"archival_and_new_review_visible": true,
"existing_return_impact_preserved": true,
"version_and_hash_sent": true,
"independent_action_visibility_guards": true,
"context_generation_guards": true,
"source_sha256": "195526f823813a47f797b9f09203d0fecde921a95138fdbda5238b0a7cc5106d",
"backend_requests": 0,
"browser_interactions_tested": false,
"visual_review": false
},
"build": {
"passed": true,
"manifest_sha256": "e8ba7311860444604202cfe6ad420eb35dd11858e9e7fcc815a1f26ab7512c24",
"application_asset": "public/build/assets/app-DuxcWTkD.js",
"application_asset_sha256": "847d900405d5a5a9898f243df5981114841d06f3d99772c52070c822ad7fd931",
"closure_controls_in_built_application": true,
"modules_transformed": 46,
"navigation_source_changed": false,
"extra_navigation_checker": "Existing home checker did not complete; only its verified own processes stopped. Direct Vite build and targeted closure UI proof passed. No new navigation acceptance claimed.",
"browser_interactions_tested": false,
"visual_review": false
},
"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
},
"reused_proofs": {
"docs/proofs/workshop-material-cycle-20261102.json": "4d79e563401df1e20d793ca8af9a1da228a24c86d6c887323a9e57c3ce65cc9a",
"docs/proofs/native-warehouse-return-20261102.json": "587795ab4d2b2e65d51feaf7ed5e368df715d69cb7a0480f5f2b1d802d019869",
"docs/proofs/stock-read-load-20261102.json": "4fc1d7d13d480a30966b259611de1066fc22ef31f7a0e782da4872211801c72e"
},
"preservation": {
"new_closure_table_and_index_only_in_new_synthetic_fixture_schemas": true,
"no_installed_migration": true,
"no_new_rights": true,
"temporary_qa_rights_restored": true,
"six_pending_associations_untouched": true,
"blocked_cache_untouched": true,
"demos_and_real_data_untouched": true,
"regression_not_reset": true,
"previous_proofs_preserved": true,
"publication": false,
"activation": false,
"checkpoint": false
},
"limits": [
"Closing a proposal does not correct a confirmed physical effect.",
"Legacy synthetic sources without ws_closures retain read/confirm capability; closure command returns 503 and UI does not offer closure. No operational installer created.",
"No change to native forecasting convention, lots, reservations or financial/accounting effects.",
"No browser interaction, visual acceptance or deployment-capacity validation."
],
"visual_review_pending": true,
"deployment_capacity_validated": false
}