Files
SGF/docs/proofs/native-warehouse-return-20261102.json
T
2026-11-02 20:29:34 +02:00

414 lines
18 KiB
JSON

{
"date": "2026-11-02",
"increment": "NATIVE-WAREHOUSE-UNUSED-RETURN-SIM-v1",
"status": "local_synthetic_implementation",
"proofs": [
{
"file": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml",
"sha256": "54a1436b5e76096ea9184af600215d004b316108e9cb79cfe6c86c3c5211948a",
"tests": 18,
"assertions": 420,
"errors": 0,
"failures": 0
},
{
"file": "private/stock-receipt-115c5b17e171/return-native-1793640514403-junit.xml",
"sha256": "dcbbfa2303ed213d93eab8a6533e25e23751dcdfb1594bdb5c3835221ddb6237",
"tests": 1,
"assertions": 20,
"errors": 0,
"failures": 0
},
{
"file": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml",
"sha256": "b38945a85e73e6d78f4770a58f4577b8511b7a15f3523b13e157638b4ecdd0f2",
"tests": 16,
"assertions": 81,
"errors": 0,
"failures": 0
},
{
"file": "stock-read-1793636847404.xml",
"sha256": "88604d1110b31bd0906d3a139a29a95a662341936044eb8fb0757e12e04ab900",
"tests": 1,
"assertions": 23,
"errors": 0,
"failures": 0
}
],
"totals": {
"distinct_tests": 36,
"assertions": 544
},
"selected_cases": [
{
"name": "test_native_receipt_issue_acknowledgement_and_return_same_book_once",
"assertions": 54,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_stale_capacity_idempotency_versions_rights_and_context_refuse_effect",
"assertions": 22,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_decision_failure_rolls_back_physical_movement_and_retry_recovers",
"assertions": 15,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_undeclared_fraction_and_foreign_delivery_are_refused",
"assertions": 13,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_source_options_and_page_reuse_request_and_acknowledged_line",
"assertions": 54,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_source_issue_with_return_cannot_be_reversed_as_a_whole",
"assertions": 12,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_concurrent_native_confirmation_waits_then_replays_one_movement",
"assertions": 21,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_competing_native_returns_cannot_exceed_the_original_delivery",
"assertions": 20,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_expired_and_maintenance_profiles_are_revalidated_at_confirmation",
"assertions": 14,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_configured_context_and_permissions_cannot_be_inherited_from_people_profile",
"assertions": 19,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_return_signals_existing_replenishment_only_once_and_inside_transaction",
"assertions": 18,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_catalogue_rename_requires_new_review_preserving_original_and_unit_change_refuses",
"assertions": 18,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_unavailable_private_package_returns_503_and_rolls_back_before_recovery",
"assertions": 17,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_http_busy_response_leaves_proposal_unconfirmed_then_manual_retry_succeeds",
"assertions": 21,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_withdrawal_and_independent_rejection_close_pending_without_stock_effect",
"assertions": 37,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_withdrawal_wins_before_confirmation_without_a_movement",
"assertions": 19,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_confirmation_wins_before_withdrawal_without_duplicate_terminal_state",
"assertions": 19,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_history_pages_and_batch_preparer_lookup_cover_the_full_pending_universe",
"assertions": 27,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793639486315-junit.xml"
},
{
"name": "test_return_changes_physical_history_without_silently_changing_gross_issue_forecast",
"assertions": 20,
"proof": "private/stock-receipt-115c5b17e171/return-native-1793640514403-junit.xml"
},
{
"name": "full issue reversal preserves the original and is exactly once even on an execution retry",
"assertions": 5,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "a corrected issue no longer satisfies a reservation and the same need can use a new actual issue",
"assertions": 10,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "a reversal outside a closed history period invalidates its signature and corrects effective consumption",
"assertions": 3,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "receipt reversal restores authorised quantities without deleting acceptance and a new correction receipt is not a duplicate",
"assertions": 8,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "receipt line reversal removes the full documentary quantities but only the accepted physical entry",
"assertions": 3,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "tracked transfer reversal removes original destination lots and quarantines the restored source identity",
"assertions": 8,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "mixed lot adjustments can be reversed without turning corrections into consumption",
"assertions": 4,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "restoring an old untracked issue after cutover creates an unidentified held lot without fabricating receipt origin",
"assertions": 6,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "receipt reversal cannot silently associate an old entry with a baseline lot",
"assertions": 2,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "a supplier return reversal restores net receipt entitlement but cannot itself be reversed",
"assertions": 6,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "an insufficient original lot or warehouse blocks an approved reversal without compensating from another lot",
"assertions": 4,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "approval independence and source isolation apply even with accumulated roles",
"assertions": 2,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "a reviewer cannot execute their own decision and duplicate approved plans cannot reverse the original twice",
"assertions": 3,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "a final audit failure rolls back all reversal movements and leaves the original approval intact",
"assertions": 4,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "HTTP permissions and source views expose the correction without changing original documents",
"assertions": 8,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "voided receipt matching blocks new invoices while preserving invoice facts already registered",
"assertions": 5,
"proof": "private/stock-receipt-cc99dcb17e19/return-reversals-junit.xml"
},
{
"name": "test_native_return_book_is_observed_without_copy_or_write",
"assertions": 23,
"proof": "stock-read-1793636847404.xml"
}
],
"evidence_selection": "18 native cases, one new forecast-boundary case, 16 affected reversal cases, one SGF observer case. Valid overlapping earlier runs are not added. Observer binds an archived retained fixture; subsequent native tests used new isolated tenants.",
"scenario": {
"receipt_milli": "10000",
"acknowledged_delivery_milli": "5000",
"physical_after_delivery": "5000",
"declared_unused_return_milli": "3000",
"physical_after_return": "8000",
"movements": 3,
"one_shared_writer": true,
"native_standalone_requires_sgf": false,
"sgf_read_only_observes_same_movement": true
},
"controls": {
"individual_unused_declaration": true,
"independent_physical_receipt": true,
"original_source_snapshots_preserved": true,
"append_only_decisions": true,
"versions_context_permissions_revalidated": true,
"withdrawal_and_rejection_without_stock_effect": true,
"source_reversal_after_partial_return_refused": true,
"transaction_failure_recovery": true,
"package_failure_503_recovery": true,
"history_metadata_rendered": true,
"replenishment_signal_once_inside_transaction": true
},
"concurrency": {
"real_processes": 2,
"company_row_blocker_observed": true,
"after_release_same_proposal": "200 replay; one movement",
"competing_returns": "one confirmed; second 409 after release",
"withdraw_confirm": "one terminal state in both lock orders",
"http_lock_timeout": "423 warehouse_return_busy; no effects; explicit retry after release succeeds"
},
"history": {
"fixture_records": 51,
"page_size": 25,
"supply_record_selects_for_page": 3,
"pages_disjoint": true,
"state_filters_cover_latest_versions": true,
"not_a_load_capacity_benchmark": true
},
"forecast_boundary": {
"gross_issue_milli": 5000,
"returned_milli": 3000,
"physical_before_milli": 5000,
"physical_after_milli": 8000,
"historical_mean_unchanged": true,
"source_hash_changed": true,
"planning_convention_unchanged": true,
"net_consumption_forecast_implemented": false
},
"package": {
"manifest_sha256": "2850a4f5cb678acfe3a9dbc7a7d62eb233bc72722ad0de374681c2679c90557c",
"canonical_matches_native_artifact": true,
"writer_unchanged": true
},
"observer": {
"proof_sha256": "69377ad1852f8299e37fdefc595c224c85412b02363d4bfa9070aa9e3c5c63ea",
"fixture_archive_sha256": "a9a6f9f3360f9d01174bbafec05b6120fd11315d863c9e92d07861dd58e65acf",
"kind": "native_return_same_book_sgf_observer",
"physical_milli": "8000",
"native_movements": 3,
"same_return_movement": true,
"observed_return_movement_id": 29,
"native_fixture_sha256": "a9a6f9f3360f9d01174bbafec05b6120fd11315d863c9e92d07861dd58e65acf",
"source_write_refused": true,
"no_local_copy_or_second_effect": true,
"return_manifest_sha256": "2850a4f5cb678acfe3a9dbc7a7d62eb233bc72722ad0de374681c2679c90557c"
},
"postchecks": {
"native_retained_book": {
"cluster": "sgf_modular_regression_2576427d1939",
"database": "compras_receipts_test_115c5b17e171",
"role": "stock_receipt_read_115c5b17e171",
"read_only": "on",
"elevated": false,
"select_book": true,
"can_write_book": false,
"select_native_operations": false,
"movements": 3,
"physical_milli": "8000",
"same_return": true
},
"sgf": {
"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": {
"proof": "docs/proofs/native-return-ui-20261102.json",
"sha256": "61ad362980e92de76f64cd39bad2fbe0a78f950cffe0dc18a85af61a388cfb50",
"kind": "isolated_changed_entry_browser_bundle_and_types",
"inputs_sha256": {
"resources/js/pages/stock/returns.tsx": "e9fc4183b07f7cbebce83f770dc2958536905b0b4c2796c8065031e35aa9b1e7",
"resources/js/pages/stock/request.tsx": "f59a72c78f8c94260c5b64cad0d26cca08c8379726ad61c9b869e0a667c00f60",
"resources/js/pages/stock/operations.tsx": "3c6d68bac8db5c7e0ac7f518fd07e8b3a6a4f0f704ea7612e332b457ee9a0938"
},
"entry_bundle_passed": true,
"type_check_exit": 0,
"type_output_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"explicit_source_selection": true,
"unused_declaration_required_in_source": true,
"independent_receiving_declaration_required_in_source": true,
"live_or_demo_build_touched": false,
"full_application_build": false,
"browser_interactions_tested": false,
"visual_review": false
},
"history_render": {
"proof": "docs/proofs/native-return-history-render-20261102.json",
"sha256": "71b8a50c96abc17fba71fb010afbcace8309c4976efb036d35220898cb777520",
"kind": "server_render_of_actual_native_stock_history_props",
"page_sha256": "fafd870e129cb169216bd2a7d13a547adaab410d24195f950327eb14af57e10f",
"component_sha256": "3c6d68bac8db5c7e0ac7f518fd07e8b3a6a4f0f704ea7612e332b457ee9a0938",
"render_passed": true,
"return_human_label_visible": true,
"author_and_responsible_rendered": true,
"actual_http_props_used": true,
"visual_review": false,
"browser_interactions_tested": false
},
"qualified_private_build": {
"kind": "private_application_asset_build_with_qa_configuration",
"passed": true,
"app_path_private": true,
"manifest_sha256": "bda389a4cedc3ed5d2b4e02dda0487fa15e06924ef1ad5b85ca0981d71ec226e",
"return_page_in_manifest": true,
"configuration_difference": "Font downloading and optional React compiler omitted in QA; application entries, Inertia, React JSX, Tailwind and Wayfinder built. Does not validate the default optimized build.",
"native_public_build_touched": false,
"demo_assets_touched": false,
"visual_review": false
},
"php_analysis": {
"tool": "phpstan",
"result": "passed",
"errors": 0
},
"source_sha256": {
"../compras/app/Services/WarehouseReturns.php": "0e3ba1f1b9547a9fc21ad85191ff2378a2e5da7d95aaf0625c55d69a5d7bc0d3",
"../compras/app/Services/WarehouseReturnMovement.php": "0a4fae10c24319b6f5bd030e99fa4281e337aaae5777e8287e608752e51bb5a3",
"../compras/app/Http/Controllers/WarehouseReturnController.php": "0bad62cfee16367507d0cd8c2d2c9da3b4a320728e4f2d94db72f39df1d2807d",
"../compras/app/Services/InventoryReversals.php": "3af954cb2fa6ab950b80b9098c4bccfb8d099a247d13f4d64a8d0a76fec07295",
"../compras/app/Services/SupplyHistory.php": "abc2598f20ccd66b6e3218bc4f9a5f3eab074b4f022cf8566da6c36003f9c041",
"../compras/app/Services/OrganizationAccess.php": "2c7529a2118ab849fd3bc192045a460cca7787a06b84d481ba32e5a8f612a0a1",
"../compras/config/stock_returns.php": "b46680d504945879bedd2910d2a0dd0164d13d331a6e85772edcdd182fddbd04",
"../compras/routes/web.php": "9fbda27eb41da56c9b62a216c43bdcd99b66ffc230d9accd6866080f89130b54",
"../compras/tests/Feature/WarehouseReturnIntegrationTest.php": "e4240a156ddef6184ef6f6ed4c35341dd6184332ef32d4487423c05bfd8a5f80",
"../compras/tests/Support/warehouse-return-worker.php": "9f58ec6d45ec67c03ab2380e0f081a48eb0540d01603e68afa8608a90384a776",
"resources/js/StockReadWorkspace.jsx": "ab29ffa445cfd68f5a9a2542dd4c375bff38e9f9a28cbf1cc033c3ceb76ea7e4",
"tests/Feature/StockReadTest.php": "dbfaf026d912ff31ac73f8f84d3f318c67f24b5efbaaad85ccc4bca8bfdf5590"
},
"reused_proofs": {
"docs/proofs/workshop-material-cycle-20261102.json": "4d79e563401df1e20d793ca8af9a1da228a24c86d6c887323a9e57c3ce65cc9a",
"docs/proofs/stock-read-load-20261102.json": "4fc1d7d13d480a30966b259611de1066fc22ef31f7a0e782da4872211801c72e",
"docs/proofs/module-association-http-lock-summary-20261102.json": "67547007f8f9df853639751983c5a6fd0841044cb0e04a7628db04c4b67692c6"
},
"preservation": {
"six_pending_associations_untouched": true,
"blocked_cache_untouched": true,
"demos_and_real_data_untouched": true,
"no_real_rights_granted": true,
"native_synthetic_profiles_retained_in_separate_qa_database": true,
"sgf_temporary_rights_restored": true,
"regression_not_reset": true,
"existing_proofs_preserved": true,
"activation": false,
"publication": false,
"checkpoint": false
},
"limits": [
"Native unused quantity is an explicit recipient declaration; no SGF technical-consumption register is consulted by the standalone native flow.",
"Only internal warehouse deliveries; no lots, equipment/spare parts, reservation-bearing articles, quality or quarantine.",
"No consumed-material compensation or automatic reversal of confirmed returns.",
"Historical forecast preserves gross issue convention; net return forecasting is not implemented.",
"SGF observation is isolated QA evidence, not installation of a full operational composition.",
"No write-load capacity, visual review, browser interaction or deployment validation.",
"Qualified private asset build omits optional React compiler and font downloading; default optimized build is not validated."
],
"visual_review_pending": true,
"deployment_capacity_validated": false
}