341 lines
14 KiB
JSON
341 lines
14 KiB
JSON
{
|
|
"date": "2026-11-03T10:54:23.783Z",
|
|
"increment": "SGF-SOURCING-TO-RECEIPT-QA-v1",
|
|
"functional_code": true,
|
|
"passed": true,
|
|
"checks": 74,
|
|
"tests": {
|
|
"workflow": {
|
|
"file": "private/receipt-composition-d6580e15525e/sourcing-result.json",
|
|
"sha256": "2e31bc60819b08b829ab2127db09b6c51ad15418511c256f047a8c744fcc4914",
|
|
"checks": 47,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"source starts with no proposal evaluation or adjudication",
|
|
"only mapped approved source request is listed",
|
|
"functional sourcing workspace is served",
|
|
"warehouse cannot access supplier comparison",
|
|
"another tenant process is refused",
|
|
"stale SGF context is refused",
|
|
"original quotation pricing supplies the preview total",
|
|
"preview savepoint commits no proposal evaluation budget or audit records",
|
|
"tampered preview is refused",
|
|
"failure to record the command receipt fails the confirmation",
|
|
"native proposal lines and audit roll back with the command receipt",
|
|
"two independent workers recover the same proposal command once",
|
|
"concurrent repetition creates one proposal and one line",
|
|
"same operation key with other contents is refused",
|
|
"explicit proposal registered 2",
|
|
"explicit proposal registered 3",
|
|
"missing evaluations cannot be bypassed to create an award",
|
|
"native evaluation preview available actor/4",
|
|
"individual evaluation recorded actor/4",
|
|
"native evaluation preview available issuer/4",
|
|
"individual evaluation recorded issuer/4",
|
|
"native evaluation preview available actor/6",
|
|
"individual evaluation recorded actor/6",
|
|
"native evaluation preview available issuer/6",
|
|
"individual evaluation recorded issuer/6",
|
|
"native evaluation preview available actor/8",
|
|
"individual evaluation recorded actor/8",
|
|
"native evaluation preview available issuer/8",
|
|
"individual evaluation recorded issuer/8",
|
|
"original comparison identifies eligible top without choosing it",
|
|
"another key cannot create a second evaluation by the same person",
|
|
"selection right is revalidated at confirmation",
|
|
"chosen proposal starts original distinct award approval",
|
|
"selection repetition creates no second adjudication",
|
|
"proposal window closes after adjudication",
|
|
"historical proposal receipt remains recoverable after the window closes",
|
|
"award preparer cannot approve their own decision",
|
|
"distinct eligible head approves through original workflow",
|
|
"approval repetition preserves one recorded decision",
|
|
"adjudication created in SGF reaches order workflow without rebinding IDs",
|
|
"approved SGF adjudication issues one canonical order",
|
|
"warehouse receives the actual order created from SGF sourcing",
|
|
"proposal-to-adjudication-to-order-to-receipt path completes",
|
|
"complete path leaves exactly the intended business facts",
|
|
"one source-budget commitment without invoice payment or consumption",
|
|
"full append-only history is paginated on server",
|
|
"history pages are distinct and expose older evidence"
|
|
],
|
|
"quotes": 3,
|
|
"evaluations": 6,
|
|
"awards": 1,
|
|
"approved_decisions": 1,
|
|
"orders": 1,
|
|
"receipts": 1,
|
|
"movements": 1,
|
|
"commit_minor": 10000,
|
|
"whole_selected_path_complete": true,
|
|
"concurrency_statuses": [
|
|
200,
|
|
201
|
|
],
|
|
"preview_persistent_fingerprint_unchanged": true,
|
|
"rollback_recovery": true,
|
|
"original_controllers_and_workflows": true,
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"guards": {
|
|
"file": "private/receipt-composition-d6580e15525e/sourcing-guards.json",
|
|
"sha256": "0f96fef6d39490a8d41ac91446189e45f4d2453b203b3fc1bb1407092a5ce1c9",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"disabled sourcing runtime refuses before SQL",
|
|
"disabled sourcing preview refuses before validation or SQL",
|
|
"production cannot activate synthetic sourcing"
|
|
],
|
|
"database_queries": 0,
|
|
"business_writes": 0
|
|
}
|
|
},
|
|
"dependency_integrity": {
|
|
"file": "private/receipt-composition-d6580e15525e/sourcing-loader.json",
|
|
"sha256": "a2b66b78dac4ba5e79d5c4cf634e52e19a8dca42acf7cc8e13745f90be5eb51d",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"known dependency is verified before execution",
|
|
"altered dependency is refused",
|
|
"unverified code is never executed",
|
|
"unlisted dependency is refused",
|
|
"class path traversal is refused",
|
|
"other namespace loaders remain available"
|
|
],
|
|
"business_writes": 0,
|
|
"reference_bundle_modified": false
|
|
}
|
|
},
|
|
"demonstration": {
|
|
"file": "private/receipt-composition-2c8780f3686a/sourcing-demo-smoke.json",
|
|
"sha256": "42b649b1bdf6c2deeaa5cfa44c46fff3fd2161ecdcabdd7cecb497b12f492655",
|
|
"checks": 9,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"demo starts without proposals evaluations awards orders receipts or movements",
|
|
"buyer can prepare but cannot select an incomplete comparison",
|
|
"sourcing workspace is live",
|
|
"head can inspect without preparing proposals or deciding a nonexistent award",
|
|
"warehouse cannot inspect economic sourcing",
|
|
"warehouse waits for an actual issued order",
|
|
"served sourcing script matches delivered source",
|
|
"no initial commitment was created",
|
|
"read-only smoke leaves all business evidence intact"
|
|
],
|
|
"before": "5a996f537dfd27757bcb26de0cd4f19205a541bce95d20f23d08bc9f439c7bb3",
|
|
"after": "5a996f537dfd27757bcb26de0cd4f19205a541bce95d20f23d08bc9f439c7bb3",
|
|
"quotes": 0,
|
|
"evaluations": 0,
|
|
"awards": 0,
|
|
"orders": 0,
|
|
"receipts": 0,
|
|
"movements": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"assets": {
|
|
"file": "private/receipt-composition-2c8780f3686a/sourcing-demo-assets.json",
|
|
"sha256": "79b7728e0bb7ac4c70b19b02213704176d7f9329ac0545b1adecb756515845d0",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": 3,
|
|
"assets": [
|
|
{
|
|
"file": "assets/app-DWKiMKwL.js",
|
|
"sha256": "31910657398034b9f7b7117cea5423f715a2466edcec1adf694e0da18b81f662"
|
|
},
|
|
{
|
|
"file": "assets/app-BLSNCrO7.css",
|
|
"sha256": "ad7650d0b0f7cc40783126a677d419b058f9f1494ae25f194c6d4b32f87ce657"
|
|
}
|
|
],
|
|
"root_status": 200,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"navigation": {
|
|
"file": "docs/proofs/sourcing-home-20261103.json",
|
|
"sha256": "77271a96e97931f82397fd546cff878dd9bfd2617dd35dbcd164122ef31a546f",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": 6,
|
|
"names": [
|
|
"scoped right and capability expose sourcing link",
|
|
"absent right hides sourcing link",
|
|
"foreign unit right hides sourcing link",
|
|
"disabled composition hides sourcing link",
|
|
"unit selection is required",
|
|
"order and receipt links remain available"
|
|
],
|
|
"source": "resources/js/PurchasingHome.jsx",
|
|
"sha256": "4bf82dee96c7c9746524a09564ce495da18dc27be97db5d883eca0ba51d51daf",
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/SourcingController.php",
|
|
"sha256": "b479c582f54fcd26ec6c713012f38ac12ca1b33b264fdf5fa90c89fa3b0301c5"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
|
|
"sha256": "9554e2a4223d6a8424926d496011cb8be6e18f92eb4a134088c199d207fa6ed1"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/OrderController.php",
|
|
"sha256": "065b8344a7019d29d1c5b1b6077e51946a8c82e5cb1a93bb4088a58e4796678e"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "596fba70a4b0e97cdedbda351ccf0ce73ae86a5533c1259e19860c2146cd720c"
|
|
},
|
|
{
|
|
"file": "routes/web.php",
|
|
"sha256": "ebf72e00906f32924b6e8b12c8b0f4538692b5e00f6cb9acc167b738fb39a6c3"
|
|
},
|
|
{
|
|
"file": "app/Shared/Context/ModuleNavigation.php",
|
|
"sha256": "bc620bd4ff07c38d41f0dd27744718739c803e02dd15551c1327b5603c135da7"
|
|
},
|
|
{
|
|
"file": "app/Modules/Identity/Services/IdentityWorkflow.php",
|
|
"sha256": "ad1b6386c95b1d2220751575067ced34f05a8a09c4d245fa48647e3d7c1aadae"
|
|
},
|
|
{
|
|
"file": "resources/js/PurchasingHome.jsx",
|
|
"sha256": "4bf82dee96c7c9746524a09564ce495da18dc27be97db5d883eca0ba51d51daf"
|
|
},
|
|
{
|
|
"file": "resources/views/sourcing-workspace.blade.php",
|
|
"sha256": "90e8887a5db9d7b5ab9e5f400992186c8f49369cc2ad88af984469a09c1b8bfc"
|
|
},
|
|
{
|
|
"file": "public/sourcing-workspace.mjs",
|
|
"sha256": "15ed768992dfd8858df65ce7fa41c733906875aec98b1c347169d83571cde52e"
|
|
},
|
|
{
|
|
"file": "scripts/sourcing-host-setup.php",
|
|
"sha256": "44c600f68a851b62942a9387b97973cd35d10e4eef59c7286ba3b954f818cd1a"
|
|
},
|
|
{
|
|
"file": "scripts/sourcing-composition-proof.php",
|
|
"sha256": "22c81eec6604cb8cb5ad519f67a0318799c9e220732ec492196f9215dc3cbcc4"
|
|
},
|
|
{
|
|
"file": "scripts/sourcing-guard-proof.php",
|
|
"sha256": "8479cc3ec860603ce86f514d39a5ebe2ebbad8af70a69c2bedc2a2e10a06788c"
|
|
},
|
|
{
|
|
"file": "scripts/sourcing-loader-proof.php",
|
|
"sha256": "2d32777fd4e083ada6caa88ba7dc47c02487c5976e1d90b13704a7c73df27105"
|
|
},
|
|
{
|
|
"file": "scripts/sourcing-demo-smoke.php",
|
|
"sha256": "f96d1232b9815727c0c9ac80ff258b0b74b0eda5fd5a1eaf548732c14251377a"
|
|
},
|
|
{
|
|
"file": "scripts/order-native-setup.php",
|
|
"sha256": "ace7c01ac7b99fded58c7c3480068b4921395ecc3275871d3f7a1ac459a3c9cf"
|
|
},
|
|
{
|
|
"file": "scripts/receipt-composition-run.mjs",
|
|
"sha256": "b7513259e096638b4dfbde047d770853273aeee9332e54edcae32aaa3f4e95e6"
|
|
},
|
|
{
|
|
"file": "scripts/receipt-composition-http.php",
|
|
"sha256": "7c45973af89e728905e365012dc78143e2e8d4681141b4f6e2a006d03f4c5506"
|
|
}
|
|
],
|
|
"workflow_package": {
|
|
"native_sha256": "61f561aff98b84096c872b29e2ac10f6b187a541bc00f38adac3ab3da1c7ca3c",
|
|
"economic_sha256": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"original_sources": {
|
|
"app/Http/Controllers/QuotationController.php": "23bc3af0fd4b67abb2f497742c06dff0208f3abcec1dd2c3338c15ff2abd3924",
|
|
"app/Services/ProposalComparison.php": "f34e7f736a18ae9e21bba324ebdf738c02cdcc6b4841367a13a5868631cd5dfa",
|
|
"app/Services/PurchaseWorkflow.php": "84f9db1286058087ecb8cf08c64fcd3afc94c91d1509b985b634a3fcafd81295"
|
|
}
|
|
},
|
|
"preview": {
|
|
"mode": "native_commands_in_rollback_only_savepoint",
|
|
"persistent_records_unchanged": true,
|
|
"sequence_values_may_advance": true,
|
|
"external_sends": false
|
|
},
|
|
"demo": {
|
|
"url": "http://127.0.0.1:8066/qa/enter/actor?open=1",
|
|
"reviewer_url": "http://127.0.0.1:8066/qa/enter/issuer?open=1",
|
|
"warehouse_url": "http://127.0.0.1:8066/qa/enter/validator?open=1",
|
|
"initial_quotes": 0,
|
|
"initial_evaluations": 0,
|
|
"initial_awards": 0,
|
|
"initial_orders": 0,
|
|
"initial_receipts": 0,
|
|
"initial_movements": 0,
|
|
"initial_reserved_minor": 10000
|
|
},
|
|
"qa_rights": [
|
|
"purchasing_sourcing.view",
|
|
"purchasing_sourcing.prepare",
|
|
"purchasing_sourcing.evaluate",
|
|
"purchasing_sourcing.select",
|
|
"purchasing_sourcing.approve"
|
|
],
|
|
"diagnostics": {
|
|
"initial_demo_smoke_timeout_preserved": true,
|
|
"location": "original all-file runtime package verification, before workflow",
|
|
"correction": "pinned manifest plus content verification before each dependency loads; complete artefact fingerprint verified by this summarizer",
|
|
"business_workflow_47_not_repeated": true
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/order-composition-20261103.json",
|
|
"sha256": "3334bf6f45ca629f1c1a0ea907f7b0804f0e90752d1ade0e9fb07599b4d310e3"
|
|
},
|
|
{
|
|
"file": "docs/proofs/receipt-composition-20261103.json",
|
|
"sha256": "c63f17f323db8e7374e60a2b4640d444f0e3153384c5f9c65426d300c258a5bd"
|
|
},
|
|
{
|
|
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
|
|
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
|
|
},
|
|
{
|
|
"file": "docs/proofs/common-ledger-stock-valuation-20261103.json",
|
|
"sha256": "a4eed51a66988ab103770a4be789952b2f377a8e7c41608bbf34662a80745124"
|
|
}
|
|
],
|
|
"preservation": {
|
|
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
|
|
"old_demo_bundles_intact": true,
|
|
"protected_six_records_changed": false,
|
|
"blocked_cache_cleared": false,
|
|
"real_rights_changed": false,
|
|
"existing_demos_written": false,
|
|
"purchasing_activated_at_destination": false,
|
|
"publication": false,
|
|
"checkpoint": false
|
|
},
|
|
"limitations": [
|
|
"Entry remains an approved native QA requisition with three synthetic source suppliers; no silent transfer from SGF internal requisitions or second host budget.",
|
|
"Registration/evaluation/selection/approval use the original controller and workflows; no automatic supplier or score choices.",
|
|
"Selected scenario three proposals100/120/140MZN, zero tax, two individual evaluators; formal tender regimes, later corrections/cancellations and real fiscal policy are not declared validated.",
|
|
"Rollback preview can consume nontransactional sequence values, but commits no quote/evaluation/award/audit/budget record; restricted to owned QA databases.",
|
|
"Dependency loading integrity is proved; this does not validate sustained load, all source modules, long-lived workers or owner/runtime deployment separation.",
|
|
"Source selector exposes at most100 configured suppliers; process index/history are server-paginated.",
|
|
"No visual review or deployment capacity validation."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|