243 lines
10 KiB
JSON
243 lines
10 KiB
JSON
{
|
|
"date": "2026-11-03T15:35:18.718Z",
|
|
"increment": "SGF-RECEIPT-WORKSPACE-COMPLETION-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 41,
|
|
"tests": {
|
|
"receipt_boundary": {
|
|
"file": "private/receipt-composition-860c4042d588/receipt-workspace-result.json",
|
|
"sha256": "3c52cf0eeb8c1696736c90dd357887de86141b4a3b728a099b7ef480170fafe9",
|
|
"checks": 27,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"new issued source starts before physical effects",
|
|
"bounded catalogue includes127 unit-compatible articles",
|
|
"all articles beyond100 reachable without overlapping pages",
|
|
"unit case/whitespace matches native rule; incompatible and foreign articles excluded",
|
|
"catalogue pages100/27 cover same eligible universe",
|
|
"case-insensitive code search reaches beyond100 with selection fingerprint",
|
|
"name search treats wildcard characters literally",
|
|
"catalogue projection exposes no cost or valuation fields",
|
|
"article selection requires existing physical confirmation authority",
|
|
"another source line cannot reuse catalogue entry",
|
|
"caller cannot override unit or bypass page bounds",
|
|
"fingerprinted preview creates no receipt or movement",
|
|
"catalogue change invalidates confirmation and old selected fingerprint",
|
|
"original native workflow remains final unit validator for legacy requests",
|
|
"foreign explicit article cannot be fingerprinted",
|
|
"same-key concurrency still creates one canonical receipt and physical movement",
|
|
"receipt recovery uses original historical result without another movement",
|
|
"all26 original receipts visible across two history pages",
|
|
"history pages contain no duplicated evidence",
|
|
"older receipt detail retains original chosen article and snapshot",
|
|
"empty later history page invents no receipt",
|
|
"existing receipt-view profile retains history without stock selection authority",
|
|
"history rejects unsupported filters",
|
|
"legacy request finishes exactly1UN once across27 partial receipts",
|
|
"original writer completes actual order with no over-receipt",
|
|
"unmapped unit cannot inspect catalogue or history",
|
|
"new receipt workspace triggers no invoice debt payment or localisation"
|
|
],
|
|
"eligible_articles": 127,
|
|
"receipts": 27,
|
|
"quantity_milli": 1000,
|
|
"native_history_fixture_receipts": 25,
|
|
"source_workflow_setup_only": true,
|
|
"concurrency_statuses": [
|
|
200,
|
|
201
|
|
],
|
|
"new_right_names": [],
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"guards": {
|
|
"file": "private/receipt-composition-9d55107a271b/receipt-workspace-guards.json",
|
|
"sha256": "c5be2008f99ea5e7dd9af8be47be2323f49d94e4b1d0d2094901e2b6708b0c38",
|
|
"checks": 4,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"disabled catalogue refuses before SQL",
|
|
"disabled history refuses before SQL",
|
|
"production refuses synthetic catalogue before SQL",
|
|
"catalogue belongs to purchasing and guard probes issue zero SQL"
|
|
],
|
|
"database_queries": 0
|
|
}
|
|
},
|
|
"demo": {
|
|
"file": "private/receipt-composition-9d55107a271b/receipt-workspace-demo.json",
|
|
"sha256": "76ac8f44bf73759d83285eb9fc8c92bec6c01c17347087a7c0ac956b306494ca",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"warehouse demo starts before main request order or physical effects",
|
|
"live receipt workspace served",
|
|
"warehouse waits for actual issued main order",
|
|
"served warehouse source matches receipt-workspace.mjs",
|
|
"served warehouse source matches supplier-picker-model.mjs",
|
|
"warehouse demonstration checks preserve business and geographic facts"
|
|
],
|
|
"before": "ad1a7a703638ad96a9226be900a6c0f461ed94234fef4553f3265fa84be90016",
|
|
"after": "ad1a7a703638ad96a9226be900a6c0f461ed94234fef4553f3265fa84be90016",
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"assets": {
|
|
"file": "private/receipt-composition-9d55107a271b/receipt-workspace-assets.json",
|
|
"sha256": "22a514bb9437cce44a04d89101b1d24e0a80969ca81e35b7ee05e78cb34f1dd0",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"private frontend build succeeds",
|
|
"served built assets match private build",
|
|
"receipt workspace module is served through private static whitelist"
|
|
],
|
|
"assets": [
|
|
"assets/app-rwyn9RPO.js",
|
|
"assets/app-BLSNCrO7.css"
|
|
],
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"final_source": {
|
|
"file": "private/receipt-composition-9d55107a271b/receipt-workspace-final-source.json",
|
|
"sha256": "b90e2b2a11bb513916b2345aea696c17b8238ea03f8dd1b21e3439cd2f3ce1d3",
|
|
"checks": 1,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"final warehouse script served identically after deferring catalogue queries until line selection"
|
|
],
|
|
"sha256": "10b412a5ec6c973152f165b34caacc685e25bcf2eb0e6ba2f7f7e58df4e1f00a",
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "7ed4b9292e214b11c42af1eae3fb63d967a7e15f026648c957f8a5b54f211f69"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptCatalogue.php",
|
|
"sha256": "d9e529adae22387dd4e17d7bf9558bdde2f13e1f1e39700f07c4c97299ff3348"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
|
|
"sha256": "9b426476b2805094fb317cc753385ef43882fb4964883e880eac287eed89d9e0"
|
|
},
|
|
{
|
|
"file": "public/receipt-workspace.mjs",
|
|
"sha256": "10b412a5ec6c973152f165b34caacc685e25bcf2eb0e6ba2f7f7e58df4e1f00a"
|
|
},
|
|
{
|
|
"file": "public/supplier-picker-model.mjs",
|
|
"sha256": "7eda0e980a0d7c88a8fbf6ea446de2d169df22138a9fb6f62ecfa50b10506bde"
|
|
},
|
|
{
|
|
"file": "routes/web.php",
|
|
"sha256": "6e3cadafec8b0117d9c346f9558c8ceefb765b676d06280bca6250d0c039ab51"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"matching_inventory_writer_sources": [
|
|
{
|
|
"file": "packages/inventory-write/releases/0.1.0/bootstrap.php",
|
|
"sha256": "b6ea8939536008c9277724216df2a968f416d9e7374189587a1172c02ecacb75"
|
|
},
|
|
{
|
|
"file": "packages/inventory-write/releases/0.1.0/manifest.json",
|
|
"sha256": "f0b99e591f9a4df135e685f64ceffad77bed259222debe0f34c20f95e3cad800"
|
|
},
|
|
{
|
|
"file": "packages/inventory-write/releases/0.1.0/src/ReceiptMovementWriter.php",
|
|
"sha256": "279cec2ec915e27cf431355fca1e36f21cb3c15a77d02834723a41ec7a6f8f40"
|
|
}
|
|
],
|
|
"new_right_names": [],
|
|
"receipt_boundary": {
|
|
"eligible_articles": 127,
|
|
"server_pages": [
|
|
25,
|
|
100
|
|
],
|
|
"manual_choice": true,
|
|
"explicit_article_fingerprint_rechecked": true,
|
|
"receipts": 27,
|
|
"quantity_milli": 1000,
|
|
"history_fixture_receipts_through_original_writer": 25,
|
|
"transport_receipts": 2,
|
|
"concurrent_same_key": [
|
|
200,
|
|
201
|
|
],
|
|
"new_payments": 0,
|
|
"new_invoices": 0,
|
|
"new_obligations": 0,
|
|
"stock_valuation_added": false
|
|
},
|
|
"demo": {
|
|
"port": 8075,
|
|
"entry": "http://127.0.0.1:8075/qa/enter/requester?open=1",
|
|
"warehouse": "http://127.0.0.1:8075/qa/enter/validator?open=1",
|
|
"initial_main_requests": 0,
|
|
"initial_orders": 0,
|
|
"initial_receipts": 0,
|
|
"initial_movements": 0,
|
|
"synthetic_extra_articles": 127,
|
|
"locations": 0
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/purchasing-dossier-composition-20261103.json",
|
|
"sha256": "15686bc54488be2aa342c899f82a683ee43674621a8c4678b5ba6c34d08e6a62"
|
|
},
|
|
{
|
|
"file": "docs/proofs/purchasing-integrated-composition-20261103.json",
|
|
"sha256": "10e8a7862a5a96cac6ec03dece68743605fd0ca98313c38070797fe40fcd2396"
|
|
},
|
|
{
|
|
"file": "docs/proofs/supplier-search-composition-20261103.json",
|
|
"sha256": "388e738da7e9b3e7f521c8d67f85dd4ef34869c74daf0c04c09067b9fbde5242"
|
|
},
|
|
{
|
|
"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": [
|
|
"Functional consumable/UN boundary tested. Supply/part filters delegate to native services; this is not a complete new regression of those branches.",
|
|
"The unchanged asynchronous choice model reuses its earlier8 checks; it was not re-executed or counted as new tests.",
|
|
"Final UI defers catalogue requests until a line is chosen. Its final served source and syntax were checked separately; browser interaction and visual review remain pending.",
|
|
"Twenty-five partial receipts are explicit history-volume fixtures through the pinned original writer; only the first and last physical commands exercise the changed HTTP transport.",
|
|
"Legacy previews capture explicit item fingerprints server-side. The original writer remains final validator for quantity, quality, unit, bindings and physical effects.",
|
|
"Implicit item bindings already authorised in an order remain native authority; this increment creates no new automatic association.",
|
|
"New receipts and movements exist only in the regression fixture; the team demo begins empty.",
|
|
"No sustained-load capacity or deployment/least-privilege claim follows from127 catalogue records and27 receipts.",
|
|
"Current native schema provisioning and frozen runtime retain their earlier deployment compatibility limitations."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|