329 lines
14 KiB
JSON
329 lines
14 KiB
JSON
{
|
|
"date": "2026-11-03T13:12:18.925Z",
|
|
"increment": "SGF-INVOICE-TO-PAYABLE-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 72,
|
|
"tests": {
|
|
"integration": {
|
|
"file": "private/receipt-composition-af0847fb5636/obligation-result.json",
|
|
"sha256": "1b7d189fd2c4eeb63d35be85cb16abe1b5083db8680809cbdf6ed44bc578ed49",
|
|
"checks": 35,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"new canonical book starts without payable recognition",
|
|
"bounded list starts empty",
|
|
"procurement and warehouse cannot read payable economics",
|
|
"invalid pagination and unsupported filters refused",
|
|
"actual source award issues order for integrated boundary",
|
|
"original receipt writer supplies accepted invoice source",
|
|
"registration remains separate from recognition",
|
|
"pending document preview exposes missing source without temporary ids",
|
|
"rollback preview leaves financial facts and audit unchanged",
|
|
"pending source capture cannot recognise debt",
|
|
"preparer cannot validate own proposal",
|
|
"another account of same person cannot validate",
|
|
"incomplete source preview exposes refusal without recognising",
|
|
"original validation consumes budget but does not recognise automatically",
|
|
"actual source validation invalidates prior recognition conference",
|
|
"independent sessions preview same explicit source",
|
|
"concurrent same-key preparation returns one commit and one replay",
|
|
"new validated source creates second immutable capture only",
|
|
"distinct recognition preview shows exact principal and unknown maturity",
|
|
"host permission is rechecked after preview",
|
|
"native permission change invalidates conference",
|
|
"audit failure rolls back principal command outbox and native events",
|
|
"competing validators recover after rollback and refuse stale second decision",
|
|
"exactly one canonical100MZN principal with no invented due date",
|
|
"recognition retry revalidates source and produces no duplicate",
|
|
"read position uses same kernel and keeps overdue indeterminate",
|
|
"different command recovers compatible existing responsibility without second debt",
|
|
"recognition does not change invoice stock budget or payments",
|
|
"server filters and pagination return authorised document only",
|
|
"independent evidence pages do not load entire financial universe",
|
|
"unknown or foreign document id exposes no financial evidence",
|
|
"workspace screen served without browser automation",
|
|
"unmapped unit cannot reuse source or preview",
|
|
"session context regeneration invalidates old preview",
|
|
"one immutable recognition event despite concurrency and retries"
|
|
],
|
|
"preparation_statuses": [
|
|
200,
|
|
201
|
|
],
|
|
"validation_statuses": [
|
|
201,
|
|
409
|
|
],
|
|
"principal_minor": 10000,
|
|
"obligations": 1,
|
|
"due_on": null,
|
|
"financial_sources_unchanged": true,
|
|
"same_native_authority": true,
|
|
"automatic_recognition": false,
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"replay_source": {
|
|
"file": "private/receipt-composition-af0847fb5636/obligation-replay.json",
|
|
"sha256": "295bcacb19f4ba599380afaf0074a9d3554b1283f5d267a52c621c14e11a8b15",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"recorded recognition replay rechecks changed source and returns conflict",
|
|
"stale replay preserves one original principal",
|
|
"rollback removes injected validation marker and conflict evidence"
|
|
],
|
|
"probe": "same original native adapter and kernel; rollback-only adversarial audit marker, no original facts changed",
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"boundaries": {
|
|
"file": "private/receipt-composition-af0847fb5636/obligation-boundaries.json",
|
|
"sha256": "62caf086f7c744615579ad67215e2724b67963749f66c21b8829047801699583",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"commercial module cannot inspect purchasing obligation route",
|
|
"invoice screen exposes explicit authorised next step",
|
|
"existing responsibility preview remains rollback-only",
|
|
"changed authorised binding requires fresh conference",
|
|
"source authority identity cannot silently change to a second debt book",
|
|
"new module and binding boundary probes preserve prior valid financial proof"
|
|
],
|
|
"before": "1177fe323cb07fedc0e1b942bfafe30131701916e749f5dec8d3e3895f130baa",
|
|
"after": "1177fe323cb07fedc0e1b942bfafe30131701916e749f5dec8d3e3895f130baa",
|
|
"valid35_checks_not_repeated": true
|
|
}
|
|
},
|
|
"guards": {
|
|
"file": "private/receipt-composition-af0847fb5636/obligation-guards.json",
|
|
"sha256": "96979558a1b31ce3d40d54f76973b93f3fc9c276b78857c4c26880bef6e88610",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"disabled obligation runtime refuses before SQL",
|
|
"disabled obligation preview refuses before validation and SQL",
|
|
"production refuses synthetic obligation workflow",
|
|
"obligation route remains in purchasing: purchasing/obligations",
|
|
"obligation route remains in purchasing: api/purchasing-obligations",
|
|
"obligation route remains in purchasing: api/purchasing-obligations/1/confirm"
|
|
],
|
|
"database_queries": 0
|
|
}
|
|
},
|
|
"navigation": {
|
|
"file": "docs/proofs/obligation-home-20261103.json",
|
|
"sha256": "16a5bb1bed2e40f55a857014ea43fab4d1c53a8a0c823f8ba5555423cbaabc9f",
|
|
"checks": 6,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": 6,
|
|
"names": [
|
|
"obligation view and capability expose link",
|
|
"missing right hides link",
|
|
"another unit right cannot expose link",
|
|
"disabled composition hides link",
|
|
"unit selection required",
|
|
"existing order and receipt navigation remains available"
|
|
],
|
|
"source": "resources/js/PurchasingHome.jsx",
|
|
"sha256": "b835535130c04a4ab6b69a4be92cfcd178ea7d2b5bb39bfa3f02ad090b84bcbb",
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"demonstration": {
|
|
"file": "private/receipt-composition-4b781d06bef8/obligation-demo-smoke.json",
|
|
"sha256": "424cf4df38cfdf4732a1d6b15a2e3c1bdc17874e0644e056da9b9dcc4e2cb112",
|
|
"checks": 13,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"main demo starts before order receipt invoice or consumption",
|
|
"invoice access and empty order list match issuer",
|
|
"invoice workspace is live",
|
|
"session exposes explicit invoice composition capability",
|
|
"foreign order stays hidden in live demo",
|
|
"invoice access and empty order list match reviewer",
|
|
"invoice access and empty order list match auditor",
|
|
"invoice access and empty order list match actor",
|
|
"buyer starts with one approved award and no issued main order",
|
|
"invoice access and empty order list match validator",
|
|
"warehouse waits for actual main order",
|
|
"served invoice script matches delivery",
|
|
"demo smoke leaves business and budget evidence unchanged"
|
|
],
|
|
"before": "a717287d07318e5ef3a9f17dcd74c901debb0c16d38009f1413279897ab408be",
|
|
"after": "a717287d07318e5ef3a9f17dcd74c901debb0c16d38009f1413279897ab408be",
|
|
"main_orders": 0,
|
|
"invoices": 0,
|
|
"consumptions": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"assets": {
|
|
"file": "private/receipt-composition-4b781d06bef8/obligation-demo-assets.json",
|
|
"sha256": "ac5d3f82db928ad7d7e5e1a2bc966b8ddd23eba73a7b73dfec30fe633c5c51d5",
|
|
"checks": 3,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"private frontend build succeeds",
|
|
"served built assets match private build",
|
|
"obligation module is served through private static whitelist"
|
|
],
|
|
"assets": [
|
|
"assets/app-BYao6bqZ.js",
|
|
"assets/app-BLSNCrO7.css"
|
|
],
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ObligationController.php",
|
|
"sha256": "347e629306d6c1f4873afac547d13fae8ade7b268906d1312a64e7eb6998e701"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/InvoiceController.php",
|
|
"sha256": "6812feb996507d204affd2a61945836cdc2db5fb8a21c585b899ec49bed142e6"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
|
|
"sha256": "9b426476b2805094fb317cc753385ef43882fb4964883e880eac287eed89d9e0"
|
|
},
|
|
{
|
|
"file": "app/Modules/Identity/Services/IdentityWorkflow.php",
|
|
"sha256": "28a075a5819181ebd07c45066c4272f15a38bd532d4df0bd7ba0b7886b2d9bf0"
|
|
},
|
|
{
|
|
"file": "app/Shared/Context/ModuleNavigation.php",
|
|
"sha256": "aaa806cb149a8dea5788daba51b87fe74dd8fd23e1ac5abb323f5f40636c785e"
|
|
},
|
|
{
|
|
"file": "config/common-payables.php",
|
|
"sha256": "d14d1a5a27587a7d57a2518bf95e2f17ed103755bd966f2f1bbfaae937827766"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "6b1c10761f8c85aec0f556a32092c271e0891633af7e5a6f6bd3e79a3555665e"
|
|
},
|
|
{
|
|
"file": "routes/web.php",
|
|
"sha256": "1536cea60224a3d9770d4bbcd3a58fa1db977326ac786b6b83676a34a0a94ab9"
|
|
},
|
|
{
|
|
"file": "resources/js/PurchasingHome.jsx",
|
|
"sha256": "b835535130c04a4ab6b69a4be92cfcd178ea7d2b5bb39bfa3f02ad090b84bcbb"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-invoice-workspace.blade.php",
|
|
"sha256": "e359ab81d73ddcbf80117a6f3f1ec6b493da90c60cd2b42bf3648322baf47841"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-obligation-workspace.blade.php",
|
|
"sha256": "72153d1b3756447bd6a9cbd739c41e5abd1602c09974300e971624e0a1df6d3e"
|
|
},
|
|
{
|
|
"file": "public/supplier-obligation-workspace.mjs",
|
|
"sha256": "eeb450e38dad72d9c38538ed363202d0a6cfcec466c61171028108f1bc243837"
|
|
}
|
|
],
|
|
"shared_writer_sources": [
|
|
{
|
|
"file": "packages/payables/src/Payables.php",
|
|
"sha256": "ed853f3eb48ebcf91f51a8fe9ed8e49b0e1bc30cce4852cc9394d51cff28c74d"
|
|
},
|
|
{
|
|
"file": "packages/payables/src/PayablesSchema.php",
|
|
"sha256": "5774c24dbe2b6c06a7e51b359eaad88aee7fc99df2640f687b3065eaa03776d4"
|
|
},
|
|
{
|
|
"file": "packages/payables/src/ReceiptReader.php",
|
|
"sha256": "ed4e153d539ad660f9b87c44d70b14166dbb7262bc9aa5d81b71559a8c80999e"
|
|
},
|
|
{
|
|
"file": "packages/payables/src/HistoricalPayments.php",
|
|
"sha256": "c55d3e67a8bad469184d664f7739a97af7121d685315c6d55f90d08355c632f0"
|
|
},
|
|
{
|
|
"file": "packages/payables/src/SupplierSettlements.php",
|
|
"sha256": "1238c8abe950ca9c88746bb020a85392b7e42e8d7e3c8d86f0a5f79015f9ddfe"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"canonical_authority": {
|
|
"native_book": true,
|
|
"imported_host_mirror": false,
|
|
"source_instance": "same qa-stock-ledger identity as original native provisioning",
|
|
"principal_minor": 10000,
|
|
"obligations": 1,
|
|
"recognition_events": 1,
|
|
"due_on": null,
|
|
"payments_created": 0,
|
|
"additional_stock_or_budget_effect": false,
|
|
"ledger_posted": false
|
|
},
|
|
"demo": {
|
|
"port": 8071,
|
|
"approved_award_prepared": true,
|
|
"main_orders": 0,
|
|
"receipts": 0,
|
|
"invoices": 0,
|
|
"proposals": 0,
|
|
"obligations": 0,
|
|
"preparer_url": "http://127.0.0.1:8071/qa/enter/issuer?open=1&obligations=1",
|
|
"reviewer_url": "http://127.0.0.1:8071/qa/enter/reviewer?open=1&obligations=1"
|
|
},
|
|
"qa_rights": [
|
|
"purchasing_obligations.view",
|
|
"purchasing_obligations.prepare",
|
|
"purchasing_obligations.validate"
|
|
],
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/supplier-invoice-composition-20261103.json",
|
|
"sha256": "70faa647b0dac43f6d1b0111124b5451851dfd730148b10864e7f432914eecec"
|
|
},
|
|
{
|
|
"file": "docs/proofs/geography-composition-20261103.json",
|
|
"sha256": "2f181320e2cc01095266d64f660b1e28697cb1e44529b89357fbfb21ab436a9e"
|
|
},
|
|
{
|
|
"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": [
|
|
"The35 integration checks preceded the added module-ownership rule; the6 later boundary checks verify the changed routing and preserve all financial evidence, without repeating the valid suite.",
|
|
"Changed-source replay is tested with the same native adapter/kernel using an injected duplicate validation audit inside a rollback-only transaction. It is an adversarial fixture, not another business validation.",
|
|
"Current native schema provisioning uses the current native project; runtime uses the previously tested frozen bundle. No general deployment compatibility is inferred.",
|
|
"Due date and overdue remain unknown. Recognition does not activate payment, history import, reconciliation, ledger or fiscal issuance.",
|
|
"Index uses server filters/pages25; evidence uses independent pages25 and current-state comparison reads only the latest capture. No sustained-load capacity conclusion.",
|
|
"The demonstration starts from an approved native award. Earlier request/sourcing/geography demonstrations remain separate fixtures, not falsely presented as one upgraded installation.",
|
|
"Visual review and production configuration, least-privilege installation and deployment capacity remain pending."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|