340 lines
13 KiB
JSON
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
|
|
}
|