201 lines
9.1 KiB
JSON
201 lines
9.1 KiB
JSON
{
|
|
"date": "2026-11-03T19:58:28.833Z",
|
|
"increment": "SGF-STOCK-COMPOSED-SOURCE-QA-v1",
|
|
"passed": true,
|
|
"functional_code": true,
|
|
"checks": 41,
|
|
"tests": {
|
|
"integration": {
|
|
"file": "private/receipt-composition-306efac9b54b/composition-stock-result.json",
|
|
"sha256": "d34dc4f24658a9ee60b22454133901e312a61a7ee69242f66cb14701ad1a74a3",
|
|
"checks": 31,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"composed stock starts with a genuine empty physical book",
|
|
"purchasing authority does not grant stock access",
|
|
"stock endpoint refuses Purchasing module context",
|
|
"another unit cannot inherit the source binding",
|
|
"foreign warehouse explicitly refused",
|
|
"page bounds and unknown filters rejected",
|
|
"stale HTTP context refused before source observation",
|
|
"catalogue uses bounded pages100 and remainder",
|
|
"pages25 cover the same tenant catalogue once without foreign articles",
|
|
"search preserves literal wildcard semantics",
|
|
"only explicitly mapped warehouse is visible",
|
|
"original receipt preview has no physical effect",
|
|
"original receipt confirmation creates exactly one native movement",
|
|
"receipt replay remains idempotent across the integration",
|
|
"new native movement invalidates an earlier stock snapshot",
|
|
"Stock reads the exact canonical receipt movement and rational quantity",
|
|
"stock projection exposes no raw document or financial snapshot",
|
|
"Stock derives physical balance without inventing availability or another writer",
|
|
"renewed session context invalidates prior pagination token",
|
|
"revoked stock grant is rechecked on every page",
|
|
"incompatible tenant warehouse mapping returns unavailable rather than a zero balance",
|
|
"valid private mapping recovers without changing the book",
|
|
"source authentication failure is generic and does not expose credentials",
|
|
"source authentication recovers with original profile",
|
|
"technical reader refuses DELETE outside its capability: stock_movements",
|
|
"technical reader refuses SELECT outside its capability: FROM",
|
|
"technical reader refuses SELECT outside its capability: FROM",
|
|
"technical reader refuses SELECT outside its capability: FROM",
|
|
"new QA append-only trigger preserves revision assumptions",
|
|
"Stock read does not acquire the native tenant writer mutex",
|
|
"integration leaves one receipt/movement and creates no invoice debt or payment"
|
|
],
|
|
"same_native_book": true,
|
|
"receipts": 1,
|
|
"movements": 1,
|
|
"physical_milli": 1000,
|
|
"catalogue_rows": 103,
|
|
"page_sizes": [
|
|
25,
|
|
100
|
|
],
|
|
"new_permission_names": [],
|
|
"visual_review": false,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"demo": {
|
|
"file": "private/receipt-composition-f9cc0b003f44/composition-stock-demo.json",
|
|
"sha256": "cc391717feafb476003d7cea912a2cc09693e2d610ecc683c16f1137a453e47f",
|
|
"checks": 10,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"new demonstration begins without main operations or physical movements",
|
|
"existing SGF React shell is served in explicit Stock context",
|
|
"served existing React bundle matches the local manifest",
|
|
"same existing Stock reader observes the new empty source without inventing balances",
|
|
"existing session API exposes only the explicit QA stock grant",
|
|
"host authority lock contention fails boundedly with unavailable",
|
|
"read recovers after host authority lock release",
|
|
"direct adapter refuses disabled before accessing a source",
|
|
"direct adapter refuses production before accessing a source",
|
|
"demo reads preserve source metadata movements audit and grants"
|
|
],
|
|
"before": "5cc47d46df72483fd340e074302ec914e9415a514e111ed9bd1e3a999f9133a5",
|
|
"after": "5cc47d46df72483fd340e074302ec914e9415a514e111ed9bd1e3a999f9133a5",
|
|
"direct_guard_probes": 2,
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Inventory/CompositionStockRead.php",
|
|
"sha256": "cf4a954c460226d58ae8478a23f26744b39affa12054b6299e1958488a411788"
|
|
},
|
|
{
|
|
"file": "app/Modules/Inventory/StockReadController.php",
|
|
"sha256": "fd02da1a69f76bf1412f86f43095a0a476de49fbb7d2676a51fe3b29ec66e298"
|
|
},
|
|
{
|
|
"file": "config/receipt_qa.php",
|
|
"sha256": "2dcfe6d9d25c7c467c22e2ea691cb7b71502bdb2b5967504e1b503446dc71cc0"
|
|
}
|
|
],
|
|
"unchanged_authority_and_ui": [
|
|
{
|
|
"file": "resources/js/StockReadWorkspace.jsx",
|
|
"sha256": "ab29ffa445cfd68f5a9a2542dd4c375bff38e9f9a28cbf1cc033c3ceb76ea7e4"
|
|
},
|
|
{
|
|
"file": "resources/js/StockMenuWorkspace.jsx",
|
|
"sha256": "ddef528851f6c3ab19fa8c5b3a459d6bfb157df81616810cd7da2f049aebe6a4"
|
|
},
|
|
{
|
|
"file": "resources/js/app.jsx",
|
|
"sha256": "48ebe87adaace5a91db105ae21088990d3636209bd3854545bad0e3a5a6d7c79"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
|
|
"sha256": "9b426476b2805094fb317cc753385ef43882fb4964883e880eac287eed89d9e0"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "0226b354db20a0eab19598ff35dbb35e0fa7f117de0c477e0b870159024d49df"
|
|
},
|
|
{
|
|
"file": "packages/inventory-read/bootstrap.php",
|
|
"sha256": "65cba0924869ba93afa00a4786b361ad71d5c2e67bd021b3d1fda172b1190476"
|
|
},
|
|
{
|
|
"file": "packages/inventory-read/src/InventoryReader.php",
|
|
"sha256": "9b0591600da07719d655324ccf0b740f06de07db2806540684c9730d048e44b6"
|
|
},
|
|
{
|
|
"file": "packages/inventory-read/src/InventoryReadSession.php",
|
|
"sha256": "e5ea1ec6771e34478367218d73ba1d1d90464ddc87d1c5fa3d679622ffb81111"
|
|
},
|
|
{
|
|
"file": "packages/inventory-write/src/ReceiptMovementWriter.php",
|
|
"sha256": "279cec2ec915e27cf431355fca1e36f21cb3c15a77d02834723a41ec7a6f8f40"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"behaviour": {
|
|
"same_native_receipt_book": true,
|
|
"no_balance_copy": true,
|
|
"separate_select_only_source_role": true,
|
|
"no_native_writer_mutex_on_read": true,
|
|
"shared_host_authority_locks": true,
|
|
"append_only_trigger_only_in_new_qa_books": true,
|
|
"snapshot_bound_to_session_context": true,
|
|
"explicit_warehouse_mapping": true,
|
|
"default_disabled": true
|
|
},
|
|
"demo": {
|
|
"port": 8083,
|
|
"entry": "http://127.0.0.1:8083/qa/enter/validator?module=stock&open=1",
|
|
"navigate": "Stock > Existências",
|
|
"initial_main_requests": 0,
|
|
"initial_receipts": 0,
|
|
"initial_movements": 0
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/obligation-evidence-workspace-20261103.json",
|
|
"sha256": "fa510ee89931c34d6d9483a6d8f362055a953567f2087ebb1c97ad6bb4c2e117"
|
|
},
|
|
{
|
|
"file": "docs/proofs/stock-receipt-link-20261102.json",
|
|
"sha256": "b763ab326abf49271d16b32d22f01a8a8d31d1ab015141e42dcf5963ee914143"
|
|
},
|
|
{
|
|
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
|
|
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
|
|
}
|
|
],
|
|
"preservation": {
|
|
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
|
|
"new_permission_names": [],
|
|
"existing_qa_right": "stock.view",
|
|
"target_database_connected": false,
|
|
"protected_six_records_changed": false,
|
|
"blocked_cache_cleared": false,
|
|
"previous_demo_data_written": false,
|
|
"real_grants": false,
|
|
"publication": false,
|
|
"checkpoint": false
|
|
},
|
|
"limitations": [
|
|
"One minimal request/sourcing/order setup supplies the changed receipt-to-Stock boundary. Earlier suites are reused, not counted or repeated.",
|
|
"31 integration assertions and10 demo/guard assertions; two guards invoke the adapter directly and do not measure middleware.",
|
|
"The first integration attempt stopped on a denial-status assertion: module isolation returned409 before the stock permission check. The completed source order was reused; no second order was issued.",
|
|
"Existing Stock React UI, navigation and shared reader are unchanged; served asset checks are not visual review.",
|
|
"Tenant catalogue is tenant-wide; movements and warehouses are restricted to the explicitly mapped warehouses.",
|
|
"Only physical quantities are supplied. Available/reserved/blocked quantities, valuation, costing, financial effects and direct document access are not added.",
|
|
"Append-only SQL trigger and existing stock.view grant apply only to fresh QA fixtures. No target schema or installed operational binding was changed.",
|
|
"No sustained load, deployment compatibility or deployment capacity claim follows from these tests."
|
|
],
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|