Thu 16 Apr 2026 06:00:06 AM UTC [*] -------------- Latest commits: commit ad583cea9dc61de86e2b2c67872c91a36f25948d Merge: 498fa8ef7b bf12d89edf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:52:52 2026 -0400 Merge branch 'NewOrderBloc' into dev commit bf12d89edf4f7b3eb21139a95b9fc071ba4ca542 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:48:28 2026 -0400 docs(phase-4): update Step 5/6 status — lib/features/ + lib/core/ fully typed, Step 6 DONE commit bfd402912cd752e7ee2d9eae592ab76430ab86b8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:47:01 2026 -0400 refactor(error): Phase 4.5 — migrate ALL remaining 29 untyped throws in lib/core/ to typed AppException commit 36a3a154450399589bef43badf8fe32c3c714cf2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:37:56 2026 -0400 refactor(error): Phase 4.5 — migrate 36 untyped throws in core/data/sources/remote to typed AppException commit 17b773c17698bc3b1fe384fc52923a69a021d2de Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:33:03 2026 -0400 refactor(error): Phase 4.5/6 — eliminate ALL untyped throws in lib/features/ (~50 sites across 24 files) commit c0bf26d8e0c29828fb10b66386cf1ff4416127aa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:23:48 2026 -0400 refactor(error): Phase 4.6 — migrate 21 throw Exception() to typed AppException in create_order_reason, discount_clients_cubit, location_remote_source commit 5a347f0adda8952589e190c0a7d034a3fee49538 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:15:49 2026 -0400 refactor(error): Phase 4.6 — migrate remaining 4 throw Exception() in terminal to typed AppException commit cac0c4bc6c9c19806448b570dbf8be5e4af8aed0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 22:08:38 2026 -0400 refactor(error): Phase 4.6 — migrate all terminal bloc bare string throws to typed AppException (~20 sites) commit 498fa8ef7b99c3f2905a1ef2cd9fb39638570606 Merge: bb590d87e7 3038daed93 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:57:33 2026 -0400 Merge branch 'NewOrderBloc' into dev commit 3038daed93cd9a862e2d9769dd35651b5e872502 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:45:48 2026 -0400 refactor(error): Phase 4.7 — migrate final 3 bare string throws in core/usecases to typed AppException commit f064507ba24ba2d79103eaf493547b347e64cdda Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:38:57 2026 -0400 docs(master): refresh Phase 2/6 status in MASTER_STABILIZATION_PROMPT.md commit 8b357fb5cdff082093e43a05ff011b3f219ba866 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:31:29 2026 -0400 refactor(terminal): remove _executeFiscalWithTimeout wrapper — callers use FiscalTimeoutExecutor.run directly commit c668e5f90faa87408cf4e550e2ec36bd90013d15 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:29:13 2026 -0400 refactor(terminal): remove _isSemiIntegrationDevice wrapper — callers use top-level helper directly commit 77f365aa37e22c918182594afab6cf87b41e2de2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:25:23 2026 -0400 chore(test): clean up 4 pre-existing analyzer warnings in test/ commit 8bd858684ce7c59094e03dd1e015ac15d33c0da0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:24:00 2026 -0400 chore(deps): Phase 6 Step 0 — remove unused flutter_driver dev dependency commit c912b5cd40230ac8d8fafdd3dc5f4fa2f01ce1e7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:14:08 2026 -0400 docs(phase-6): Step 0 audit — test infrastructure inventory + deferred pubspec items commit f720b87274d35b1ff037a0a1ddc5b7715bc66b42 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:09:51 2026 -0400 docs(phase-4): Step 0 audit — error landscape snapshot post Steps 1-7 commit 1c8ed216f1a816d586ef1b523dba76863ee63519 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:04:29 2026 -0400 docs(phase-5): Step 0 baseline audit — module-boundary violation counts commit b489db83b8e9a7ae7855ceb411af6f6288279994 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:55:39 2026 -0400 docs(phase-3): mark Step 0 audit DONE (captured in existing Current State section) commit d7f0685d3724dbce6cff35035b79fc5d4c8b4c90 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:46:57 2026 -0400 test(terminal): Phase 2.10 increment 21 — backfill findActiveAutogratuityDetail + shouldRouteSlipFlowToCustomerScreen tests commit b75bd4f0ddcbcaaedfdb9245e4c8cc5274f114cc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:37:54 2026 -0400 refactor(terminal): Phase 2.9 increment 19 — extract FiscalReportService.resolveIsOriginalOrderFiscalized commit 42c47dd78bfba76fdb6b6f3701bd9a2094696512 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:34:18 2026 -0400 refactor(terminal): Phase 2.9 increment 18 — extract _encodePaymentDataOrNull bloc helper commit de50db94ffbe5f777bcfd03fed02b952183333fb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:30:16 2026 -0400 refactor(terminal): Phase 2.9 increment 17 — extract _applySalePaidLoyaltyRemoval bloc helper commit bb590d87e726b25a6d215cdc557efa1d9cf42629 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:45:48 2026 -0400 refactor(error): Phase 4.7 — migrate final 3 bare string throws in core/usecases to typed AppException commit 4d84116a1028dca0f8202e3e5ed8f91e4d890b45 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:38:57 2026 -0400 docs(master): refresh Phase 2/6 status in MASTER_STABILIZATION_PROMPT.md commit b64059ef67b0bbac5cf2542c90f3b73008978616 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:31:29 2026 -0400 refactor(terminal): remove _executeFiscalWithTimeout wrapper — callers use FiscalTimeoutExecutor.run directly commit a66d3d92e8e97f426afdbacf8ee2b6518f0013a3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:29:13 2026 -0400 refactor(terminal): remove _isSemiIntegrationDevice wrapper — callers use top-level helper directly commit fb39d4c39f6d9a6bf48c45717a9270eb9f98683f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:25:23 2026 -0400 chore(test): clean up 4 pre-existing analyzer warnings in test/ commit 307b55ced31c414149a290cca187a58b3f995d43 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:24:00 2026 -0400 chore(deps): Phase 6 Step 0 — remove unused flutter_driver dev dependency commit 6780c9894278a489a1dd6c1ac43c547791718328 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:14:08 2026 -0400 docs(phase-6): Step 0 audit — test infrastructure inventory + deferred pubspec items commit 81c68e0bd6ad27106795faaff3b3abfbf1457e0a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:09:51 2026 -0400 docs(phase-4): Step 0 audit — error landscape snapshot post Steps 1-7 commit 7d547e52a58cd4313ab73eb12d9bba71b4c86a9e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 21:04:29 2026 -0400 docs(phase-5): Step 0 baseline audit — module-boundary violation counts commit 0d7bd28686ff71e0c7c76a8f664ef97e95440795 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:55:39 2026 -0400 docs(phase-3): mark Step 0 audit DONE (captured in existing Current State section) commit 7e18bbc93a232cb5638b56058dc84c743ceebcc8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:46:57 2026 -0400 test(terminal): Phase 2.10 increment 21 — backfill findActiveAutogratuityDetail + shouldRouteSlipFlowToCustomerScreen tests commit c48847ff4bc7f2d5edcb5fe7ba1c056bc632c63f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:40:21 2026 -0400 refactor(terminal): Phase 2.9 increment 20 — wire extractClosingBatchData into _closeShift commit eabfd5cf1b76c649824854c87dec7e9e97888487 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:37:54 2026 -0400 refactor(terminal): Phase 2.9 increment 19 — extract FiscalReportService.resolveIsOriginalOrderFiscalized commit 412729f466efe6bead5c45a3054ef44fa86e4996 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:34:18 2026 -0400 refactor(terminal): Phase 2.9 increment 18 — extract _encodePaymentDataOrNull bloc helper commit 5a1fc834f8f9859bad5648745a256cada964667d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:30:16 2026 -0400 refactor(terminal): Phase 2.9 increment 17 — extract _applySalePaidLoyaltyRemoval bloc helper commit 1d5357956159063efd07790d5671cb6f7a311916 Merge: a04ef0bd7c bf9fb5af4b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:27:58 2026 -0400 Merge branch 'NewOrderBloc' into dev commit bf9fb5af4bbf861ea3617be12fe9f02975c1784f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:24:12 2026 -0400 docs(terminal): Phase 2.11 increment 2 — catalog increments 3-16 in AGENTS.md commit 8e5c74af6355fb852786317737148d65daef93da Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:23:07 2026 -0400 refactor(terminal): Phase 2.9 increment 16 — wire resolveCustomerScreenTargetWpid into _sendFailedMessageToSocket commit ac4e65475663efb793756d7500a3021f1eaa4313 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:17:41 2026 -0400 refactor(terminal): Phase 2.9 increment 15 — extract _resolveDeviceNotConfiguredSuffix bloc helper commit b0bc9556ef1fa6bac2b7c775e5aa6795701b8e05 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:15:29 2026 -0400 refactor(terminal): Phase 2.9 increment 14 — extract _applyReversalLoyaltyAdjustment bloc helper commit 1e1f818891023aa2c090f39287bcb3fcfe91bae7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:13:02 2026 -0400 refactor(terminal): Phase 2.9 increment 13 — extract closeDOrderFromPriceTypes commit 1cb6ccc94074c2e5c4191d3ebf7bdf0464cce1ff Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 20:04:53 2026 -0400 refactor(terminal): Phase 2.9 increment 12 — wire applyPaymentDataSaleInfoTo into _payByCard commit c9d86d4f46616e8ba3de4c64d02bdf3283c701c2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:58:43 2026 -0400 refactor(terminal): Phase 2.9 increment 11 — extract applyPaymentDataSaleInfoTo commit e28df0de1d26715defcbd34984debe3afeea617b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:55:30 2026 -0400 refactor(terminal): Phase 2.9 increment 10 — extract buildReverseDiscount commit dbd6325930e9e0613e34503747bdd5536d2585a5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:53:02 2026 -0400 refactor(terminal): Phase 2.9 increment 9 — wire shouldRouteSlipFlowToCustomerScreen into void/refund services commit 0af4a1333f13a2fc82d6ccaaf1c586ee5628ee31 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:51:19 2026 -0400 refactor(terminal): Phase 2.9 increment 8 — extract isPaymentFullyReversed commit 42ee5a8e40b2447320c153ea028f722366b09f43 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:47:17 2026 -0400 refactor(terminal): Phase 2.9 increment 7 — wire shared helpers into void/refund services commit 714c6349cd7fcb64e77252171e717b88d0d04621 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:45:08 2026 -0400 refactor(terminal): Phase 2.9 increment 6 — extract buildSplitModelFromSplitCheck commit ad9d02c8807c161baf373d98e15ed3be9de9f1b3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:39:27 2026 -0400 refactor(terminal): Phase 2.9 increment 5 — extract resolveCustomerScreenTargetWpid commit f580f5959048d6a733f913d2ce5d0827ebef136a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:37:34 2026 -0400 refactor(terminal): Phase 2.9 increment 4 — extract selectNextStepCfdCommand commit f5196cf84bc39e58b4d66f34949ff747fce5f6cf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:31:27 2026 -0400 refactor(terminal): Phase 2.9 increment 3 — promote paymentLoadingScreenTimeoutSeconds to terminal_utils commit 313bdb8f636ec26db28156b5c2386a61bab813f3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:25:15 2026 -0400 chore: delete 5 entirely-commented-out dead files commit b7bdbbfceef3e61df134d7ee83c17c42a0f67a4f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:20:10 2026 -0400 refactor(module-boundaries): Phase 5.3.1.10 — drop checkout_exports from 2 test files (extension_utils_test, checkout_math_test) commit 688106489805acf090a9f6a535d65c9fbcfdce77 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 19:10:43 2026 -0400 refactor(module-boundaries): Phase 5.3.1.9 — eliminate checkout_exports from entire lib/ (19 remaining files) commit 1006da83c09cf289275e5072d886de8d0ec031c9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 18:43:25 2026 -0400 refactor(module-boundaries): Phase 5.3.1.8 — all lib/features/ free of checkout_exports (final 9 files) commit 8f46f2c8a1ee821f686da8db6203a44837115005 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 18:31:59 2026 -0400 refactor(module-boundaries): Phase 5.3.1.7 — finish order_checkout/new_aptito/ subtree (12 files) commit 271295dc151a91b3fe47c7e060b5d2caa1a5f6c6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 18:17:14 2026 -0400 refactor(module-boundaries): Phase 5.3.1.6 — finish order_checkout/taylor/ subtree (8 more files) commit 63c211d77be2f11f509e331228bd079f58fd16e4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 18:05:02 2026 -0400 refactor(module-boundaries): Phase 5.3.1.5 — drop checkout_exports from 7 small taylor/aptito widgets commit c6d03a55cd5c5a8f88225e5beb9f7471d8e830cd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 18:00:11 2026 -0400 refactor(module-boundaries): Phase 5.3.1.4 — finish order_checkout/new_paloma_updated/ subtree (15 files) commit 72f9582bb3013401913a8a217673c7e057c82b36 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 17:39:49 2026 -0400 refactor(module-boundaries): Phase 5.3.1.3 — finish order_checkout/leaf/ subtree (5 more files) commit 47300ad9ebcae2df78ed2921b0270536569f633d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 17:30:02 2026 -0400 refactor(module-boundaries): Phase 5.3.1.2 — drop checkout_exports from 4 more leaf checkout files commit 377b8d3c55b1c089230d4ca079c72be00b74e194 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 17:21:36 2026 -0400 refactor(module-boundaries): Phase 5.3.1.1 — drop checkout_exports from 2 leaf checkout files commit 0af61b1aaa1d1829c40cd540d1214ff10a009180 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 17:15:50 2026 -0400 refactor(module-boundaries): Phase 5.2.13 — drop checkout_exports from app_router.dart (last core file) commit 4656c4003011ebc95218f7df6ebb8fd186de46f2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 16:32:44 2026 -0400 refactor(module-boundaries): Phase 5.2.12 — drop checkout_exports from core/data (6 umbrellas + 20 parts) commit 257a80c2e3fc6015404466438b76577717aacef3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 16:23:50 2026 -0400 refactor(module-boundaries): Phase 5.2.11 — drop checkout_exports from remaining 11 usecase files commit bc2d173b757bd65a22c90fdb24c8f4e717b8e63c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 16:15:33 2026 -0400 refactor(module-boundaries): Phase 5.2.10 — drop checkout_exports from 4 part-file usecase umbrellas commit 37b65f2f16c68c3190ae2d644b7818869ef28cae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 16:07:56 2026 -0400 refactor(module-boundaries): Phase 5.2.9 — drop checkout_exports from 3 usecase files commit 7655102ee6b40eef3386a1da9777596b3c264428 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 16:02:51 2026 -0400 refactor(module-boundaries): Phase 5.2.8 — drop checkout_exports from app_router_guards + dio_client commit 11abcb9839ac744e870a5452653d4949f8005aab Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:59:06 2026 -0400 refactor(module-boundaries): Phase 5.2.7 — drop checkout_exports from core/models + local_server/model + validation (6 files) commit 68859a86c4bdaef4d1da7f0a162fc18bab96b88e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:54:11 2026 -0400 refactor(module-boundaries): Phase 5.2.6 — drop checkout_exports from 5 core/components files commit 3ef747c64fba1aa82550e614957b118855f9f47d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:50:47 2026 -0400 refactor(module-boundaries): Phase 5.2.5 increment 3 — drop checkout_exports from table_utils + navigation_utils (row DONE) commit 430f775e3cc8e101f18b4f9573451b89c4304e84 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:48:17 2026 -0400 refactor(module-boundaries): Phase 5.2.5 increment 2 — drop checkout_exports from 6 more core/ files commit e29083210d7f7c88c48e816119c631b731eca499 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:42:59 2026 -0400 refactor(module-boundaries): Phase 5.2.5 increment 1 — drop checkout_exports from 5 core/ files commit 7327fad16ba120b00b294b6e9141730a1c1d6fed Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:38:58 2026 -0400 refactor(terminal): Phase 2.1 increment 8 — inline newDOrderTaxes loop as map().toList() commit 5009ca09e0b2e5101b37dbd2930998bc1c9c1f68 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:37:24 2026 -0400 refactor(terminal): Phase 2.5 increment 4 — requiresDocCloseAfterSale helper commit 06c324e06614d3e295c68dc3e30383ea16905aac Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:35:43 2026 -0400 refactor(terminal): Phase 2.4 increment 7 — findActiveAutogratuityDetail (dedup cash + card) commit 73df5740bbd164532eb4d6297f99c441ad575402 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:33:40 2026 -0400 refactor(terminal): Phase 2.4 increment 6 — computeMaxDiscountAmount + mergeFeeTaxesInto (dedup cash + card) commit 234a4607635a45a996decaa1b5b734d42a5d2162 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:30:15 2026 -0400 refactor(terminal): Phase 2.4 increment 5 — applyPostCloseDOrderMutations + shouldUnmergeTables (dedup cash + card) commit 8fee4abbaa5abba1b119a292278578cf9865a0a0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:28:11 2026 -0400 refactor(terminal): Phase 2.7 increment 5 — dedup isActiveLoyaltyRewardDiscount across 6 handlers commit 413b85f78b65728bf95e2fc8b0d79b7560a9d04c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:25:33 2026 -0400 refactor(terminal): Phase 2.4 increment 4 — PaymentCashService.applyPostPaymentPrintedStatus (dedup cash + card) commit f2f32d953e583ef59ef3fd1963d881b973cc842c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:21:35 2026 -0400 refactor(terminal): Phase 2.4 increment 3 — PaymentCashService.sumCashDiscountPaid (dedup cash + card) commit b29e93b8bbb7b55699bf25e6d8b22d96e56a0ed7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:18:09 2026 -0400 refactor(terminal): Phase 2.7 increment 4 — remove dead allPositions build in _partialRefund commit 3d07e3e91d136952a26f418d7ef0c12d5f8d9a35 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:14:44 2026 -0400 docs(terminal): Phase 2.11 increment 1 — AGENTS.md catalog of extracted pure helpers commit 4193d7f0fde1b85ecf2b41f0dfa7fe247631acec Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:12:04 2026 -0400 refactor(terminal): Phase 2.7 increment 3 — requiresPartialVoidBatchCheck helper commit bf7aeef41791fa655d7460886f72f637f9bf1500 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:10:42 2026 -0400 refactor(terminal): Phase 2.7 increment 2 — promote shouldRouteSlipFlowToCustomerScreen, reuse in _partialRefund commit 2277018cf10328e8295d01cbbafd079503524955 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:07:51 2026 -0400 refactor(terminal): Phase 2.6 increment 2 — shouldRouteAdjustTipsToCustomerScreen + mark Steps 1 and 8 commit 2b3b408aee66554e7a5f6e40767e36661f1082f1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:05:20 2026 -0400 refactor(terminal): Phase 2.7 increment 1 — dedup buildDeviceNotConfiguredErrorSuffix across 3 handlers commit 2ebc28f0d5fdfeb62c20fdb6c18c2864b8fb3e52 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:02:54 2026 -0400 refactor(terminal): Phase 2.5 increment 3 — PaymentCardService tip-id helpers commit ad4d78372ec9db8d891ea902ad7da6f33a7656a6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:01:22 2026 -0400 refactor(terminal): Phase 2.5 increment 2 — reuse FiscalReportService.classify in _payByCard commit 5b639e8e80a97b17dbe4cdd0e51be2f21af1b182 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 15:00:04 2026 -0400 refactor(terminal): Phase 2.5 increment 1 — PaymentCardService.validatePaymentDevice + reuse splitPaidSumsByPriceType commit 46dc0c881affc4e526f38873fce96af9ffa5b0e5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:57:21 2026 -0400 refactor(terminal): Phase 2.4 increment 2 — PaymentCashService.splitPaidSumsByPriceType commit e29b35743cd547c27b5f28100d7c62c7ada9e4cc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:55:41 2026 -0400 refactor(terminal): Phase 2.4 increment 1 — reuse FiscalReportService.classify + PaymentCashService.computeLoosedCashDiscount commit effe2eb9e5a63e8388dd919213c738e23ab0e697 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:49:04 2026 -0400 refactor(terminal): Phase 2.6 increment 1 — AdjustmentTipsService (canAdjustTips + resolveFinalTipAmount) commit 94e76cbc1cf3445c8f69084059e22efe86141eb4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:46:42 2026 -0400 refactor(terminal): Phase 2.9 increment 2 — extract pure isDuplicateTerminalEvent commit 4cd68c41f273beaca8edce8cef2156ec0199c1c4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:45:22 2026 -0400 refactor(terminal): Phase 2.9 increment 1 — dedup isSemiIntegrationDevice into terminal_utils commit 8423fb1fd371ad669d36c7785f24d1b687a30c3f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:41:22 2026 -0400 refactor(terminal): Phase 2.3 increment 1 — reuse FiscalReportService.classify in _closeShift commit 48abcc7e2d7c170325d65b4c714e9cf0a9e5d051 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:39:36 2026 -0400 refactor(terminal): Phase 2.1 increment 7 — TerminalOrderUpdateService.classifyGiftCardIssuance commit 8c314bcb624635eb15b10ee2b8dd9f0a982f3080 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:36:55 2026 -0400 refactor(terminal): Phase 2.1 increment 6 — TerminalOrderUpdateService.shouldIssueGiftCard commit 7f962935f4c107dc042d2e0d25d19ffafb390358 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:35:08 2026 -0400 refactor(terminal): Phase 2.1 increment 5 — TerminalOrderUpdateService.shouldPrintMerchantCopy + shouldSkipKitchenReceipt commit dccc3707e4921ce762f7dbac5dc05c6390deb8d5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:24:59 2026 -0400 refactor(terminal): Phase 2.1 increment 4 — TerminalOrderUpdateService.shouldRouteToTipsStep commit 21508c7567ef2ab593e3337f3156373c99a53747 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:14:36 2026 -0400 refactor(terminal): Phase 2.1 increment 3 — TerminalOrderUpdateService.shouldForceCloseAfterPayment commit 3a553929558027c57a88efe78dd6c11f9eb504f0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 14:04:41 2026 -0400 refactor(terminal): Phase 2.1 increment 2 — TerminalOrderUpdateService.buildDeliveryPaymentMap commit 5f059bd5ce72b8e127a3beea1dbf4ec622e4006d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:57:33 2026 -0400 refactor(terminal): Phase 2.1 increment 1 — TerminalOrderUpdateService.shouldSendOrderOut commit e585d06ae21b9b30ac6e9361cbe7bc9835b8c814 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:48:12 2026 -0400 docs(phase-2): mark Step 2 FiscalReportService DONE Increments 1-5 landed (94e9d4df2f, 1149516d47, e8c8fcc2dd, 54576c771a, d9c3aab542). Optional onSuccess/onError emission classifier in _closeBatch deferred to Step 7 cleanup — remaining handlers are thin (service call + emit) and further extraction belongs with the refund/void cleanup pass. commit d9c3aab5428ae93805cf08616fff6931348f450c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:43:50 2026 -0400 refactor(terminal): Phase 2.2 increment 5 — FiscalReportService.extractClosingBatchData Adds a pure, defensive helper that extracts the provider-specific `closingBatch` sub-map from a `TerminalResult.paymentData`. `_closeBatch` onSuccess now calls it instead of doing an unchecked `paymentData[provider.name]['closingBatch']` index into an IMap. Returns an empty map on any missing / wrong-typed segment. +5 tests. commit 54576c771a5f491d922f174d9c2f35e778eb9b07 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:35:45 2026 -0400 refactor(terminal): Phase 2.2 increment 4 — FiscalReportService.classifyCloseBatchRouting Adds pure `classifyCloseBatchRouting()` returning sealed `CloseBatchRouting` (NoDevice / RedirectToCustomerScreen / ExecuteLocal). `_closeBatch` now delegates the pre-device / customer-screen-redirect decision to the service instead of branching on `DeviceUtils`, `SocketClient`, and `sharedDB` inline. +6 characterization tests. commit e8c8fcc2dd8d21744bd15533f62817b9db2f8b08 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:30:18 2026 -0400 refactor(terminal): Phase 2.2 increment 3 — FiscalReportService.classifyBatchInfo Add pure `classifyBatchInfo()` + sealed `BatchInfoOutcome` (Success/Failure) to FiscalReportService. Wire `_batchInfo` to pattern-match the outcome instead of branching on `TransactionResult` inline. Behaviour preserved. +3 characterization tests. commit 1149516d4772d3932382a842ea6b0557eeb3e102 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:20:44 2026 -0400 refactor(terminal): Phase 2.2 increment 2 — wire FiscalReportService.classify into _runFiscalReport X/Z report handlers now branch on the sealed FiscalReportOutcome from FiscalReportService.classify() instead of a raw success/else check. Behavior is preserved: Success triggers ReportFiscal + completed state; Skipped and Failure share the failed-emit path using fiscalResult.errorText. Dropped @visibleForTesting now that classify() has a production caller. commit 94e9d4df2f69fbec88a8f89d67ffd02a6a3cf5b3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:17:25 2026 -0400 refactor(terminal): Phase 2.2 increment 1 — FiscalReportService skeleton + classify() First extracted slice of terminal_bloc.fiscal.fiscal_reports.dart. Pure `classify(FiscalResult, TFiscalOperation)` maps the raw TransactionKassaResult onto a sealed FiscalReportOutcome so the BLoC handler can pattern-match the three outcomes instead of branching on enum strings inline: - FiscalReportOutcome$Success { operation, fiscalName, paymentData } - FiscalReportOutcome$Skipped { operation, fiscalName } - FiscalReportOutcome$Failure { operation, fiscalName, errorText, errorType } 6 characterization tests pin the current mapping as the regression fence before the BLoC handler is rewired in the next tick: - success → Success with paymentData preserved - success + null paymentdata → Success.paymentData == {} - skipped → Skipped - error → Failure (errorText + errorType preserved) - changeClosed → Failure (current behavior) - sealed switch exhaustiveness Phase 2 Step 2 tracker moved to IN PROGRESS. commit 5bde357fa62dd160933d4e47797c138b8a6b7b46 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:12:34 2026 -0400 Update MASTER_STABILIZATION_PROMPT.md commit 49530160b100484df766e0343cfdba2dcf7ac80d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 13:06:35 2026 -0400 test(stream_exhaust_map): Phase 6 pin exhaustMap semantics 9 regression cases for the ExhaustMapStreamExt.exhaustMap extension: - fast source drops events while async inner stream is alive (documents the actual [10, 30] behavior for Stream.fromIterable + Stream.value, not the intuitive [10, 20, 30]) - single-event source passes through unchanged - explicit async inner stream drops mid-flight source events and recovers on the next after-completion event - output stream closes after both source and inner complete - errors from the inner stream are forwarded (not swallowed) - errors from the source stream are forwarded - broadcast source → broadcast output - single-subscription source → single-subscription output Pins the 'drop source events while busy' contract that the extension replaces RxDart's exhaustMap for. commit 7867f2632f884c5618a51b869351894fb8b9f88b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:56:41 2026 -0400 test(extension_utils): Phase 6 broaden coverage for pure string/object extensions 41 new cases across 7 extension groups on the already-tested extension_utils file: - AptitoCheckoutActionExtension.toName (5 cases including every-value sweep) - StringExtension.nullIfEmptyOrLiteralNull (6 cases) - StringExtension.emptyIfLiteralNull (3 cases) - StringExtension.toUpperCamelCase (6 cases: space/underscore/hyphen separators, existing-caps preservation, empty) - StringExtension.addSQLCondition (4 cases: empty base, AND joining, empty new, both empty) - StringExtension.ifEmpty (2 cases) - ObjectExtension.isNullOrEmpty (9 cases spanning null / empty+non-empty string / list / map / int) - ObjectStringExtension.toEffectiveString (5 cases) Pins the literal-'null' sentinel + whitespace-trimming contract for the nullIfEmptyOrLiteralNull family, which is used heavily by code that migrated from raw JSON payloads. commit 14a7b9c62642e6e5d82e8fd197b697012f659c8a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:47:22 2026 -0400 test(error): Phase 4.8 add retry-eligibility + throwing-contract cases 5 new AppException test cases: - Pattern-matching retry-eligibility: sealed switch classifies network/timeout as retryable and every other subtype as not - Throwing contract: catchable via on-clause for the specific subtype, catchable via on-clause for the sealed base (with runtimeType/code preserved), identity-preserving rethrow Documents the retry pattern the Phase 4 plan promised: ``` bool isRetryable(AppException e) => switch (e) { AppException$Network() || AppException$Timeout() => true, ... }; ``` commit 22c0a3a72dfc98ae505ca6b2a1b0a2310b9d4a06 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:44:55 2026 -0400 docs(master): sync top-level phase status table with real progress Phase 1 → LARGELY DONE (firstWhere fixes complete, try/catch on BLoC handlers PARTIAL, CRUD await DONE, build_context_synchronously PARTIAL). Phase 2 → NOT STARTED (Step 0 audit only). Phase 3 → LARGELY DONE (TOrder/DOrder equality, copy parentid, dedup, AOrder non-mutating sort + appendPayment, DOrder/OrderInfo/AccountData audits landed in GLOBAL_STATE_AUDIT.md). Phase 4 → LARGELY DONE (Steps 1/2/3/4/5 DONE, Step 6 LARGELY DONE with ~95 BLoC sites migrated, Steps 7/8/9 PARTIAL). Phase 5 → IN PROGRESS (Step 3.4 integrations DONE; Steps 2.2/2.3/2.4 barrel-routed; lib/core + lib/devtools + lib/app surface-cleaned; Steps 1/3.1/3.2/3.3/4-7 NOT STARTED). Phase 6 → IN PROGRESS (test batches landed for equality, error helpers, math, terminal util, OrderInfo, address, time formatter). commit f18f231b8778cb2a5df095641c7f7869906fbe9b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:42:09 2026 -0400 docs(error-system): Phase 4.9 write AGENTS.md for lib/core/error/ Canonical rules doc for the typed error hierarchy: - when to throw each AppException subtype (table covering Unauthorized/NotFound/Server/Validation/Conflict/Cache/Network/ Timeout/Cancelled/Unexpected) - the throw-don't-stringify rule with before/after examples - BLoC catch pattern with userMessageFor() helper - ExceptionUtils Sentry-routing rules from Phase 4 Steps 2+3 - what-not-to-do list (no bare Exception('...'), no e.toString() in failure states, no swallowed catch blocks) - cross-links to Phase 4 plan, regression tests, and the canonical logger. Phase 4 Step 9 tracker moved to PARTIAL. commit 2b62b21c1fbc6671abb42165bbe87015efd24ee9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:40:33 2026 -0400 test(extension_utils): add TimeOfDayFormatter.formatToString coverage 4 new cases pin the HH:mm padding contract: - 9:5 → 09:05 (hour+minute padding) - midnight → 00:00 - 23:59 → 23:59 - noon → 12:00 The extension uses DateFormat.Hm() which normally locale-switches, but in tests always renders with the Hm pattern; these cases document the invariant. commit 154ef2a11a6378fd2dc4e20e4b53d41939ddddbb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:37:57 2026 -0400 refactor(module-boundaries): Phase 5.3 drop deep order_list cross-feature imports - support_screen/leaf_help_screen: dropped deep DetailAppBarWidget import (already provided by order_list_public) - table_service/taylor_table_service_screen: dropped deep order_data.dart import (now provided by order_list_public) Widens order_list_public to also re-export OrderData widget from presentation/widgets/taylor/widgets/order_data.dart show OrderData. commit 6ecfa31a5b10e93c2c79203eb1cd305d8a845efe Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:35:14 2026 -0400 refactor(module-boundaries): Phase 5.3 cross-feature widget barrel routing Files: - order/aptito/widgets/stop_list/aptito_stop_list → settings_public show SettingsCuppertinoSwitchTile - location/presentation/screens/timezone_autocomplete_field_screen → inventory_public show InventoryCustomDropdownWidget - leaf_main_screen/widgets/leaf_inventory/tabs/{modifiers,items,categories} → drop redundant deep imports now provided by inventory_public Two feature barrels widened: - settings_public re-exports SettingsCuppertinoSwitchTile - inventory_public re-exports InventoryCustomDropdownWidget, FilterAndSort, InventoryAddNewObjectWidget Also drops a transitively-redundant custom_dropdown_widget import in inventory/.../filter_sort_popup_widget that the analyzer flagged after the inventory barrel widened. `dart analyze lib/` clean. commit b5b15e3d4886e35a7d5362201bb319d81b3c0a99 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:29:11 2026 -0400 refactor(module-boundaries): Phase 5.3 route lib/devtools + lib/app through feature barrels 5 files migrated: devtools: - logger/exception_utils → ui_public (status_bar_info_message) - details_screen → order_checkout_public + ui_public show AppTheme app: - app_bloc_providers → authentication_public show CheckDbConnection, order_public show TaylorOrderCubit, table_service_public show NotificationsBloc Two feature barrels widened: - authentication_public re-exports CheckDbConnection use case - order_public re-exports taylor_cubit (TaylorOrderCubit) `lib/devtools/` and `lib/app/` are now free of deep `features/.../...` paths. `dart analyze` clean. commit 394010ee3f0a422f8d76291127623fc3a1eccc8f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:24:46 2026 -0400 docs(phase-5): mark Step 2.4 (data sources reverse deps) PARTIAL commit 19f59c14cc5304ca6d8104508a8784da3a9b80cb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:24:06 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/data + DI roots through feature barrels Final core/ deep feature import sweep — 14 files migrated: core/data/sources: - socket/socket_data, socket_client, socket_server → ui_public - remote/orders_remote_source → order_public, receipt_options_public, ui_public (RTableDetailType, NumberNotFoundError, SyncStatus + SyncStatusService) - remote/master_wizard_remote_source_impl → master_wizard_public - local/db_local_source → order_public + reports_public show CommonReportSQLQueries - remote/db_remote_source → reports_public show CommonReportSQLQueries core/data/repositories + source_interfaces + domain/repositories: - master_wizard_repository_impl → master_wizard_public - master_wizard_remote_source_interface → master_wizard_public - master_wizard_repository → master_wizard_public core/common: - widget/confirm_changes_dialog → settings_public show AppBrightness - dependencies/repositories → auth_pin/inventory/main_wrapper/order/transactions publics - dependencies/dependencies → reports_public, taxes_and_fees_public, inventory_exchange_public core/di: - composition_root → reports_public show ReportsDataSourceFactory, taxes_and_fees_public show TaxesAndFeesContainerFactory, inventory_exchange_public show InventoryExchangeContainerFactory - repositories_root → inventory_public show 3 factories, main_wrapper_public show MainWrapperRepositoryFactory, order_public show CreateOrderReasonFactory, reports_public show ReportsDataSource, transactions_public show TransactionsRepositoryFactory core/routing: - app_router_guards → ui_public (toast) core/validation: - check_math_batch → reports_public show CommonReportSQLQueries + ReportsDataSourceFactory Three feature barrels widened: - main_wrapper_public re-exports MainWrapperRepositoryFactory - inventory_public re-exports EmployeeInventoryRepositoryFactory - inventory_exchange_public re-exports InventoryExchangeContainerFactory `dart analyze lib/` clean. `lib/core/` is now overwhelmingly free of deep features paths — only `lib/core/routing/app_router.dart` (auto_route generated context, ~120 deep imports) and 1-2 stragglers remain. commit 16f78c8b38b5ae3351151ea42cd3f2f96bd97d48 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:11:18 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/components through feature barrels 12 core/components files migrated to feature `*_public.dart` barrels: leaf: - custom_discount_selector → kiosk_public + ui_public - shared/leaf_void_cupertino_dialog → order_checkout_public, shared_public, ui_public show CheckoutFunctions/OrderWorkplaceAccessUtils/AppTheme/CoreBase - leaf_shared_functions → order_public show KitchenVoidDialog/LeafOrderDiscountWidget, order_checkout_public, ui_public show AppTheme/PalomaNoteDialog - leaf_past_payment_widget → kiosk_public paloma: - paloma_text_field → ui_public - paloma_dropdown_button_form_field → ui_public - paloma_circular_progress_indicator_wrapper → ui_public show AppTheme - common_error_widget → inventory_public show CommonPrimaryButton + order_checkout_public show PalomaColors aptito: - aptito_checkout_calculator_widget → order_public show seatSelectorShakeKey + order_checkout_public - aptito_dropdown_button_form_field → ui_public - aptito_text_field → ui_public shared: - input_formatters/money_input_formatters → order_checkout_public - widgets/paloma_language_picker → ui_public show AppTheme Widens two feature barrels to absorb new symbols: - order_public re-exports leaf_order_discount_widget.dart, kitchen_void_dialog.dart, aptito_order_modifiers_seat_selector_dialog_quantity.dart - inventory_public re-exports common_primary_button.dart show CommonPrimaryButton Also drops a transitively-redundant common_primary_button deep import in inventory/.../filter_sort_popup_widget.dart that the analyzer flagged after the inventory barrel widened. `dart analyze lib/` clean. commit 95bf46e0d5fc21ecbfd28d468c2f9ffa216d5c59 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 12:01:29 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/utils + core/models through feature barrels 10 more core files migrated to feature `*_public.dart` barrels with explicit `show` lists: core/utils: - time_format_utils → settings_public show GeneralSettingsTimeFormat - date_format_utils → settings_public show GeneralSettingsDateFormat - currency_utils → settings_public show CurrencySymbol - navigation_utils → delivery_public show Delivery$Fetch - table_utils → order_public show RTableDetailType - old_utils → delivery_public show Delivery$Fetch + Delivery$Notification core/models: - r_table_details → order_public show RTableDetailType - log_operation → order_public show RTableDetailType - s_printer → settings_public show PrinterExtra - s_payment_device → settings_public show PaymentDeviceExtra(+5 variants) - i_area_object → ui_public show ObjectType - s_order_lists → order_list_public show SOrderList `dart analyze lib/` clean. `lib/core/models/` and `lib/core/utils/` now consume features only through their documented public barrels (remaining deep imports in core/ live under di/, components/, routing/ which still need work). commit 7d3e0abae2e0dc4089319828444dcc9abcb39440 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:55:36 2026 -0400 docs(phase-5): mark Step 2.3 (usecases reverse deps) PARTIAL commit 492b212af4d61e8499f7f986e0343860efc301d5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:55:00 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/usecases through feature barrels 13 use-case files migrated from deep `features/.../...` paths to `*_public.dart` barrels with explicit `show` lists: - r_table_details_operations: order_public show RTableDetailType - get_remote_batch: order_public show RTableDetailType - discount_operations: order_public + order_checkout_public (CreateOrderReason, RTableDetailType, OrderCheckoutBlocInterface) - tax_exempt_operations: order_public show CreateOrderReason + RTableDetailType - compliment_operations: same - order_operations: same - remove_operations: order_public + order_checkout_public - s_printer_operations: settings_public show PrinterSettingKey, PrinterSettingsConfig - payment_devices_operations: settings_public show PaymentDeviceSettings - t_menu_items_operations: kiosk_public show SItemTMenuViewModel - master_wizard/make_preregistration: master_wizard_public - master_wizard/make_registration: master_wizard_public - get_order_type_count: reports_public show ReportsDataSourceFactory - create_structure / sync_server / sync_tables: ui_public show SyncStatus + SyncStatusService (+ SyncStatusType in create_structure) - sync_server: delivery_public show Delivery$Notification Widens reports_public to also show ReportsDataSourceFactory. Result: `lib/core/usecases/` is now free of deep cross-feature paths outside `shared/account_data`, `shared/order_info`, and the legacy `checkout_exports` barrel. `dart analyze lib/` clean. commit 47400f3d6cb8e6dee5f8e869f4dc250ce0bd243d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:45:14 2026 -0400 docs(phase-5): mark Step 2.2 (bloc_utils) PARTIAL after barrel routing commit dc445e53d999208d58d289b3d4dd70ad713f9b53 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:44:42 2026 -0400 refactor(module-boundaries): Phase 5.2.2 route bloc_utils through feature barrels core/utils/bloc_utils.dart was the worst single offender in core/ → features/ reverse-deps with 18 deep imports. Collapsed to 7 barrel imports with explicit show lists across delivery, inventory, leaf_settings, order, settings, table_service publics. Widens three feature barrels to make this possible: - order_public: re-exports leaf/bloc/quick_order/quick_order_bloc.dart - settings_public: re-exports settings_bloc, hardware_tabs_bloc, server_bloc - inventory_public: re-exports the 8 BLoCs consumed by bloc_utils (AddEditTable/AddEditTip/AddUpdateItem/AddUpdateSchedule/ItemsList/ RoomsDashboard/ScheduleSelection/TipsList/WorkplacesDashboard) Also drops one transitively-redundant deep import in inventory/presentation/menu_rotation/edit_menu_rotation/edit_menu_rotation_wrapper_screen.dart that the analyzer flagged after the inventory barrel widened. The reverse-dep itself is still present (bloc_utils is in core/ and imports feature publics) — this only normalizes the import surface to the documented public APIs. Eliminating bloc_utils entirely is Phase 5 Step 6 work. `dart analyze lib/` clean. commit ef6264193c4390bc69f1cfe3bc7e661cd3f5a8e5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:41:21 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/utils → feature barrels - core/utils/device_utils: ui_public show RestartState/StatusNotifierRestart - core/utils/util_functions: ui_public show AppTheme - core/utils/snack_bar/snack_bar_service: order_checkout_public show PalomaColors - core/utils/fiscalization_utils: order_list_public show SOrderList bloc_utils.dart still has 18+ deep feature imports; that godutility needs its own dedicated tick. commit 1165c039084853420f39b71c2cb80dabd035ed31 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:38:49 2026 -0400 refactor(module-boundaries): Phase 5.3 route core/ → terminal_public 5 core files now import the terminal feature exclusively through its public barrel: - core/di/repositories_root: show MerchantCustomerCopyService, TerminalRefundService, TerminalVoidService - core/common/dependencies/repositories: same three services - core/components/leaf/shared/leaf_void_cupertino_dialog: show TerminalPaymentInfo, TerminalScreenRoute - core/routing/app_router: barrel import (auto_route generated code needs several symbols — keep unrestricted to match generator output) - core/usecases/remove_operations: show TerminalPaymentInfo, TerminalScreenRoute (used in remove_operations.void_items part file) This closes Phase 5 Step 3.4 for the core/ → features/terminal arrow. The reverse-dep is still present (core depends on a feature) but the surface is now the documented public API rather than internal file paths. commit 8cd02ff141546a3d5bb523b238ad9b74f6730381 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:35:30 2026 -0400 docs(phase-5): mark Step 3.4 (integrations) DONE commit f7bd82f8f7d373a97ee1da8279a8945c5b973da1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:34:48 2026 -0400 refactor(module-boundaries): Phase 5.3 drain integrations deep imports (batch 5) Final sweep — lib/integrations/ is now free of deep feature paths (outside shared globals and checkout_exports legacy barrel). Migrated files: - printer/model/kitchen_receipt_data: kiosk_public show OrderType + order_public show getStatusPriorityForPrinting - printer/model/payment_receipt_data: kiosk_public show OrderType + order_public show ModifiersEquality/OrderMath/RTableDetailType + order_checkout_public show OrderCheckoutBlocInterface - printer/model/merchant_receipt_data: order_public show RTableDetailType - terminal/core/core_functions: settings_public show PaymentDeviceSetting/Settings - terminal/source/valor_semi_lifecycle: settings_public show PaymentDeviceExtra$ValorTerminal - terminal/source/halyk_qr_source: terminal_public show TerminalScreenDialogQr - terminal/source/netevia_instant_funding_source: terminal_public show TerminalBlocStatus + ui_public show AptitoCupertinoDialog - terminal/terminal_batch: terminal_public show TerminalBlocStatus - terminal/model/terminal_data: terminal_public show TerminalBlocStatus Also widens two feature barrels so the imports resolve: - order_public re-exports aptito_order_item.dart (for getStatusPriorityForPrinting) - terminal_public re-exports terminal_screen_dialog_qr.dart Phase 5 Step 3.4 (integrations) is now DONE. commit 20ce9d7639bd762c39803ab6e69970016f901199 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:17:04 2026 -0400 refactor(module-boundaries): Phase 5.3 route fiscal kassa + receipt_kitchen through order_checkout_public 6 files migrated from the internal path `features/order_checkout/bloc/new_order_checkout_bloc/order_checkout_bloc_interface.dart` to `order_checkout_public.dart` with `show OrderCheckoutBlocInterface`: - fiscal/model/uzkassa - fiscal/model/rekassa - fiscal/model/epos_kassa - fiscal/model/newcas - fiscal/model/webkassa - printer/receipt/receipt_kitchen All consumers now see the interface through the feature's public barrel. commit b6aa056df2342b09b3355961da5548de59605303 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:14:20 2026 -0400 refactor(module-boundaries): Phase 5.3 route integrations → ui barrel (batch 3) 14 more integration files migrated from deep `features/ui/{bottom,status}_status_bar/*.dart` paths to `ui_public.dart` with explicit show lists: - printer/device: printer, printer_lan, printer_star, printer_star_matrix, printer_tspl, printer_valor - printer/receipt: receipt_kitchen, receipt_merchant, receipt_payment, receipt_test - printer/printing_queue - fiscal/fiscal_auto_z_report - terminal/source/netevia_instant_funding_source - terminal/terminal_batch (+ RTableDetailType via order_public, +StatusBarNotification/Type via ui_public for part files) All `lib/integrations/` files are now free of deep `features/ui/...` imports; the barrel is the only entry point. commit a2fa206cb9b74c5b3dd265ccd3610b4a8f1f679d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 11:07:37 2026 -0400 refactor(module-boundaries): Phase 5.3 route integrations → settings barrel (batch 2) 11 integration files migrated to settings_public.dart with explicit show lists: - printer/core/core_constants: FontSizeRange - printer/core/core_function: FontSizeRange, PrinterExtra - printer/open_cash_drawer: PrinterSettingKey + ui_public BottomStatus/Stream - printer/receipt/receipt_template: PrinterSettingKey - printer/receipt/receipt_label: PrinterSettingKey + ui_public BottomStatus/Stream - printer/report/report_product | close_batch | image | waiter | print | fiscal | sales_overview: PrinterSettingKey Also widens settings_public.dart to re-export font_size_range and printer_extra so these consumers have a barrel path, and routes terminal_batch order-reason imports through order_public. Every integrations/ consumer of printer_settings now comes in through the barrel — zero deep paths remain. terminal_batch also collapses its order_reason_picker imports to a single order_public show. commit 5107ce707bb5342a98a3463d58c2b7f85d79bd7d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:41:10 2026 -0400 refactor(module-boundaries): Phase 5.3 route integrations imports through feature barrels integrations/ should depend on feature public API, not internal paths. Six files migrated from deep `features//domain/entities/*.dart` paths to the `*_public.dart` barrels with explicit `show` lists: - printer/model/waiter_report_data: reports entities (5) via reports_public - printer/model/sales_overview_report_data: reports entities (9) via reports_public - printer/model/product_report_data: ReportProductSalesModel - printer/model/batch_report_data: BatchReportModel - printer/report/report_batch: BatchReportModel + PrinterSettingKey - terminal/terminal_batch: transactions_repository + repository_impl + screen_enums collapsed to a single transactions_public import Each `show` list makes the public surface explicit so a reviewer can see what the integration needs from the feature without diving into internal file paths. commit 3709d6a8ae66fec45da4e7f9d1ff4ff221dd730a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:33:38 2026 -0400 docs(phase-4): sync tracker for Steps 7 + 8 Step 7: use cases in core/usecases/ all migrated to typed AppException (formal AppResult wrapping deferred). Step 8: exception hierarchy + result variant + userMessageFor helper covered; ExceptionUtils behavior test still missing. commit 365a86cf130d04db4a83c5b46bb5123355d6d7d4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:30:56 2026 -0400 refactor(error-system): Phase 4.5/4.7 migrate core/usecases to AppException All `throw Exception` sites in lib/core/usecases/ now use typed AppException subtypes: - update_remote_order / create_remote_order: NotFound for unresolved parent item refs, Validation for duplicate TOrder id - t_workplaces_operations: NotFound(TWorkplace) - payment_devices_operations: NotFound(STypesOfPayment) for gift card - get_local_settings: NotFound(SAutomatedPoint) with entityId - remove_operations.validate_remove / .void_items: NotFound for gift card item / t_order / r_table_detail / payment_device; Server for void-failure + update failure core/usecases/*.dart is now fully typed — every throw is an AppException subtype a caller can pattern-match on. commit 7f7569297aff00527447154800148626fd1f4e45 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:25:14 2026 -0400 refactor(error-system): Phase 4.5 drain final long-tail (DONE) Closes the last ~25 untyped `throw Exception` sites in the data/repo layer across 17 small files: - payment_device_repository (NotFound: SPaymentDevice) - partner_employee_repository (NotFound: PartnerEmployee) - partner_access_types_repository (NotFound: PartnerAccessType) - sync_repository_impl.initialization (NotFound: STypesOfPayment) - main_wrapper_repository_impl (Server: open shift) - receipt_options_repository (NotFound + Server for fiscal error) - add_edit_form_local_data_source + taxes (NotFound: SItem/TaxLink) - add_edit_item_remote_data_source (Server: create/update item) - employee_inventory_repository.crud (NotFound + Validation) - discount_clients_repository_impl (Validation: phone) - kitchen_repository_impl.status_changes (Server: sms send) - customer_screen_repository.order_handlers + events (NotFound) - product_sales / waiter_report / sales_overview (Server + NotFound) Result: every *_data_source*.dart and *_repository*.dart file under lib/features/ is now free of untyped throws. Phase 4 Step 5 -> DONE. commit e1ea23e192995871f766cc33a8939c44eba4ff24 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:15:59 2026 -0400 test(address_utils): formatAddress SAddress variant + FormatException + custom format Adds 5 regression tests: - FormatException thrown on unknown placeholder in a custom format - one-line custom address format renders correctly - formatAddress(address: SAddress) delegates through with building/street/unit/city/state/zip/country - formatAddress with an all-null SAddress returns empty string - formatAddress() with no argument returns empty string Pins the template-processing contract before any Phase 5 refactor. commit 4cd533d01c3f2ca4832c47dcc4bd736796586252 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:10:54 2026 -0400 test(terminal): PaymentDataBatchInfo.closeBatchDataParse netevia family + instantFundingAmount Adds 7 regression tests pinning: - neteviaPinPad's nested batch_data.payload.report parse path - netevia's CreditAmt/100 conversion with svc/taxes/tips forced to 0 - sunmiTsysTerminal's batchNetDeposit/100 conversion - null return for unsupported providers (pax) - instantFundingAmount precedence: root instant_funding_amount → batch_data.instantFundingAmount → null commit 92c96e8df44c86196d7c17d5f4da8b720fec328f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:09:43 2026 -0400 docs(phase-4): sync tracker for Step 5 LARGELY DONE (238 sites / 23 files) commit 68c6de5f1070d7fdf5165338054dca071ababfd5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:09:00 2026 -0400 refactor(error-system): Phase 4.5 migrate long-tail data sources + repos Another ~60 throw sites migrated across the smaller data-source / repository files: - access_types_data_source (14: validation + server) - reports_data_source (9: server) - customer_screen_repository.card_payments (9: NotFound with entityType/Id) - order_tips_repository (5: NotFound + server) - clock_time_repository_impl.load (5: NotFound + server) - add_edit_form_remote_data_source (4: server) - support_channel_repository (4: server) - paloma_gift_card_repository (5: Validation + NotFound) - factor4_gift_card_repository (4: Validation + NotFound) - settings_data_source (1: NotFound for c_base_config) Each site picks the most specific AppException subtype (NotFound with entityType/Id, Validation with field, Server with optional statusCode) so callers can pattern-match instead of string-inspecting e.toString(). commit f72d463c54135912478183300a9e4d8270e994df Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 10:00:35 2026 -0400 refactor(error-system): Phase 4.5 migrate top-10 remaining: auth token + db row-ops + paloma gift repo 46 throw sites migrated across the last three top-10 high-volume files: - auth_remote_source.token (13): unauthorized when partner token missing, server errors with HTTP statusCode carried through for the two "Failed to fetch token" paths - db_remote_source.row_ops (16): validation errors for missing data/id/ids/table_name with `field:` populated, server errors for backend message / unknown response shape - paloma_gift_card_repository.transactions (17): validation for precondition checks, NotFound for the missing R table detail lookup Phase 4 Step 5 now at **LARGELY DONE**: running total 178 sites across 13 files, covering all top-10 high-volume data sources. Long-tail smaller files remain for follow-up. commit a591eb551dd5dd3b412c8f9d19c43ddc93ebc301 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:54:20 2026 -0400 refactor(error-system): Phase 4.5 migrate factor4 gift-card data source + repository 34 throw sites migrated across the factor4 domain: - factor4_gift_card_data_source.transactions: 8 server errors - factor4_gift_card_data_source.transactions.void_issuance: 12 server errors - factor4_gift_card_repository.transactions: 14 sites, all precondition failures, routed to AppException$Validation (11) or AppException$NotFound (1, R table detail lookup) Running Phase 4.5 total: 131 sites across 10 files. Gift-card pathway is now fully typed. commit 4dc881fca091ec80fa7b3bac56e789b620428120 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:50:13 2026 -0400 refactor(error-system): Phase 4.5 migrate paloma_gift_card_data_source 35 throw sites across the paloma gift card data source and its spend_void part file migrated to AppException$Server. GiftResponseException remains for errorMessage-bearing payloads. Running Phase 4.5 total: 97 sites across 7 files. commit c754d14d33a2981b9a70a1fd3ac3665f311d0c66 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:46:24 2026 -0400 refactor(error-system): Phase 4.5 migrate partner_data_source accounts+merchants 34 throw sites migrated across the two partner_data_source part files. Authorization-failure paths throw AppException$Unauthorized; server errors (register/update partner/owner/account/merchant mark, load subpartners/partner accounts/info) throw AppException$Server with the backend message preserved. register-partner statusCode path now carries the HTTP status via AppException$Server.statusCode. commit a8a3be0a64251f5e4cf7275169a71921fbaf27a5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:43:07 2026 -0400 refactor(error-system): Phase 4.5 migrate partner_employees_data_source 8 throw sites migrated: 4 authorization-failure paths now throw AppException$Unauthorized, 4 server-failure paths throw AppException$Server with the backend error message plus the same Account/WP context used for debugging. commit e2d2a1e8cd89b08b33be2a34ef92284fcba96641 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:41:44 2026 -0400 refactor(error-system): Phase 4.5 migrate access_types_data_source to AppException 16 throw sites migrated: the 8 authorization-failure paths now throw AppException$Unauthorized (so callers can route straight to sign-in instead of string-matching 'Authorization failed'), and the 8 server-side failure paths throw AppException$Server with the same backend error message preserved for display/logging. commit 562a45720a91062315f234f8952b2dec9e7ba154 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:40:01 2026 -0400 refactor(error-system): Phase 4.5 migrate taxes_and_fees_data_source to AppException Replaces all four `throw Exception(...)` sites in taxes_and_fees_data_source.dart with `AppException$Server` so callers can pattern-match on the typed hierarchy instead of string-inspecting `e.toString()`. Tracker moved to IN PROGRESS for Step 5; top-10 high-volume files (gift cards, partner portal, auth token, db_remote_source) remain for follow-up ticks. commit c5ce6658af1629fba49453abf5ae0c2e8b6d640b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:38:42 2026 -0400 fix(logger): Phase 4.3 finish logRemoteOrLocal per-call Sentry opt-in logRemoteOrLocal now takes a `disableSentry` named parameter defaulting to false. Previously this method hard-coded `disableSentry: true` when calling LoggingMethods.log, which silently dropped every database/API error from Sentry. Callers that expect recoverable or expected failures (a known 404 on a sync retry, etc.) can still opt out by passing `disableSentry: true` per call site — this restores the old behaviour only where genuinely intended instead of project-wide. Phase 4 Step 3 tracker moved to DONE. commit 416db66ad0a968284213595f74f60ff17b3a2904 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:35:33 2026 -0400 fix(logger): Phase 4.3 stop silencing Sentry during empty-token startup logRuntime previously set disableSentry=true whenever the session token was empty, which meant any error thrown during app startup, sign-in, or token refresh vanished from Sentry — precisely the class of bug we need reported. Keep the dialog and z-log muted (no session to attribute to), but let Sentry through. Also adds unit coverage for OrderInfo's static-field contract (increasePricePercent transform, null/round-trip for slipId/cashId, cashDiscountPercent verbatim) so the Phase 5 migration has a safety net. Phase 4 Step 3 tracker moved to PARTIAL — logRemoteOrLocal still needs a per-call opt-in follow-up. commit a04ef0bd7c37eea0031bcfbade9a3899d0e75f2c Author: Forasky Date: Wed Apr 15 16:33:24 2026 +0300 fix(DEV-11685): fix issue with part payment commit 63f85b9d0364d4ab919ac9c8d9f2776de9c7a378 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:30:03 2026 -0400 docs(audit): Phase 3 Step 5 DOrder mutating API Enumerates the five mutating methods/setters on DOrder (employeeId, setObjectid, regenerateGuid, applyCleanDiscounts, ensureId) with their known call sites (\~6 total) and a copy-then-assign migration plan for the eventual Phase 5 field-by-field final cleanup. Folded into refactoring/GLOBAL_STATE_AUDIT.md and the Phase 3 tracker. commit eb18ee59e614a8bde07d1afabb87a4ed0227a7cd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:28:51 2026 -0400 chore(git): untrack Claude Code runtime lock + gitignore rule Accidentally committed .claude/scheduled_tasks.lock in the previous commit. This file holds per-session scheduler lock state and must not be tracked. Add it (and .claude/settings.local.json) to .gitignore. commit 8fa1ee24cd674e9e62812f91dea9f6dff5da38a5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:28:02 2026 -0400 refactor(error-system): Phase 4.6 drain remaining BLoC error emissions Migrates the last 20+ failure-state sites across: - OrderListBloc (filters/sort/load part files) - DeliveryBloc (search_sort/print_notify/load/clients part files) - PartRefundBloc (refund + load part files) - PrintoutsBloc (operations + fetch_filter part files) - TransferOrderBloc (6) - ToGoMenuBloc - NotificationsBloc (7) - SelectWorkplaceCubit After this batch every non-commented `(error|message): e.toString()` site under lib/features/ routes through userMessageFor. Tracker updated. commit cba018bc15d775a8fbb544d048e927e7d773b832 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:14:46 2026 -0400 test(validation): CheckMathBatch.calculateBatchTotalAmount + tipAdjustmentCountQuery Pins the batch total formula (sum+tips+taxes for netevia/pax/halyk et al, sum-only for valor), verifies zero-batch invariant across all terminal provider variants, and the SQL scaffold for the tip-adjustment reconciliation query (device id injection, close_batch fallback, expected columns/joins). commit 05325916237ace8fe90f404dadda4b02180ea56b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:13:04 2026 -0400 refactor(error-system): Phase 4.6 migrate settings/leaf/eod BLoCs Another ~15 failure emissions migrated to userMessageFor: - AppearanceSettingsBloc load_update - ClientBloc connection + manage part files - UIBloc (4) - LeafThemeSettingsBloc (2) - LeafThemeItemsQuantityBloc (1) - AptitoReportsBloc fetch (2) commit 6a7d8dbdcb9c9a32cedbf316faba554c2afc1a2f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:10:12 2026 -0400 refactor(error-system): Phase 4.6 migrate TerminalBloc part files Terminal part files now emit failure states through userMessageFor so AppException subtypes surface their typed message: - payment_card (1), payment_cash (1) - adjustments_refund (1), adjustments_refund.partial_refund (1) - adjustments_void (1), adjustments_void.partial_void (1) - adjustments_tips (1) - fiscal_reports (3), fiscal_shift (1) - customer_screen (2) - helpers (1) commit 6391e917c15dfb017fa8fdaeb336164693bb79e0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:07:36 2026 -0400 refactor(error-system): Phase 4.6 migrate error: e.toString() BLoC batch Routes another 20+ failure-state emissions through userMessageFor so AppException subtypes surface their typed message: - OrderModifiersBloc (3) - EmployeePickerBloc (3) - OrderCustomItemBloc part files (form_fields/load_create/update_delete) - HardwareSettingsBloc part files (load_manage + fiscal_manage) - OrderBloc item_quantity helpers (1) commit b6187b755ec1f66664ad335397aa4f0ee62f4688 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:04:16 2026 -0400 test(terminal): unit tests for TerminalReportType, TerminalPaymentInfo, TerminalReportInfo Pins the enum membership/order, constructor defaults (withTip/true, applyCashDiscount/true, isVoidTransaction/false, part-refund/part-void off), and the mutable-sum contract for the terminal util value holders. Also marks Phase 2 Step 0 (current-structure audit) DONE in the tracker since the plan body already contains the audit. commit 8baf68809071e60dce829fd2bbb30cd8516b2918 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:02:45 2026 -0400 refactor(error-system): Phase 4.6 migrate order_list toolbar + UI alert sites Routes five remaining iShowAlert / failure-state sites through userMessageFor so AppException subtypes surface their typed message: void_dialog, paloma_adjust_tips_tool_bar_button, order_list_tool_bar_open, aptito_album_order_item, order_workplace_access_utils. Tracker updated. commit c19cc213bedf2f9594210118a650b0947e0d96e6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 09:00:55 2026 -0400 refactor(error-system): Phase 4.6 migrate kiosk/auth/cash-in-out/taxes BLoCs Swaps `message: e.toString()` for `message: userMessageFor(e)` in: - kiosk BLoC part files (payment, order_print_send, pay_completed, item_select_modifiers, order_submit_pay, order_submit_misc) - authentication_cubit.helpers - cash_in_out_cubit - leaf taxes_and_fees_bloc AppException subtypes now surface their typed message while legacy errors still round-trip through toString(). commit b06d0bf1eae517dd13f7ec1e871dc47a91cbc5a8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 08:57:42 2026 -0400 refactor(error-system): Phase 4.6 userMessageFor helper + first BLoC batch Introduces lib/core/error/user_message.dart which returns AppException.message when the error is a sealed AppException subtype and falls back to e.toString() otherwise. Migrates the first three BLoCs as a proof-of-concept batch: SettingsBloc (3 sites), AuthenticationCubit (4 sites), ServerBloc (2 sites). Legacy exception types still round-trip through toString() so behaviour is unchanged for un-migrated code paths. commit c039ad01c6f5f35dc32cc39a755cc896e9c9d996 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 08:55:14 2026 -0400 fix(logger): Phase 4.2 stop silencing LocalException/RemoteException logRuntime previously early-returned for these types, which meant genuine database/API errors never reached the log or Sentry. Route them through logRemoteOrLocal so they hit the log file at minimum. Also land Phase 3 Steps 9-10 audit (OrderInfo + AccountData) as refactoring/GLOBAL_STATE_AUDIT.md for Phase 5 reference, and sync the Phase 3 and Phase 4 trackers to reality (several steps were already shipped but not marked). commit a3599766389a0472b571b5526d0213bd3a4cf0d1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 08:52:16 2026 -0400 refactor(models): Phase 3.1+3.4 id-based equality for TOrder and DOrder Empty-id instances fall back to referential equality so unsaved drafts stay distinct. LeafState TOrder comparisons switched to identical() to preserve emit semantics for field drift on same-id instances. commit 25852fcb04637722ef37ebbea5643221d56f7a62 Author: Forasky Date: Wed Apr 15 15:45:50 2026 +0300 feat(DEV-11656): TSPL Unicode sanitization for label printers Made-with: Cursor commit 58c835bad3dbacc5da2f163dff13834e38074399 Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Wed Apr 15 17:37:48 2026 +0500 fix(DEV-11657): If you lose connection with Sunmi during payment, you can't click cancel on the main menu. commit 610f3fbcf08a025ae866041539dc60cff3d0a002 Author: IsroilovA <108577814+IsroilovA@users.noreply.github.com> Date: Wed Apr 15 09:30:43 2026 +0500 fix(DEV-11627): prevent quick cash crashes from invalid banknotes Sanitize quick-cash denominations at decode and save time so bad persisted values no longer create zero-denominator calculations. Harden the shared calculator against non-finite totals and invalid denominations so checkout and other payment flows fail safe instead of crashing. Made-with: Cursor commit 067fc68549ee94b90bc056a5fbc9167200bcba69 Author: IsroilovA <108577814+IsroilovA@users.noreply.github.com> Date: Wed Apr 15 16:29:22 2026 +0500 fix(DEV-11647): preserve raw void rows in checkout persistence Made-with: Cursor commit 68b9fd250b0ac46404bcc96aadb9324991545dea Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:51:14 2026 -0400 test(order_checkout): unit tests for CalculatorButtonAction and CalculatorButtonPaymentAction enums commit 41cb4b433af08fbc0e2918c2de2d89534097bd63 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:49:15 2026 -0400 test(order): unit tests for ImageType enum variants commit 2309b8e6f3c0ed173c6ad0a0a7e0a742778851b3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:47:47 2026 -0400 test(application_store): unit tests for ApplicationModelListViewModel commit 075424ee9150800ef90a462d5d282e172f8d93ef Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:42:21 2026 -0400 test(order): unit tests for RegisterDisplayType enum and byName roundtrip commit e3f5c7c5fcbb2a33c53f88823b4484f180b1c50d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:36:12 2026 -0400 test(happy_hours): unit tests for AddEditHappyHourForm days/isValid/copyWith commit 937ab6dfb2e7678f8ac39f672c614c98837ef7a2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:32:42 2026 -0400 test(settings): unit tests for AndroidAppDatabaseEntry value holder commit ea35a4cb3bd0f131bf29d8dded63bf4c81d99339 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:29:50 2026 -0400 test(settings): unit tests for SettingsEntryState and SettingEntryEvent sealed hierarchies commit 1c7574343a0d4cd2279c78d201f27ef60f3f0317 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:26:43 2026 -0400 test(customer_screen): unit tests for CustomerScreenState defaults, copyWith sticky money, and enum commit 46576854fefdef823268d78d0cebd5b2190cc680 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:23:10 2026 -0400 test(time_cards): unit tests for TimeCardsState initial/loading/success/setError commit b97986d4dc9383d00d5eccf05cb9f66bab4b6377 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:21:28 2026 -0400 test(drawer): unit tests for DrawerOrderState copyWith and DrawerOrderEvent variants commit e02dccaeed60033c673b77e6f6b9c5e0b3a87a93 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:19:13 2026 -0400 test(receipt_options): unit tests for NumberNotFoundError commit cc054cafddf9c7b0ea4ee366239137a6f0936e0b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:16:45 2026 -0400 test(auth_pin): unit tests for EmployeeViewModel flags and CurrentEmployeeState transitions commit e08f1736f4709760d25b7a41f1b02879c54a3699 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:12:23 2026 -0400 test(main_wrapper): unit tests for NavigationCheckerRoute.route/path constructors commit 9c8e3884cce8a8b9f2afcec575ca5f2857e8a595 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:09:36 2026 -0400 test(core): unit tests for AppRouterConstants pinned route keys commit b85d378eafc48f12ca38d58f1fc3f057957e107a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:08:27 2026 -0400 test(partner_portal): unit tests for PartnerGraphNotifier listener lifecycle commit 3f391f63bd90559c6f19ad911749a0171bf1658e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:02:40 2026 -0400 test(integrations): unit tests for TransactionResponse fromJson/toJson/copyWith commit 3ae5c2f2e68b79c47b0310675a858ead9291e4b4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 07:01:01 2026 -0400 test(core): unit tests for SnackBarType enum and SnackBarConfig defaults commit ce6a6d7599e7059e792a237b22aac64197a3ce2b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:58:11 2026 -0400 test(order): unit tests for OrderItemsStream singleton and init commit e7617033c9a17091fc94856bc2812c1dad7e7d97 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:54:11 2026 -0400 test(order): unit tests for OrderUtilsOrderInit.getOrderInitSettings and originalPrice commit 8ff054265727ab656e4e7de29f3928f9dec5b2c0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:51:16 2026 -0400 test(leaf): unit tests for LeafSharedFunctions priceType and transaction refund/void predicates commit 252b3321a1f0799e6bdd6447c00d6d17b4f70469 Author: Forasky Date: Wed Apr 15 12:57:12 2026 +0300 feat: new release for Sunmi commit b5dff0dfb346eb080b1ad85ab00c7de98404942b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:47:14 2026 -0400 test(leaf): unit tests for StringExtensions.capitalizeFirst/capitalizeFirstNew commit b0783eadb5044d745eedcd62ba9b189452ae33e9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:41:50 2026 -0400 test(leaf): unit tests for LeafRandomColor.getRandomColor palette commit 6f4191b63b01c7b4fcd2fb16c3d8798f748d0281 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:36:40 2026 -0400 test(core): unit tests for KeyboardController add/backspace/clear/focus lifecycle commit ed4dba0ef5d92d7686dc3b225aac70d61f6817fa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:31:51 2026 -0400 test(core): unit tests for BadResponseType enum variants commit c634cd9a3f9b3cca77b74b600d854b7cdc867ef6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:26:43 2026 -0400 test(core): unit tests for DialogPopupDuration and StoreLinks enums commit 78c77372c0cc3cefda364cdbb4352186ee3d9bfa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:22:04 2026 -0400 test(core): unit tests for RemoteDBConstants and RemoteDbEndpointUrls commit f82f710d4e161f9f8e2429f978a4472880d504fa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:21:24 2026 -0400 test(core): unit tests for ConnectionType enum variants commit a591a8fe886e16b4d9428e40f6deb5f15e044620 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:17:53 2026 -0400 test(order): unit tests for CategoryColorManager.initializeColorsForCategories commit e28362bbc8c5daa92fdc435c462706737eea2bbb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:11:00 2026 -0400 test(core): unit tests for CBaseConfigs/DChanges/OrderItems and dashboard/cooking value holders commit 52022ca6c9c67bd90adad99263f22916a816240d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:09:27 2026 -0400 test(core): unit tests for t_ plural wrapper holders (employee/menu/time_price) commit b0e6636f98482ef945ae1bd36ab2277ee6126450 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:08:46 2026 -0400 test(core): unit tests for SAutomatedPoints/SItemsRecommended/SOrderLists/STimePrices wrappers commit b0c35a93207ce0c1d7c644540f56742e7eb9e962 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 06:03:08 2026 -0400 test(core): unit tests for SPictures/Shtrihs/SStopLists plural wrapper holders commit a116d1ac2a37ab726f99ecec174a0e3a322c8181 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:59:43 2026 -0400 test(core): unit tests for AptitoCheckoutAction enum and toName mapping commit ef061fb26d2fa1f35ad4d0a61a614b1b2486c2e1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:53:08 2026 -0400 test(leaf_settings): unit tests for LeafThemeSettings.getSettings defaults commit d07b2005a71fecd6326a3c3552aef2fd8bd97a71 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:49:08 2026 -0400 test(inventory_exchange): unit tests for InventoryExchangeSpec templateExcelUri commit f7dd111a25f0148201e47dace486595b0d873d28 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:45:43 2026 -0400 test(order_checkout): unit tests for NeedSplit enum variants and labels commit 38ee5d9824a17c1f885bd5fbc20a16dc40db1fda Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:43:06 2026 -0400 test(sync_wrapper): unit tests for SyncProgressEvent.inProgress commit 6dee7406bca9825836a3577c26df22fc9d137310 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:32:23 2026 -0400 test(inventory): unit tests for TextEditingControllerExt.setTextSafely commit bfeb3fc7973ab6b721a88593a527050b9e0de588 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:30:27 2026 -0400 test(core): unit tests for QueryParamsInterceptor acc_id/wp_id injection commit 0318f80b8fe6a07e6bab8267ff9e395ef43af7fd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:24:18 2026 -0400 test(printer): unit tests for StarCachedConnection update/clear/remove/status commit a72c872a56a6864f2c689fed2d33d6d515779861 Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Tue Apr 14 17:52:20 2026 +0500 fix(DEV-11423): sunmi status code commit e0ff522cdaa67a9e42de3eca63d7123c1a496c2c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:16:44 2026 -0400 test(app): unit tests for Flavor enum and FlavorConfig.setFlavor/current commit 000a7909f48e725e0e861fe9f772218228a0fc6e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:11:35 2026 -0400 test(inventory): unit tests for AddModifierModel key derivation commit d613456e99f80b709e93932675b99e9b41d4ef95 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:08:35 2026 -0400 test(order_ready): unit tests for OrderReadyOrderModel.fromJson branches commit 87fe760125ecb03833512a48e54186522cfb4940 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:07:22 2026 -0400 test(master_wizard): unit tests for AddressUnitModel JSON roundtrip commit 77476f15e705ed414feb95fd9b454d907a7cdfae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 05:04:53 2026 -0400 test(partner_portal): unit tests for PartnerCredentials fields and toString commit c8ed3e611c3e0d97ad6e44427bd48b56430285d8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:53:20 2026 -0400 test(devtools): unit tests for LoggingMethods.prettyJson totalsum rewrite commit 53d6ee818ddfdda7b4d9efa58abd530d03aededd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:50:56 2026 -0400 test(core): unit tests for DateFormatUtils.toSqlDateTime commit 5e17666ed1ab5f4832d900e8c6f19b086b187e7d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:47:59 2026 -0400 test(core): unit tests for BuildUtils.convertDateTime and extractMetaDataValue commit c9169990877e9344bb6c7703d29e20d9316acb4b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:46:40 2026 -0400 test(core): unit tests for RemoveOperationException sealed variants commit ea1c1dfd369ef42ce354864cc11b8d7fe0e1a95e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:46:05 2026 -0400 test(core): unit tests for AppFailure sealed hierarchy variants commit 0bc07db06ed2b928bcc4d5559faa3c6e213a9523 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:44:58 2026 -0400 test(partner_portal): unit tests for PartnerPermissionContainer variants commit 6ff1425c3c42583205369965d8c688f6f287e96a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:39:40 2026 -0400 test(order): unit tests for CoreMath sale/total/tax calculators commit 089e95b7d48c60ec6af653a1ed39dd133fbde7f0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:34:57 2026 -0400 test(order): unit tests for DOrderMath subtotal/service/discount/totalSum commit fc846e9649bcaa2329a3d5795d235b3de7115e8b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:34:14 2026 -0400 test(order): unit tests for DiscountAddResult sealed variants commit 008889dcade47c2e87a3e5a6c086c44544c3350f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:33:56 2026 -0400 test(order): unit tests for CalcResponse empty/copyWith/mutability commit fef7b9285d1e2d26b4ebe92350755950b285a92e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:32:59 2026 -0400 test(partner_portal): unit tests for PartnerHierarchy isRoot and toString commit 41eab2cb2eaa46406d1e3d4be0023ed7a4fef792 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:32:23 2026 -0400 test(partner_portal): unit tests for PartnerCatalogData sealed hierarchy commit 004f8804912f1b8a7c6d0fa2a48249044de3a40c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:31:22 2026 -0400 test(partner_portal): unit tests for MerchantException sealed hierarchy commit c286ec840c0c770709888d16faa2b6635a27dad6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:26:04 2026 -0400 test(core): unit tests for TRightCategory JSON includeIfNull and now() dtedit commit 662b01ddade1acb3e47fd6dc28c8fe1880232e4e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:25:40 2026 -0400 test(core): unit tests for TRight defaults, JSON, copyWith commit 9044ff0e0e3c07cc6619c5848bc1d1111de33942 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:24:32 2026 -0400 test(core): unit tests for STypesPayment JSON, gift card guid, copyWith commit 85dc47ffb90d29667f201e01e3466eca2178b2ee Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:23:40 2026 -0400 test(core): unit tests for Apid/Wpid extension type validity predicates commit 0d2ec14a7dc818e50cc4e870a712884a8ee6269a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:14:19 2026 -0400 test(order): unit tests for CategoryColorManager color assignment, caching, clear commit 803761c6390e79121d776575aa8f0dbfe95c37f5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:13:42 2026 -0400 test(order): unit tests for ColorContrastUtils.isGrayColor with RGB spread and brightness thresholds commit 3f10b31cd319a68c5110203726cd76cf17356468 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:11:26 2026 -0400 test(order): unit tests for OrderMathHelpers.getPercent divide-by-100 semantics commit 6a15ba51014951e10869f142723ae3a026f3481f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:02:51 2026 -0400 test(partner_portal): unit tests for MerchantCatalogContent sealed hierarchy Direct/Owned commit 507703fb1ec251185b4ab728cd6010d7e1c1f752 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:02:12 2026 -0400 test(partner_portal): unit tests for PartnersTree/PartnerNode findSubtree, directMerchants, allMerchants commit 880c8239c0135fc25daeee58d6d49be1d6f7e2ed Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 04:01:22 2026 -0400 test(partner_portal): unit tests for PartnerOwner fields and toString commit 6d9ff70dcd5ba97ad97ebd06cf21a14f0adbd8f3 Author: Forasky Date: Wed Apr 15 10:59:22 2026 +0300 fix(DEV-11615): align card charge with post-calc total when surcharges apply Made-with: Cursor commit d45dc1cb401c26973160f27c041670d7b2bd8bd5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:55:35 2026 -0400 test(partner_portal): unit tests for MerchantCatalogSort sealed hierarchy (14 variants) commit 9a80ac19636b26b58cb1e3e2dc86fe5a1bb3093d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:53:38 2026 -0400 test(ai_chat): unit tests for AIChatMessage fromJson hardcoding isUserMessage=false commit 679851beb762dbc4e70ac060312ac9fd137227db Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:52:38 2026 -0400 test(application_store): unit tests for ApplicationLocalModel json codec and markDeleted encoding commit 4cbf75972ef68b133d308045a615347ed42fbc9c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:51:26 2026 -0400 test(core/models): unit tests for TOrderPriceType dtParsed, fromJson operation decoding, toJson defaults commit f6f7fb972947053a6a6648973a0ece65fb84c82c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:45:04 2026 -0400 test(core/models): unit tests for PriceTypeOperation enum codes and uniqueness commit e7d2ce90185b2f23cbd3b33dc212704bbbc0d027 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:44:24 2026 -0400 test(core/models): unit tests for RTableDetail empty/fromJson/toJson/copyWith and default dtcreate commit 60399e4318def6862bd9a79676a5ef82952ceed8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:43:34 2026 -0400 test(order): unit tests for RTableDetailType fromKey/tableName with uniqueness guard commit 686a5e6456c864cef078a21b641876de7f505e46 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:41:47 2026 -0400 test(core/models): unit tests for TOrderPriceTypeOld json codec and late-mutable orderid commit ec0a2f065e74e9b49654fca5ce4859449fcd783d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:41:06 2026 -0400 test(core/models): unit tests for TClientsCards json codec with phone digit-stripping commit a8b976e2e9b138037a0ea1cd5a43aa49ef808a71 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:34:37 2026 -0400 test(core/models): unit tests for TTimePriceItem json codec roundtrip commit feca0b5e5d77a89329b4246d526afdaf06c7d937 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:33:52 2026 -0400 test(core/models): unit tests for SLocation json codec with tables_count nullable commit 04e955e155174efea2ba3135f3e8b25b503b0cf8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:33:20 2026 -0400 test(core/models): unit tests for SModificatorSItem json codec sortindex default commit 064b5b43a5cc248e4fe8bdbd8b15737bf9ecf64d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:32:45 2026 -0400 test(core/models): unit tests for SItemRecommended json codec snake_case aliases commit 6d1c8777c3b57ff1a4fba3bae0e31d3b6d31a6d8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:31:46 2026 -0400 test(core/models): unit tests for OrderItem json codec commit ca184b4b57f9f0328bf2de5e20da515d3b53943c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:27:01 2026 -0400 test(core/models): unit tests for PrintQueueConfig defaults and json codec commit 85dc765ecc5f1cfe8b2d84da1b3e618097292ab9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:22:51 2026 -0400 test(inventory): unit tests for checkIsDayActive/Bool schedule string<->bool roundtrip commit 1f742c0ee4fd918258e603830862ea484cb959ff Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:12:20 2026 -0400 test(settings): unit tests for PaymentDeviceViewModel empty/copyWith commit 794969ceb6c3fa46f343251f102977ff2ba8455c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:11:40 2026 -0400 test(settings): unit tests for PaymentDeviceExtra sealed hierarchy (Netevia/ChargeAnywhere/Halyk/Valor) commit e51e50e504d7192df1516b163eaa116ba9cbee56 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:04:25 2026 -0400 test(settings): unit tests for PaymentDeviceSetting/PaymentDeviceSettings json codec and copyWith commit f30990d41bd669978ed20c100208d3d92a2265c7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:03:33 2026 -0400 test(settings): unit tests for PrintQueueSettings defaults, json codec, copyWith commit dc5f8c2b80c6b8df97ba431cc930a1d7f31c7bbd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:02:59 2026 -0400 test(settings): unit tests for PrinterSettingsConfig/PrinterDeviceSettings/PrinterSettingKey commit e2b0e1fbd671249fd024ef888de9ce43371a2d23 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:02:07 2026 -0400 test(settings): unit tests for PrinterViewModel hasAnyRole/copyWith/equality commit bf354a78e6d11e3914dce649a25fc9bcce01febd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 03:01:26 2026 -0400 test(settings): unit tests for PrinterExtra json codec, copyWith, equality commit 22d695c62f4c63d5d809269ca42a564be31a4d0a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:56:54 2026 -0400 test(settings): unit tests for FontSizeRange isInRange and equality commit 93c7417e757135f9f294904f56be3e3a326a2fd0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:54:22 2026 -0400 test(terminal): unit tests for AppTerminalTypeProvider.toName display labels for all members commit ae15840861b50475353cb50a45a68f9de18e641b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:53:18 2026 -0400 test(terminal): unit tests for Chargeanywhere transaction/tender/fee type constants commit 1288fefb17ee8ae8c5719c4fa399639bfcca7f21 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:52:28 2026 -0400 test(fiscal): unit tests for Webkassa.paymentTypeToInt static mapping commit c48bf21c36a4fbd7732654f4733fb093ebac9c8d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:51:18 2026 -0400 test(terminal): unit tests for NeteviaPinPad static maps getTransactionType/getCardType and tender constants commit 0ceb76369904d355cd90b47ab68120624664601f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:45:46 2026 -0400 test(terminal): unit tests for PaymentDataSaleInfo.fromJson netevia/chargeanywhere/virtual/voidt priority commit b508cc72e1fca5e5c25338c0b1b58794ed40d9f7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:44:46 2026 -0400 test(terminal): unit tests for WizarposTransactionConstants mapping and defaults commit e64348064760470f7297843157992e565eecb2e8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:43:21 2026 -0400 test(printer): unit tests for AppPrinterType display names, PrinterStatus.toString, paper sizes, constants commit 8855ff340c4e29a945301969b8b325b97b67ef6e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:42:23 2026 -0400 test(fiscal): unit tests for TFiscalOperation/AppFiscalName enums and FiscalConstants timeouts commit d3d5210d3e518ab1bf07bc5f076382e17dba6ab6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:41:28 2026 -0400 test(printer): unit tests for PaymentDataParseFormatHandler.formatReceipt padding/stripping commit bcff15c48bfb85759c2649c487ddb9f279b3479d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:34:05 2026 -0400 test(printer): unit tests for PaymentDataParseFormatHandler paymentOperation/receiptV2/getQrData commit e81d3cb23350f9a222dfd59991ec14540b38a0d8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:32:03 2026 -0400 test(core/utils): unit tests for FallbackStorableEntry and nonnull extension commit 983b10e06774ed6c32b326ce8af5583cbb156ef0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:31:09 2026 -0400 test(local_server): unit tests for ServerCacheManager key generation, TTL, and invalidation commit cd8803f688a0355640d9af20aaac3e2abeb52663 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:24:54 2026 -0400 test(local_server): unit tests for CoreServerFunctions.dataQueryConvert stringification and idlink filter commit 04bd2821c5fe779285a9547ce7643e702f5e0687 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:23:51 2026 -0400 test(local_server): unit tests for CoreServerFunctions.addSocketDetails dedup and nesting commit 1c3e2fe1701bb3d6b818d7c919cfac9096f1410a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:22:31 2026 -0400 test(local_server): unit tests for CoreServerConstants sync sets, deny lists, and CoreStatus enum commit 4cbbcfd711c66f318c9f5dc25aff580fea5dc792 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:21:45 2026 -0400 test(local_server): unit tests for TOrderRemote json codec, nested tax/cookingtime lists, toJsonNotData commit 4d1d8463b1ca4e0f365a68322ffa9c613a09b339 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:21:03 2026 -0400 test(local_server): unit tests for DOrderRemote json codec snake_case mapping and defaults commit c58a7ce1078f442971e379ea600567abfac6d2a8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:13:45 2026 -0400 test(local_server): unit tests for TfRequestRemote and TfRequestTaxRemote codec + toJsonData commit 91b795084a2a06de1ffe0f3123af404fb74f99fb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:12:58 2026 -0400 test(local_server): unit tests for RTableDetailsRemote json codec and dtedit omission commit a3cbf399f411e96cfe6d81be36726d4c7aab7977 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:12:19 2026 -0400 test(local_server): unit tests for SStopListRemote json codec day flags and defaults commit 4051993415dc2d4f2a781b03a40831015ebc0738 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:11:41 2026 -0400 test(local_server): unit tests for TOrderCookingTimeRemote json codec including null dt and status commit 3ddd029b59bf9f78039a19ab48393cbeec41e9b9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:11:04 2026 -0400 test(local_server): unit tests for TOrderPriceTypeRemote json codec defaults and null handling commit 0beeebbb2c868076efbc0bbf8108421643ee2e3a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:07:07 2026 -0400 test(local_server): unit tests for TOrderTaxRemote json codec snake_case mapping commit 7b5616bd2954d848a0217ee9c1ed06495cfd4bf4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:06:24 2026 -0400 test(local_server): unit tests for TOrderDiscountRemote json codec + parentid cast quirk commit 4f3bfaec36bca0940e7d46b8679d9ae36dff7788 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:05:15 2026 -0400 test(local_server): unit tests for AuthLog json codec and mutable fields commit 7f0b05e1aae9b5ef1b781c49dba1983019599508 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:04:41 2026 -0400 test(local_server): unit tests for DfRequestRemote json codec defaults and legacy 'adress' typo commit 2b20d649ac145bc5e2b82faf09ef9fb7d5928102 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 02:01:25 2026 -0400 test(happy_hours): unit tests for HappyHour activeDays and activeTime getters commit 35ed567bd4b81533218e16b8bc9c1d133b803a56 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:56:20 2026 -0400 test(cash_in_out): unit tests for CashOperationDisplayItem.fromJson isIncome and FK lookups commit a07bf8e5985bc2ecf76da254fb47d82baa12ccf1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:55:37 2026 -0400 test(authentication): unit tests for AuthenticationState sealed hierarchy fields commit a0bb6dd4a7b67e961e976cf03afb6618151e766f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:54:11 2026 -0400 test(application_store): unit tests for ApplicationModel and ApplicationModelExtended json parsing commit 957a92e32aa862f397d917dac599fd10ecc775db Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:45:04 2026 -0400 test(kiosk): unit tests for SMenuViewModel isMainMenu and id-based equality commit eecc3868b394249640cd4b4b2da8ec7c33665fc8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:43:41 2026 -0400 test(access_types): unit tests for AccessTypesGroup empty/populated constructors commit 288aa2b6e7ff4de005e4afab3dc8911fc27bbcb9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:43:07 2026 -0400 test(access_types): unit tests for AccessType defaults, copyWith, and list equality helpers commit f6b9c6b585f0d065fd5f7808e07c26ba4b4c059a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:42:05 2026 -0400 test(discount_clients): unit tests for DiscountClientsState sealed hierarchy toString commit d597bd705391edca78ed25e1f75d5e30fe9941ba Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:38:38 2026 -0400 test(inventory): unit tests for CategoryProfile subcategoriesCount/itemsCount/copyWith commit c8b0f5db491dc6ca41d51f072bf42879df0aea94 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:33:51 2026 -0400 test(delivery): unit tests for DeliveryColorSettings.fromJson defaults commit 2f95a50e01992064bda9f7d0754b6d12ab2ac788 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:31:59 2026 -0400 test(gift_cards): unit tests for Balance and Factor4Balance codec commit 27976151415c1c11d6a86071cbbcb107c4ffd317 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:31:23 2026 -0400 test(gift_cards): unit tests for StandardHeader and Factor4StandardHeader codec commit 303204be9c1a752fa19c527ca2dbd5d7ea2bce98 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:30:56 2026 -0400 test(gift_cards): unit tests for InitiatorType/EntryType/StatusEnum codec commit 745ef312e5ddd756250bb57b089c1ae8a16016a6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:24:29 2026 -0400 test(gift_cards): unit tests for Identification hierarchy json codec commit 0bbc887c4144eb8958900cb4e8e86938dc726931 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:23:53 2026 -0400 test(gift_cards): unit tests for CustomerInfo + Factor4CustomerInfo json codec and fullName commit dd093cb96a8505e151d70b9702328d643e0c253c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:22:53 2026 -0400 test(settings): unit tests for SettingsLevel.fromLevel/fromData and level getter commit 1f35091ea5daeac4d38641f7dfb7847510c92129 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:21:23 2026 -0400 test(settings): unit tests for ToGoClientFields.fromValue string parsing commit ad2609dd5b90be37a0f49cb0df6a9f4ab8fd8cfa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:14:55 2026 -0400 test(transactions): unit tests for transaction screen enum declaration order commit e0d930d3c26cc29c91f64675de0bd4733ae75120 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:12:52 2026 -0400 test(reports): unit tests for BatchReportModel factory, isOpened, fromJson date/duration commit 4a44d76bfc717ec8514e2d3c85945ffbc68b6f8c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:04:40 2026 -0400 test(master_wizard): unit tests for getTimeZoneByZipCode prefix mapping and usTimeZones catalog commit ae1502efba1ef5d9159ed7904719f77ec45cb6f0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:03:07 2026 -0400 test(kitchen): unit tests for String.toColor hex parsing edge cases commit f982e70a8dfe92ba10bf3acdc8164a2fc8b4d318 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:02:18 2026 -0400 test(settings): unit tests for UpdateSettingsWithIdDto conditional id emission commit 536102b0db9462d8248c139837ceb912e5039c9c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:01:47 2026 -0400 test(settings): unit tests for UpdateSettingsDto partial update and markDeleted encoding commit 5582329ca58c2e11c36212a6bd7b6b9ea4b8f71e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 01:01:19 2026 -0400 test(settings): unit tests for CreateSettingsDto.withId and toJson snake_case commit f86d43b67427d9cffb4c3a635a8aa3542820a76a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:53:34 2026 -0400 test(inventory_exchange): unit tests for ImportProgressStage aggregation, entries, copyWith commit ce06293c2d32721b548c371418278620389178bb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:42:46 2026 -0400 test(core/utils): unit tests for DateTime startOfDay/endOfDay and formatQuantity commit debfed32b7cb662aeb1672ae6a2ea2b786d70235 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:41:33 2026 -0400 test(core/entities): unit tests for Dump fromString/toMap/toJsonString commit b3fac875fe016250c67a3c1d5cd1215d7bb0ae6d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:40:51 2026 -0400 test(core/models): unit tests for SplitCheck defaults and mutability commit adbc68d2b046398ee499c3087e7ede54bd5554ad Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:33:16 2026 -0400 test(core/models): unit tests for AIMessage nested content/text codec commit d078ac1059f8e259df5d20e3380afce22a0d3c85 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:32:36 2026 -0400 test(core/models): unit tests for ApiLog json codec and mutable field setters commit 3d6cb21c87b63936efa5bbc6878d690eb1ab750e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:32:13 2026 -0400 test(core/models): unit tests for IArea json codec, equality, copyWith, fromJsonString commit f4ed14f88fe10688d6cea5de12d62b09c1e8f7e1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:31:20 2026 -0400 test(core/models): unit tests for TWorkplace bool codec, empty-login omission, isThisDeviceSn commit 179541ae10dd963284ff60e2687fe8b5ab9ddd66 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:30:41 2026 -0400 test(core/models): unit tests for TTimePriceAp json codec commit cc40f50a100d057406c9b85a40a6c9b61832d640 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:22:39 2026 -0400 test(core/models): unit tests for TDiscountAP json codec pinning name<-isgroup quirk commit 70e583d4cc473965b8c901bde288237b00f09f2f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:22:13 2026 -0400 test(core/models): unit tests for TDiscountTime json codec with day flags commit 24f21ea65a9b9e77ee7c1fcb3cc6672f69b4d7c5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:21:50 2026 -0400 test(core/models): unit tests for TDiscountItems json codec commit 8d8006381ac6962e8841c46bdce9037fd467f5bd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:21:30 2026 -0400 test(core/models): unit tests for TDiscountClients json codec commit 3f3374a75bd9e4be98d820dbbf09b25a0dbaf846 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:21:11 2026 -0400 test(core/models): unit tests for STimePrice json codec roundtrip with day flags commit 977a3f21c087f1b9dce9329a99964d62550267b7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:20:47 2026 -0400 test(core/models): unit tests for TMenuItem json codec commit 1c816a17a3da6ab1d30a5eacacaeb47010f85ad7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:12:26 2026 -0400 test(core/models): unit tests for TMenuShedule json codec commit 5f8d714264967978f84d59cb8166ee6936d9fb0f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:12:05 2026 -0400 test(core/models): unit tests for TRightCategory json codec commit d3657a370746d09b20f8b5400ca24c8042645286 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:11:41 2026 -0400 test(core/models): unit tests for TRight permission defaults, codec, copyWith commit 47fa8ad5b9badba16bafba878c3a1bea150bb862 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:11:13 2026 -0400 test(core/models): unit tests for SShtrih json codec column naming commit b06a4eb6dae1aa59546aa274fc381e0ec153e385 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:10:49 2026 -0400 test(core/models): unit tests for TOrderDiscounts json codec and copy semantics commit 3c8f09aa7689968d971ddd850d883cd2609bf684 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:02:10 2026 -0400 test(core/models): unit tests for TTaxLocation json codec roundtrip commit 81cccf47a3aaaa70d3d1eb2edb274b0808d32bed Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:01:50 2026 -0400 test(core/models): unit tests for TTaxRelations codec, copyWith, and dtedit=now() commit 9513245291dfaa61c0241367815510fdc45ecc84 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:01:28 2026 -0400 test(core/models): unit tests for TItemPrinter json codec commit 65f6b7405371c441351f706ac989be258f46b70c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:01:05 2026 -0400 test(core/models): unit tests for TEmployeeRole json codec commit ea8fa05f3afe248c1bce003bb03f198f33f69072 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Wed Apr 15 00:00:44 2026 -0400 test(core/models): unit tests for TEmployeeWorkplace json codec commit 12d11968e4dfce9426a02d9ec83e1595fe61608a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:53:02 2026 -0400 test(core/models): unit tests for TEmployeeInterface json codec commit 920c8e5c93744934c110d6c0e7675b284ad943fa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:52:32 2026 -0400 test(core/models): unit tests for SPaymentDevice simulator/batch getters and copyWith commit f88e6b181fcc45877b980a89605e2078c6fd686e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:51:23 2026 -0400 test(core/models): unit tests for STypeInout bool codec and always-now dtedit commit f147ed8e59c1a42255230c6cc8706a1edd4e6542 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:50:43 2026 -0400 test(core/models): unit tests for SSubdivision json codec pinning parentID asymmetry commit 0935e324ae0f0e26ebf789ff06e31c8679ba782f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:43:51 2026 -0400 test(core/models): unit tests for SPosition json codec commit f59a9876d238ef422f8bc0778f57074fb90735c5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:43:26 2026 -0400 test(core/models): unit tests for SEmployee fromJson defaults, toJson, and id-only equality commit 260dea8480cd3fade7f6fc2814817e8fe4ddd612 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:42:55 2026 -0400 test(core/models): unit tests for SClient json codec and PhoneNumber sanitization commit 81993e87c7d05696823d882fb29959f7e049507b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:42:21 2026 -0400 test(core/models): unit tests for SAddress fromJson/toJson with null field preservation commit 14f605a8bdc6e755352819824615a2ce396d10dc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:41:19 2026 -0400 test(partner_portal): unit tests for UserAccessList isEmpty and singleOrNull commit 8f37c93e22170541d3a9e6cdc7d49b15650a7d09 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:40:20 2026 -0400 test(partner_portal): unit tests for UpdateMerchantFormData copyWith semantics commit daed4d1a159a2f33e076907d8fa115f4d0f89d2a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:37:34 2026 -0400 test(partner_portal): unit tests for PartnerAccessGroupIterableX.applyValues commit 0343981a78dffde46a9d3d0ee37fc488ad04f317 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:37:11 2026 -0400 test(partner_portal): unit tests for PartnerAccessGroupCodec with nested children commit c9eda18d6e2491b688e2014da8b4daea263af667 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:36:42 2026 -0400 test(partner_portal): unit tests for PartnerAccessValueCodec encode/decode + error paths commit db05a2a0b6e8a3ffcb02ab324526d8216448808e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:36:06 2026 -0400 test(inventory): unit tests for UpdateTTimePriceItem toMap field omission commit c5276798384d2f333fc5401bb1b17ea616410ff2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:35:30 2026 -0400 test(inventory): unit tests for UpdateItemTax toMap bool encoding commit bf5c4a8094bdde861519b3581d026f0ff3fb154a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:35:09 2026 -0400 test(inventory): unit tests for UpdateItemPrinter toMap bool/int encoding commit 1c5c4936baf07fa1cfe312daf1326ad8a50655b7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:34:37 2026 -0400 test(inventory): unit tests for UpdatePicture toMap snake_case field omission commit e99ddded85004d5311833bf40de080d91acc110f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:34:14 2026 -0400 test(inventory): unit tests for CreatePicture fields, mutable name, and toString commit 50ac98a6d6a3a4a8a912cf1cc8af343f0060243c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:33:29 2026 -0400 test(partner_portal): unit tests for UpdatedSubpartnerInfoDto fromJson with parent_partner_id alias commit 2bae5c2c1b88a17dafe4304c73f690682b4d5c89 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:33:04 2026 -0400 test(partner_portal): unit tests for PartnerAccountOwnerDto json codec commit 294b4e423d20b0ed068cea3b091863fe191f7c6a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:32:20 2026 -0400 test(access_pin): unit tests for PinValidationResult equality and toString commit e0443b430694f0aff5e8863639a44db9bf1c8e1d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:31:59 2026 -0400 test(access_pin): unit tests for AccessPinState sealed hierarchy equality commit 6a21d2081ff8b4c300fbe69a9b4d6bc108e170c8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:29:30 2026 -0400 test(access_pin): unit tests for PinEncoder.encodePin determinism and format commit 2905ffdfdcc3861987d96cd6eb2f892fa197dfa3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:27:07 2026 -0400 test(reasons_and_notes): unit tests for CategoryItemsState sealed hierarchy commit 9ae1127b2882d9d82214a18170d076166c5a680e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:26:26 2026 -0400 test(reasons_and_notes): unit tests for NoteModifyState sealed hierarchy commit 45955bb32318887e40e89208b586dbf47ee40248 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:25:23 2026 -0400 test(reasons_and_notes): unit tests for NoteCategoryItem and SNoteItem equality/copyWith commit 6afcc23a28df73147489c96a06f4ea9580a81750 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:24:03 2026 -0400 test(reasons_and_notes): unit tests for NoteCategory.fromItemId and categoryId mappings commit 18daee2feef9407afcaf6ed0ebb1413c011e4a0b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:23:25 2026 -0400 test(reasons_and_notes): unit tests for NoteDto fromJson/toMap/equality (id-only) commit 87f4ab37512d8bef3cb6e887047db39623a09e4d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:22:09 2026 -0400 test(inventory_exchange): unit tests for ImportedTableValidator$ColumnDuplicateDisorder commit dd928f505ee9718483f650a0a36bdcd6c79f9cca Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:20:35 2026 -0400 test(inventory_exchange): unit tests for ChunkProcessor, BatchRange, FutureState commit faad5d7ba6ec0183a383e77c9fde07b3d1130b8e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:19:04 2026 -0400 test(inventory_exchange): unit tests for InventoryExchangeCodec$TaxRates decode/encode commit d23052a54b3acb30f2991a5ef384f6fdca3593a5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:17:59 2026 -0400 test(inventory_exchange): unit tests for MatrixTranspose extension (transposed/lock) commit 8465df4ca1d1ab20522c5b436951910dab311a84 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:17:17 2026 -0400 test(inventory_exchange): unit tests for SheetValidationException sealed class commit a53a84ac23426edee3343b7452c36d4c774608fe Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:14:36 2026 -0400 test(inventory_exchange): unit tests for ImportDraft/ImportContentDraft/isEmptyDraft commit b8813cd7627fe842f76538ea40b70ff1b9fd084f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:13:44 2026 -0400 test(inventory_exchange): unit tests for ImportingProcessState and ImportContentProgress progress math commit cf632c59ed21a6428e602be036459faddc79570d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:12:31 2026 -0400 test(inventory_exchange): unit tests for ExcelDuplicateDescription equality quirks commit bc015ae4bcaecbca3025adcfaeeb421d8296147a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:11:34 2026 -0400 test(inventory_exchange): fix ExchangeTaxDto.toJson test — type field is not emitted commit 58aeb9531eaf5db36c50b9dea9dcc0b842a24898 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:11:09 2026 -0400 test(inventory_exchange): unit tests for ExchangeTaxDto.fromJson/toJson commit 451237350192d6d5f86402a379bb3607eb888686 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:10:37 2026 -0400 test(inventory_exchange): unit tests for ExchangeModifierDto and ExchangeItemModificatorPairDto commit e90c610e4db57d1066135bf1056d239d58e44210 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:09:54 2026 -0400 test(inventory_exchange): unit tests for ExchangeItemDto and ExchangeItemCategoryPairDto commit b9bdd3a58becd32420627a0427066af572bd7b69 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:09:14 2026 -0400 test(inventory_exchange): unit tests for ExchangeContentKind.excelSheetName commit ef41411a58f759baf01bafe3c39fe2d6c4680688 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:08:16 2026 -0400 test(inventory_exchange): unit tests for Item equality (id OR name) and copyWith commit 610b5dfb38cebe10d3f1c48bc00602fd0121b923 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:07:23 2026 -0400 test(inventory_exchange): unit tests for Category and TaxRate model equality commit fc6c84eab303ee7d88fa3bfd186e023f50a32df8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:06:44 2026 -0400 test(inventory_exchange): unit tests for Modifier$Group and Modifier$Item equality/toString commit 5ad04784bde63d8da9f89cd22b51fa59d4694e8a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:05:32 2026 -0400 test(kiosk): unit tests for SalesItemViewModel menu/fromJson/stock/itemId commit e3a42a8b0e1dbf8a8b725db027c2753b7f3f88cc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:02:54 2026 -0400 test(kitchen): unit tests for KitchenOrder.orderStatusFromKTOrder priority chain commit cd578ad53a1864a471febd9d4b88adacac87ded8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:02:04 2026 -0400 test(happy_hours): unit tests for EditHappyHour hasChanges and toMap commit afcce308f08c1e9d81b3af45d239cb21c1bbd057 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:01:17 2026 -0400 test(happy_hours): unit tests for AddHappyHour.toMap null omission commit a362a22e42dba06e600e1085fa95130a7d23dbab Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 23:00:22 2026 -0400 test(happy_hours): unit tests for SetTextExtension/TimeOfDayFormatting/DateTimeFormatting commit 21a0b3a209d8c73cb86662c8c739aa9d36fa99ea Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:59:32 2026 -0400 test(happy_hours): unit tests for TTimePriceAP fromJson and Create/Update DTOs commit fb133026ce04fe2a78e158f6301325180def2a5c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:58:33 2026 -0400 test(transactions): unit tests for TransactionViewModel totals and copyWith commit d5169d929bcfc8803070463e47eb6d74069c9e72 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:57:08 2026 -0400 test(usecases): unit tests for OrderTypeCount.fromList padding logic commit c9d1bb8f83f6e5c53100846f5466dbec8563b9e0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:55:54 2026 -0400 test(order_list): unit tests for OrderListPayment.fromPriceType void logic commit 3d98ecc52750bb6764570233b2468ad2f58aaf2e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:55:08 2026 -0400 test(order_list): unit tests for OrderListType/SortType enum surface commit 9271d00684ad9c291a1ae14c05a78dbd65fa6ce6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:53:57 2026 -0400 test(utils): unit tests for FiscalizationUtils.orderHasFiscalPayments commit 5f2d10692db55e4c91ae5abb5d4198a9e027e04d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:50:47 2026 -0400 test(utils): unit tests for FunctionCodec/CastCodec/Json typedef commit 312cdbf156c098c4cd73b89718763e8bb4b66ae6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:49:59 2026 -0400 test(utils): unit tests for FieldInputValidator$Common.zipCode and login commit 8034080d35f42a399ea2708abb979b8f9198419d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:49:27 2026 -0400 test(utils): unit tests for FieldInputValidator$String$Mask filled/not-filled branches commit 3b9ef66c0bb636feebcf41aa582f3868f23fed11 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:48:53 2026 -0400 test(utils): comprehensive unit tests for Email/Length/Regex/Sequential input validators commit 282489a7095d8cd2db6e16cb49f64f0730c4d75d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:47:26 2026 -0400 test(partner_portal): unit tests for Update/CreatePartnerInfoFormData copyWith/initial commit c1e717ea6a56f090f8bb7c899a657e8142bcccac Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:46:52 2026 -0400 test(partner_portal): unit tests for PartnerInfo.deleteIsAllowed and toString commit e3ba9a6aff9db988ee993e4b0cb31e99d8916ac0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:45:27 2026 -0400 test(partner_portal): unit tests for Partner.hasSubpartners and PartnerMeta.toString commit 67f0ee9a9f940f2f9268b7e833ddbae72f1433cc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:44:21 2026 -0400 test(partner_portal): unit tests for InvitePartnerEmployeeFormData.copyWith commit cc1afeeba878725b63ad33cbfd4dc4ad958299e7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:43:51 2026 -0400 test(partner_portal): unit tests for PartnerEmployeeCodec encode/decode/roundtrip commit 578f8e0064bb8a2e34b5d2418abf7b1bec368f80 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:43:14 2026 -0400 test(partner_portal): unit tests for PartnerAccessTypeProfile delegation and deleteIsAllowed commit 8c639958446b9469322a71b4efe707b1175902a2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:40:57 2026 -0400 test(location): unit tests for Country/Region/City/LocationDto fromJson/toJson commit ded219989b54cfaaa9a71ed9eef165741cc79b34 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:40:03 2026 -0400 test(location): unit tests for Location.copyWith/toString commit 800c78cec19ee621cf8e4c5ec907237549bec78b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:39:26 2026 -0400 test(location): unit tests for Timezone.value and availableFor country gating commit d23f68de34926768c9c026f0af0b74666c671bf7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:38:36 2026 -0400 test(location): unit tests for Country/Region/CityUnit equality and CountryId named ctors commit ef53100812eec28b8ede51d6ef637fb1f5f28718 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:38:01 2026 -0400 test(location): unit tests for Address.initial/copyWith/toString commit d7d6596dd9ef09edeaa5466b503735bdffa3f676 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:37:12 2026 -0400 test(partner_portal): unit tests for MerchantStat.fromJson and ActivitySummary percent helpers commit e0c8ffe5579c0b91cd2c035d112637603451b219 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:36:29 2026 -0400 test(inventory): unit tests for ErrorNotification equatable props commit a983c0d49401a935ae70930ee1abeb93f9ba3eae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:35:59 2026 -0400 test(inventory): unit tests for ModifiersListColumnType compareTo/toString commit e323e7b1f4c112aa067915138806a39725e95dd8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:35:29 2026 -0400 test(inventory): unit tests for AddEditCategoryForm validation and copyWith sentinel commit 3bffe0de07e35d2589cee25094d9e395ab2f17f8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:34:58 2026 -0400 test(inventory): comprehensive unit tests for AddEditItemForm validation and happy-hour helpers commit f7529a2db7c40593b272b62c106c06128480c1ed Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:33:51 2026 -0400 test(inventory): unit tests for SModificatorSItemsLink fromJson/toMap/copyWith commit b7df83e2538939c35ac29dc502603a350c3b8bb8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:33:10 2026 -0400 test(inventory): unit tests for Create/UpdateCategory toMap and hasChanges commit d1eadeb707f23f111c6d9c72cc11d29ae2aa21a9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:30:55 2026 -0400 test(inventory): unit tests for UpdateItem toMap/hasChanges with priceSet/markColorSet sentinels commit 4f673f47098db48b7f2eced9f4a2e9d7d21c2c34 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:30:18 2026 -0400 test(inventory): unit tests for CreateItem.toMap field emission rules commit f506c3a3a8f9d4f5918089e1777c1f19f15238a0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:29:42 2026 -0400 test(inventory): unit tests for TTimePriceItem fromJson and Create/Update DTOs commit 0c0e1ecd61b72b3bdb2d0197596dbd6152bbafec Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:28:42 2026 -0400 test(inventory): unit tests for CreateItemTax and UpdateItemTax DTOs commit acdc286426e73d33370a7f4d43f1d1384c2e4fc6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:27:30 2026 -0400 test(inventory): unit tests for CreateItemPrinter and UpdateItemPrinter DTOs commit 692d42ae1f1c59ece989a1308751d13594035729 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:26:54 2026 -0400 test(inventory): unit tests for CreatePicture and UpdatePicture DTOs commit 117487c53ee51b4072d66c6e0d5c0d939a4d3339 Merge: 56fa72c168 c057aa1678 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:23:18 2026 -0400 Merge branch 'NewOrderBloc' into dev commit c057aa167861a1f25a0bbf5393e60e89f6fade5a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:20:48 2026 -0400 test(partner_portal): comprehensive unit tests for PartnerAccess codecs and applyValues commit f23893d9f661426e65fd8aab786069e377a36453 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:19:56 2026 -0400 test(partner_portal): unit tests for PartnerAccessTypeDto and employees list commit 98a7d4f5ca2d081285e28d8c6d2bb6fcd60ab7f8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:19:24 2026 -0400 test(partner_portal): unit tests for PartnerAccess and PartnerAccessGroup DTOs commit a4324fefc2c6d9157f8b8c7d5c141a5ca54609f2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:18:52 2026 -0400 test(partner_portal): unit tests for UpdatedPartnerInfo/UpdatedSubpartnerInfo DTOs commit f4f3d045045370feda1e792cff0b090b190d70b5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:18:18 2026 -0400 test(partner_portal): unit tests for AllPartner/AllPartnerAccount/AllPartnerPortalDataDto parsing commit aecf5602da5a1549c3a2207e94081a75d2adb9c9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:17:38 2026 -0400 test(partner_portal): unit tests for PartnerAccountDto and PartnerAccountOwnerDto commit 268bdc48e3666ddb9d8c5779d72e9941f37316e8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:17:03 2026 -0400 test(partner_portal): unit tests for UpdateSubpartnerFormDto includeIfNull commit c9f46c45c693c2273770b2c1242f03cf70d76aa8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:14:17 2026 -0400 test(partner_portal): unit tests for UpdateMerchantInfoDto includeIfNull + fromJson commit 60b91425a0d9c79aa14e06e0f2f2e055a3af47f1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:13:46 2026 -0400 test(partner_portal): unit tests for UpdatePartnerFormDto includeIfNull behavior commit f7968d50ccfeb0bcf548a69889af8b1e7a88e015 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:13:17 2026 -0400 test(partner_portal): unit tests for PartnerInfoDto parent_partner_id mapping commit 2f7e8fc0551db192d28eb1e7ae8b1cc3d88dcc53 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:12:42 2026 -0400 test(partner_portal): unit tests for PartnerRegistrationFormDto snake_case roundtrip commit 23d4f1ea7f4b801bfbf887d11bc52a14b794cacd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:12:17 2026 -0400 test(partner_portal): unit tests for PartnerDto recursive fromJson/toJson commit 95e3132d62d4af89c6b97d4e6b4b3c49b97f0f19 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:11:44 2026 -0400 test(partner_portal): unit tests for MerchantInfoDto is_test int-to-bool conversion commit 3677b014951251876701686f056ff421408b2159 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:11:12 2026 -0400 test(partner_portal): unit tests for AuthSessionDto.fromJson commit 2bc6e2cb00aa771e5292be33dd5c3c0d2b48aae0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:10:46 2026 -0400 test(partner_portal): unit tests for UserAccessListDto and nested DTOs commit 2a60413fd06788e245b851fafa73079de9570ee2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:09:54 2026 -0400 test(partner_portal): unit tests for AuthSession compareTo ordering and subclass fields commit 0caf96ad2ec39d2d973e9e8296be26aec8e50f5d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:08:47 2026 -0400 test(partner_portal): unit tests for UserAccessList isEmpty/singleOrNull/toString commit c594fbeb9590ac4006c747d92dcd4e923498b890 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:07:53 2026 -0400 test(partner_portal): unit tests for PartnerPortalPermission enums and isGranted commit 340d1c711eba3a2e9dbfdb85c61bca8b7b1440ef Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:07:04 2026 -0400 test(models): unit tests for ICBaseConfig fromJson/toJson/equality commit 5e69bb986ed026bde39ea5e8d222e5bb54e645ae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:03:51 2026 -0400 test(models): unit tests for IAreaObject fromJson/toJson/equality commit bf5e1cf88cbf05695daba9a73fd1ccacf0216e51 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:03:03 2026 -0400 test(models): unit tests for OperationReason.byKey and LogOperation parsing commit 53d969d0a8b1cba44770f742fb0d72e5a3936e5a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:02:24 2026 -0400 test(models): unit tests for PrintQueue fromJson/toJson omissions commit 13b1d174ad030005e588754bfaaf226cf58056e9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:01:40 2026 -0400 test(ui): unit tests for BottomStatus error/close/print factories commit 21f6b487334885e5540b903be3e3cf2917bb3d75 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 22:00:56 2026 -0400 test(ui): unit tests for StopListEnum.getStopListEnum decision tree commit 4c090d02e3a43b20a6acd9cb42e28fc29357cd64 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:59:30 2026 -0400 test(reports): unit tests for DualPricingReportModel.fromJson commit 947b552d4b30a2f3f896ed0021a5f0172596b514 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:58:48 2026 -0400 test(kitchen): comprehensive unit tests for KitchenOrderItem logic commit c132d3156ed1b7534b7f8e641357d47299b36eb2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:57:22 2026 -0400 test(support_request): unit tests for CallMeState sealed class equality commit 3b942051a60459bd47cc86092589b43bd4717892 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:56:23 2026 -0400 test(terminal): unit tests for FreedomTransResponse fromMap/toMap/constants commit 842ba8d02d231b2f96c7b2c4ff44207116c306ae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:55:53 2026 -0400 test(terminal): unit tests for HalykTransaction and HalkTransactionResponse commit 7e71bb05edaffe144e6ad987eee581a5cfd97fca Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:55:19 2026 -0400 test(terminal): unit tests for TerminalResult success/error factories commit bd1570b656582a82c0e4c0ab428dd45baa508da9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:55:00 2026 -0400 test(terminal): unit tests for DisconnectionResult sealed class commit 9c052c7b8dbe34d011a9c090d173ebb2e40865cc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:54:08 2026 -0400 test(table_service): unit tests for CapitalizeFirstLetterFormatter commit 264ee1cc2e566d57f60fdc6675702eed36d8d384 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:53:23 2026 -0400 test(inventory): unit tests for Item.fromJson and select columns commit 5851622a2a3d8ac7e1b3bcf320eaaf5fc6d34bdc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:52:46 2026 -0400 test(inventory): unit tests for Picture fromJson/toString commit 0322fc0a0e3c549bdba50612db9d4bd3c9885a2a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:52:21 2026 -0400 test(inventory): unit tests for Modifier fromJson and select columns commit 5c09e4a80bec7a7cc8a8a59aaab1c67d4cd1a15b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:51:48 2026 -0400 test(inventory): unit tests for Tax fromJson/toString commit bf4a2d3e3151cb376ba4825a3580713b3b649a8a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:51:25 2026 -0400 test(inventory): unit tests for ItemPrinter fromJson/copyWith/toString commit 8bf4a72262bf54258cde35d3228dbd4705473296 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:50:56 2026 -0400 test(inventory): fix NDS id/idTax assertion swap commit 5e7fa0e23eb5da1fc5bd23c7358ed263fdf63ed7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:50:26 2026 -0400 test(inventory): unit tests for NDS fromJson/copyWith/toString commit 44272b702301a844a29a9354339ff8de5581c923 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:49:51 2026 -0400 test(inventory): unit tests for Image defaults/copyWith/toString commit 23ddf2c96c7063fbadc71d868349027aa3aa1333 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:46:46 2026 -0400 test(inventory): comprehensive unit tests for SItemQuery.toSqlConditions and copyWith commit 480ddaba2244c6836923176a1a2e5a1362035e55 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:45:48 2026 -0400 test(inventory): unit tests for CategoryFilter.toQuery/copyWith commit 435d9924fd5b75bd11e4c9bda3aeca4f60204310 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:45:29 2026 -0400 test(inventory): unit tests for ItemFilter copyWith sentinel semantics and toQuery commit 625f16f2b7c81a28381d28b49ac393e34614f88d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:44:50 2026 -0400 test(inventory): unit tests for IListReorderExtension.reorderAndExtractIds commit da9738bd5acf1b191e2b3d3ab6b94789378f7b25 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:44:14 2026 -0400 test(inventory): unit tests for BarcodeGenerationUtils.generateEAN commit c5fa82eccdff0f402ed27408fe825ddde48ca3bd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:43:22 2026 -0400 test(reports): unit tests for DualPriceFeeModel.fromJson commit 8d2d44dbdaf7e4793c493ebdf39777f8c2bb814c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:42:19 2026 -0400 test(reports): unit tests for CardTypeSummary.fromJson commit 2b8366706285bbdf8bb61003157f65df09604c2a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:40:01 2026 -0400 test(delivery): unit tests for DeliveryBtnType level and next transitions commit 4dcc5e0a97dea91474cbe0dffb03f05a5051a7fb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:39:32 2026 -0400 test(kitchen): unit tests for ColorExtension.toColor hex parsing commit ff70a565749782b17462141c7fec155d4063350e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:38:43 2026 -0400 test(models): unit tests for MesSocket fromJson/fromMessage/toJson commit b55c9d12ac18e487990f71c1261c67e62a4b9d20 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:38:11 2026 -0400 test(settings): unit tests for CheckoutTaxFeesModel fromJson/toJson commit b6aa8c57ab63638be9b24cb54a03936c5007c1ce Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:37:44 2026 -0400 test(settings): unit tests for KioskRequiredOption and KioskRequiredOptionsModel commit dd2102d779599eb99adb6e183a09464f094136bd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:36:51 2026 -0400 test(settings): unit tests for TipMoment/KitchenReceiptVoidOption/ReceiptHideModifiers/ReceiptPrintOption fromValue commit fc5dfb0fdfe000910f0efbd8ed69e04b04d2402a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:36:15 2026 -0400 test(settings): unit tests for BanknoteNominal.getQuickCashList commit 9ce814bb5a9e8c54f45b021aef365f8828cb7d56 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:35:43 2026 -0400 test(settings): unit tests for ShorebirdAutoUpdateOption.fromValue commit a49258b160160ef45ea13c63652e02a331b857ec Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:35:12 2026 -0400 test(settings): comprehensive unit tests for ReportTemplateModel and codec commit 54223ac585375cb6cb910f015fa35421893f3141 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:34:34 2026 -0400 test(settings): unit tests for SecondCurrencyModel commit ff65e4e8cd9ba8b0a43d05d86323b59651a95de0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:33:37 2026 -0400 test(models): unit tests for SNotification fromJson/toJson commit c1008846f78f86aba25fe11df991f14f23252cec Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:33:10 2026 -0400 test(models): unit tests for SMenu empty/fromJson/toJson commit 7b5805650f5bdb4b9cc36b75aea234654bf359ae Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:32:42 2026 -0400 test(models): unit tests for SUnitMeasurement fromJson/toJson/copyWith commit 691268f946cbfa89500f4cb1563336e4ba27a72b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:32:16 2026 -0400 test(models): unit tests for SStopList fromJson/toJson/defaults commit bfcbe8409d05025e44d6775dc5752112d302a3c0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:31:46 2026 -0400 test(models): unit tests for SPicture fromJson/toJson commit 2c62d940354f823dd358444838ad90e88438ce75 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:31:18 2026 -0400 test(models): unit tests for SObject fromJson/toJson commit 4aacd888ba3f1919f5515db0bfdd9bc3d7ba478f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:30:42 2026 -0400 test(models): unit tests for ZSyslogModel fromJson/toJson commit e9840bd42fa26956331d75e4649768e05acbead4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:28:15 2026 -0400 test(devtools): unit tests for PrintTimingLogResult data class commit 97c746ff85b26c23c7ddae674f95b3864e1e4e90 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:27:51 2026 -0400 test(devtools): unit tests for OperationLoggerService session state commit 26e935c2dfab33877500ef77664b19238f5e914e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:25:47 2026 -0400 test(utils): unit tests for AppActivityState active/inactive transitions commit 69dc220af3d210116707560025f58fd33b9de768 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:25:24 2026 -0400 test(utils): unit tests for ReportsUtils singleton and init commit 7e5340dae9d6e26153eca8e29eb9492a5c4fa114 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:24:57 2026 -0400 test(utils): unit tests for TestModeDetector flags and auto-detection commit 764acd736d508ea42cca5f07c57f4d2e78d2543f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:24:09 2026 -0400 test(utils): unit tests for DecimalDigitsUtils singleton and init commit 523e52dbc860812e579b35d9e40d1736800f7a04 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:23:47 2026 -0400 test(utils): unit tests for MapUtils.mapsAreEqual commit b00f908684d6d38c4fd3002eb728a653e53d0003 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:23:17 2026 -0400 test(utils): unit tests for CurrencyUtils singleton and locale lookup commit 7577ff57798b1518b041982a537c04c97e06e097 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:22:25 2026 -0400 test(shared): unit tests for OrderInfo static getters/setters commit fb146c4d84768aeba89e7e61ff744d576dcdf3ac Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:21:45 2026 -0400 test(kiosk): unit tests for Validations.isEmailValid commit 26240d2e6db822b196e6a448e1539c4ec355df08 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:21:10 2026 -0400 test(fiscal): unit tests for FiscalResult defaults and enums commit 4ca102168684c85a8a86c30c1ee645301454977f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:20:39 2026 -0400 test(fiscal): unit tests for FiscalFunctions convertToBillCoins/billsCoinsToDouble/addPaymentData commit d83a9c50927a4cb0f3d11d4b2d03c10c61cf04ad Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:19:32 2026 -0400 test(common): unit tests for NotEmptyString extension commit caa5339542283ddd4878aeb2b312d2beef78c2f9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:19:01 2026 -0400 test(common): unit tests for Result sealed class and ResultExtensions commit 3d35a40d488eb688ded68896738e5adf034f8758 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:18:16 2026 -0400 test(entities): unit tests for ZLog fromJson/toJSON with date fallback commit c4c0c2321589f3ccce7bbf551ff786663e7fb482 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:17:46 2026 -0400 test(entities): unit tests for SDeviceData fromMap/toJson/copyWith commit 1b36a3ef25730ee366baac167d205d16da98104b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:17:07 2026 -0400 test(models): unit tests for TTax fromJson/toJson commit 2cfa5ba0948a28f1419b9bd09a71459a3b0fd1f5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:16:27 2026 -0400 test(models): unit tests for SRole fromJson/toJson/copyWith commit ba8aacde98d5512f95b62929c0dc3e2f3383c696 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:13:02 2026 -0400 test(models): unit tests for AccountInfo fromJson/toJsonForSharedDb commit 6547c552f0611ed56c3a0b957f57a46125f8fa62 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:12:06 2026 -0400 test(models): unit tests for SCash fromJson/toJson commit 28f9412fa12030d273714b1f9f88fac7eb448692 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:11:30 2026 -0400 test(models): unit tests for TLoyaltyTransactions fromJson/toJson commit a7abc43a59d91f59debac6fca08ad8aeb4442020 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:10:52 2026 -0400 test(models): unit tests for TLoyaltyRewardType and TLoyaltyRewards commit 0bffd44da3a5fa94fd7040f4d7ca2773a34d8d57 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:10:21 2026 -0400 test(models): unit tests for SplitModel fromMap/toMap/fromJson commit ff1a59211d5d48d9d5425e9d34047296268fb8bb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:08:09 2026 -0400 test(models): unit tests for SOrganization fromJson/toJson commit ac6820990dffc3c846430f200ed518eae4c73ff0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:07:32 2026 -0400 test(models): unit tests for SDiscount fromJson/toJson/defaults commit 59e133b8d1b3e53162c94b5d80c6a25d0db9d367 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:06:49 2026 -0400 test(models): unit tests for ApiRequest fromJson/toJson commit 737b6dfbbc26a26cfa312bbc6c7c666728d1d938 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:06:15 2026 -0400 test(models): unit tests for SMark fromJson/toJson/copyWith/empty commit 48e14220e5ae293fa11325b1732aef3ca35c3e2d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:05:46 2026 -0400 test(models): unit tests for LoyaltyType and SLoyaltyRules commit 5a452bea0d3316f0cb1d90b50d71b9627adf84cd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:05:11 2026 -0400 test(models): unit tests for LocalserverSettings fromJson/toJson commit 89c04808a794e6c223d89fd055ffd7f8f9263f6a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:04:35 2026 -0400 test(models): unit tests for DashboardParams.params commit 6de1f19b257ee46ba8ad55a2ab4cf61129e7db59 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:04:11 2026 -0400 test(models): unit tests for DURVTransaction factory/fromJson/toJson/equality commit fee69f8bfd7b4b640ca7dec5b26f86b40f8e4e38 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:03:28 2026 -0400 test(models): unit tests for CBaseConfig fromJson/toJson/copyWith commit b79926a70870964a20eb7486efe793e5db4bc790 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:02:47 2026 -0400 test(models): unit tests for TOrderCookingTime factory/fromJson/toJson/copy commit 1a577ae6100ad2fff6f6ca5cdb97af49dc42e88d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:01:53 2026 -0400 test(models): unit tests for DCashOutcome fromJson/toJson commit 4f0cf0685f8683a511107140f30731ac9403d6a4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:01:31 2026 -0400 test(models): unit tests for DCashIncome fromJson/toJson commit 6e251cfd7ea696c99eb8cfbe33ad1e937152900b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 21:01:00 2026 -0400 test(models): unit tests for DChange fromJson/toJson commit cdd5190b574bda537038000aeb75e9601c305b93 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:59:39 2026 -0400 test(utils): unit tests for DecimalExtension correct/correctDecimal commit cdd858c98f0ba89881a5460e630077e943e8c100 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:59:03 2026 -0400 test(order): unit tests for TOrderMath.sum commit 7990c4dd21944010daa214c68fd99025845c3899 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:58:17 2026 -0400 test(order): unit tests for CalcResponse empty and copyWith commit 1df901c3b77a14ea8f3ae6d57ec68ed11ca2ac3f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:57:27 2026 -0400 test(utils): unit tests for String and ObjectString extensions commit 225c773239cec6c4a3abf0dab5f7eeb9e0c593fd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:56:48 2026 -0400 test(utils): unit tests for PlusPrefixFormatter commit 2f7f9c891c6a8ae7fb641ade25b00fd95197d1dc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:55:45 2026 -0400 test(printer): unit tests for FiscalReport.fromEposKassa and toJson commit c4951217ec36ca0ad9c137c43bcdce02c5c0c1ce Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:55:11 2026 -0400 test(printer): unit tests for FiscalReportSumSale factories commit d45c845ad133e4188ca0bd4d49c00ac3a383a01c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:54:37 2026 -0400 test(printer): unit tests for FiscalReportSumShift commit d9a8f2a087873817ef4990117c927b2412b58553 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:51:49 2026 -0400 test(printer): unit tests for ProductLabelData.toJson 2 cases: full field serialization under 'content' key, and empty-string passthrough. Phase 6 ongoing. commit 08911c386b1b7c5475843c99338d6494451727c1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:49:36 2026 -0400 test(models): Phase 3.11 regression tests for AOrder.appendPayment 4 cases covering the Phase 3.7 method: - appendPayment adds a TOrderPriceType to tOrderPriceTypes - multiple appends preserve insertion order - legacy addPayment setter still works (deprecated alias) - both APIs target the same underlying list commit 74f008eac26ff1b50bdb9c39bd248f23fbb71832 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:46:32 2026 -0400 test(order_checkout): Phase 3.11 regression tests for getTOrdersAndModifiers 5 cases covering the Phase 3.3 id-based dedup fix: - flattens parents + modifiers into a single list - dedupes by id — regression guard that the .toSet().toList() identity bug does not return (two distinct TOrder instances with the same id must collapse to one) - dedupes when a modifier id collides with a top-level parent id - empty input yields empty output - preserves parent-then-modifier ordering commit af3f831784d88c5420a031d3d993860def64b7ba Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:45:57 2026 -0400 test(models): Phase 3.11 regression tests for TOrder.copy modifier parentid 4 cases covering the Phase 3.2 fix: - newId propagation: modifiers receive a brand-new id AND their parentid is rewritten to the new parent id (regression guard) - no newId: modifiers keep their original parentid unchanged - explicit modifiers override: the override list is used but parentid still gets rewritten to the new parent - empty modifier list stays empty Guards against re-introducing the 'forgot to update modifier parentid after TOrder.copy(newId:)' footgun that previously required 3 call sites to manually patch parentid. commit 6d8a0e9a4bbe0cf682619b0d30779ac6af8a93d0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:44:53 2026 -0400 refactor(models): Phase 3.7 AOrder.appendPayment method Replace the legacy `set addPayment` with an explicit `appendPayment(data)` method. The setter survives as a @Deprecated alias that delegates to the new method so the ~8 existing call sites (terminal / kiosk payment flows) keep working without changes. New code should call `aOrder.appendPayment(priceType)` directly instead of the setter-that-mutates-a-list footgun pattern. commit f7b0be7752b20b65a425f5c88539d5948493c50a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:43:15 2026 -0400 feat(error): Phase 4.4 AppResult sealed Result variant Additive alternative to the existing Result/Failure sealed class whose failure branch carries a typed AppException instead of a free-form string. New code returns AppResult so error boundaries can exhaustively pattern-match on AppException subtypes. Types: - AppResult (sealed) - AppSuccess(value) - AppError(exception: AppException) Extensions: - isSuccess / isError - getOrNull / getOrElse / getErrorOrNull - fold(onError, onSuccess) - mapSuccess(transform) — preserves errors unchanged Migration helper appResultFromLegacyResult wraps a legacy Failure string into AppException$Unexpected so the two worlds can coexist during the migration. 18 unit tests cover AppSuccess/AppError value + equality, extension methods, map/fold semantics, legacy wrapping, and sealed-switch exhaustiveness. commit 7678950de9f7530a7c7d08f92034dab10f93481c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:29:01 2026 -0400 feat(error): Phase 4.1 AppException sealed hierarchy Additive foundation for Phase 4 error system unification. Introduces a sealed `AppException` with 10 typed subtypes covering the categories the codebase actually needs: Network / Timeout / Server (statusCode) / Unauthorized / NotFound (entityType, entityId) / Validation (field) / Conflict / Cache / Cancelled / Unexpected Every subtype has: - A stable `code` getter for telemetry - Optional `cause` + `stackTrace` fields for exception chaining - A `toString` that embeds runtimeType + code + message 23 unit tests cover Exception interface conformance, unique codes, toString content, cause chaining (with and without override), and a sealed-switch exhaustiveness check. Existing exceptions are untouched — new code throws AppException subtypes, legacy code will migrate in Phase 4 Steps 5–7. commit 29bc27205368c2debcb7a85b1500366dc023af07 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:26:44 2026 -0400 refactor(models): Phase 3.6+3.8 AOrder non-mutating sort variants Add non-mutating sort helpers that return a new list without touching the input, while keeping the existing mutating API for backwards compatibility: - sortedItemsById (instance) alongside the existing sortById - sortedListById / sortedListByLabelAndId / sortedListByPriorityAndLabelAndId (static) alongside the sortListById/... variants Extract the three comparator functions (_compareById, _compareByLabelAndId, _compareByPriorityAndLabelAndId) so both the mutating and non-mutating variants share the same ordering logic. 8 unit tests cover the new non-mutating behaviour plus one regression test for the mutating sortListById in place. commit 3c709df3f532f36223215d865211834b0205d2cf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:23:28 2026 -0400 fix(models): Phase 3.2+3.3 TOrder.copy modifier parentid + id-based dedup Phase 3 Step 3: order_checkout_bloc_interface.getTOrdersAndModifiers used to dedupe with .toSet().toList() which relies on identity equality since TOrder has no == override. Two TOrder instances with the same logical id were both kept, causing duplicate rows in flows that call this helper. Replace with id-based dedup that preserves the first occurrence. Phase 3 Step 2: TOrder.copy used to copy modifiers with a new id but left their parentid pointing at the old parent id. Fix so that when the parent receives a new id, each modifier's parentid is also reassigned to the new parent. This closes a known footgun where 3 call sites had to manually fix parentid after calling TOrder.copy(newId:). commit df1f17ddef55a4a412c4f2f544e1b71d642ac3a2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:21:31 2026 -0400 refactor(terminal): Phase 2.8 CustomerScreenHandlers cleanup - Wrap the 2 trivial handlers (PaymentWaiting, PaymentFailed) in try/catch so any emit failure is logged instead of silently propagating. - Extract the shared 'load order by id and emit a loaded/failed state' logic from TipsWaiting / PrintWaiting / PaymentCompleted into a single private _loadOrderForCustomerScreen helper. Each caller now passes in an onOrderLoaded state builder. - Fix a bug in _customerScreenPaymentCompleted: when orderID == '0' the handler used to emit once and then fall through and re-fetch; it now returns early after the empty-order emit. - Add dartdoc describing each handler's socket event trigger and the shared helper's contract. commit c5249c11e245c93020b51f1008fc92a0e9fc07ad Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:19:50 2026 -0400 refactor(terminal): extract FiscalTimeoutExecutor (Phase 2.9) Step 9 of TerminalBloc decomposition: move _executeFiscalWithTimeout out of the bloc's helpers part file into a standalone, pure, testable utility class. The bloc-level helper now delegates in one line. Also drop the internal ExceptionUtils.logRuntime call — the caller already surfaces errorText to the user, and keeping the helper logger-free makes it trivially unit-testable. 5 unit tests cover the success path, timeout path, rejected-future handling (StateError + Exception), and successful fiscal name preservation. commit 6b3d62392f2a735237534b51a6c1ae9a59c4ae4b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:09:14 2026 -0400 test(integrations): unit tests for AppTerminalType + AppTerminalPort + TerminalConstants 8 cases covering AppTerminalType.fromName (known/unknown/round-trip/ case-sensitivity), AppTerminalPort values list, TerminalConstants operation timeout positivity, batch-is-longest invariant, and tDefaultPortPinPad = 13000. commit 02902845cf2d3b5230bff4d50480653db3e1d028 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:06:48 2026 -0400 test(integrations): unit tests for AppTerminalTypeProvider 14 cases covering fromName (known/unknown/empty/all-values round-trip), isUsaDevices/isKzDevices classification, isCloseBatchSupported for valor/kaspi/none, and getDeviceTypeByModel (P2-A11 case-insensitive). commit 7d2b66d74ce1bbee94805015c2ab7cff2929e30c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 20:03:17 2026 -0400 test(reports): unit tests for PaymentMethodSummaryModel + Total variant 6 cases covering fromJson (refund net, numeric fallback), totalCard computation (cardPayments + cardTips), cashDiscountFee formula (totalCard * percent / 100), depositAmount derivation, and composite fromJson with cardPayments/cashDiscountPercent application. commit 718f7a8742bfee409e790e119575c742ebb75e14 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:53:37 2026 -0400 test(reports): unit tests for EmployeeSummaryModel + EmployeePaymentMehtodModel 3 cases: EmployeeSummaryModel.empty zero-fill, EmployeePaymentMehtodModel fromJson field parse and bad total_sum fallback. commit 9bbdba243a7303ef861e5aae5749f3b752dc84d2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:52:31 2026 -0400 test(reports): unit tests for TaxesFeesSummaryModel hierarchy 8 cases covering NdsTypeSummary, TaxesSummary, FeesSummary fromJson (null default, field parse), and TaxesFeesSummaryModel composite parsing with tax-exempt fallback to 0. commit 71919d19053f2f86a1a2c935e22b2fc6148c7e44 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:50:04 2026 -0400 test(reports): unit tests for DUrvTransactionDto.fromJson 2 cases: full field parse, and invalid-dt fallback to epoch-zero. commit 93a1a99361f9dbcc4f55207dde1d80c55cd9813e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:47:27 2026 -0400 test(reports): unit tests for GeneralOrderStatus enum 3 cases: enum length and content, per-value localize non-empty, and distinct labels across closed/opened/all. commit ad52f4e1a08cf8d0353637b4db0ff204ba20a90d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:46:10 2026 -0400 test(reports): unit tests for AuditSummaryModel.fromJson 5 cases: full field parse, compliment optional-param injection, compliment defaults, bad-input fallback, missing-key handling. commit 1ff2be3a4b9d06331414ad8acec2c0bfc111368e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:42:39 2026 -0400 test(reports): unit tests for CardTypeSummary / PaymentDeviceSummary / DualPricing models 10 cases across four report model fromJson factories covering field parsing, null name defaults, and bad-numeric fallback to 0. commit 73b671109d13e968a106897f1e8f8acaa69ef9d1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:39:20 2026 -0400 test(reports): unit tests for VoidsDiscountsModel.fromJson 4 cases: full field parsing, removeCount double->int truncation, bad-input fallback to 0, missing-key null-string fallback. commit 764fe36dbd854fb69e61f06ddee569d815167d01 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:37:17 2026 -0400 test(reports): unit tests for SalesTaxesSummaryModel 7 cases: empty factory zeroing + isEmpty, fromJson numeric parsing + fallback, tipsAndGratuitySum, totalSum (gross + tips + gratuity), isEmpty false when any field positive. commit 9bbd0a2b57483b25ebf72e95974e2e7cd5ab6ee4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:34:16 2026 -0400 test(kiosk): unit tests for SItemTMenuViewModelWithChildren tree builder 7 cases covering toWithChildrenSItem (single-level, nested, initialParentId override, empty input, orphan exclusion) and SItemTMenuViewModel equality. commit fbfa168ef3155c6800de77a88bc6b5f1ee93b6fe Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:31:45 2026 -0400 test(core): unit tests for MapUtils + SequentialInputValidator + Common validators 12 cases: - MapUtils.mapsAreEqual: equal/length/missing/value/empty - SequentialInputValidator: sequential invocation, short-circuit on throw - FieldInputValidator$Common.zipCode / login: positive + negative paths commit fda5b98719bc2fbb32bdde786dc55bd82a1f9338 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:28:35 2026 -0400 test(reports): unit tests for ReportProductSalesModel.fromJson 3 cases: numeric field parsing, 'No Category' localization swap, and verbatim passthrough for other category names. commit b7fdb56f9653c757c2bcd6f4bae0cc790a6613dd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:26:50 2026 -0400 test(settings): unit tests for ClockTimeStamp 9 cases covering empty factory, fromJson ('1'/'0'/mixed), fromString JSON decoding, toJson serialization, round-trip via fromJson, copyWith selective update, and encodeJson -> fromString round-trip. commit b6cd656b3932835554d3f17d57fcac90908810f4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:26:11 2026 -0400 test(customer_screen): unit tests for CustomerScreenWorkplaceModel 5 cases covering fromJson field parsing, numeric coercion, and isThisDeviceSn SN matching (matching, differing, default-empty). commit 4fa202e4413ff01ea7120a128fabd96d71c91d08 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:21:59 2026 -0400 test(partner_portal): unit tests for partner access model hierarchy 11 cases covering PartnerAccessValue (fields, updatedValue immutability, toString), PartnerAccessGroup (fields, updatedAccesses, toString), PartnerAccessGroupIterableX.applyValues (merge by group/access id, missing-group no-op), and PartnerAccessTypeProfile.deleteIsAllowed gating on employeesCount + type field delegation. commit b4c86ba6e601a4aa2ec5b5319ea28bd3ff4e4f24 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:19:10 2026 -0400 test(inventory): unit tests for DaysModel + NewSModifiersModel + CategoryModel 7 cases covering DaysModel (iSelected default, field storage, mutability), NewSModifiersModel field storage, and CategoryModel equality by category.id. commit 3ff2f746e7ec1edbbd015057c065add41bfffa2a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:17:11 2026 -0400 test(partner_portal): unit tests for MerchantCatalogFilter + Token 6 cases: MerchantCatalogFilter defaults, copyWith selective and full, toString; Token extension type string interop (length, isNotEmpty, raw-value passthrough). commit cb66ba036092fcb4f0709c1f0be5c11c37bb7cb0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:12:13 2026 -0400 test(core): unit tests for ApplicationRightModel 6 cases covering defaults (all flags false), constructor flag assignment, rightKeyName storage, fromJson int 1/0 parsing, and regression guard that string '1' is NOT truthy (strict int compare). commit fd6f69443fcedd0b9ea7f699d95ef2131081247b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 19:01:06 2026 -0400 test(inventory): unit tests for CategoryFilter + ItemFilter 9 cases covering defaults, toQuery field mapping (including CategoryFilter.onlyGroups=true), copyWith semantics (ItemFilter's sentinel-based null preservation), and toString content. commit ee70e4ef408042dab75b3032f2583f59c147aef3 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:59:31 2026 -0400 test(location): unit tests for LocationIdConverter 6 cases covering fromJson int passthrough, string-to-int parse, bad string fallback to 0, negative ints, non-integer double fallback, and toJson int passthrough. commit 223291f3b41286103a9ec29b4b6671e6ca0a7608 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:57:58 2026 -0400 test(settings): unit tests for primitive codecs 19 cases covering BoolCodec ('1'/'0' + 'true'/'TRUE' + unknown fallback + round-trip), IntCodec (encode/decode/fallback/round-trip), DoubleCodec (same), StringCodec (whitespace trim both directions + passthrough + empty). commit 04c3ae702d556873452be7aaa598d7f950ba96a6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:52:38 2026 -0400 fix(test): drop redundant default TextEditingValue arg in mask test avoid_redundant_argument_values lint flagged the second oldValue='' literal. Swap to TextEditingValue.empty for consistency. commit ef41a7fe4bb0dc196962723bfef823dbfb0d21f0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:51:01 2026 -0400 test(core): unit tests for FieldInputValidator$String$Mask 3 cases: passes when formatter is fully filled, throws MaskNotFilled when incomplete, and exception carries input + masked example. commit a85beec9a549bc662df36c39c0f7e2cec2e11f9b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:50:16 2026 -0400 test(inventory_exchange): unit tests for BoolToIntStringConverter 8 cases covering fromJson ('1' truthy, everything else false including 'true' literal) and toJson ('1'/'0'), plus round-trip for both states. commit 56fa72c1688b744033f9b7ad3071243bd5c05575 Merge: fed637ab8a c064845936 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:49:09 2026 -0400 Merge branch 'NewOrderBloc' into dev commit c064845936c0a80de701dc1c3e89b40c81d39368 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:44:28 2026 -0400 test(inventory_exchange): unit tests for InventoryExchangeModel$Item 7 cases covering equality by id OR name (disjunctive), hashCode stability, copyWith selective update + complex field preservation, and toString field-label embedding. commit 1aaf3f69b777bba41aae5bebe700a021f3f158ac Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:20:21 2026 -0400 test(inventory_exchange): unit tests for InventoryExchangeModel subclasses 12 cases covering ExchangeContentKind sheet names, Category/Modifier$Group/ Modifier$Item/TaxRate field storage, name-based equality, and toString embedding. commit 23a5b6bc36f4ee8814795c7d2f50c26b1632def8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:18:27 2026 -0400 test(inventory_exchange): unit tests for ExcelBoolCodec 11 cases covering encoder (true/false/null), decoder (Yes/No/null/ unknown/case-sensitivity), and full round-trip for all three states. commit 5e346a321301e187c58bd1bd0038c716f81229c7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:17:55 2026 -0400 test(happy_hours): unit tests for UpdateTTimePriceAP + CreateTTimePriceAP 4 cases: toMap snake_case serialization and toString formatting for both models. commit 4be13b7eb212b2d8a242794cbce314c6addd291c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:16:03 2026 -0400 test(ui): unit tests for SyncStatus + SyncStatusType 12 cases covering enum text non-empty + completed label, all 5 named constructors (alreadyInProgress/syncInProgress/completed/message/error), and toString branching (message/error embedding, syncInProgress text, syncCompleted local-data-sync vs default). commit 3b84f0e94d1ee0b99885e631e57e879fefcd747c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:13:48 2026 -0400 test(features): unit tests for TipsSuggestion + DiscountType enums 4 cases covering TipsSuggestion index and title fields, enum length, and DiscountType values list. commit df8d4d41188b953ea7807d3158b6dfa142def011 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:12:02 2026 -0400 test(core): unit tests for ProductType enum 8 cases covering all 6 enum values via fromString, fallback to product for unknown, and value-field stability. commit 291126b0ceb9871bd2a3c29c5694fde6906104cf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:10:30 2026 -0400 test(ui): unit tests for StopListEnum.getStopListEnum 5 cases covering all 4 branches (inStock no-data, inStock marked-deleted, setQuantity, outStock) plus non-empty text assertion. commit b2134ddd88273b51d72ba791f220e7adf9b9b16b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:08:32 2026 -0400 test(settings): unit tests for general settings enums 15 cases covering: - GeneralSettingsDateFormat.fromString (mdy/dmy + fallback + format field) - GeneralSettingsTimeFormat.fromString (usa/european + fallback) - CurrencySymbol.fromString (all known + fallback) - CurrencySymbol.locale mapping (dollar/tenge/tg/rouble/euro/sum) - CurrencySymbol.toSettingString round-trip commit c30fda2739e0b329022b08819fd3e15558fe8daf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:06:38 2026 -0400 test(features): unit tests for kitchen + order_list enums 10 cases covering: - KitchenCookingStatus.fromString all 4 values + whitespace trim + fallback - KitchenCookingStatus.color distinctness - OrderListType.pageIndex values - SortType.sqlValue DESC/ASC mapping commit 930a305529a8cd16733db1a9b6eb448b86ad3507 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:05:09 2026 -0400 test(inventory): unit tests for ModifiersListColumnType + list fields enums 10 cases covering: - ModifiersListColumnType.toString labels, 'more' empty sentinel, compareTo order - ModifiersListFieldsExtension toStr, fromString round-trip, unknown null, toStringValue symmetry - CategoriesListFieldsExtension toStr, round-trip, null fallback commit 8c7bcf26945b8e2653948296a37b75bab474ccb6 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:03:34 2026 -0400 test(features): unit tests for column-type enums + ValorProfileType 9 cases covering ItemsListColumnType toString/compareTo, ClientHistoryColumnType.isActive/isAscending/isDescending branching against ClientHistorySortBy, and ValorProfileType.types constant. commit b47e8f1835d6df987966fe5fd1c654320100dbfa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:01:36 2026 -0400 test(settings): unit tests for ReceiptPrint/HideModifiers/AutoPrintDelivery enums 11 cases covering all fromValue branches + fallback on unknown for ReceiptPrintOption, ReceiptHideModifiers, AutoPrintDeliveryOrders. commit ba3ee0750d2f95d2afbe184476561acf80d72668 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:01:04 2026 -0400 test(features): unit tests for settings + clock_time enums 12 cases covering: - ClockTimeStatus.getFromTransaction for all 4 state/event combos + non-empty titles - KitchenReceiptVoidOption.fromValue (alwaysPrint/alwaysAsk/doNotPrint + fallback) - TipMoment.fromValue (before/after + fallback) commit fc91b2c05426386c04cfe779e76ae96cf49af353 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 18:00:21 2026 -0400 test(kitchen): unit tests for KitchenSocketMessage JSON round-trip 3 cases: fromJson, toJson field mapping, full round-trip preservation. commit 070773685aee69a40fb454dc5993e256f5967305 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:58:11 2026 -0400 test(time_cards): unit tests for TimeCardModel.fromJson 4 cases: full field parse, is_clocked_in '0' false, invalid-date fallback to epoch-zero, int employee_id coercion to string. commit 7456139231cc8577190ce5c79c4d0356431df94b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:57:43 2026 -0400 test(features): unit tests for PinValidationResult + NktProduct 8 cases covering PinValidationResult (employeeId storage, master-code empty sentinel, equality, toString) and NktProduct.fromJson (fields, missing-field empty defaults, nullable nameKk). commit 18355026d8466f2a78bd097e829116c8776e567d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:56:04 2026 -0400 test(aptito_eod): unit tests for PaymentEntity + RefuseItemEntity 8 cases covering PaymentEntity.fromJson (core fields, 'null' tip normalization, '0'/'null' parentId null-coercion, valid parentId passthrough, defaults) and RefuseItemEntity JSON + empty ctor. commit bb9106f9625f07ed2719db68096aca7618353c06 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:55:27 2026 -0400 test(reasons_and_notes): unit tests for note domain entities 10 cases covering NoteCategory.fromItemId (all 9 known ids + unknown fallback), NoteCategoryItem equality/hashCode/toString, and SNoteItem defaults / copyWith / equality / toString. commit a461cf95463f1fb410c4808e050bd4b40cb9dd15 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:53:03 2026 -0400 test(client_history): unit tests for ClientHistorySummary.fromData 5 cases covering empty records, positive-only accumulation, negative-only spending, mixed positive/negative separation, and client field propagation (name, availablePoints) to the summary. commit b6f295e3e1f7b4ebaed055e471dcef79f3d24ee0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:51:13 2026 -0400 test(location): unit tests for PhoneMask 15 cases covering: - custom factory: valid chars, whitespace trim, empty + no-# throw - values preset list - validatePhoneNumber: USA area-code 0/1 rejection, length, KZ country code, empty input - formattedPhoneFormat digit-to-# substitution - formattedPhoneFormatOnlyPlaceholders shape commit 21e329a7a8c1dabf2ae3b2f919fe51905735bba0 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:49:29 2026 -0400 test(location): unit tests for location domain entities 14 cases covering CountryId named factories (usa/kz/gtm) and int interop, CountryUnit/RegionUnit/CityUnit equality + hashCode, Address.initial defaults, Address.copyWith selective update, Address.toString format. commit bdceb1280fe45f8af633bf5fe0bbcca8b022c555 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:48:49 2026 -0400 test(core): unit tests for Apid and Wpid extension types 10 cases covering isValid/isNotValid for '' / '0' / '#' / real values, .empty factory, and underlying-string exposure for both Apid and Wpid. commit 98760ee4dc9b8ab86588c204e370190ccda86d22 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:47:16 2026 -0400 test(core): unit tests for ResponseData / SingleData / ListData 10 cases covering field storage, toString, fold branches for single and list, isSingle/isList discriminators, and getSingleOrNull/ getListOrNull null handling. commit 2d9181e62f373abbc53486dbca0a29c6ee78b287 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:46:47 2026 -0400 test(core): unit tests for Result / Success / Failure 19 cases covering: - Success/Failure field storage, toString, equality, hashCode - Generic-parameter runtimeType distinction - ResultExtensions: fold, isSuccess/isFailure, getOrNull, getOrElse, getErrorOrNull commit c6f0dae57ed1f59ca9feeda5112810673c2146d4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:45:15 2026 -0400 test(core): unit tests for BytesSize 18 cases covering constructor auto-unit selection (B/KB/MB + negative clamp), the unit factory, arithmetic (+ - * /), comparison operators and compareTo, equality/hashCode, and toString formatting (whole-number trim + fractional precision). commit 8832dd4323a75573b2a54906888c6d068460d3cb Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:44:38 2026 -0400 test(inventory_exchange): unit tests for InventoryImportException hierarchy 11 cases covering ImportMissingValue equality/hashCode, ToLargeFile size storage, the InvalidFormat subtree (EmptyData, InvalidColumns, MissingValues), UnsupportedFileType, InventoryDuplicates/InvalidItems toString, and Exception conformance across all subtypes. commit 583eed22caaf11cd0b84e0b8f0c0ba0aff4ac763 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:42:07 2026 -0400 test(partner_portal): unit tests for MerchantException hierarchy 6 cases covering PartnerNotFound (type + toString with id), BuildTree$PartnerNotFount (type, toString with both ids), BuildTree$AccountNotFount (field storage + type conformance). commit 71b060739896308cc8dca6c1c5d24b4a383afd20 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:41:31 2026 -0400 test(features): unit tests for settings + app_store exceptions 7 cases covering BaseSettingsRemoteException (SettingsNotFound, SettingsUnavailable, FieldCannotBeEmpty, SettingsIdMissing) for type, toString, fieldName storage, const canonicalization; and BaseAppStoreException hierarchy (5 subclasses + message field). commit 934127c096764cc15d17a204644bf19722424920 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:40:53 2026 -0400 test(features): unit tests for gift/transactions/image exceptions 9 cases covering Factor4GiftResponseException (fromJson/toJson round-trip, toString), GiftResponseException (toString, Exception), all 5 subclasses of BaseTransactionsException, and RemoteImageNotFoundException. commit e31f5b376a74b3eb8d6cb73cc85a80adf37e88dc Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:38:35 2026 -0400 test(auth_pin): unit tests for BaseAuthEmployeeException hierarchy 5 cases covering all four subclasses (InvalidEmployeePassword, WorkplaceProhibitedEmployee, WorkplaceNotFound, NoInternetConnection) for type conformance and const canonicalization. commit 766a7a641da0e5d6ff5470369fc5dc3b058e094a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:37:16 2026 -0400 test(features): unit tests for feature exception hierarchies 9 cases across: - OrderException / TableIsBusyException (hierarchy + const canonicalization) - SheetValidationException$Duplicates / $MissingColumns (toString, payload storage, hierarchy) - BaseAlreadyExistsException: UsernameTakenError, PincodeTakenError, PincodeBusyError (hierarchy + const canonicalization) commit f51b70ea428f4ea4cd4c8a3aa5b626a94c51284e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:35:20 2026 -0400 test(features): unit tests for sync + initial navigation exceptions 5 cases covering ShowPaymentEpiIdDialogException (defaults, field storage, type hierarchy) and ShiftIsClosed (type hierarchy + const canonicalization). commit c2800b5f9bef09ff1b6e6b1d02e7ea2993c98ae1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:34:52 2026 -0400 test(clock_time): unit tests for ClockTimeException hierarchy 6 cases covering ClockTimeRepeatedTransaction toString prefix, ClockTimeRestrictedUnpaidOrders/PaidOrders toString prefixes, and the regression guard that the ClockTimeActionRestricted sealed tree is distinct from the ClockTimeException sealed tree. commit ef9de36a167b0e40aad5bf2732834625f9deed89 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:33:06 2026 -0400 test(devtools): add LocalException and ExceptionMessages cases Extends the exceptions test file with LocalException toString + Exception conformance and ExceptionMessages.noConnection non-empty sanity check. Brings the devtools exceptions file to 9 tests. commit bdaed00a4a59175f877f0a43a83ef6cabd5f9396 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:32:23 2026 -0400 test(devtools): unit tests for RuntimeException / RemoteException / UnauthorizedException 6 cases covering toString format for each, ensuring expected fields are embedded, and Exception interface conformance. commit 21ce0c5591b45354ebe583e039a73eeb51fa138b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:31:36 2026 -0400 test(partner_portal): unit tests for Currency 9 cases: fromCountryId (USA, KZ, unknown fallback), equality (matching, identical fast path, mismatched code, non-Currency), hashCode stability, and universalCurrency constant. commit 341d6fc965213097f65d98a6716510f300d36779 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:29:41 2026 -0400 test(order): unit tests for OrderUtils.checkCanApplyDiscount 5 cases covering percent vs cash discount types, within/exceeding due sum, and the subtotal-fallback branch when totalSum < subtotal. commit 7d493cfa9d3736830630aa99238fe78381470707 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:27:23 2026 -0400 test(core): unit tests for PhoneNumberFormatter 6 cases: strips non-digits / plus prefix, digit passthrough, empty, 20-char max revert, selection lands at end. commit 2105580c555bfba57bc930e491fae7939eb164c9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:26:51 2026 -0400 test(core): unit tests for input formatters 17 cases across: - DigitsOnlyInputFormatter: empty, digit accept, non-digit revert - DigitsAndDotsInputFormatter: hex + colon + dot + digit accept, whitespace rejection - IpAddressInputFormatter: auto-dot, invalid chars, 5th-octet block, deletion, octet range validation, leading-zero prevention - CapitalizeFirstLetterFormatter: empty, first-letter upper, tail case preservation, idempotent on already-capitalized commit 28124b9eaf9200bdbaef372f3f2b7a9e8398e905 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:25:10 2026 -0400 test(location): unit tests for FieldInputValidator$UnknowValue 7 cases covering null/empty accept, matching/unknown value, case-sensitive comparison, custom test function semantics, and verification that the exceptionBuilder is invoked with the original input value. commit e52d9087d4981fb595696d03668c381ef84153ac Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:24:31 2026 -0400 test(order_ready): unit tests for OrderReadyScreenUtils default settings 4 cases verifying default keys, hex color prefixes, empty defaults for order_types and show_in_drawer, and non-empty text_to_speak. commit 6e94dce32228dba15143a473f6a98889c950c104 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:23:03 2026 -0400 test(core): unit tests for SPrinter 15 cases: - empty factory defaults - canBeUsed (markDeleted + apid '0' logic) - isOnline (null, within 5min, older than 5min) - toJson (bool/int coerced to strings, sysname omission, ISO date) - toLastDtJson (success + throws when null) - equality and hashCode commit 510f95801496deab0e9d32f4f48c6044b1a9d82b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:21:54 2026 -0400 test(core): unit tests for SNDSType and NdsType 13 cases covering NdsType.fromString (tax/fee/fallback), fromJson (value, bool flags, type, extra default), toJson (dtedit=now(), bool serialization, enum raw value), equality/hashCode based on id/value/ type/included/isDefault, and copyWith selective update. commit 149b5fd17175f329eb44d3fc7aa5564ea5e43027 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:20:11 2026 -0400 test(core): unit tests for SAutomatedPoint JSON 4 cases covering numeric field parsing (servicepercent, askguestcount, divChangeWorkplace, is_service_after_discount), fallbacks, dtedit=now() on serialize, and snake_case key mapping. commit 77e0082fe9f3f52395b72478315f4fb537e63d25 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:19:37 2026 -0400 test(core): unit tests for SDiscount and SLoyaltyRules 10 cases: - SDiscount: discount_code null default and pass-through, legacy key mapping - LoyaltyType.fromString: all four types + unknown fallback to visits - SLoyaltyRules.fromJson: numeric parsing, bad-field fallbacks commit 20dd1cfbbbcc064d6b0b89f5f169e350f6b2ac71 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:18:56 2026 -0400 test(core): unit tests for TOrderTax JSON and copy 10 cases covering fromJson bool parsing, src_tax_fee_id null default, numeric parse fallbacks, TOrderTax.copy preservation and override semantics (esp. src_tax_fee_id linkage), and the legacy df_request_id/tf_request_id vs d_order_id/t_order_id key divergence between toJson and toJsonWithID. commit a9b2e80ef6207408abb33da11795d7e6613f4868 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:17:32 2026 -0400 test(core): unit tests for TTaxLocation, TTaxRelations, SStopList 11 cases: - TTaxLocation: fromJson coercion, toJson round-trip - TTaxRelations: fromJson, dtedit=now(), conditional mark_deleted, copyWith - SStopList: snake_case fromJson, stock_quantity parse fallback, toJson/toJsonn parity (regression guard against the typo'd duplicate), constructor defaults commit 2c5a986ca04ab0a47bf71dc3686430a6d485bc4a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:16:46 2026 -0400 test(core): unit tests for TEmployeePopup JSON 5 cases including a regression guard for the legacy mixed-case key conventions (u_Return, u_PriceChanged, u_Receipt, u_OtherEmployeesReport) and a toJson -> fromJson round-trip. commit 39ce263617a50d8ed4dff81680e31852019f4b59 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 17:16:13 2026 -0400 test(core): unit tests for TEmployeeWorkplace, TRight, SItemRecommended, TDiscountClients 10 cases covering fromJson string coercion, toJson nullable handling, TRight permission defaults and dtedit=now() on serialize, copyWith semantics, and snake_case key mapping (dst_s_item_id / src_s_item_id). commit 2e51d96391c9112c258b2e57a8b4c903e495b71e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:34:37 2026 -0400 test(core): unit tests for SModifier 6 cases: - priceWithGroup: null groupprice, additive, zero - fromJson: string price parsing, bad-price fallback to 0 - toJson: field mapping including is_default null fallback to '0' commit 26003138101dee1836c61ca2911510276089e9fa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:34:00 2026 -0400 test(core): unit tests for DOrderDelivery JSON 7 cases covering is_payed bool round-trip, the legacy 'adress' typo key (regression guard), missing-field defaults, and status_id default '0'. commit ea314f00cf95d1af642d1371f46a459b78547bce Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:32:30 2026 -0400 test(core): unit tests for SRole and SAddress JSON serialization 7 cases: - SRole.fromJson int coercion, toJson nullable omission + dtedit=now(), toJson with present nullables, copyWith - SAddress.fromJson all-string payload, missing-key nullable handling, toJson core field mapping commit c23f4540983c91bcc8cf9f4005ba9f2a36d361df Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:30:44 2026 -0400 test(core): unit tests for SSubdivision, SMark, TEmployeeRole JSON 9 cases: - SSubdivision: fromJson string coercion, toJson field mapping - SMark: int coercion, bad-int fallback, empty factory, copyWith, toJson<->fromJson round trip - TEmployeeRole: fromJson string coercion, toJson nullable handling commit 77d8f3c73d46b228708cddb51458c48fc23baf6f Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:29:45 2026 -0400 fix(test): drop redundant default args in modifier ops tests avoid_redundant_argument_values lint flagged minCount: '0' / maxCount: '0' which match the default. Test semantics unchanged. commit c2a0f9fefd6c4a20af93b87372de6ca5e9b34745 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:28:07 2026 -0400 test(core): unit tests for STypesPayment 11 cases covering allPayments factory, isGiftCardType (matching/empty/ unrelated guid), toJson, fromJson (mark_deleted parsing, int id coercion), and copyWith (selective + preservation). commit df9e95aeee68731888687708aff01de16556771b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:27:00 2026 -0400 test(local_server): unit tests for JsonUtils 10 cases: - encodeSync: plain Map, plain List, IMap unlock, IList unlock, toJson on custom objects - decode + decodeMap: object and array parsing - JsonStringExtension async delegates commit c12bbc695aca0f123d5ed3695cb2facdfc8be943 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:25:36 2026 -0400 test(core): unit tests for misc extension utilities 31 cases: - NotEmptyString.notEmpty - ColorExtension.toHex - StringBufferExtensions.writelnIf - Extension.compareChanged (strings, doubles, ints) - Extension.hexToColor (with #, without #, null fallback) - SmartDoubleParsing.toSafeDouble / isParsableDouble - IterableModifiers.interleaved - IterableInternal.safeElementAt commit 49af490d6cf914793661f55aa289edf5c48b6bfd Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:23:45 2026 -0400 test(core): unit tests for DeviceInfo subclass toJson serialization 6 cases covering Android, iOS (with N/A identifier fallback), Web (with N/A fallback for nullable fields), and Windows (with MB-suffixed memory formatting). commit 74a7ec4a9b8958e0aab02f487ec41a2c34fb9c82 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:23:04 2026 -0400 test(core): unit tests for STip toJson/fromJson 4 cases: full toJson round-trip, dtedit always 'now()', fromJson with int id, percent parse fallback to 0. commit 060447d69d1094d6ce4e99ab005cc0673b6b77d1 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:22:31 2026 -0400 test(core): unit tests for String + Object extensions in extension_utils 32 cases: - nullIfEmptyOrLiteralNull (trim, empty, whitespace, literal 'null', case) - emptyIfLiteralNull (passthrough, literal null, empty) - toUpperCamelCase (space, underscore, dash, mixed, single) - addSQLCondition (empty receiver, AND join, empty addition) - ifEmpty (empty fallback, non-empty passthrough) - ObjectExtension.isNullOrEmpty (null, string, list, map variants) - ObjectStringExtension.toEffectiveString (null, literal null, string, int) commit 062de0dd0e76d4166962a5f7b691fefb65085806 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:20:29 2026 -0400 test(core): unit tests for SItem.buildSearchName 6 cases: joining, uppercasing, surrounding whitespace, empty alternative, empty primary, both empty. commit 35d5d50993dc85017e0f69cf15f14ea63dd67424 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:19:42 2026 -0400 test(core): unit tests for PhoneNumber.formatPhoneNumberForSaving 7 cases covering whitespace, parentheses, dashes, + prefix, all-digit passthrough, empty, non-numeric, and fromString normalization. commit 2bd82469bdaea5dda4f03b8b345aedfeba1b495b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:18:44 2026 -0400 test(core): unit tests for OldUtils decimal arithmetic helpers 9 cases covering decimalAddSubtractFunction (add/subtract/zero/negative) and decimalMultiplyDivisionFunction (multiply/divide/zero/trailing-zero strip). Notable regression guard: 0.1 + 0.2 produces exact 0.3, not the 0.30000000000000004 float drift. commit 6128e2465237750b84e4686b84e435411d3881bf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 15:18:11 2026 -0400 test(core): unit tests for extension_utils helpers 17 cases covering: - FirstWhereOrNull on List and IList - StringCapitalization.capitalizeFirstOfEach - Map.orderByKeys / orderByValues - NumExtension.formatSecondsAsTotalHoursString commit 6cb6ac42279082658e8ac28f6e6077b0776d1f63 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:56:04 2026 -0400 test(core): unit tests for Required + Regex field validators 11 cases covering: - Required: null/empty throw, non-empty/whitespace pass - Regex.digitsAndLatinLettersAndDot: accepts a-z A-Z 0-9 '.', rejects spaces/@ - Regex.digitsAndDashes: accepts 0-9 '-', rejects letters and mixed commit a1b45d9f524ee9fe5ea82dd2c78d27b5f189414a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:55:02 2026 -0400 test(core): unit tests for String length + email field validators FieldInputValidator$String$Length (8 cases): - assertion at construction - null passes - empty throws ToShort when min>0 - below/above boundary - exact boundary passes - combined range passes FieldInputValidator$String$Email (8 cases): - null/empty pass (non-required) - valid emails including plus-tag - missing @ / missing TLD throws - trimInput behavior (true vs default) commit 19df71567f2cd8bd8dcd9cf9d9b742ab64fd82b9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:53:53 2026 -0400 test(kitchen): unit tests for KitchenUtils pure helpers + HexColor 8 cases: - kdsDefaultSettings: required keys and values - colorInterval: HH:MM:SS -> seconds, edge zero - formatTime: device-time-in-past guard + HH:MM:SS diff shape - HexColor: with/without # prefix, invalid fallback to white commit 9aca16b7004cb69e0b4cd3c2dccfd0d82f00577e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:53:02 2026 -0400 test(ui): unit tests for CoreBase.isValidUrl 9 cases covering http/https, path, subdomain, and rejections for missing scheme, ftp, empty, plain text, and no-TLD hosts like localhost. commit 0a4a02585fb3fb212559ec979f1b1dc9e2b65645 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:51:47 2026 -0400 test(core): unit tests for TokenLogMask 10 cases: null/empty passthrough, emptyAs substitution, single char, two-char edge, short/long tokens, star cap at 32, and a regression check that sensitive middle content does not leak through the mask. commit 11ff6a7450fc3c13215b9c8502c327619381df4e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:49:44 2026 -0400 test(local_server): unit tests for CoreServerFunctions pure helpers replaceNowToDate: 4 cases (lowercase, mixed casing, sqlite literal mode, no-op passthrough). requestInjection: 5 cases (DROP TABLE, INSERT INTO VALUES, UPDATE SET, benign SELECT, whole-word boundary so 'addition' does not flag 'add'). commit b997291809c673b4cecb618c3aea35e83b7466fa Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:48:50 2026 -0400 test(order): unit tests for OrderUtils modifier operations Cover the pure modifier-group predicates lifted out of OrderUtilsModifierOps: - isOneOfManyModifier / isOneOfManyOrNothingModifier - isModifierSelected (absent, zero, positive) - isModifierCountShown (1/1 group, locked count, unlimited, range) - isReachedMax (null max, below, at) - getModifierCount (missing, stored) 16 new tests, all green. Project total: 797. commit 4e17e31ab99e68514e5cf770aa84788fd86710ba Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:47:35 2026 -0400 test(order): unit tests for ColorContrastUtils Cover isLightColor / getContrastTextColor / getContrastTextColorFromHex / isGrayColor across 15 cases: white, black, mid-gray, dark/light hex, with and without '#' prefix, pure gray, near-equal RGB, very dark, very light, vibrant colors. Full suite now: 781 / 781 green (up from 712). commit 59079185834eaabbaca9c98c7713f096b71a560d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:46:08 2026 -0400 test(utils): unit tests for AddressUtils + MasterWizardUtils validators AddressUtils.formatAddressFields (4 cases): empty, full populated, partial (placeholder stripping), single-field trailing cleanup. MasterWizardUtils validators (24 cases): - validateEmail: valid / empty required / empty optional / too-short / malformed - validateRegistrationPassword: length, upper, digit, special char rules - validateCashDiscount: threshold, zero, non-numeric - validatePercent: required, optional, integer, fractional, dot-limit, range - validateTip: in-range, out-of-range, non-numeric 28 new tests total, all green. commit d3250a150d12116e2b89926ad0f07a991b612693 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:44:11 2026 -0400 test(order): unit tests for DOrderMath + OrderMath helpers (Phase 6 pull-forward) Covers: - DOrderMath.serviceSum / discountSum / subtotal / totalSum (10 cases) - OrderMath.checkContainsNumberAfterDotNotZero (3 cases) - OrderMath.calcProportionalAmount (4 cases) - OrderMath.calculateTip (5 cases: empty list, default, by id, custom, fallback) Pure math, no mocks. 22 new tests, all green. commit 211760ce5519269943d53d8ed7b9a3aa8daf84c2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:35:04 2026 -0400 test(terminal): unit tests for TerminalOrderUpdateContext Cover PayByCash / PayByCard / AdjustTips event flag resolution and isSemiIntegrationDevice computation. First pure-logic terminal test outside the existing refund service suite. commit 74c175e0e0692e6c8427792da0dcf1d053b0e772 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:33:53 2026 -0400 refactor(terminal): DRY _reportX/_reportZ via _runFiscalReport (Phase 2.2) Extract the identical X/Z fiscal report boilerplate (~60 lines each) into a single private helper parameterized by TFiscalOperation and log-method name. Net: ~120 duplicated lines collapse to one shared body. No behavior change; terminal + order test suites green. commit dd45da6528dd434a4a90ae7fc51fc5512925a34d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:28:38 2026 -0400 refactor(terminal): extract TerminalOrderUpdateContext (Phase 2.1) Move event-introspection and payment-device resolution out of TerminalBloc._onUpdatingOrder into a pure, testable value class. No behavior change -- 10 lines of inline switch replaced with one factory call. Unlocks future unit tests on the branching logic without standing up the full bloc + 31 deps. commit 8d72c06386480ed66c3ddcf8b201b3ffb3713e81 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:26:36 2026 -0400 fix(stability): move must_be_immutable ignore to correct position Part directive between comment and class broke the ignore association. Result: dart analyze now reports 0 issues project-wide. commit 0ca9271be637d9e6ee4b53b9724a0e2f51a59b01 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:23:31 2026 -0400 fix(stability): phase1 1B.6 -- wrap 11 unguarded BLoC handlers in try/catch Audit-driven: added try/catch + ExceptionUtils.logRuntime to handlers that await async work without error handling. Affected: - transactions filters _onDateTimeRangeChanged - add_update_item _onDeleteItem - add_modifier_bloc _onAddModifier - add_edit_modifier_group _onItemEditedModifierGroupEvent/_onDataLoadModifierGroup/_onUpdateGroup/_onDeleteModifier/_onAddModifiersGroupEvent - receipt_options _onRecieptOptionsDoneSelecting - client_history _onLoad - location _onUpdateLocale Handlers that delegate to internal methods with existing try/catch (leaf_theme_settings._handleSettingUpdate, merchant_catalog._reload, partner_catalog._handleSearch) were left unchanged. commit ed6863efb775de8ba747a65e8450d375b4f51587 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:18:44 2026 -0400 fix(stability): phase1 1D.5 -- zero use_build_context_synchronously warnings Long-tail mounted-check fixes across inventory, partner portal, transactions, reports, order_tips, kitchen, leaf, price_checker, ui. Phase 1D complete. commit 183df1644c994b2f20b5971601e070e875cfa357 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:07:44 2026 -0400 fix(stability): phase1 1D.5 -- core (socket, routing, auth_logout, util_functions, widget_utils, device_utils) commit 5254c53eb2dcac4b9bb96477808d3c261ce7be7b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:05:11 2026 -0400 fix(stability): phase1 1D.5 -- types_of_payments, terminal_mode, taxes_fees, support, batch_report commit a8eb228e34c03fc6f12f60fa39e3a1e2e2456f8d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 14:00:45 2026 -0400 fix(stability): phase1 1D.5 -- transactions/transaction_test/leaf_main/clock_time/exception_utils/leaf_void_dialog batches commit f3d9dfaa33d596cfdf00960e28d69882ec06277e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:55:35 2026 -0400 fix(stability): phase1 1D.5 -- drawer, area_constructor, aptito_eod_portrait commit 9d677a21d6303b21b3a93ec6b2f58e08c378b99a Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:51:11 2026 -0400 fix(stability): phase1 1D.5 -- transactions/clock_time date filters, inventory add_edit, happy_hours commit bf6949a9fa81fbbbe5c51d285961c6ad45d302e8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:47:18 2026 -0400 fix(stability): phase1 1D.5 -- integrations webview/printing/halyk_qr/terminal_batch mounted checks commit 30b6a7b3c2ec4fa0244469af6c4c3384b6f9e9ba Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:44:26 2026 -0400 fix(stability): phase1 1D.5 -- status_bar, items_list_header, leaf_shared_functions, modifiers_list commit dd0d3cb3c11e0667b5118ee426cfbae14b5ddd24 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:41:48 2026 -0400 fix(stability): phase1 1D.5 -- auth_pin current_employee_cubit mounted checks commit eb4cde2e71bdad7f0839596fc552985fe3107071 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:39:55 2026 -0400 fix(stability): phase1 1D.5 -- inventory modifiers, aptito EOD, sync_wrapper batch commit c486b78b3226f17ba941801090721ffd9a6c95fe Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:35:33 2026 -0400 fix(stability): phase1 1D.5 -- TABLE_SERVICE MODULE COMPLETE -- 28 sites commit d9997d9656899f593e0c1064ca940646047acaf7 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:29:40 2026 -0400 fix(stability): phase1 1D.5 -- settings module 53→1 (mostly hardware param batch fix) commit 783ac34b614eae05b794f21ee8db9e0d125ec64d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:23:45 2026 -0400 fix(stability): phase1 1D.5 -- settings batch (client/general bloc, image url widgets) commit eab3fa09b732c3113b8f9e8e348f9e4774725286 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:21:08 2026 -0400 fix(stability): phase1 1D.5 -- ORDER_LIST MODULE COMPLETE -- mounted checks (76 sites) commit 4c76c24d28fd527948145b933856d22b31c2758b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:17:38 2026 -0400 fix(stability): phase1 1D.5 -- order_list batch (refund_void, transfer, tools, fiscalization) commit e17c86636c73a48b0d4c83c94abeb30acb585858 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:08:38 2026 -0400 fix(stability): phase1 1D.4 -- KIOSK MODULE COMPLETE -- mounted checks (36 sites) commit d3ba9468f347d3b7621a6cd52f014cd1cb46366d Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 13:00:48 2026 -0400 fix(stability): phase1 1D.3 -- TERMINAL MODULE COMPLETE -- mounted checks (43 sites) commit d56aa525314b052d558c2c69d8d544475b0095f4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:58:48 2026 -0400 fix(stability): phase1 1D.2 -- ORDER_CHECKOUT MODULE COMPLETE -- final batch (67 sites total) commit c2afd444bff50c752a02ed53c69c416af81b73c2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:54:45 2026 -0400 fix(stability): phase1 1D.2 -- mounted checks in order_checkout aptito interface, paloma actions, leaf popup (49 sites) commit 47e0bf71676d4db7a848590131b96a83c7a22f4e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:48:11 2026 -0400 fix(stability): phase1 1D.1 -- ORDER MODULE COMPLETE -- final batch of mounted checks (178 sites total cleared) commit db1cf9192e8afdf501e145a34cd239a638e470f2 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:43:46 2026 -0400 fix(stability): phase1 1D.1 -- mounted checks across leaf, paloma, taylor, aptito order widgets and order bloc commit 59b70e7a5250aa03f5862740f8e8b20c1a876678 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:38:35 2026 -0400 fix(stability): phase1 1D.1 -- mounted checks in leaf_order_album_actions, search_list, modifier files; aptito_portrait_modifiers commit dcb8cb18e4dae5a705a05eaaa202b96c47dee962 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:32:39 2026 -0400 fix(stability): phase1 1D.1 -- mounted checks in leaf bottom_bar + image_picker_dialog commit e71e23c1cc4e2df82a2f2ad79d97a3cc9e4b88b4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:29:41 2026 -0400 fix(stability): phase1 1D.1 -- add mounted checks in aptito_order_item_slidable, order_item_counter commit b3df945ddf01425ad163d004141c002128c5ee5e Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:24:22 2026 -0400 fix(stability): phase1 1D.1 -- add mounted checks in paloma_order_actions (19 sites), aptito screens (3 files) commit 135d4f53b228e8b23f0b20eeb447874f30db7b9b Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:18:50 2026 -0400 fix(stability): phase1 1D.1 partial -- add mounted check in aptito album order screen; update tracker commit fb53d3cf2b160b9799c6a157aa560d55660fc407 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:17:15 2026 -0400 fix(stability): phase1 1C -- add missing await to LocalDB.insert in createRowImpl commit 730ddd602dd316db7684b02685fd4863a0e0fd80 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:16:35 2026 -0400 fix(stability): phase1 1B.1-1B.6 -- add try/catch to priority BLoC handlers (terminal cancel, kiosk modifiers, custom receipt, hardware tabs, inventory dispose) commit 2ae96560fd7041a0ce905fe1952c7e0d5e2c6f89 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:12:17 2026 -0400 docs(refactoring): phase1 1A DONE + add test account credentials for UI verification commit 9c2ef40b274eae131840cbaf539a0f82918ce2ea Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 12:11:28 2026 -0400 fix(stability): phase1 1A.10d -- replace firstWhere across area_constructor, clock_time, customer_screen, delivery, discount_clients, inventory, kitchen, leaf, order, partner_portal, reasons_and_notes, settings, table_service, terminal_mode commit 984144eb25dbe9bbdfabf06f1f766e7dfaedef9c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:47:16 2026 -0400 fix(stability): phase1 1A.10c -- replace firstWhere across order_checkout (split, aptito, interfaces, utils) commit 9fdd775519b3727755fecbc4cf2d400ea759abe9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:44:07 2026 -0400 fix(stability): phase1 1A.10b -- replace firstWhere in settings providers, inventory models, aptito EOD, order items commit dd6212bd60f829d468d6032025cc044fb6f639e5 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:38:34 2026 -0400 fix(stability): phase1 1A.10a -- replace firstWhere in core (navigation, usecases, menus) commit 751553f8beb62b35a2b67bffd74bd68b5b0a7c40 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:35:04 2026 -0400 fix(stability): phase1 1A.9 -- replace firstWhere in terminal + integrations commit c0d81528de09feb5eae5c852043dd0a6ebef6237 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:33:40 2026 -0400 fix(stability): phase1 1A.8 -- replace firstWhere in settings (ui/general/client) commit 11265b02d44f1c149410b2fa208f18c3d0d6fccf Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:31:16 2026 -0400 fix(stability): phase1 1A.7 -- replace firstWhere in order bloc + order_math commit 636607b32e128e35022f606a75a889fc7e7bc3b9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:30:00 2026 -0400 fix(stability): phase1 1A.6 -- replace firstWhere in kiosk bloc and widgets commit 583aa9e1f3690a636314c73e657ff21844444288 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:25:54 2026 -0400 fix(stability): phase1 1A.5 -- replace firstWhere in inventory (employees + items list) commit cb8cfd44adce878a78b03c07aa22b195ad42f7ed Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:23:55 2026 -0400 fix(stability): phase1 1A.4 -- replace firstWhere/singleWhere in order_checkout commit 449abf923017a423443b5637f896e3d257b21719 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:21:59 2026 -0400 fix(stability): phase1 1A.3 -- replace firstWhere in discount_operations commit 0849d1003b37b395448c1c6ae8773530c356cfd9 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:20:32 2026 -0400 fix(stability): phase1 1A.2 -- replace firstWhere in discount_clients_cubit commit 816b7878f652632b5b84c8e3030b9f85ed645d1c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:16:13 2026 -0400 docs(refactoring): phase1 1A.1 DONE -- update tracker commit a28fd8cb28b6e35e2404d3da808d96676d0e3ede Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:15:59 2026 -0400 fix(stability): phase1 1A.1 -- replace firstWhere in delivery widgets commit 406d36f78a74f9043cf1613b49b9a914289d13e4 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:09:53 2026 -0400 Delete TERMINAL_BLOC_REFACTORING_PROMPT.md commit 0dab1634b38493a014d250c078a3db51fc5912f8 Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 11:09:16 2026 -0400 docs(refactoring): add safety protocol with git tags, pre-push checks, and rollback instructions Made-with: Cursor commit 9ff346210e6edb08fc4292be645a5d1d8298732c Author: Paloma365 <53403859+Vladsoftik@users.noreply.github.com> Date: Tue Apr 14 10:47:47 2026 -0400 docs(refactoring): add 6-phase product stabilization plan with AI prompts Comprehensive stabilization plan addressing 7 root architectural problems: - Phase 1: Critical bug fixes (firstWhere/192, try-catch/53+, mounted/661) - Phase 2: TerminalBloc decomposition (4000 lines -> focused services) - Phase 3: Data model hardening (TOrder/DOrder equality, copy-safety) - Phase 4: Unified error system (AppException hierarchy, fix ExceptionUtils) - Phase 5: Module boundaries + global state elimination - Phase 6: Test coverage ramp-up (2.2% -> 50%+ critical paths) Each phase has a detailed execution plan with progress tracker and a copy-paste AI prompt for session-based execution. Made-with: Cursor commit fed637ab8a3dd765a0320bcfc7fcb7dedb9a581b Author: Forasky Date: Tue Apr 14 17:22:49 2026 +0300 fix(DEV-11596): fix open price switch commit 5c2dfa5378ab7f27cb5d7f1566274e525ca73395 Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Tue Apr 14 16:40:36 2026 +0500 Revert "fix(DEV-11606): sunmi cancel transaction: There is nothing to cancel." This reverts commit 1d5b10d262f43b962b9d3cca21b0d1680e752fba. commit 82ea642ab089ba1bab21b9b996089619de7f1007 Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Tue Apr 14 15:49:38 2026 +0500 fix(DEV-11626): Log out when updating the main station commit 1d5b10d262f43b962b9d3cca21b0d1680e752fba Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Tue Apr 14 14:41:49 2026 +0500 fix(DEV-11606): sunmi cancel transaction: There is nothing to cancel. commit 3f6932ccb17888ca557285b3fa48d6a9ce716ecc Author: Forasky Date: Tue Apr 14 12:28:05 2026 +0300 fix(DEV-11605): fix fill color of button commit 858e5443aee5439a9149f856c9b8b6fb59e8350f Author: Forasky Date: Tue Apr 14 11:37:51 2026 +0300 fix(DEV-10156): fix some issues with reports commit 1f72330830c7d590b421ceb2cc42efc65e0622c8 Author: Yevgeniy <47440198+derevyankin1993@users.noreply.github.com> Date: Tue Apr 14 11:49:23 2026 +0500 fix(DEV-10156): The receipt is not fiscalized when adding a 10% service fee. commit 12ed5bac8f1a2ca34782e2cd094dd862cbd82ba4 Author: Forasky Date: Tue Apr 14 11:53:55 2026 +0300 fix(DEV-11596): fix disabling open price switch commit f58b26612704e5ef2db03facddff155ed1c3a92c Author: Forasky Date: Tue Apr 14 10:48:05 2026 +0300 fix(DEV-11611): list exact total first in quick cash amounts Made-with: Cursor commit 02bf12c58d2c67fc0e6cb3f284b5f88cdf3977ba Author: Forasky Date: Tue Apr 14 10:04:30 2026 +0300 fix(DEV-11562): suppress ICMP ping loop while embedded local server is active ServerPinger now tracks a local-server-mode flag. When the app acts as the Shelf API server the ICMP loop is stopped and a healthy sentinel state is emitted so the status bar ping badge hides instead of showing 10000 ms. ServerBloc.startServer/stop toggle the flag; main.dart restores it on restart when AccountData.isServerOn is already true. checkIsHealthy() still returns false in this mode, keeping remote-sync gates suppressed. Also triggers an immediate connectivity check on init() so the ping loop starts right away when the device is already connected at launch. Made-with: Cursor