294 lines
14 KiB
JSON
294 lines
14 KiB
JSON
{
|
|
"date": "2026-11-03T17:16:17.984Z",
|
|
"increment": "SGF-PURCHASING-CONTEXTUAL-NAVIGATION-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 77,
|
|
"tests": {
|
|
"read": {
|
|
"file": "private/purchasing-focus-read-8a8270d3bfec/purchasing-focus-read-result.json",
|
|
"sha256": "17194b2c21d193434241408f36a11139a10b17e2e5fd119f2ab009ea8078e4fa",
|
|
"checks": 26,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"dossier identifies exact existing request without issuing a command",
|
|
"all eight contextual links correlate real canonical ids and authorised destination stages",
|
|
"contextual destination is mounted: /purchasing/requests?request=3",
|
|
"contextual destination is mounted: /purchasing/sourcing?request=3",
|
|
"contextual destination is mounted: /purchasing/orders?award=2",
|
|
"contextual destination is mounted: /purchasing/receipts?order=1",
|
|
"contextual destination is mounted: /purchasing/invoices?order=1",
|
|
"contextual destination is mounted: /purchasing/receipts?order=1&receipt=1",
|
|
"contextual destination is mounted: /purchasing/invoices?order=1&invoice=2",
|
|
"contextual destination is mounted: /purchasing/obligations?invoice=2",
|
|
"destination API independently admits expected source: /api/purchasing-requests/3",
|
|
"destination API independently admits expected source: /api/purchasing-sourcing/requests/3",
|
|
"destination API independently admits expected source: /api/purchasing-orders/awards/2",
|
|
"destination API independently admits expected source: /api/purchasing-receipts/orders/1",
|
|
"destination API independently admits expected source: /api/purchasing-receipts/history/1",
|
|
"destination API independently admits expected source: /api/purchasing-invoices/orders/1",
|
|
"obligation focus resolves the actual invoice and existing canonical100MZN responsibility",
|
|
"request-only dossier reveals no hidden-stage links or record ids",
|
|
"copied finance links confer no authority on request-only profile",
|
|
"buyer links do not advertise restricted economic stages",
|
|
"foreign request and foreign or unknown order remain inaccessible at destination and dossier",
|
|
"link does not switch or bypass active module",
|
|
"link does not switch or bypass unit context",
|
|
"stale context token is rechecked in destination API",
|
|
"disabled navigation leaves existing dossier payload unchanged",
|
|
"all reused canonical host/native tables and sequences unchanged by navigation proof"
|
|
],
|
|
"contextual_links": 8,
|
|
"reused_proof": "purchasing-integrated-composition-20261103.json",
|
|
"financial_commands_repeated": 0,
|
|
"before_sha256": "7d462b3aa3eb941cc83ca61ef4272478cc5554fa8f8660378786764c704a7a5c",
|
|
"after_sha256": "7d462b3aa3eb941cc83ca61ef4272478cc5554fa8f8660378786764c704a7a5c",
|
|
"tables_checked": 142,
|
|
"new_right_names": [],
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"ui": {
|
|
"file": "private/purchasing-focus-read-8a8270d3bfec/purchasing-focus-ui.json",
|
|
"sha256": "8cdd6c750e6cb1492c19a94486946c7a357978e5e10594687abf91cec865b715",
|
|
"checks": 36,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"strict focus parser admits requests",
|
|
"strict focus parser admits orders",
|
|
"strict focus parser admits receipts",
|
|
"strict focus parser admits invoices",
|
|
"strict focus parser admits obligations",
|
|
"strict focus parser refuses ?order=0",
|
|
"strict focus parser refuses ?order=-1",
|
|
"strict focus parser refuses ?order=01",
|
|
"strict focus parser refuses ?order=1.5",
|
|
"strict focus parser refuses ?order=9007199254740992",
|
|
"strict focus parser refuses ?order=1&order=2",
|
|
"strict focus parser refuses ?receipt=3",
|
|
"strict focus parser refuses ?order=1&url=https://example.com",
|
|
"strict focus parser refuses ?order=1e2",
|
|
"strict focus parser refuses ?order=%3Cscript%3E",
|
|
"empty focus never selects a record and generated href is local and explicit",
|
|
"actual request-workspace opens exact focused source even when absent from first list page",
|
|
"actual request-workspace startup never prepares or confirms a business operation",
|
|
"actual sourcing-workspace opens exact focused source even when absent from first list page",
|
|
"actual sourcing-workspace startup never prepares or confirms a business operation",
|
|
"actual order-workspace opens exact focused source even when absent from first list page",
|
|
"actual order-workspace startup never prepares or confirms a business operation",
|
|
"actual receipt-workspace opens exact focused source even when absent from first list page",
|
|
"actual receipt-workspace startup never prepares or confirms a business operation",
|
|
"actual supplier-invoice-workspace opens exact focused source even when absent from first list page",
|
|
"actual supplier-invoice-workspace startup never prepares or confirms a business operation",
|
|
"actual supplier-obligation-workspace opens exact focused source even when absent from first list page",
|
|
"actual supplier-obligation-workspace startup never prepares or confirms a business operation",
|
|
"actual purchasing-dossier opens exact focused source even when absent from first list page",
|
|
"actual purchasing-dossier startup never prepares or confirms a business operation",
|
|
"invoice of another or unknown order is not substituted with first available document",
|
|
"receipt parent mismatch is reported before rendering receipt evidence",
|
|
"ambiguous initial link performs list reads only and chooses no award",
|
|
"link renderer rejects external and duplicated-parameter hints",
|
|
"interaction during initial list request cancels late automatic focus",
|
|
"disabled feature preserves list startup without focused read"
|
|
],
|
|
"dom_simulation": true,
|
|
"business_commands": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"demo": {
|
|
"file": "private/receipt-composition-0275f83f7456/purchasing-focus-demo.json",
|
|
"sha256": "a0ef2929c6f5def159e5732c29dfe322f8e25e71bcf6803e132b50191f694a8b",
|
|
"checks": 12,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"fresh integrated focus demo starts without main business operations",
|
|
"fresh workspace mounts focused reading: requests?request=1",
|
|
"fresh workspace mounts focused reading: sourcing?request=1",
|
|
"fresh workspace mounts focused reading: orders?award=1",
|
|
"fresh workspace mounts focused reading: receipts?order=1&receipt=1",
|
|
"fresh workspace mounts focused reading: invoices?order=1&invoice=1",
|
|
"fresh workspace mounts focused reading: obligations?invoice=1",
|
|
"fresh workspace mounts focused reading: dossiers?request=1",
|
|
"unknown focus source never grants or creates authority: /api/purchasing-dossiers/999999",
|
|
"unknown focus source never grants or creates authority: /api/purchasing-obligations/999999",
|
|
"shared focus module is served with exact private source bytes",
|
|
"demonstration probes preserve selected business tables grants geography and native audit"
|
|
],
|
|
"before": "0638abda05a00333e61389132f92a8828c73e2a6154ee213cba9a5d5f8cdd4eb",
|
|
"after": "0638abda05a00333e61389132f92a8828c73e2a6154ee213cba9a5d5f8cdd4eb",
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"assets": {
|
|
"file": "private/receipt-composition-0275f83f7456/purchasing-focus-assets.json",
|
|
"sha256": "6cd38c3d83c89e3fe6bfb0df002fe87ae70f84c24026c88a88204a6af409dfff",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"private frontend build succeeds",
|
|
"served built assets match private build",
|
|
"purchasing focus module is served through private static whitelist"
|
|
],
|
|
"assets": [
|
|
"assets/app-rwyn9RPO.js",
|
|
"assets/app-BLSNCrO7.css"
|
|
],
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ProcessNavigation.php",
|
|
"sha256": "6e1f5e6e3db88be7ab91e233e4bb8225df524b71b06ea68ab967fd2541f9303d"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/DossierController.php",
|
|
"sha256": "73133fd4075c76a4933d4475275d017fb0392e64076ff3bd7b284e0b967781d7"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "0ca44fc0c24ed97c298d851e97df278ea5c304d5b1dbecb76d7803e1fd571b60"
|
|
},
|
|
{
|
|
"file": "public/purchasing-focus.mjs",
|
|
"sha256": "77a18d186c8ebb5065cf60816b7fd8d11a37fe801296a60f06ff0a6cf590b2e4"
|
|
},
|
|
{
|
|
"file": "public/request-workspace.mjs",
|
|
"sha256": "384c67310d2a7adab7a94273bab385dff74af76c293622bb3c0d087245d7e6d8"
|
|
},
|
|
{
|
|
"file": "resources/views/request-workspace.blade.php",
|
|
"sha256": "6d1a344e62958b3ae654f6c519cf420906ac3bb3aa257839ce58d77d795af86b"
|
|
},
|
|
{
|
|
"file": "public/sourcing-workspace.mjs",
|
|
"sha256": "81bcbf8bc45d7005b9de635c6476437d3ce13e2f17d98dfc2aad4a4892eb2c52"
|
|
},
|
|
{
|
|
"file": "resources/views/sourcing-workspace.blade.php",
|
|
"sha256": "67123c60d74807568c53a0c8d9ce8a7685a3b77115cb9fd37bef874e63a2c980"
|
|
},
|
|
{
|
|
"file": "public/order-workspace.mjs",
|
|
"sha256": "41b81ab5641374b84a208b2973712368f4e1b50f804e90b56762d27c8e12ca3a"
|
|
},
|
|
{
|
|
"file": "resources/views/order-workspace.blade.php",
|
|
"sha256": "c6e066c436ba7002feef63f3fa280c5a0d158fe01dfe0091cfd03fac8e61d959"
|
|
},
|
|
{
|
|
"file": "public/receipt-workspace.mjs",
|
|
"sha256": "f0f242538e4131910d612da1f5b22e4955f3bdc58d4c4121d7b1242a5eb52df5"
|
|
},
|
|
{
|
|
"file": "resources/views/receipt-workspace.blade.php",
|
|
"sha256": "40e7db8ac3d47b60f46fb5b8c623dec9ff9716bc9f2e1ea400d0751f0d0cf890"
|
|
},
|
|
{
|
|
"file": "public/supplier-invoice-workspace.mjs",
|
|
"sha256": "5f0112c38e805fe9ed2e733053bae77f8dd4e3e1cb6b9cba8e4bc7bb469205d7"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-invoice-workspace.blade.php",
|
|
"sha256": "396cea98bce6c2ccff510efd917e2f336ba29657ea5a8277116c41bd70c92e15"
|
|
},
|
|
{
|
|
"file": "public/supplier-obligation-workspace.mjs",
|
|
"sha256": "8f5154636553130f950d09b46ff917f91250516e10a03e93971cbe537c67f082"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-obligation-workspace.blade.php",
|
|
"sha256": "cbcef35273b6f54158f60b67f9c2b64c0a93e47cb01ca302b525479ce051e927"
|
|
},
|
|
{
|
|
"file": "public/purchasing-dossier.mjs",
|
|
"sha256": "3a632080b0952e28e2dbeb65367f76acb72025d43c850567cf655419710c1384"
|
|
},
|
|
{
|
|
"file": "resources/views/purchasing-dossier.blade.php",
|
|
"sha256": "f8c1466cf669fe69a70320c8851ffe1b511a351934902fa77f1354a9eb1d4f56"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"authority": {
|
|
"new_right_names": [],
|
|
"new_mutation_endpoints": 0,
|
|
"new_business_writers": 0,
|
|
"filtered_by_existing_visible_stages": true,
|
|
"destination_authority_rechecked": true,
|
|
"module_company_unit_not_changed_by_link": true,
|
|
"preview_or_confirmation_on_startup": false
|
|
},
|
|
"regression": {
|
|
"reused_completed_book": "purchasing-integrated-composition-20261103.json",
|
|
"contextual_links": 8,
|
|
"tables_preserved": 142,
|
|
"sequences_preserved": true,
|
|
"financial_commands_repeated": 0,
|
|
"first_page_not_required_for_focus": true,
|
|
"receipt_parent_checked_before_render": true,
|
|
"invoice_parent_checked_before_render": true,
|
|
"dom_simulation_not_browser": true
|
|
},
|
|
"demo": {
|
|
"port": 8078,
|
|
"entry": "http://127.0.0.1:8078/qa/enter/requester?open=1",
|
|
"procurement": "http://127.0.0.1:8078/qa/enter/actor?open=1",
|
|
"finance": "http://127.0.0.1:8078/qa/enter/issuer?open=1",
|
|
"initial_main_requests": 0,
|
|
"initial_receipts": 0,
|
|
"initial_invoices": 0,
|
|
"initial_obligations": 0
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/receipt-documents-composition-20261103.json",
|
|
"sha256": "b820a6b355450a79c9f244ce8eb6950e7c1cbe4427bf85bca772fb0fc5c085d2"
|
|
},
|
|
{
|
|
"file": "docs/proofs/purchasing-dossier-composition-20261103.json",
|
|
"sha256": "15686bc54488be2aa342c899f82a683ee43674621a8c4678b5ba6c34d08e6a62"
|
|
},
|
|
{
|
|
"file": "docs/proofs/purchasing-integrated-composition-20261103.json",
|
|
"sha256": "10e8a7862a5a96cac6ec03dece68743605fd0ca98313c38070797fe40fcd2396"
|
|
},
|
|
{
|
|
"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": [
|
|
"This is contextual navigation and read integration. It does not execute, approve or determine readiness of the next business stage.",
|
|
"The same session and current context are used; links do not transfer another actor identity or grant destination access.",
|
|
"Lists retain their own pagination and filters. A focused record is loaded independently by its authorised detail endpoint; no universe scan or automatic first-record fallback.",
|
|
"DOM tests use minimal synthetic read fixtures for the actual seven modules. They are not a browser rendering, visual or accessibility review.",
|
|
"Only the first stage pages shown by the dossier have contextual links; other pages remain independently paginated.",
|
|
"Sustained load, general deployment and real operational/fiscal readiness remain separate."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|