This commit is contained in:
2026-11-02 20:29:34 +02:00
parent 340f3bb5fa
commit fcf31e8d48
181 changed files with 33383 additions and 51 deletions
@@ -0,0 +1,339 @@
{
"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
}