293 lines
13 KiB
JSON
293 lines
13 KiB
JSON
{
|
|
"date": "2026-11-03T17:34:15.059Z",
|
|
"increment": "SGF-PURCHASING-USABLE-CONTINUITY-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 55,
|
|
"tests": {
|
|
"real_ui": {
|
|
"file": "private/receipt-composition-ce4c9bef1a51/receipt-ui-http.json",
|
|
"sha256": "351bf5c239cc48771fd18dd702286f962d7ea7a8fd2a1fd663803a784ba6f06b",
|
|
"checks": 17,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"opening real receipt form performs no preview or confirmation",
|
|
"unchecked line does not load article catalogue",
|
|
"warehouse menu does not advertise inaccessible financial continuation",
|
|
"checking line activates actual per-line native catalogue without type error",
|
|
"catalogue browsing chooses no article automatically",
|
|
"explicit catalogue choice survives model publication",
|
|
"editing article search invalidates previous choice",
|
|
"search control sends actual literal code to catalogue endpoint",
|
|
"real UI prepares valid native receipt preview",
|
|
"preview transmits explicit article and current selection fingerprint",
|
|
"preview does not submit confirmation automatically",
|
|
"editing form invalidates ready confirmation",
|
|
"lost response after real commit preserves same preview for explicit recovery",
|
|
"second UI confirmation recovers committed result without another receipt",
|
|
"same UI refresh shows exactly one completed receipt",
|
|
"native read verifies chosen article and one physical movement of1UN",
|
|
"UI flow invokes only existing receipt commands"
|
|
],
|
|
"dom_simulation": true,
|
|
"real_http": true,
|
|
"source_workflow_setup_only": true,
|
|
"receipt_id": 1,
|
|
"receipt_count": 1,
|
|
"movements": 1,
|
|
"quantity_milli": 1000,
|
|
"concurrency": false,
|
|
"lost_response_statuses": [
|
|
201,
|
|
200
|
|
],
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"boundaries": {
|
|
"file": "private/receipt-composition-ce4c9bef1a51/continuity-boundaries.json",
|
|
"sha256": "b4b26a9205fe8c6597a91386537cc8776e61b8d89bbe6eeb5ed08a2ecfdf4bf7",
|
|
"checks": 8,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"supplier empty initial search equals omitted search and returns native paginated eligible directory",
|
|
"trimmed blank supplier search keeps unfiltered initial-page semantics",
|
|
"nullable empty filter still rejects array search and unsupported page size",
|
|
"empty search does not bypass sourcing preparation right",
|
|
"empty search does not reopen proposals closed by actual award",
|
|
"empty article filter equals omitted filter in actual receipt catalogue",
|
|
"article catalogue keeps strict parameter types and allowlist",
|
|
"catalogue checks preserve one UI receipt and physical movement without invoice debt or payment"
|
|
],
|
|
"open_request_fixture_minor": 100,
|
|
"supplier_rows": 3,
|
|
"new_right_names": [],
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"history": {
|
|
"file": "private/purchasing-continuity-read-e266c0e778c2/purchasing-continuity-read-result.json",
|
|
"sha256": "23efe4e994153ff156e202985d8422262010cfa24c7b68c9fef30e07d8690d09",
|
|
"checks": 12,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"completed read fixture contains downstream payloads that old unfiltered histories would disclose",
|
|
"request history is scoped before limit and retains exact own-stage evidence for requester",
|
|
"request history is scoped before limit and retains exact own-stage evidence for actor",
|
|
"request history is scoped before limit and retains exact own-stage evidence for issuer",
|
|
"sourcing summary contains only upstream and sourcing-stage events",
|
|
"sourcing pagination total counts only authorised stage history",
|
|
"all sourcing pages preserve unique own-stage evidence without financial payload events",
|
|
"finance retains authorised invoice history in its own endpoint",
|
|
"stage history filtering does not grant access to another stage",
|
|
"request-only dossier remains scoped independently of inline histories",
|
|
"foreign request cannot expose sourcing history",
|
|
"142 original regression tables and all sequences remain unchanged by stage-history verification"
|
|
],
|
|
"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
|
|
}
|
|
},
|
|
"inline_ui": {
|
|
"file": "private/receipt-composition-ce4c9bef1a51/continuity-ui.json",
|
|
"sha256": "0f84c58e8779da22082cd70a7afba8ab38491302cafb86f90300adfe75ff8a58",
|
|
"checks": 9,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"receipt carries actual order into invoice consultation",
|
|
"receipt continuation adds no hidden cross-stage request",
|
|
"invoice links retain exact receipt order dossier request and document responsibility",
|
|
"obligation returns to exact original invoice and physical order",
|
|
"physical-only menu does not advertise invoice destination",
|
|
"missing obligation and dossier menu entries suppress only those contextual links",
|
|
"disabled continuity feature leaves previous focused screen without inline links",
|
|
"default dossier link rendering remains independent of optional menu filter",
|
|
"all inline-link startup probes perform reads only"
|
|
],
|
|
"dom_simulation": true,
|
|
"business_commands": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"demo": {
|
|
"file": "private/receipt-composition-2d2d938a3bec/purchasing-continuity-demo.json",
|
|
"sha256": "424b7ae18b179df29809bba79d7a117f769423034cecb05b17ad6cfe16194cf8",
|
|
"checks": 9,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"new continuity demonstration begins without main business operations",
|
|
"inline continuity is enabled in new receipts screen",
|
|
"inline continuity is enabled in new invoices screen",
|
|
"inline continuity is enabled in new obligations screen",
|
|
"served affected static module matches purchasing-focus.mjs",
|
|
"served affected static module matches receipt-workspace.mjs",
|
|
"served affected static module matches supplier-invoice-workspace.mjs",
|
|
"served affected static module matches supplier-obligation-workspace.mjs",
|
|
"live probes preserve selected business tables permission grants and audit"
|
|
],
|
|
"before": "2b15a0df98940b8c9b8f960889bfc1d03ac28e6def87670201e879464bf71f29",
|
|
"after": "2b15a0df98940b8c9b8f960889bfc1d03ac28e6def87670201e879464bf71f29",
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ProcessHistory.php",
|
|
"sha256": "255a4ca5901cf323e3fd16e2fb16509962710c5d5b67e2e425cdc1f7e7a257a2"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/RequestController.php",
|
|
"sha256": "1cb75d7bc03105e0df4211b4470bdc8837f4a659bc65318286228949779d9dc6"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/SourcingController.php",
|
|
"sha256": "84d807fe841a47335836e281677813157d78ed28c4e46cf1a4267121b7aedf17"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "0226b354db20a0eab19598ff35dbb35e0fa7f117de0c477e0b870159024d49df"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "fc74192b6042a1d36b2eebe29ad58e971b1103d4fde722cb41177971f11b3d9c"
|
|
},
|
|
{
|
|
"file": "public/purchasing-focus.mjs",
|
|
"sha256": "434319b8de23f5d6892666bd53232d463a0d458fe948cc6d7b476ad1228fafb6"
|
|
},
|
|
{
|
|
"file": "public/receipt-workspace.mjs",
|
|
"sha256": "86421d30dc9868b10da2153f8bf0b50d9904ab5ccccbf9813464083ae1e20bd2"
|
|
},
|
|
{
|
|
"file": "resources/views/receipt-workspace.blade.php",
|
|
"sha256": "57018d5cc586e2ff03bbf09f97853a2eb297fc1ad7e7f3b8b3dc2f8d76008d3d"
|
|
},
|
|
{
|
|
"file": "public/supplier-invoice-workspace.mjs",
|
|
"sha256": "f767347371e2dc1573ec29a926509c87bcdea3ec09257a6b22395fc0cf01366f"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-invoice-workspace.blade.php",
|
|
"sha256": "916c7243f78953a9afa2d495f5dc0a4ea687dd876598bd880a60875913ab2063"
|
|
},
|
|
{
|
|
"file": "public/supplier-obligation-workspace.mjs",
|
|
"sha256": "c2608e3cab7cd1810437a3a978e6f6ccbf2600a83dd0a39bd38510db8249f551"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-obligation-workspace.blade.php",
|
|
"sha256": "ce0dc4159d42efcff9e09ec99a2ce5a2d378a215d4a853a37417a0ebf5445506"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"unchanged_mutation_blocks": [
|
|
{
|
|
"file": "app/Modules/Purchasing/RequestController.php",
|
|
"sha256": "31d00fff9d8e16f26705665f440512546f6d9f63d887b9c0f2b81251ca2a5346",
|
|
"unchanged_since_demo8078": true
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/SourcingController.php",
|
|
"sha256": "37bd725271aa94d19415742a3c354de2249a427ebe388013b1ad09f471bb1806",
|
|
"unchanged_since_demo8078": true
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "92bc6c1692235e7042cb6af5b911548eff7817856b471107f852a8ab28db721d",
|
|
"unchanged_since_demo8078": true
|
|
}
|
|
],
|
|
"authority": {
|
|
"new_right_names": [],
|
|
"new_business_writers": 0,
|
|
"inline_links_use_present_menu_as_presentation_hint": true,
|
|
"destination_api_remains_authority": true,
|
|
"stage_history_filtered_in_sql_before_pagination": true,
|
|
"original_audit_records_preserved": true
|
|
},
|
|
"regression": {
|
|
"receipt_form_uses_real_http": true,
|
|
"dom_simulation_not_browser": true,
|
|
"explicit_article_choice_and_revision": true,
|
|
"receipt_count": 1,
|
|
"physical_quantity_milli": 1000,
|
|
"physical_movements": 1,
|
|
"lost_response_statuses": [
|
|
201,
|
|
200
|
|
],
|
|
"new_concurrency_trial": false,
|
|
"additional_open_request_fixture_minor": 100,
|
|
"history_uses_completed_canonical_book_without_commands": true,
|
|
"tables_and_sequences_preserved": 142,
|
|
"prior_suites_not_repeated": true
|
|
},
|
|
"demo": {
|
|
"port": 8079,
|
|
"entry": "http://127.0.0.1:8079/qa/enter/requester?open=1",
|
|
"warehouse": "http://127.0.0.1:8079/qa/enter/validator?open=1",
|
|
"finance": "http://127.0.0.1:8079/qa/enter/issuer?open=1",
|
|
"initial_main_requests": 0,
|
|
"initial_receipts": 0,
|
|
"initial_invoices": 0,
|
|
"initial_obligations": 0
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/purchasing-focus-composition-20261103.json",
|
|
"sha256": "dd5a086443bbf0a0f327b0c2dd2d4d56eb028bd1f1e471bbae236e03048adcbf"
|
|
},
|
|
{
|
|
"file": "docs/proofs/receipt-workspace-completion-20261103.json",
|
|
"sha256": "59bb66df5d5e12f898045669a0ad24664c3d09f2d3ab6cf70f4f13d6a34c6548"
|
|
},
|
|
{
|
|
"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": [
|
|
"DOM-to-real-HTTP validation is functional evidence, not browser rendering, accessibility or visual acceptance.",
|
|
"The lost-response recovery is sequential201/200, not a new concurrency measurement. Existing valid concurrency proofs are retained.",
|
|
"The additional1MZN open request is targeted supplier-picker fixture preparation, not another full order or payable cycle.",
|
|
"Menu visibility controls presentation only; a stale or modified menu cannot grant destination API authority.",
|
|
"Request direct history remains its latest25 own-stage events. Sourcing remains paginated; the dossier keeps independently filtered transversal evidence.",
|
|
"No new React/Vite build: affected UI is served as static ES modules and Blade views. Syntax and served hashes of the affected modules are checked; prior valid React build proof is retained.",
|
|
"Sustained load, visual review, general installation and deployment capacity remain pending."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|