270 lines
12 KiB
JSON
270 lines
12 KiB
JSON
{
|
|
"date": "2026-11-03T16:55:11.029Z",
|
|
"increment": "SGF-RECEIPT-DOCUMENTS-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 58,
|
|
"tests": {
|
|
"documents": {
|
|
"file": "private/receipt-composition-1968d008dac9/receipt-documents-result.json",
|
|
"sha256": "085879363fff52b88a9a91dfedc3f758dd1967d32191d3e2859d366489b50e99",
|
|
"checks": 28,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"fresh native receipt document book begins empty",
|
|
"receipt detail exposes attachment revision and existing warehouse capability",
|
|
"private metadata has server pagination15",
|
|
"request-only roles cannot inspect receipt attachment metadata",
|
|
"preview uses original service and explicit safe metadata and impact",
|
|
"preview rolls back document and audit and removes only staged file",
|
|
"native content extension and type validation preserved",
|
|
"independent sessions prepare same native operation key",
|
|
"confirmation rejects substituted bytes",
|
|
"confirmation rechecks existing host permission",
|
|
"outer provenance failure rolls back native document and compensates proven uncommitted file",
|
|
"concurrent confirmations finish once with201 and replay200 after lock release",
|
|
"lost-response replay creates no additional root decision",
|
|
"preview of same type and hash reuses original without deleting permanent file",
|
|
"new explicit intent reuses original native document and filename without another file",
|
|
"native key rejects another content before confirmation",
|
|
"metadata never exposes private path or native tenant",
|
|
"native download checks original hash and streams private sandboxed bytes",
|
|
"authorised download trace linked to original requisition",
|
|
"tampered stored evidence blocks both download and replay",
|
|
"document cannot cross receipt parent",
|
|
"16 documents span distinct15 and1 pages",
|
|
"permanent files match native documents and preview files are absent",
|
|
"receipt evidence appears in authorised requisition dossier timeline",
|
|
"other module cannot reuse document capability",
|
|
"unmapped unit cannot read private attachments",
|
|
"attachment book retains one complete receipt and its original1000milli movement",
|
|
"attachment decisions introduce no invoice debt payment or accounting effect"
|
|
],
|
|
"transport_documents": 1,
|
|
"native_volume_documents": 15,
|
|
"documents": 16,
|
|
"permanent_files": 16,
|
|
"staged_files": 0,
|
|
"concurrency_statuses": [
|
|
200,
|
|
201
|
|
],
|
|
"new_right_names": [],
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"additional": {
|
|
"file": "private/receipt-composition-1968d008dac9/receipt-documents-extra.json",
|
|
"sha256": "708f4c11c201b6265292ec99e29a7d7c6ec4ca47abe7c7adc08cb1e7f6afdb10",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"confirmation compares current immutable receipt revision again",
|
|
"expired conference requires a new individual preview",
|
|
"changed source binding cannot confirm earlier conference",
|
|
"changed session context generation requires renewed conference",
|
|
"shared storage helper preserves supplier native preview with default disk",
|
|
"supplier preview keeps both document namespaces and prior receipt evidence intact"
|
|
],
|
|
"new_right_names": []
|
|
}
|
|
},
|
|
"guards": {
|
|
"file": "private/receipt-composition-8c363c2b4ac1/receipt-documents-guards.json",
|
|
"sha256": "a84f8ab5e6d268bb037fc5422772817ccc54d05d5ec4b07a3f6a548003394f20",
|
|
"checks": 4,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"disabled document metadata refuses before SQL",
|
|
"disabled upload refuses before validation storage and SQL",
|
|
"production refuses synthetic document adapter before SQL",
|
|
"document route belongs to purchasing and guard probes issue zero SQL"
|
|
],
|
|
"database_queries": 0
|
|
}
|
|
},
|
|
"demo": {
|
|
"file": "private/receipt-composition-8c363c2b4ac1/receipt-documents-demo.json",
|
|
"sha256": "ec90367b867af77d5202dfd09d36eaae2f5a23a1a6ec8a7ab97cb32a6c937699",
|
|
"checks": 8,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"new integrated demo starts without main requests receipts or documents",
|
|
"receipt screen respects actor permission",
|
|
"receipt screen respects validator permission",
|
|
"empty demo invents no receipt attachment owner",
|
|
"receipt screen respects requester permission",
|
|
"served receipt evidence source matches receipt-workspace.mjs",
|
|
"served receipt evidence source matches supplier-documents.mjs",
|
|
"demonstration metadata probes preserve supplier receipt document and audit book"
|
|
],
|
|
"before": "20343ea6bd89e2d899bc299fa7f9479e9f17051a3bcbf0edee619252a771c94e",
|
|
"after": "20343ea6bd89e2d899bc299fa7f9479e9f17051a3bcbf0edee619252a771c94e",
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"assets": {
|
|
"file": "private/receipt-composition-8c363c2b4ac1/receipt-documents-assets.json",
|
|
"sha256": "fac39bfeea24042f5f55c959fca4c970139b814724f7e6fd68aa78316642989f",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"private frontend build succeeds",
|
|
"served built assets match private build",
|
|
"supplier document module is served through private static whitelist"
|
|
],
|
|
"assets": [
|
|
"assets/app-rwyn9RPO.js",
|
|
"assets/app-BLSNCrO7.css"
|
|
],
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"ui": {
|
|
"file": "private/receipt-composition-8c363c2b4ac1/receipt-documents-ui.json",
|
|
"sha256": "8f72a40a473a96e8b53b83dc44d12b3782f11238b9cb87b293d7f08b39cd53b5",
|
|
"checks": 9,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"shared component preserves original supplier type choices",
|
|
"receipt uses native types and an explicit initially empty choice",
|
|
"mounting lists evidence without preparing or confirming an upload",
|
|
"explicit receipt preview uses owner endpoint context and original revision",
|
|
"receipt impact explains preserved quantities and stock",
|
|
"only explicit confirmation sends the preview and reloads receipt history",
|
|
"editing invalidates the existing conference",
|
|
"late preview cannot restore confirmation after an input edit",
|
|
"read-only view lists documents without creating an upload form"
|
|
],
|
|
"dom_simulation": true,
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptDocumentsController.php",
|
|
"sha256": "ae238ccec6628949dac4d18cc3514849303dda432ec371f7507e84498108e03c"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/SupplierDocumentFiles.php",
|
|
"sha256": "cc140b5c56781fbcb8f582972b6030e8602fd1fe4ad02d435ae6676f177819db"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "51a0fa060fcce212646cf22332df352d90a5994cb7785eedc789585e02569616"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/DossierController.php",
|
|
"sha256": "e74e20953fa86bb1a0a273b8cf4bd272767167d7665b8b8529cb47bc99d21281"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "5bce3d7d983579da47e2ae84d66eae10111f69fb49e0d3d2703ab047ac84d2bd"
|
|
},
|
|
{
|
|
"file": "routes/web.php",
|
|
"sha256": "f7d16d6e0525f286e4ff4d1d577569163908b4780c503d97534929125e17f96b"
|
|
},
|
|
{
|
|
"file": "public/receipt-workspace.mjs",
|
|
"sha256": "a128926d876ae10eb2a17ec2410ba99282d782f03bb9642cbdcad93d548ce002"
|
|
},
|
|
{
|
|
"file": "public/supplier-documents.mjs",
|
|
"sha256": "accfc25b8c20a975032e30a01443a2286de0212ed34cd9d9c321ef5c87aa0b36"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"authority": {
|
|
"original_service": "ReceiptDocuments::add",
|
|
"original_download_controller": true,
|
|
"private_qa_storage": true,
|
|
"source_company_unit_checked": true,
|
|
"existing_rights": [
|
|
"purchasing_receipts.view",
|
|
"purchasing_receipts.confirm"
|
|
],
|
|
"new_right_names": [],
|
|
"canonical_document_reused_by_receipt_type_hash": true,
|
|
"quantity_or_quality_decision_changed": false
|
|
},
|
|
"regression": {
|
|
"transport_documents": 1,
|
|
"native_volume_documents": 15,
|
|
"documents_and_files": 16,
|
|
"staged_files": 0,
|
|
"concurrency_statuses": [
|
|
200,
|
|
201
|
|
],
|
|
"receipt_quantity_milli": 1000,
|
|
"physical_movements": 1,
|
|
"source_workflow_setup_only": true,
|
|
"successful_prefix_reused": true,
|
|
"dossier_test_corrected_for_profile_and_history_page": true,
|
|
"other_module_test_expected403_for_warehouse": true
|
|
},
|
|
"demo": {
|
|
"port": 8077,
|
|
"entry": "http://127.0.0.1:8077/qa/enter/actor?open=1",
|
|
"warehouse": "http://127.0.0.1:8077/qa/enter/validator?open=1",
|
|
"initial_documents": 0,
|
|
"initial_receipts": 0,
|
|
"initial_main_requests": 0,
|
|
"prepared_suppliers": 3
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/supplier-documents-composition-20261103.json",
|
|
"sha256": "d5709128ee45b7ee1397695b06502b9386dccd13779203c13abbd54281552068"
|
|
},
|
|
{
|
|
"file": "docs/proofs/receipt-workspace-completion-20261103.json",
|
|
"sha256": "59bb66df5d5e12f898045669a0ad24664c3d09f2d3ab6cf70f4f13d6a34c6548"
|
|
},
|
|
{
|
|
"file": "docs/proofs/purchasing-dossier-composition-20261103.json",
|
|
"sha256": "15686bc54488be2aa342c899f82a683ee43674621a8c4678b5ba6c34d08e6a62"
|
|
},
|
|
{
|
|
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
|
|
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
|
|
}
|
|
],
|
|
"preservation": {
|
|
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
|
|
"target_database_connected": false,
|
|
"protected_six_records_changed": false,
|
|
"blocked_cache_cleared": false,
|
|
"previous_demo_data_written": false,
|
|
"public_rights_changed": false,
|
|
"publication": false,
|
|
"checkpoint": false
|
|
},
|
|
"limitations": [
|
|
"Positive binary fixture is PNG; PDF/JPEG rules remain native, without a new full-format reader regression.",
|
|
"A document is evidence, not authentication, fiscal certification or a decision accepting quantities/quality.",
|
|
"Deduplication is within one receipt and document type by SHA; it is not global deduplication. Separate explicit intents may each have an audit event for the same canonical document.",
|
|
"Ordinary rollback compensation is tested. An uncertain commit retains evidence; crash-orphan reconciliation, retention, quotas and sustained storage load are pending.",
|
|
"Fifteen original-service uploads are volume fixture preparation, not15 HTTP transport confirmations.",
|
|
"The final physical assertion after resumed read checks verifies one receipt and one1000milli movement; no all-table before/after fingerprint is claimed for the full command run.",
|
|
"DOM simulation checks component logic, not browser rendering, accessibility or visual acceptance.",
|
|
"Native schema provisioning is current while runtime is pinned. General installation and least-privilege deployment are not validated.",
|
|
"Visual review, sustained load and deployment capacity remain pending."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|