5ab089729fc3bce23764df4848c3571b26bb46f1 5ab089729fc3bce23764df4848c3571b26bb46f1 rvanvuren <ryan@buyerkiosk.com> 1776879090 -0500	reset: moving to HEAD
5ab089729fc3bce23764df4848c3571b26bb46f1 6752f1527952f01f25f52d7d77603ae2df82c715 rvanvuren <ryan@buyerkiosk.com> 1776879545 -0500	commit: fix(goals): Security hardening for Goals module
6752f1527952f01f25f52d7d77603ae2df82c715 64aac574aad9313870f15312913fc54418dc9beb rvanvuren <ryan@buyerkiosk.com> 1776880237 -0500	commit: fix(goals): MEDIUM tier security hardening
64aac574aad9313870f15312913fc54418dc9beb 5e4a41960b0d420d1fdd4d41c7a63f26180dc28e rvanvuren <ryan@buyerkiosk.com> 1776880728 -0500	commit: fix(goals): LOW tier security hardening
5e4a41960b0d420d1fdd4d41c7a63f26180dc28e afa6faadd4c1c12c6b16394649760f4d85e10024 rvanvuren <ryan@buyerkiosk.com> 1776880911 -0500	commit: feat(goals): Server-side Goals & Forecasting module (Spec 046)
afa6faadd4c1c12c6b16394649760f4d85e10024 9f79d3a4502bfee5830bfd13300e82c3918fdc0b rvanvuren <ryan@buyerkiosk.com> 1776880964 -0500	checkout: moving from feature/046-server-side-goals-forecasting to master
9f79d3a4502bfee5830bfd13300e82c3918fdc0b 82b0c37759011dea0e38763ef41c9f824fb28aae rvanvuren <ryan@buyerkiosk.com> 1776880964 -0500	merge feature/046-server-side-goals-forecasting: Merge made by the 'ort' strategy.
82b0c37759011dea0e38763ef41c9f824fb28aae 82b0c37759011dea0e38763ef41c9f824fb28aae rvanvuren <ryan@buyerkiosk.com> 1776881055 -0500	checkout: moving from master to feature/047-backstock-category-customization
82b0c37759011dea0e38763ef41c9f824fb28aae 875c37fd23b34a3e83f59438256b904f27a27023 rvanvuren <ryan@buyerkiosk.com> 1776891012 -0500	commit: feat(backstock): Category customization — groups, visibility, short names (Spec 047)
875c37fd23b34a3e83f59438256b904f27a27023 d18cd0ed49f76b57bfab0fbf6da9c3d134658a91 rvanvuren <ryan@buyerkiosk.com> 1777389801 -0500	merge origin/master: Merge made by the 'ort' strategy.
d18cd0ed49f76b57bfab0fbf6da9c3d134658a91 9ce19e48d815cdc2014b662aa9d1e662eb9ccb0e rvanvuren <ryan@buyerkiosk.com> 1777397009 -0500	commit: feat(backstock): Employee context selector, shared category modal, DDL filter fix
9ce19e48d815cdc2014b662aa9d1e662eb9ccb0e 82b0c37759011dea0e38763ef41c9f824fb28aae rvanvuren <ryan@buyerkiosk.com> 1777397015 -0500	checkout: moving from feature/047-backstock-category-customization to master
82b0c37759011dea0e38763ef41c9f824fb28aae 538629f737f3ccb8b64deff739394fe71b5a5c25 rvanvuren <ryan@buyerkiosk.com> 1777397037 -0500	pull origin master: Merge made by the 'ort' strategy.
538629f737f3ccb8b64deff739394fe71b5a5c25 0f46a59c26dd088f3872690dc7fa23fc2d66c37c rvanvuren <ryan@buyerkiosk.com> 1777397042 -0500	merge feature/047-backstock-category-customization: Merge made by the 'ort' strategy.
0f46a59c26dd088f3872690dc7fa23fc2d66c37c 29748886aa437ff51cf92d06ff36a2173046aa99 rvanvuren <ryan@buyerkiosk.com> 1777675476 -0500	commit: feat(backstock): Expand CSV import for multi-store batch ingestion
29748886aa437ff51cf92d06ff36a2173046aa99 29748886aa437ff51cf92d06ff36a2173046aa99 rvanvuren <ryan@buyerkiosk.com> 1777991627 -0500	checkout: moving from master to feature/048-quickbooks-integration-v2
29748886aa437ff51cf92d06ff36a2173046aa99 29748886aa437ff51cf92d06ff36a2173046aa99 rvanvuren <ryan@buyerkiosk.com> 1778157738 -0500	reset: moving to HEAD
29748886aa437ff51cf92d06ff36a2173046aa99 4e7e0214a80f30dacc036dab2eb2592bbd70d899 rvanvuren <ryan@buyerkiosk.com> 1778181060 -0500	commit: feat(quickbooks): Spec 048 v2 — manual approval queue, reconciliation, sign-flip fix
4e7e0214a80f30dacc036dab2eb2592bbd70d899 26d583a5c8819ca1368457b7860435aad8624f75 rvanvuren <ryan@buyerkiosk.com> 1778182313 -0500	commit: fix(quickbooks): exportVarianceCsv must not mutate lastReconciled
26d583a5c8819ca1368457b7860435aad8624f75 dcad4afabdf2c90fd6b7b6a1c67674d0dfd1b03f rvanvuren <ryan@buyerkiosk.com> 1778182527 -0500	commit: fix(quickbooks): remove duplicate posted UPDATE and sync_posted audit on approve
dcad4afabdf2c90fd6b7b6a1c67674d0dfd1b03f 23d1b2e9e3124bb4a498bd7203091d9c96eaa9af rvanvuren <ryan@buyerkiosk.com> 1778182679 -0500	commit: fix(quickbooks): remove TEMPORARY DEBUG LOGGING from DailyCloseApiController
23d1b2e9e3124bb4a498bd7203091d9c96eaa9af 2b0ce441441bee677da65c1829ebe36368eed94c rvanvuren <ryan@buyerkiosk.com> 1778182863 -0500	commit: fix(quickbooks): reload qb tokens from DB after concurrent refresh wait
2b0ce441441bee677da65c1829ebe36368eed94c 29748886aa437ff51cf92d06ff36a2173046aa99 rvanvuren <ryan@buyerkiosk.com> 1778183853 -0500	checkout: moving from feature/048-quickbooks-integration-v2 to master
29748886aa437ff51cf92d06ff36a2173046aa99 679c393fc81b50c02e37971b6cc4cd8e64a24786 rvanvuren <ryan@buyerkiosk.com> 1778183854 -0500	pull origin master: Fast-forward
679c393fc81b50c02e37971b6cc4cd8e64a24786 679c393fc81b50c02e37971b6cc4cd8e64a24786 rvanvuren <ryan@buyerkiosk.com> 1778183857 -0500	checkout: moving from master to hotfix/qb-audit-service-wiring
679c393fc81b50c02e37971b6cc4cd8e64a24786 a221406ab8571e351cc82f347ae4016cf12d394a rvanvuren <ryan@buyerkiosk.com> 1778184004 -0500	commit: fix(quickbooks): wire AuditService at JournalEntryService construction sites
a221406ab8571e351cc82f347ae4016cf12d394a 679c393fc81b50c02e37971b6cc4cd8e64a24786 rvanvuren <ryan@buyerkiosk.com> 1778186254 -0500	checkout: moving from hotfix/qb-audit-service-wiring to master
679c393fc81b50c02e37971b6cc4cd8e64a24786 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778186255 -0500	pull origin master: Fast-forward
143f4950ece5f0de0182c098f43c0dadd8889004 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778188425 -0500	checkout: moving from master to hotfix/mobile-bin-create-binId-response
143f4950ece5f0de0182c098f43c0dadd8889004 ca1feb71585b4f3c454f9e5661bf3c119c21a64a rvanvuren <ryan@buyerkiosk.com> 1778188446 -0500	commit: fix(mobile-api): expose top-level binId in create-bin response
ca1feb71585b4f3c454f9e5661bf3c119c21a64a 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778190257 -0500	checkout: moving from hotfix/mobile-bin-create-binId-response to master
143f4950ece5f0de0182c098f43c0dadd8889004 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778190258 -0500	checkout: moving from master to docs/quickbooks-support-articles
143f4950ece5f0de0182c098f43c0dadd8889004 11ef2d28866b6e49e0176b2954580f01e57e66c0 rvanvuren <ryan@buyerkiosk.com> 1778190278 -0500	commit: docs(quickbooks): add 4 admin help-center articles + README
11ef2d28866b6e49e0176b2954580f01e57e66c0 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778192163 -0500	checkout: moving from docs/quickbooks-support-articles to master
143f4950ece5f0de0182c098f43c0dadd8889004 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778192164 -0500	checkout: moving from master to fix/qb-staging-balance-transparency
143f4950ece5f0de0182c098f43c0dadd8889004 880aa7ebaa46636cf777ec53537bebd4b70b7986 rvanvuren <ryan@buyerkiosk.com> 1778192784 -0500	cherry-pick: docs(quickbooks): add 4 admin help-center articles + README
880aa7ebaa46636cf777ec53537bebd4b70b7986 63d336814f354fbff7143ac1ab37394e53f236cb rvanvuren <ryan@buyerkiosk.com> 1778193070 -0500	commit: fix(quickbooks): make auto-balance plug visible at stage time + 2-tier threshold
63d336814f354fbff7143ac1ab37394e53f236cb 63d336814f354fbff7143ac1ab37394e53f236cb rvanvuren <ryan@buyerkiosk.com> 1778193441 -0500	checkout: moving from fix/qb-staging-balance-transparency to feat/qb-mapping-offset-and-signsemantics
63d336814f354fbff7143ac1ab37394e53f236cb 85bef0a237610fd15eccc0bbf681a6d15404cdd0 rvanvuren <ryan@buyerkiosk.com> 1778193993 -0500	commit: feat(quickbooks): explicit signSemantics column + offset-account UI on mappings
85bef0a237610fd15eccc0bbf681a6d15404cdd0 143f4950ece5f0de0182c098f43c0dadd8889004 rvanvuren <ryan@buyerkiosk.com> 1778258840 -0500	checkout: moving from feat/qb-mapping-offset-and-signsemantics to master
143f4950ece5f0de0182c098f43c0dadd8889004 7c6a0db3d00fa53d3775e4e1855989dc2d589f9a rvanvuren <ryan@buyerkiosk.com> 1778258856 -0500	pull: Fast-forward
7c6a0db3d00fa53d3775e4e1855989dc2d589f9a 7c6a0db3d00fa53d3775e4e1855989dc2d589f9a rvanvuren <ryan@buyerkiosk.com> 1778595965 -0500	checkout: moving from master to feat/049-break-policy-system
7c6a0db3d00fa53d3775e4e1855989dc2d589f9a 3c8699c4b9ff5b19961e9f4ee13ac4eeabfa7df5 rvanvuren <ryan@buyerkiosk.com> 1778598717 -0500	commit: feat(049): Phase 1 foundation — break policy schemas, presets, evaluator, backfill
3c8699c4b9ff5b19961e9f4ee13ac4eeabfa7df5 0b2c84ec29110a130285d67ccea4fb4937ef7e88 rvanvuren <ryan@buyerkiosk.com> 1778598961 -0500	commit: fix(049): phase-T1 self-review — preserve compliance log details on upsert (C1)
0b2c84ec29110a130285d67ccea4fb4937ef7e88 0b2c84ec29110a130285d67ccea4fb4937ef7e88 rvanvuren <ryan@buyerkiosk.com> 1778599864 -0500	reset: moving to HEAD
0b2c84ec29110a130285d67ccea4fb4937ef7e88 9cf870c1f4f75f36e7478fe046e659b755082e6b rvanvuren <ryan@buyerkiosk.com> 1778599929 -0500	commit: feat(049): Phase 2 read-path preview — flag-gated compliancePreview on day rows
9cf870c1f4f75f36e7478fe046e659b755082e6b 46c93fa15b8cc726d7caecac8200326aaed3f8b3 rvanvuren <ryan@buyerkiosk.com> 1778601793 -0500	commit: feat(049): Phase 3 write-path cutover + Settings UI + admin controller
46c93fa15b8cc726d7caecac8200326aaed3f8b3 46c93fa15b8cc726d7caecac8200326aaed3f8b3 rvanvuren <ryan@buyerkiosk.com> 1778602391 -0500	reset: moving to HEAD
46c93fa15b8cc726d7caecac8200326aaed3f8b3 a1a6f0b8c568cce7d912e2a1f925c5dafea35854 rvanvuren <ryan@buyerkiosk.com> 1778602538 -0500	commit: feat(049): Phase 4 employee UX cleanup — remove break-type picker from employee surfaces
a1a6f0b8c568cce7d912e2a1f925c5dafea35854 6ee35d9d0c5957e8d219fc00791bbbd504077702 rvanvuren <ryan@buyerkiosk.com> 1778603254 -0500	commit: feat(049): Phase 5 Compliance Dashboard + yearly preset refresh + CLAUDE.md module entry
6ee35d9d0c5957e8d219fc00791bbbd504077702 e66b5abafdbc5262c7a0c7c940c7f9f02ad681e7 rvanvuren <ryan@buyerkiosk.com> 1778611159 -0500	commit: fix(049): Compliance Dashboard employee filter — correct API endpoint + defensive shape parse
e66b5abafdbc5262c7a0c7c940c7f9f02ad681e7 39bf11e322cc495f4622e8ccefdd61e91f4edcc3 rvanvuren <ryan@buyerkiosk.com> 1778611479 -0500	commit: fix(049): Compliance Dashboard — clear spinner on success, em-dash literal, violationType field name
39bf11e322cc495f4622e8ccefdd61e91f4edcc3 1b282b1aa406118d962fda0aca7ef74c386cdf3c rvanvuren <ryan@buyerkiosk.com> 1778611929 -0500	commit: fix(049): remove spec-internal language from Break Policy rule editor UI
1b282b1aa406118d962fda0aca7ef74c386cdf3c 8633679b5016a30281162765375a78a71e9fe09e rvanvuren <ryan@buyerkiosk.com> 1778612047 -0500	commit: fix(049): BreakPolicyController emits both `id` and `ruleId` in rule JSON
8633679b5016a30281162765375a78a71e9fe09e 8633679b5016a30281162765375a78a71e9fe09e rvanvuren <ryan@buyerkiosk.com> 1778773783 -0500	checkout: moving from feat/049-break-policy-system to feat/049-break-policy-system
8633679b5016a30281162765375a78a71e9fe09e 3d498ae52b554c33eeb47f83fb0d60b0a56e4c0c rvanvuren <ryan@buyerkiosk.com> 1778774100 -0500	commit: fix(049): address PR #6 code review — isApplicable gates, midnight-crossing window, unpaidBreakHours regression, workspace UNPAID default
3d498ae52b554c33eeb47f83fb0d60b0a56e4c0c 74383a5917be2fe48cb0c3a0d395d521a88d250e rvanvuren <ryan@buyerkiosk.com> 1778774190 -0500	commit: fix(049): make defensive-read flag test environment-independent
74383a5917be2fe48cb0c3a0d395d521a88d250e d8ed511e0fd9470a0012af401bd0c534daaf5083 rvanvuren <ryan@buyerkiosk.com> 1778776551 -0500	commit: fix(049): Issue 1 — group punches by shift in engine weekly-range path
d8ed511e0fd9470a0012af401bd0c534daaf5083 1e9bc14f123896b5bc1a7cd1499efd6388c0875b rvanvuren <ryan@buyerkiosk.com> 1778776559 -0500	commit: fix(049): Issue 2 — FLSA paid-break cutoff is inclusive (<=), not strict (<)
1e9bc14f123896b5bc1a7cd1499efd6388c0875b 810be2945e66ce03d8e743f37268b4c7bd02bf9e rvanvuren <ryan@buyerkiosk.com> 1778776569 -0500	commit: fix(049): Issue 3 — minOccurrences enforces CA per-4h rest (two rests per 8h shift)
810be2945e66ce03d8e743f37268b4c7bd02bf9e 22d7ff679331901bf5fc5c58431cc09261a97f60 rvanvuren <ryan@buyerkiosk.com> 1778776577 -0500	commit: fix(049): Issue 4 — wall-clock window comparisons use store timezone, not UTC
22d7ff679331901bf5fc5c58431cc09261a97f60 d9c51139a3075380b881e4dc24694d44af028c3e rvanvuren <ryan@buyerkiosk.com> 1778776596 -0500	commit: fix(049): Issue 6 — delete stale unresolved violations before recompute
d9c51139a3075380b881e4dc24694d44af028c3e bca43f680f0a8fb7c272d275e929cff3356d4274 rvanvuren <ryan@buyerkiosk.com> 1778777250 -0500	commit: fix(049): wire storeTimezone + clone-SQL gaps surfaced by external review
bca43f680f0a8fb7c272d275e929cff3356d4274 7c6a0db3d00fa53d3775e4e1855989dc2d589f9a rvanvuren <ryan@buyerkiosk.com> 1778777596 -0500	checkout: moving from feat/049-break-policy-system to master
7c6a0db3d00fa53d3775e4e1855989dc2d589f9a d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777597 -0500	pull origin master: Fast-forward
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777597 -0500	checkout: moving from master to fix/payroll-pay-calculation
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777609 -0500	checkout: moving from fix/payroll-pay-calculation to master
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777610 -0500	checkout: moving from master to fix/timesheet-range-correctness
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777619 -0500	checkout: moving from fix/timesheet-range-correctness to master
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777624 -0500	checkout: moving from master to fix/manual-punch-timezone
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777630 -0500	checkout: moving from fix/manual-punch-timezone to master
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777631 -0500	checkout: moving from master to fix/mobile-labor-override-edges
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777638 -0500	checkout: moving from fix/mobile-labor-override-edges to master
d75a0c94317028c789827d7cd46d225cffe5b46e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777639 -0500	checkout: moving from master to fix/shift-end-greater-than-start
d75a0c94317028c789827d7cd46d225cffe5b46e ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778777736 -0500	commit: fix: reject shifts where end <= start (#16)
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778777783 -0500	reset: moving to HEAD
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777783 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone
d75a0c94317028c789827d7cd46d225cffe5b46e c394c2dbadc42fb87f2aa360ed47dd0c39e8f91a rvanvuren <ryan@buyerkiosk.com> 1778777816 -0500	commit: fix: convert manual punch local DateTime to UTC before persist (#8)
c394c2dbadc42fb87f2aa360ed47dd0c39e8f91a d9c0beba85be950f591dd16a38795a49ea44a9f5 rvanvuren <ryan@buyerkiosk.com> 1778777865 -0500	commit: fix(#7): wire OvertimeCalculator into generateTimesheetForEmployee
d9c0beba85be950f591dd16a38795a49ea44a9f5 b98a012968c0abc76f7005b9902c1b8af99dd274 rvanvuren <ryan@buyerkiosk.com> 1778777880 -0500	commit: fix(#12): single-pass rounding in TimesheetExporter export rows
b98a012968c0abc76f7005b9902c1b8af99dd274 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778777885 -0500	commit: test: add unit tests for OvertimeCalculator, TimesheetExporter, LaborCostCalculator
5590f52d472dc702716380952e75a66202d10b7f 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778777965 -0500	reset: moving to HEAD
5590f52d472dc702716380952e75a66202d10b7f d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778777965 -0500	checkout: moving from fix/manual-punch-timezone to fix/mobile-labor-override-edges
d75a0c94317028c789827d7cd46d225cffe5b46e ee58bf185248eed98471eb323b775655b2002f3b rvanvuren <ryan@buyerkiosk.com> 1778778019 -0500	commit: fix(mobile): use net hours (break-deducted) in getHours() for mobile pay period summary (#14)
ee58bf185248eed98471eb323b775655b2002f3b 2aac6f92004bf32e9b0e0fed329ee20f8f34ed52 rvanvuren <ryan@buyerkiosk.com> 1778778024 -0500	commit: fix(labor): split overnight shifts across calendar days for cost attribution (#15)
2aac6f92004bf32e9b0e0fed329ee20f8f34ed52 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778778031 -0500	commit: fix(mobile): reject manager override punch when timesheet is approved/exported (#17)
bbd16f5031f31bedb39cde2560b484f5d2822b57 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778778200 -0500	reset: moving to HEAD
bbd16f5031f31bedb39cde2560b484f5d2822b57 d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778778307 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/timesheet-range-correctness
d75a0c94317028c789827d7cd46d225cffe5b46e ee026bf04e76f639f0a5f5c6998c4b719ad222e8 rvanvuren <ryan@buyerkiosk.com> 1778778619 -0500	commit: fix(#9): use half-open overlap in ShiftRepository; extend 24h lookback in TimePunchRepository
ee026bf04e76f639f0a5f5c6998c4b719ad222e8 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778778642 -0500	commit: fix(#10, #13): pair overnight sessions before bucketing; honour workWeekStartTimeLocal
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778779573 -0500	checkout: moving from fix/timesheet-range-correctness to origin/fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e c394c2dbadc42fb87f2aa360ed47dd0c39e8f91a rvanvuren <ryan@buyerkiosk.com> 1778779604 -0500	checkout: moving from ea6584ccf025a7494fe8be719aaaf9c5d28ac16e to origin/fix/manual-punch-timezone
c394c2dbadc42fb87f2aa360ed47dd0c39e8f91a 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778779612 -0500	checkout: moving from c394c2dbadc42fb87f2aa360ed47dd0c39e8f91a to origin/fix/payroll-pay-calculation
5590f52d472dc702716380952e75a66202d10b7f bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778779624 -0500	checkout: moving from 5590f52d472dc702716380952e75a66202d10b7f to origin/fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778779634 -0500	checkout: moving from bbd16f5031f31bedb39cde2560b484f5d2822b57 to fix/timesheet-range-correctness
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778779831 -0500	checkout: moving from fix/timesheet-range-correctness to fix/manual-punch-timezone
5590f52d472dc702716380952e75a66202d10b7f d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778779842 -0500	checkout: moving from fix/manual-punch-timezone to fix/payroll-pay-calculation
d75a0c94317028c789827d7cd46d225cffe5b46e 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778779843 -0500	pull origin fix/payroll-pay-calculation: Fast-forward
5590f52d472dc702716380952e75a66202d10b7f bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778779855 -0500	checkout: moving from fix/payroll-pay-calculation to fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778779870 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/timesheet-range-correctness
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778779950 -0500	reset: moving to HEAD
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778779950 -0500	checkout: moving from fix/timesheet-range-correctness to fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778779989 -0500	reset: moving to HEAD
bbd16f5031f31bedb39cde2560b484f5d2822b57 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778779996 -0500	reset: moving to HEAD
bbd16f5031f31bedb39cde2560b484f5d2822b57 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778779996 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/timesheet-range-correctness
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778780061 -0500	checkout: moving from fix/timesheet-range-correctness to fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778780149 -0500	reset: moving to HEAD
bbd16f5031f31bedb39cde2560b484f5d2822b57 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778780149 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/timesheet-range-correctness
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778780214 -0500	checkout: moving from fix/timesheet-range-correctness to fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778780234 -0500	reset: moving to HEAD
bbd16f5031f31bedb39cde2560b484f5d2822b57 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778780238 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/manual-punch-timezone
5590f52d472dc702716380952e75a66202d10b7f 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778780273 -0500	reset: moving to HEAD
5590f52d472dc702716380952e75a66202d10b7f bbd16f5031f31bedb39cde2560b484f5d2822b57 rvanvuren <ryan@buyerkiosk.com> 1778780273 -0500	checkout: moving from fix/manual-punch-timezone to fix/mobile-labor-override-edges
bbd16f5031f31bedb39cde2560b484f5d2822b57 c37239e8574e7889d11977b0f341ab2c83bf3675 rvanvuren <ryan@buyerkiosk.com> 1778780399 -0500	commit: fix(#21): honour stores.workWeekStartTimeLocal in override lock-week check
c37239e8574e7889d11977b0f341ab2c83bf3675 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778780408 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/manual-punch-timezone
5590f52d472dc702716380952e75a66202d10b7f 76e894685fed5a098026025cd048767e643541e1 rvanvuren <ryan@buyerkiosk.com> 1778780486 -0500	commit: fix(#8): compute payroll week from local DateTime, not the UTC-converted value
76e894685fed5a098026025cd048767e643541e1 e7ba606f212a80a4acd55ad933b9a8caf8cd3fa9 rvanvuren <ryan@buyerkiosk.com> 1778780677 -0500	commit: fix(#13): apply workWeekStartTimeLocal offset in getWeekRangeUtcFromLocalWeekStart (was reset to midnight)
e7ba606f212a80a4acd55ad933b9a8caf8cd3fa9 76e894685fed5a098026025cd048767e643541e1 rvanvuren <ryan@buyerkiosk.com> 1778780691 -0500	reset: moving to HEAD~1
76e894685fed5a098026025cd048767e643541e1 76e894685fed5a098026025cd048767e643541e1 rvanvuren <ryan@buyerkiosk.com> 1778780700 -0500	reset: moving to HEAD
76e894685fed5a098026025cd048767e643541e1 1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 rvanvuren <ryan@buyerkiosk.com> 1778780700 -0500	checkout: moving from fix/manual-punch-timezone to fix/timesheet-range-correctness
1c3fc5c9d6bcb142528efdea0ff15fe19d10bb74 4b88fee5f3c1c08ada5745fc51348386ae745e3b rvanvuren <ryan@buyerkiosk.com> 1778780820 -0500	commit: fix(#13): apply workWeekStartTimeLocal offset in getWeekRangeUtcFromLocalWeekStart (was reset to midnight)
4b88fee5f3c1c08ada5745fc51348386ae745e3b 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778780838 -0500	commit: fix(#9): clip pre-range session start in calculateWorkedHours
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778780859 -0500	reset: moving to HEAD
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778780978 -0500	reset: moving to HEAD
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778780983 -0500	checkout: moving from fix/timesheet-range-correctness to fix/payroll-pay-calculation
5590f52d472dc702716380952e75a66202d10b7f 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778781534 -0500	reset: moving to HEAD
5590f52d472dc702716380952e75a66202d10b7f 5590f52d472dc702716380952e75a66202d10b7f rvanvuren <ryan@buyerkiosk.com> 1778781561 -0500	reset: moving to HEAD
5590f52d472dc702716380952e75a66202d10b7f fb0362b5f205e5bb0fce932c57e924037813868c rvanvuren <ryan@buyerkiosk.com> 1778781649 -0500	commit: fix(#11): make Timesheet.totalPay and LaborCostCalculator.getEffectivePayRate nullable
fb0362b5f205e5bb0fce932c57e924037813868c 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778781666 -0500	commit: fix(#7,#11): wire OvertimeCalculator and compute setTotalPay in generateTimesheetForEmployee
0942ee690a2960b161173c9660aced608a3e589d 76e894685fed5a098026025cd048767e643541e1 rvanvuren <ryan@buyerkiosk.com> 1778782140 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone
76e894685fed5a098026025cd048767e643541e1 ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782145 -0500	checkout: moving from fix/manual-punch-timezone to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e c37239e8574e7889d11977b0f341ab2c83bf3675 rvanvuren <ryan@buyerkiosk.com> 1778782152 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/mobile-labor-override-edges
c37239e8574e7889d11977b0f341ab2c83bf3675 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782158 -0500	checkout: moving from fix/mobile-labor-override-edges to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782173 -0500	checkout: moving from fix/timesheet-range-correctness to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782265 -0500	checkout: moving from fix/payroll-pay-calculation to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 76e894685fed5a098026025cd048767e643541e1 rvanvuren <ryan@buyerkiosk.com> 1778782279 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone
76e894685fed5a098026025cd048767e643541e1 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782291 -0500	checkout: moving from fix/manual-punch-timezone to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782305 -0500	checkout: moving from fix/payroll-pay-calculation to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 d75a0c94317028c789827d7cd46d225cffe5b46e rvanvuren <ryan@buyerkiosk.com> 1778782335 -0500	checkout: moving from fix/timesheet-range-correctness to master
d75a0c94317028c789827d7cd46d225cffe5b46e 1c2dc577fc9aa7c0da39c2406a36726ae4624bfc rvanvuren <ryan@buyerkiosk.com> 1778782336 -0500	pull origin master: Fast-forward
1c2dc577fc9aa7c0da39c2406a36726ae4624bfc 1c2dc577fc9aa7c0da39c2406a36726ae4624bfc rvanvuren <ryan@buyerkiosk.com> 1778782340 -0500	checkout: moving from master to fix/manual-punch-timezone-clean
1c2dc577fc9aa7c0da39c2406a36726ae4624bfc 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782342 -0500	cherry-pick: fix: convert manual punch local DateTime to UTC before persist (#8)
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782360 -0500	reset: moving to 08b9968c98f871f17e16b3b5ec4e61d1ae565329
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782360 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782395 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782443 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782457 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782457 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782476 -0500	reset: moving to HEAD
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782480 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782481 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782518 -0500	checkout: moving from fix/payroll-pay-calculation to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782519 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782565 -0500	reset: moving to HEAD
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782565 -0500	checkout: moving from fix/timesheet-range-correctness to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782589 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782620 -0500	reset: moving to HEAD
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782620 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782670 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782673 -0500	checkout: moving from fix/payroll-pay-calculation to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782711 -0500	reset: moving to HEAD
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782711 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782717 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782717 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782723 -0500	checkout: moving from fix/timesheet-range-correctness to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782727 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782729 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782735 -0500	reset: moving to HEAD
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782735 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 ea6584ccf025a7494fe8be719aaaf9c5d28ac16e rvanvuren <ryan@buyerkiosk.com> 1778782745 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/shift-end-greater-than-start
ea6584ccf025a7494fe8be719aaaf9c5d28ac16e 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782748 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782748 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782775 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782775 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782785 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782787 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782792 -0500	checkout: moving from fix/timesheet-range-correctness to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782798 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782798 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782803 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782812 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782872 -0500	reset: moving to HEAD
0942ee690a2960b161173c9660aced608a3e589d 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782872 -0500	checkout: moving from fix/payroll-pay-calculation to fix/timesheet-range-correctness
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782879 -0500	checkout: moving from fix/timesheet-range-correctness to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782883 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782891 -0500	reset: moving to HEAD
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782891 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782945 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782951 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782955 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782965 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782971 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778782973 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782975 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778782980 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782983 -0500	reset: moving to 1f5c931b4
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782984 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778782992 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778783002 -0500	reset: moving to HEAD
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778783003 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778783026 -0500	reset: moving to HEAD
08b9968c98f871f17e16b3b5ec4e61d1ae565329 1f5c931b4debfa1e277382c71c4b1919aaeb3a52 rvanvuren <ryan@buyerkiosk.com> 1778783026 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
1f5c931b4debfa1e277382c71c4b1919aaeb3a52 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778783079 -0500	reset: moving to origin/fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778783127 -0500	reset: moving to HEAD
0942ee690a2960b161173c9660aced608a3e589d 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778783127 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778783192 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 0942ee690a2960b161173c9660aced608a3e589d rvanvuren <ryan@buyerkiosk.com> 1778783240 -0500	checkout: moving from fix/payroll-pay-calculation to fix/payroll-pay-calculation
0942ee690a2960b161173c9660aced608a3e589d 3af35fc40b38228b6941892cf8cf76beede33075 rvanvuren <ryan@buyerkiosk.com> 1778783241 -0500	commit: fix(#11): make scheduleTimesheets.totalPay nullable + refresh on recalc
3af35fc40b38228b6941892cf8cf76beede33075 3af35fc40b38228b6941892cf8cf76beede33075 rvanvuren <ryan@buyerkiosk.com> 1778783378 -0500	reset: moving to HEAD
3af35fc40b38228b6941892cf8cf76beede33075 08b9968c98f871f17e16b3b5ec4e61d1ae565329 rvanvuren <ryan@buyerkiosk.com> 1778783378 -0500	checkout: moving from fix/payroll-pay-calculation to fix/manual-punch-timezone-clean
08b9968c98f871f17e16b3b5ec4e61d1ae565329 467cc2c2d902dd58f508f5ce7546f4f3728df837 rvanvuren <ryan@buyerkiosk.com> 1778783941 -0500	commit: fix(#8): use store-local time in week boundary lookups + recalc both weeks on cross-week edit
467cc2c2d902dd58f508f5ce7546f4f3728df837 5e8308fd163b2d3183f3df70dc2f762a2a051090 rvanvuren <ryan@buyerkiosk.com> 1778786374 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/timesheet-range-correctness
5e8308fd163b2d3183f3df70dc2f762a2a051090 82071535bc5606eedd382768089335c3caa035ad rvanvuren <ryan@buyerkiosk.com> 1778786510 -0500	commit: test(#9 #10 #13): move tests from repo-root tests/ to userfrosting/tests/ so CI runs them
82071535bc5606eedd382768089335c3caa035ad 5f2735bc66daf04ca163eba178068a733caa13aa rvanvuren <ryan@buyerkiosk.com> 1778792863 -0500	commit: test(#9): expect extended punch fetch boundary
5f2735bc66daf04ca163eba178068a733caa13aa 06d984373bc446cb67ded39a413969b2a0e198c6 rvanvuren <ryan@buyerkiosk.com> 1778793355 -0500	checkout: moving from fix/timesheet-range-correctness to fix/shift-end-greater-than-start
06d984373bc446cb67ded39a413969b2a0e198c6 67dd531988c86b76893e546f14841bee1e44932d rvanvuren <ryan@buyerkiosk.com> 1778796129 -0500	commit: test(#16): remove skipped root shift test
67dd531988c86b76893e546f14841bee1e44932d 467cc2c2d902dd58f508f5ce7546f4f3728df837 rvanvuren <ryan@buyerkiosk.com> 1778796152 -0500	checkout: moving from fix/shift-end-greater-than-start to fix/manual-punch-timezone-clean
467cc2c2d902dd58f508f5ce7546f4f3728df837 f3cb78957e31b22c0107814846ab44165683aff2 rvanvuren <ryan@buyerkiosk.com> 1778796178 -0500	commit: test(#8): remove skipped root timezone test
f3cb78957e31b22c0107814846ab44165683aff2 716ab6fc362e05aae3563faf40b81592b9fc1ccf rvanvuren <ryan@buyerkiosk.com> 1778796249 -0500	checkout: moving from fix/manual-punch-timezone-clean to fix/payroll-pay-calculation-rebuild
716ab6fc362e05aae3563faf40b81592b9fc1ccf 1acdd1b5c230ecf3d9cf859ad7496c9bf3d510ec rvanvuren <ryan@buyerkiosk.com> 1778796398 -0500	cherry-pick: fix(#7): wire OvertimeCalculator into generateTimesheetForEmployee
1acdd1b5c230ecf3d9cf859ad7496c9bf3d510ec dd680a595b234b4253bb8f471c1929bd7867bdfd rvanvuren <ryan@buyerkiosk.com> 1778796398 -0500	cherry-pick: fix(#12): single-pass rounding in TimesheetExporter export rows
dd680a595b234b4253bb8f471c1929bd7867bdfd 1fcd97b46cc7612d6193458bac9c48e3e70416ed rvanvuren <ryan@buyerkiosk.com> 1778796398 -0500	cherry-pick: fix(#11): make Timesheet.totalPay and LaborCostCalculator.getEffectivePayRate nullable
1fcd97b46cc7612d6193458bac9c48e3e70416ed f0fafba5379001d8731215d3d807c725ff3dd422 rvanvuren <ryan@buyerkiosk.com> 1778796398 -0500	cherry-pick: fix(#7,#11): wire OvertimeCalculator and compute setTotalPay in generateTimesheetForEmployee
f0fafba5379001d8731215d3d807c725ff3dd422 8a674818f795b97214738f07297b451a100f9df7 rvanvuren <ryan@buyerkiosk.com> 1778796398 -0500	cherry-pick: fix(#11): make scheduleTimesheets.totalPay nullable + refresh on recalc
8a674818f795b97214738f07297b451a100f9df7 3d52c57c3c3c9961248206213c9394057fb96a06 rvanvuren <ryan@buyerkiosk.com> 1778796526 -0500	commit: test(#11 #12): keep payroll coverage in canonical suite
3d52c57c3c3c9961248206213c9394057fb96a06 c37239e8574e7889d11977b0f341ab2c83bf3675 rvanvuren <ryan@buyerkiosk.com> 1778796545 -0500	checkout: moving from fix/payroll-pay-calculation-rebuild to fix/mobile-labor-override-edges
c37239e8574e7889d11977b0f341ab2c83bf3675 716ab6fc362e05aae3563faf40b81592b9fc1ccf rvanvuren <ryan@buyerkiosk.com> 1778796575 -0500	checkout: moving from fix/mobile-labor-override-edges to merge-check/pr18-22-20260514
716ab6fc362e05aae3563faf40b81592b9fc1ccf c525c9b6e731820b98dd63220383e9ad84bf3cdf rvanvuren <ryan@buyerkiosk.com> 1778796597 -0500	merge origin/fix/mobile-labor-override-edges: Merge made by the 'ort' strategy.
c525c9b6e731820b98dd63220383e9ad84bf3cdf ba4c26088125d23a748e66ab49886927f9dba1f0 rvanvuren <ryan@buyerkiosk.com> 1778796602 -0500	merge origin/fix/shift-end-greater-than-start: Merge made by the 'ort' strategy.
ba4c26088125d23a748e66ab49886927f9dba1f0 fe34e6501b33146fc89e5b221a49851a590ff8ae rvanvuren <ryan@buyerkiosk.com> 1778796605 -0500	merge origin/fix/manual-punch-timezone: Merge made by the 'ort' strategy.
fe34e6501b33146fc89e5b221a49851a590ff8ae 184cd2dcef92643533bf674936217cc230bc6c78 rvanvuren <ryan@buyerkiosk.com> 1778796608 -0500	merge origin/fix/payroll-pay-calculation: Merge made by the 'ort' strategy.
184cd2dcef92643533bf674936217cc230bc6c78 5f4707b21688dd7f447972d61dd3398f33203717 rvanvuren <ryan@buyerkiosk.com> 1778796730 -0500	commit (merge): Merge remote-tracking branch 'origin/fix/timesheet-range-correctness' into merge-check/pr18-22-20260514
5f4707b21688dd7f447972d61dd3398f33203717 9c6d6b0d928b2ffe6054428b6295ce64e5050cc7 rvanvuren <ryan@buyerkiosk.com> 1778797203 -0500	checkout: moving from merge-check/pr18-22-20260514 to merge-check/pr18-22-current-20260514
9c6d6b0d928b2ffe6054428b6295ce64e5050cc7 bbc288aca609cf6e448cb9ec792a8bb757032bcc rvanvuren <ryan@buyerkiosk.com> 1778797206 -0500	merge origin/fix/mobile-labor-override-edges: Merge made by the 'ort' strategy.
bbc288aca609cf6e448cb9ec792a8bb757032bcc cb06396cdd3a9f7f73b9b2e80a9220bd9c6344f1 rvanvuren <ryan@buyerkiosk.com> 1778797209 -0500	merge origin/fix/shift-end-greater-than-start: Merge made by the 'ort' strategy.
cb06396cdd3a9f7f73b9b2e80a9220bd9c6344f1 4274fb3f4a2142d95ac62d16d1611c516b87afa5 rvanvuren <ryan@buyerkiosk.com> 1778797216 -0500	merge origin/fix/manual-punch-timezone: Merge made by the 'ort' strategy.
4274fb3f4a2142d95ac62d16d1611c516b87afa5 25c6cc082fc09b7a538e1604b1c04bf368971223 rvanvuren <ryan@buyerkiosk.com> 1778797218 -0500	merge origin/fix/payroll-pay-calculation: Merge made by the 'ort' strategy.
25c6cc082fc09b7a538e1604b1c04bf368971223 59f70dcc87c504791f12646b9b32fff26cc45e6d rvanvuren <ryan@buyerkiosk.com> 1778797297 -0500	commit (merge): Merge remote-tracking branch 'origin/fix/timesheet-range-correctness' into merge-check/pr18-22-current-20260514
59f70dcc87c504791f12646b9b32fff26cc45e6d 9c6d6b0d928b2ffe6054428b6295ce64e5050cc7 rvanvuren <ryan@buyerkiosk.com> 1778797304 -0500	checkout: moving from merge-check/pr18-22-current-20260514 to merge-check/pr22-before-20-20260514
9c6d6b0d928b2ffe6054428b6295ce64e5050cc7 7b94cd5e0de7c11f2612d95c1a1643a21fffb40e rvanvuren <ryan@buyerkiosk.com> 1778797307 -0500	merge origin/fix/mobile-labor-override-edges origin/fix/shift-end-greater-than-start origin/fix/manual-punch-timezone origin/fix/timesheet-range-correctness: Merge made by the 'octopus' strategy.
7b94cd5e0de7c11f2612d95c1a1643a21fffb40e 7b94cd5e0de7c11f2612d95c1a1643a21fffb40e rvanvuren <ryan@buyerkiosk.com> 1778797316 -0500	reset: moving to HEAD
7b94cd5e0de7c11f2612d95c1a1643a21fffb40e 5f2735bc66daf04ca163eba178068a733caa13aa rvanvuren <ryan@buyerkiosk.com> 1778797321 -0500	checkout: moving from merge-check/pr22-before-20-20260514 to fix/timesheet-range-correctness
5f2735bc66daf04ca163eba178068a733caa13aa ba07002a057dec9bcdee4c971fc4f5962d23b6e8 rvanvuren <ryan@buyerkiosk.com> 1778862218 -0500	commit (merge): Merge remote-tracking branch 'origin/master' into fix/timesheet-range-correctness
ba07002a057dec9bcdee4c971fc4f5962d23b6e8 bca43f680f0a8fb7c272d275e929cff3356d4274 rvanvuren <ryan@buyerkiosk.com> 1778868910 -0500	checkout: moving from fix/timesheet-range-correctness to feat/049-break-policy-system
bca43f680f0a8fb7c272d275e929cff3356d4274 d110167901155eb10bc9026bd5248b74c652ffff rvanvuren <ryan@buyerkiosk.com> 1778870202 -0500	commit (merge): Merge master and fix break policy review issues
d110167901155eb10bc9026bd5248b74c652ffff 9bce1f499e5ca76bfe61cd5e2558327fa143c607 rvanvuren <ryan@buyerkiosk.com> 1778870314 -0500	checkout: moving from feat/049-break-policy-system to fix/ai-scheduling-test-expectations
9bce1f499e5ca76bfe61cd5e2558327fa143c607 bfc62c74c37d759049f565ff1a91039e418a9310 rvanvuren <ryan@buyerkiosk.com> 1778870449 -0500	commit: Fix AI scheduling priority and fairness tests
bfc62c74c37d759049f565ff1a91039e418a9310 1c2dc577fc9aa7c0da39c2406a36726ae4624bfc rvanvuren <ryan@buyerkiosk.com> 1778870657 -0500	checkout: moving from fix/ai-scheduling-test-expectations to master
1c2dc577fc9aa7c0da39c2406a36726ae4624bfc e0e93494eb57be00ae66dcec1de02ce4bf5ab7cd rvanvuren <ryan@buyerkiosk.com> 1778870658 -0500	pull --ff-only origin master: Fast-forward
e0e93494eb57be00ae66dcec1de02ce4bf5ab7cd d110167901155eb10bc9026bd5248b74c652ffff rvanvuren <ryan@buyerkiosk.com> 1778872189 -0500	checkout: moving from master to feat/049-break-policy-system
d110167901155eb10bc9026bd5248b74c652ffff 6d8b2fa648df20dcc11882a39766ef8a2c756b2e rvanvuren <ryan@buyerkiosk.com> 1778872193 -0500	merge origin/master: Merge made by the 'ort' strategy.
6d8b2fa648df20dcc11882a39766ef8a2c756b2e e0e93494eb57be00ae66dcec1de02ce4bf5ab7cd rvanvuren <ryan@buyerkiosk.com> 1778872619 -0500	checkout: moving from feat/049-break-policy-system to master
e0e93494eb57be00ae66dcec1de02ce4bf5ab7cd 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778872620 -0500	pull origin master: Fast-forward
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778872623 -0500	checkout: moving from master to fix/qb-sparse-update-preservation
89df14dca0d90f7db528c54c1e272983d78ebe9c 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1778872832 -0500	commit: fix(qb): preserve untouched S-file columns on sparse /daily-close updates
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778872874 -0500	checkout: moving from fix/qb-sparse-update-preservation to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778872874 -0500	checkout: moving from master to fix/qb-cash-over-short-seed-direction
89df14dca0d90f7db528c54c1e272983d78ebe9c d1b63c54bf0ccaa7df627cb9304d51c5330f5303 rvanvuren <ryan@buyerkiosk.com> 1778872996 -0500	commit: fix(qb): cashOverShort seed direction must be CREDIT, not DEBIT
d1b63c54bf0ccaa7df627cb9304d51c5330f5303 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873028 -0500	checkout: moving from fix/qb-cash-over-short-seed-direction to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873028 -0500	checkout: moving from master to fix/qb-gift-card-mappings
89df14dca0d90f7db528c54c1e272983d78ebe9c 470cf3ae07cbecdde22f7b4a564d57bc4555e448 rvanvuren <ryan@buyerkiosk.com> 1778873187 -0500	commit: fix(qb): seed account mappings for gift-card / digital payment fields
470cf3ae07cbecdde22f7b4a564d57bc4555e448 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873196 -0500	checkout: moving from fix/qb-gift-card-mappings to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873196 -0500	checkout: moving from master to fix/qb-approval-payload-edits
89df14dca0d90f7db528c54c1e272983d78ebe9c 0b2af0f0ea5bc4deb97013246cba664fa61f4e79 rvanvuren <ryan@buyerkiosk.com> 1778873462 -0500	commit: fix(qb): post edited approval payload's adjustment lines to QBO
0b2af0f0ea5bc4deb97013246cba664fa61f4e79 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873472 -0500	checkout: moving from fix/qb-approval-payload-edits to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873473 -0500	checkout: moving from master to fix/qb-staged-entry-race-lock
89df14dca0d90f7db528c54c1e272983d78ebe9c 268d6888bad18e0225c89226e1498fff96aa78cc rvanvuren <ryan@buyerkiosk.com> 1778873873 -0500	commit: fix(qb): atomic claim before QBO call to prevent duplicate JE posts
268d6888bad18e0225c89226e1498fff96aa78cc 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873881 -0500	checkout: moving from fix/qb-staged-entry-race-lock to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778873881 -0500	checkout: moving from master to fix/qb-auto-sync-docnumber-dedupe
89df14dca0d90f7db528c54c1e272983d78ebe9c cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb rvanvuren <ryan@buyerkiosk.com> 1778874079 -0500	commit: fix(qb): query QBO for existing JE before posting in auto-sync mode
cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874089 -0500	checkout: moving from fix/qb-auto-sync-docnumber-dedupe to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874089 -0500	checkout: moving from master to fix/qb-reconciliation-match-by-description
89df14dca0d90f7db528c54c1e272983d78ebe9c 4949094c776a68d9fb1d546aafd38bbb62a7a4d7 rvanvuren <ryan@buyerkiosk.com> 1778874398 -0500	commit: fix(qb): match reconciliation lines by mapped fieldDescription, not raw fieldName
4949094c776a68d9fb1d546aafd38bbb62a7a4d7 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874407 -0500	checkout: moving from fix/qb-reconciliation-match-by-description to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874407 -0500	checkout: moving from master to fix/qb-restage-after-void
89df14dca0d90f7db528c54c1e272983d78ebe9c 9dd849148aa4c3e96ec0deba0ca1ea21ab8de239 rvanvuren <ryan@buyerkiosk.com> 1778874540 -0500	commit: fix(qb): allow re-staging after a successful void
9dd849148aa4c3e96ec0deba0ca1ea21ab8de239 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874697 -0500	checkout: moving from fix/qb-restage-after-void to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874697 -0500	checkout: moving from master to fix/qb-recon-status-with-sparse-posdata
89df14dca0d90f7db528c54c1e272983d78ebe9c 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1778874830 -0500	checkout: moving from fix/qb-recon-status-with-sparse-posdata to origin/fix/qb-sparse-update-preservation
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 d1b63c54bf0ccaa7df627cb9304d51c5330f5303 rvanvuren <ryan@buyerkiosk.com> 1778874839 -0500	checkout: moving from 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 to origin/fix/qb-cash-over-short-seed-direction
d1b63c54bf0ccaa7df627cb9304d51c5330f5303 470cf3ae07cbecdde22f7b4a564d57bc4555e448 rvanvuren <ryan@buyerkiosk.com> 1778874845 -0500	checkout: moving from d1b63c54bf0ccaa7df627cb9304d51c5330f5303 to origin/fix/qb-gift-card-mappings
470cf3ae07cbecdde22f7b4a564d57bc4555e448 0b2af0f0ea5bc4deb97013246cba664fa61f4e79 rvanvuren <ryan@buyerkiosk.com> 1778874851 -0500	checkout: moving from 470cf3ae07cbecdde22f7b4a564d57bc4555e448 to origin/fix/qb-approval-payload-edits
0b2af0f0ea5bc4deb97013246cba664fa61f4e79 268d6888bad18e0225c89226e1498fff96aa78cc rvanvuren <ryan@buyerkiosk.com> 1778874857 -0500	checkout: moving from 0b2af0f0ea5bc4deb97013246cba664fa61f4e79 to origin/fix/qb-staged-entry-race-lock
268d6888bad18e0225c89226e1498fff96aa78cc cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb rvanvuren <ryan@buyerkiosk.com> 1778874885 -0500	checkout: moving from 268d6888bad18e0225c89226e1498fff96aa78cc to origin/fix/qb-auto-sync-docnumber-dedupe
cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb 4949094c776a68d9fb1d546aafd38bbb62a7a4d7 rvanvuren <ryan@buyerkiosk.com> 1778874892 -0500	checkout: moving from cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb to origin/fix/qb-reconciliation-match-by-description
4949094c776a68d9fb1d546aafd38bbb62a7a4d7 9dd849148aa4c3e96ec0deba0ca1ea21ab8de239 rvanvuren <ryan@buyerkiosk.com> 1778874905 -0500	checkout: moving from 4949094c776a68d9fb1d546aafd38bbb62a7a4d7 to origin/fix/qb-restage-after-void
9dd849148aa4c3e96ec0deba0ca1ea21ab8de239 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874912 -0500	checkout: moving from 9dd849148aa4c3e96ec0deba0ca1ea21ab8de239 to fix/qb-recon-status-with-sparse-posdata
89df14dca0d90f7db528c54c1e272983d78ebe9c 23691473d24f998ac5d26df3727583a2a8d94a07 rvanvuren <ryan@buyerkiosk.com> 1778874949 -0500	commit: fix(qb): testReconciliationWithRateLimiter — mock the qb_staged_entries fallback query
23691473d24f998ac5d26df3727583a2a8d94a07 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874960 -0500	checkout: moving from fix/qb-recon-status-with-sparse-posdata to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778874960 -0500	checkout: moving from master to feat/qb-stuck-posting-recovery
89df14dca0d90f7db528c54c1e272983d78ebe9c 888b0405a0039ae1a00fbf7683794c0ce8394318 rvanvuren <ryan@buyerkiosk.com> 1778875280 -0500	commit: feat(qb): stuck-'posting' recovery sweep job
888b0405a0039ae1a00fbf7683794c0ce8394318 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778875425 -0500	checkout: moving from feat/qb-stuck-posting-recovery to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778875436 -0500	checkout: moving from master to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778875436 -0500	checkout: moving from master to fix/qb-approval-line-edits-actually-post
89df14dca0d90f7db528c54c1e272983d78ebe9c d1b906b88dbcb36c8b7d6e5723bdc4ccb218c9ac rvanvuren <ryan@buyerkiosk.com> 1778875436 -0500	commit: feat(goals): add Goals Settings to sidebar, gate to managers/owners
d1b906b88dbcb36c8b7d6e5723bdc4ccb218c9ac 0b2af0f0ea5bc4deb97013246cba664fa61f4e79 rvanvuren <ryan@buyerkiosk.com> 1778875522 -0500	checkout: moving from fix/qb-approval-line-edits-actually-post to fix/qb-approval-payload-edits
0b2af0f0ea5bc4deb97013246cba664fa61f4e79 0b2af0f0ea5bc4deb97013246cba664fa61f4e79 rvanvuren <ryan@buyerkiosk.com> 1778875526 -0500	checkout: moving from fix/qb-approval-payload-edits to fix/qb-approval-line-edits-actually-post
0b2af0f0ea5bc4deb97013246cba664fa61f4e79 b8b7fd86df1750cf06deda6ec22410a8920dbe8d rvanvuren <ryan@buyerkiosk.com> 1778875744 -0500	commit: fix(qb): post user-edited line amounts/accounts from approval-edited payload
b8b7fd86df1750cf06deda6ec22410a8920dbe8d 470cf3ae07cbecdde22f7b4a564d57bc4555e448 rvanvuren <ryan@buyerkiosk.com> 1778875757 -0500	checkout: moving from fix/qb-approval-line-edits-actually-post to fix/qb-gift-card-mappings
470cf3ae07cbecdde22f7b4a564d57bc4555e448 3d3c6ef31e26115fabe272d586deb9f80d11a5d0 rvanvuren <ryan@buyerkiosk.com> 1778875816 -0500	commit: chore(qb): include cashOverShort credit-fix to coexist with PR #25
3d3c6ef31e26115fabe272d586deb9f80d11a5d0 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778875928 -0500	checkout: moving from fix/qb-gift-card-mappings to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778875928 -0500	checkout: moving from master to fix/qb-approval-edit-preserves-account-ref-shape
89df14dca0d90f7db528c54c1e272983d78ebe9c d3e418cf05e1fbf69ed5437172847cf1adf7ba56 rvanvuren <ryan@buyerkiosk.com> 1778876070 -0500	commit: fix(qb-ui): preserve AccountRef shape and update accountName on line edits
d3e418cf05e1fbf69ed5437172847cf1adf7ba56 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778878069 -0500	checkout: moving from fix/qb-approval-edit-preserves-account-ref-shape to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778878069 -0500	checkout: moving from master to fix/qb-ui-render-extracts-account-ref-value
89df14dca0d90f7db528c54c1e272983d78ebe9c 7eb954a3a1bd72ff43b58005dce88f43f0a76301 rvanvuren <ryan@buyerkiosk.com> 1778878263 -0500	commit: fix(qb-ui): extract accountId from object AccountRef, never let "[object Object]" reach the select
7eb954a3a1bd72ff43b58005dce88f43f0a76301 4949094c776a68d9fb1d546aafd38bbb62a7a4d7 rvanvuren <ryan@buyerkiosk.com> 1778878507 -0500	checkout: moving from fix/qb-ui-render-extracts-account-ref-value to fix/qb-reconciliation-match-by-description
4949094c776a68d9fb1d546aafd38bbb62a7a4d7 b8b7fd86df1750cf06deda6ec22410a8920dbe8d rvanvuren <ryan@buyerkiosk.com> 1778878590 -0500	checkout: moving from fix/qb-reconciliation-match-by-description to fix/qb-approval-line-edits-actually-post
b8b7fd86df1750cf06deda6ec22410a8920dbe8d d1b63c54bf0ccaa7df627cb9304d51c5330f5303 rvanvuren <ryan@buyerkiosk.com> 1778878773 -0500	checkout: moving from fix/qb-approval-line-edits-actually-post to fix/qb-cash-over-short-seed-direction
d1b63c54bf0ccaa7df627cb9304d51c5330f5303 3d3c6ef31e26115fabe272d586deb9f80d11a5d0 rvanvuren <ryan@buyerkiosk.com> 1778878852 -0500	checkout: moving from fix/qb-cash-over-short-seed-direction to fix/qb-gift-card-mappings
3d3c6ef31e26115fabe272d586deb9f80d11a5d0 268d6888bad18e0225c89226e1498fff96aa78cc rvanvuren <ryan@buyerkiosk.com> 1778878898 -0500	checkout: moving from fix/qb-gift-card-mappings to fix/qb-staged-entry-race-lock
268d6888bad18e0225c89226e1498fff96aa78cc 31e9b093c214f239a41ef552bebfcd3c2057eaff rvanvuren <ryan@buyerkiosk.com> 1778878991 -0500	commit: fix(qb): migration type must be alter_table not alter
31e9b093c214f239a41ef552bebfcd3c2057eaff 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1778879067 -0500	checkout: moving from fix/qb-staged-entry-race-lock to fix/qb-sparse-update-preservation
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 888b0405a0039ae1a00fbf7683794c0ce8394318 rvanvuren <ryan@buyerkiosk.com> 1778879139 -0500	checkout: moving from fix/qb-sparse-update-preservation to feat/qb-stuck-posting-recovery
888b0405a0039ae1a00fbf7683794c0ce8394318 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880267 -0500	checkout: moving from feat/qb-stuck-posting-recovery to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880267 -0500	checkout: moving from master to fix/qb-sync-log-status-enum-extension
89df14dca0d90f7db528c54c1e272983d78ebe9c 445ef67fba208499553a04e610eed373492b3609 rvanvuren <ryan@buyerkiosk.com> 1778880382 -0500	commit: fix(qb): extend qb_sync_log.status ENUM to cover data-freshness states
445ef67fba208499553a04e610eed373492b3609 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880394 -0500	checkout: moving from fix/qb-sync-log-status-enum-extension to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880394 -0500	checkout: moving from master to fix/qb-dedupe-distinguishes-error-from-no-match
89df14dca0d90f7db528c54c1e272983d78ebe9c e9ff4d4de4ab742bc2610c3667e07874bfa90a35 rvanvuren <ryan@buyerkiosk.com> 1778880694 -0500	commit: fix(qb): de-dupe must distinguish "no match" from "query failed"
e9ff4d4de4ab742bc2610c3667e07874bfa90a35 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880709 -0500	checkout: moving from fix/qb-dedupe-distinguishes-error-from-no-match to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880709 -0500	checkout: moving from master to fix/qb-fail-closed-no-balancing-account
89df14dca0d90f7db528c54c1e272983d78ebe9c 91e22b246607f1e56a23b128c9c7fcc5d86b3bb2 rvanvuren <ryan@buyerkiosk.com> 1778880869 -0500	commit: fix(qb): fail-closed when imbalanced JE has no balancing account
91e22b246607f1e56a23b128c9c7fcc5d86b3bb2 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880882 -0500	checkout: moving from fix/qb-fail-closed-no-balancing-account to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778880882 -0500	checkout: moving from master to fix/qb-balance-caps-in-valid-keys
89df14dca0d90f7db528c54c1e272983d78ebe9c 295bfdf85eabdcafcb54bfb63296864eba4c1a34 rvanvuren <ryan@buyerkiosk.com> 1778880988 -0500	commit: fix(qb): add cashOverShort cap settings to QBSettingsService VALID_KEYS
295bfdf85eabdcafcb54bfb63296864eba4c1a34 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881001 -0500	checkout: moving from fix/qb-balance-caps-in-valid-keys to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881001 -0500	checkout: moving from master to fix/qb-rate-limit-write-operations
89df14dca0d90f7db528c54c1e272983d78ebe9c f391a0e046a28c363d5505f0c1f2b8c5e2a181e6 rvanvuren <ryan@buyerkiosk.com> 1778881087 -0500	commit: fix(qb): throttle the QBO Add() write call
f391a0e046a28c363d5505f0c1f2b8c5e2a181e6 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881098 -0500	checkout: moving from fix/qb-rate-limit-write-operations to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881098 -0500	checkout: moving from master to fix/qb-balancing-account-stricter-fallback
89df14dca0d90f7db528c54c1e272983d78ebe9c e6c25ae6506430e46fbd411e53dcadc0dbf0f699 rvanvuren <ryan@buyerkiosk.com> 1778881181 -0500	commit: fix(qb): getBalancingAccount must not fall back to arbitrary Expense account
e6c25ae6506430e46fbd411e53dcadc0dbf0f699 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881192 -0500	checkout: moving from fix/qb-balancing-account-stricter-fallback to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881192 -0500	checkout: moving from master to fix/qb-token-encryption-required
89df14dca0d90f7db528c54c1e272983d78ebe9c a85a13f213f7c483f2ec4fd00cb10e747d99e554 rvanvuren <ryan@buyerkiosk.com> 1778881320 -0500	commit: fix(qb): refuse to write OAuth tokens in plaintext
a85a13f213f7c483f2ec4fd00cb10e747d99e554 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881425 -0500	checkout: moving from fix/qb-token-encryption-required to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881425 -0500	checkout: moving from master to fix/qb-recompute-edited-base-totals
89df14dca0d90f7db528c54c1e272983d78ebe9c cdbaee1aa2bc2a11d675f555894bad2689588ec8 rvanvuren <ryan@buyerkiosk.com> 1778881967 -0500	commit: fix(qb): recompute edited base-field totals from lines array
cdbaee1aa2bc2a11d675f555894bad2689588ec8 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881977 -0500	checkout: moving from fix/qb-recompute-edited-base-totals to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778881977 -0500	checkout: moving from master to fix/qb-recon-pos-total-mapped-fields-only
89df14dca0d90f7db528c54c1e272983d78ebe9c 5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd rvanvuren <ryan@buyerkiosk.com> 1778882282 -0500	commit: fix(qb): computePosTotal sums only mapped financial fields
5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778882296 -0500	checkout: moving from fix/qb-recon-pos-total-mapped-fields-only to master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1778882296 -0500	checkout: moving from master to fix/qb-mapping-completeness-broader
89df14dca0d90f7db528c54c1e272983d78ebe9c 8460c19d412e7db983a5568f3f00384644fd9d09 rvanvuren <ryan@buyerkiosk.com> 1778882487 -0500	commit: fix(qb): broader mapping completeness check covers every financial category
8460c19d412e7db983a5568f3f00384644fd9d09 445ef67fba208499553a04e610eed373492b3609 rvanvuren <ryan@buyerkiosk.com> 1779121442 -0500	checkout: moving from fix/qb-mapping-completeness-broader to fix/qb-sync-log-status-enum-extension
445ef67fba208499553a04e610eed373492b3609 295bfdf85eabdcafcb54bfb63296864eba4c1a34 rvanvuren <ryan@buyerkiosk.com> 1779121473 -0500	checkout: moving from fix/qb-sync-log-status-enum-extension to fix/qb-balance-caps-in-valid-keys
295bfdf85eabdcafcb54bfb63296864eba4c1a34 5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd rvanvuren <ryan@buyerkiosk.com> 1779121587 -0500	checkout: moving from fix/qb-balance-caps-in-valid-keys to fix/qb-recon-pos-total-mapped-fields-only
5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd cdbaee1aa2bc2a11d675f555894bad2689588ec8 rvanvuren <ryan@buyerkiosk.com> 1779121648 -0500	checkout: moving from fix/qb-recon-pos-total-mapped-fields-only to fix/qb-recompute-edited-base-totals
cdbaee1aa2bc2a11d675f555894bad2689588ec8 8460c19d412e7db983a5568f3f00384644fd9d09 rvanvuren <ryan@buyerkiosk.com> 1779121715 -0500	checkout: moving from fix/qb-recompute-edited-base-totals to fix/qb-mapping-completeness-broader
8460c19d412e7db983a5568f3f00384644fd9d09 888b0405a0039ae1a00fbf7683794c0ce8394318 rvanvuren <ryan@buyerkiosk.com> 1779133427 -0500	checkout: moving from fix/qb-mapping-completeness-broader to feat/qb-stuck-posting-recovery
888b0405a0039ae1a00fbf7683794c0ce8394318 a882caa52818a20a3de35456e29997fccb023410 rvanvuren <ryan@buyerkiosk.com> 1779133473 -0500	commit: fix(qb-recovery): docblock cron syntax must not contain */ sequence
a882caa52818a20a3de35456e29997fccb023410 cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb rvanvuren <ryan@buyerkiosk.com> 1779133485 -0500	checkout: moving from feat/qb-stuck-posting-recovery to fix/qb-auto-sync-docnumber-dedupe
cecc0bd36c0d2e3bce86c5e2679840d73a88b8cb e9ff4d4de4ab742bc2610c3667e07874bfa90a35 rvanvuren <ryan@buyerkiosk.com> 1779133507 -0500	rebase (start): checkout fix/qb-dedupe-distinguishes-error-from-no-match
e9ff4d4de4ab742bc2610c3667e07874bfa90a35 c80fe176035362fa8394c52e1097c71efdaec01c rvanvuren <ryan@buyerkiosk.com> 1779133507 -0500	rebase (pick): fix(qb): query QBO for existing JE before posting in auto-sync mode
c80fe176035362fa8394c52e1097c71efdaec01c c80fe176035362fa8394c52e1097c71efdaec01c rvanvuren <ryan@buyerkiosk.com> 1779133507 -0500	rebase (finish): returning to refs/heads/fix/qb-auto-sync-docnumber-dedupe
c80fe176035362fa8394c52e1097c71efdaec01c aeb1244c2fbdfea3b700daf47ec4e950a37d484a rvanvuren <ryan@buyerkiosk.com> 1779133606 -0500	commit: fix(qb): auto-sync de-dupe uses STRICT query path (fail-closed)
aeb1244c2fbdfea3b700daf47ec4e950a37d484a 5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd rvanvuren <ryan@buyerkiosk.com> 1779133628 -0500	checkout: moving from fix/qb-auto-sync-docnumber-dedupe to fix/qb-recon-pos-total-mapped-fields-only
5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd 5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd rvanvuren <ryan@buyerkiosk.com> 1779133637 -0500	reset: moving to HEAD
5e52ed09cbde99e80b10d1efa09e80a60d7c9bcd 4949094c776a68d9fb1d546aafd38bbb62a7a4d7 rvanvuren <ryan@buyerkiosk.com> 1779133638 -0500	rebase (start): checkout fix/qb-reconciliation-match-by-description
4949094c776a68d9fb1d546aafd38bbb62a7a4d7 89ae2171e595acbe05606d9bd4168988552b60af rvanvuren <ryan@buyerkiosk.com> 1779133707 -0500	rebase (continue): fix(qb): computePosTotal sums only mapped financial fields
89ae2171e595acbe05606d9bd4168988552b60af 89ae2171e595acbe05606d9bd4168988552b60af rvanvuren <ryan@buyerkiosk.com> 1779133707 -0500	rebase (finish): returning to refs/heads/fix/qb-recon-pos-total-mapped-fields-only
89ae2171e595acbe05606d9bd4168988552b60af 3d3c6ef31e26115fabe272d586deb9f80d11a5d0 rvanvuren <ryan@buyerkiosk.com> 1779133748 -0500	checkout: moving from fix/qb-recon-pos-total-mapped-fields-only to fix/qb-gift-card-mappings
3d3c6ef31e26115fabe272d586deb9f80d11a5d0 3d3c6ef31e26115fabe272d586deb9f80d11a5d0 rvanvuren <ryan@buyerkiosk.com> 1779133748 -0500	reset: moving to HEAD
3d3c6ef31e26115fabe272d586deb9f80d11a5d0 d1b63c54bf0ccaa7df627cb9304d51c5330f5303 rvanvuren <ryan@buyerkiosk.com> 1779133792 -0500	rebase (start): checkout origin/fix/qb-cash-over-short-seed-direction
d1b63c54bf0ccaa7df627cb9304d51c5330f5303 103ccf1495d8018a2736c3e83a21643180583401 rvanvuren <ryan@buyerkiosk.com> 1779133826 -0500	rebase (continue): fix(qb): seed account mappings for gift-card / digital payment fields
103ccf1495d8018a2736c3e83a21643180583401 103ccf1495d8018a2736c3e83a21643180583401 rvanvuren <ryan@buyerkiosk.com> 1779133826 -0500	rebase (finish): returning to refs/heads/fix/qb-gift-card-mappings
103ccf1495d8018a2736c3e83a21643180583401 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779133859 -0500	checkout: moving from fix/qb-gift-card-mappings to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779133859 -0500	checkout: moving from master to integration-test
ffb8154bf7b05c966734a4a8bd240c554e39cecd 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1779133869 -0500	branch: Reset to origin/master
89df14dca0d90f7db528c54c1e272983d78ebe9c 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1779133869 -0500	checkout: moving from integration-test to integration-test
89df14dca0d90f7db528c54c1e272983d78ebe9c 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-sparse-update-preservation: Fast-forward
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 ee0a5b084bb3291981d75f28cf68b4832dbc9ad4 rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-cash-over-short-seed-direction: Merge made by the 'ort' strategy.
ee0a5b084bb3291981d75f28cf68b4832dbc9ad4 f7049a29b7ac8102b905bcbebacba70ba84bacb0 rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-gift-card-mappings: Merge made by the 'ort' strategy.
f7049a29b7ac8102b905bcbebacba70ba84bacb0 94e6ce57d905245ebfbe818bffe0037b24d3b31a rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-approval-payload-edits: Merge made by the 'ort' strategy.
94e6ce57d905245ebfbe818bffe0037b24d3b31a b362ddb55e0d44d83c18d5e5d5187359fb8e7e0c rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-staged-entry-race-lock: Merge made by the 'ort' strategy.
b362ddb55e0d44d83c18d5e5d5187359fb8e7e0c 3010a77ad9552df476e7738d03b2a51d92351088 rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-reconciliation-match-by-description: Merge made by the 'ort' strategy.
3010a77ad9552df476e7738d03b2a51d92351088 f65d4f97d2fa3d533cce537768c39173c91e5b19 rvanvuren <ryan@buyerkiosk.com> 1779133889 -0500	merge origin/fix/qb-auto-sync-docnumber-dedupe: Merge made by the 'ort' strategy.
f65d4f97d2fa3d533cce537768c39173c91e5b19 c8216a63093856f2c82e0ee849b4c1eb161856b7 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-restage-after-void: Merge made by the 'ort' strategy.
c8216a63093856f2c82e0ee849b4c1eb161856b7 ce58f738555296a8cfd46a84c9b2418af37ed89e rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-recon-status-with-sparse-posdata: Merge made by the 'ort' strategy.
ce58f738555296a8cfd46a84c9b2418af37ed89e e286ae9cdf8d333e3d4dce53faf37e97bc257cd1 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/feat/qb-stuck-posting-recovery: Merge made by the 'ort' strategy.
e286ae9cdf8d333e3d4dce53faf37e97bc257cd1 2dc21c64c1d7239daccc8dd2f4e8d2a205e1e134 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-approval-line-edits-actually-post: Merge made by the 'ort' strategy.
2dc21c64c1d7239daccc8dd2f4e8d2a205e1e134 419cfe12f05b6438df07a54f2e04966ebf0abfc6 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-approval-edit-preserves-account-ref-shape: Merge made by the 'ort' strategy.
419cfe12f05b6438df07a54f2e04966ebf0abfc6 428783b0a0aab09b297f29beb1dd040ae7bc3115 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-ui-render-extracts-account-ref-value: Merge made by the 'ort' strategy.
428783b0a0aab09b297f29beb1dd040ae7bc3115 95e04a75d78268678d0a9cf9bbdb4ecf153e27d4 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-sync-log-status-enum-extension: Merge made by the 'ort' strategy.
95e04a75d78268678d0a9cf9bbdb4ecf153e27d4 f4b9498d987631e8514ea81b27f79f02477dc3d8 rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-fail-closed-no-balancing-account: Merge made by the 'ort' strategy.
f4b9498d987631e8514ea81b27f79f02477dc3d8 a8ce33acceb3912f08f0ea46b1f4b87d5a791d2b rvanvuren <ryan@buyerkiosk.com> 1779133890 -0500	merge origin/fix/qb-balance-caps-in-valid-keys: Merge made by the 'ort' strategy.
a8ce33acceb3912f08f0ea46b1f4b87d5a791d2b 1ead3c6861b95b925c87cbf8ba501e42bea669c3 rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-rate-limit-write-operations: Merge made by the 'ort' strategy.
1ead3c6861b95b925c87cbf8ba501e42bea669c3 efc79325645d83ef7ca5e56030230e9f6e60d7c0 rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-balancing-account-stricter-fallback: Merge made by the 'ort' strategy.
efc79325645d83ef7ca5e56030230e9f6e60d7c0 d9f59e4cef301ab457c503c729d0f3bbd61d7f71 rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-mapping-completeness-broader: Merge made by the 'ort' strategy.
d9f59e4cef301ab457c503c729d0f3bbd61d7f71 1134c31aedbd2c3e37a3bb72ff5ac64e06f3fcec rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-token-encryption-required: Merge made by the 'ort' strategy.
1134c31aedbd2c3e37a3bb72ff5ac64e06f3fcec 9cc2849cfa2989a93122eae0c2b142b521787542 rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-recompute-edited-base-totals: Merge made by the 'ort' strategy.
9cc2849cfa2989a93122eae0c2b142b521787542 3a748e8327b7f8accfdda08ad7f090d1b73e9142 rvanvuren <ryan@buyerkiosk.com> 1779133891 -0500	merge origin/fix/qb-recon-pos-total-mapped-fields-only: Merge made by the 'ort' strategy.
3a748e8327b7f8accfdda08ad7f090d1b73e9142 31e9b093c214f239a41ef552bebfcd3c2057eaff rvanvuren <ryan@buyerkiosk.com> 1779133952 -0500	checkout: moving from integration-test to fix/qb-staged-entry-race-lock
31e9b093c214f239a41ef552bebfcd3c2057eaff ae1ef57ffc7527474452e28955d65c1e04836b08 rvanvuren <ryan@buyerkiosk.com> 1779133987 -0500	commit: test(qb): assert migration type 'alter_table' (matches the fix)
ae1ef57ffc7527474452e28955d65c1e04836b08 23691473d24f998ac5d26df3727583a2a8d94a07 rvanvuren <ryan@buyerkiosk.com> 1779134025 -0500	checkout: moving from fix/qb-staged-entry-race-lock to fix/qb-recon-status-with-sparse-posdata
23691473d24f998ac5d26df3727583a2a8d94a07 89ae2171e595acbe05606d9bd4168988552b60af rvanvuren <ryan@buyerkiosk.com> 1779134041 -0500	rebase (start): checkout origin/fix/qb-recon-pos-total-mapped-fields-only
89ae2171e595acbe05606d9bd4168988552b60af fa8b65f8c0ddedb9e427da8d81f2adea7f097929 rvanvuren <ryan@buyerkiosk.com> 1779134041 -0500	rebase (pick): fix(qb): testReconciliationWithRateLimiter — mock the qb_staged_entries fallback query
fa8b65f8c0ddedb9e427da8d81f2adea7f097929 fa8b65f8c0ddedb9e427da8d81f2adea7f097929 rvanvuren <ryan@buyerkiosk.com> 1779134041 -0500	rebase (finish): returning to refs/heads/fix/qb-recon-status-with-sparse-posdata
fa8b65f8c0ddedb9e427da8d81f2adea7f097929 f3d88f78a1a986f743ec58a9fd22c39e90c7abdd rvanvuren <ryan@buyerkiosk.com> 1779134167 -0500	commit: test(qb): mock PR #45's loadMappedFieldNames query in fallback tests
f3d88f78a1a986f743ec58a9fd22c39e90c7abdd 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	checkout: moving from fix/qb-recon-status-with-sparse-posdata to integration-test
89df14dca0d90f7db528c54c1e272983d78ebe9c 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-sparse-update-preservation: Fast-forward
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 7e326d62c060810199d52d11be62ca7f8d4e2db2 rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-cash-over-short-seed-direction: Merge made by the 'ort' strategy.
7e326d62c060810199d52d11be62ca7f8d4e2db2 b71699cd0277e878c1d49ffa74d1e67ab14b59f5 rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-gift-card-mappings: Merge made by the 'ort' strategy.
b71699cd0277e878c1d49ffa74d1e67ab14b59f5 0b10d12f92707e335e7a3670de3685ef0656909c rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-approval-payload-edits: Merge made by the 'ort' strategy.
0b10d12f92707e335e7a3670de3685ef0656909c 491d3a229adf7c4457b1057b0cf49d8234e510ed rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-staged-entry-race-lock: Merge made by the 'ort' strategy.
491d3a229adf7c4457b1057b0cf49d8234e510ed d792d3dbacc4ce6ee85b850f9312bc78b1c30b0b rvanvuren <ryan@buyerkiosk.com> 1779134187 -0500	merge origin/fix/qb-reconciliation-match-by-description: Merge made by the 'ort' strategy.
d792d3dbacc4ce6ee85b850f9312bc78b1c30b0b ec07fd21b6855a0105ecd79dd33492dd32e254d4 rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-dedupe-distinguishes-error-from-no-match: Merge made by the 'ort' strategy.
ec07fd21b6855a0105ecd79dd33492dd32e254d4 68c0e9a4a335f4c9933b915b2f9e36804241cab0 rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-auto-sync-docnumber-dedupe: Merge made by the 'ort' strategy.
68c0e9a4a335f4c9933b915b2f9e36804241cab0 b1772fc2c07ea630bee80c63f28a81e0c5efdf3c rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-restage-after-void: Merge made by the 'ort' strategy.
b1772fc2c07ea630bee80c63f28a81e0c5efdf3c 366d9b157c30acadb4251a28e490cafb2a32728f rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-recon-pos-total-mapped-fields-only: Merge made by the 'ort' strategy.
366d9b157c30acadb4251a28e490cafb2a32728f 74741824d81b6f3dab6a41f1254f62bbdaff81fc rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-recon-status-with-sparse-posdata: Merge made by the 'ort' strategy.
74741824d81b6f3dab6a41f1254f62bbdaff81fc 657d1c2075fb26253f1ff924493d77214fe668e8 rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/feat/qb-stuck-posting-recovery: Merge made by the 'ort' strategy.
657d1c2075fb26253f1ff924493d77214fe668e8 2bf456879ad2f91d2363323239be1f8a451512a8 rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-approval-line-edits-actually-post: Merge made by the 'ort' strategy.
2bf456879ad2f91d2363323239be1f8a451512a8 6b4bec4254630a274dee91ef188ca61d3b25348c rvanvuren <ryan@buyerkiosk.com> 1779134188 -0500	merge origin/fix/qb-approval-edit-preserves-account-ref-shape: Merge made by the 'ort' strategy.
6b4bec4254630a274dee91ef188ca61d3b25348c 3e1c893c480a9b8968a9a985eb66967cd40547b7 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-ui-render-extracts-account-ref-value: Merge made by the 'ort' strategy.
3e1c893c480a9b8968a9a985eb66967cd40547b7 09e607149d78baa25b6adc85b21369a43b213329 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-sync-log-status-enum-extension: Merge made by the 'ort' strategy.
09e607149d78baa25b6adc85b21369a43b213329 e0945485ffff1b0254e94191c66389aa9e329ea4 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-fail-closed-no-balancing-account: Merge made by the 'ort' strategy.
e0945485ffff1b0254e94191c66389aa9e329ea4 d745bd3cdb2d774ba20ed240147e9ae992028424 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-balance-caps-in-valid-keys: Merge made by the 'ort' strategy.
d745bd3cdb2d774ba20ed240147e9ae992028424 999c12994cb6693754eddbafc5dbc9edd8bd1019 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-rate-limit-write-operations: Merge made by the 'ort' strategy.
999c12994cb6693754eddbafc5dbc9edd8bd1019 f064c32c231373f669fa66ab371f017187bb2b73 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-balancing-account-stricter-fallback: Merge made by the 'ort' strategy.
f064c32c231373f669fa66ab371f017187bb2b73 530998d1338598a0e8be75675dc0419f9a79e6f1 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-mapping-completeness-broader: Merge made by the 'ort' strategy.
530998d1338598a0e8be75675dc0419f9a79e6f1 a9ba406c41427f8628ff114632315dfe8ea42e35 rvanvuren <ryan@buyerkiosk.com> 1779134189 -0500	merge origin/fix/qb-token-encryption-required: Merge made by the 'ort' strategy.
a9ba406c41427f8628ff114632315dfe8ea42e35 aa714d789dd845bf18b6a243bb33209a12709d98 rvanvuren <ryan@buyerkiosk.com> 1779134190 -0500	merge origin/fix/qb-recompute-edited-base-totals: Merge made by the 'ort' strategy.
aa714d789dd845bf18b6a243bb33209a12709d98 8460c19d412e7db983a5568f3f00384644fd9d09 rvanvuren <ryan@buyerkiosk.com> 1779134201 -0500	checkout: moving from integration-test to fix/qb-mapping-completeness-broader
8460c19d412e7db983a5568f3f00384644fd9d09 a882caa52818a20a3de35456e29997fccb023410 rvanvuren <ryan@buyerkiosk.com> 1779135863 -0500	checkout: moving from fix/qb-mapping-completeness-broader to feat/qb-stuck-posting-recovery
a882caa52818a20a3de35456e29997fccb023410 e9ff4d4de4ab742bc2610c3667e07874bfa90a35 rvanvuren <ryan@buyerkiosk.com> 1779135876 -0500	rebase (start): checkout origin/fix/qb-dedupe-distinguishes-error-from-no-match
e9ff4d4de4ab742bc2610c3667e07874bfa90a35 8b964a02934d924150690c6d546a69c57a7651ea rvanvuren <ryan@buyerkiosk.com> 1779135876 -0500	rebase (pick): feat(qb): stuck-'posting' recovery sweep job
8b964a02934d924150690c6d546a69c57a7651ea 4b04e7f72338f300633be0840aa24b690a5d138d rvanvuren <ryan@buyerkiosk.com> 1779135877 -0500	rebase (pick): fix(qb-recovery): docblock cron syntax must not contain */ sequence
4b04e7f72338f300633be0840aa24b690a5d138d 4b04e7f72338f300633be0840aa24b690a5d138d rvanvuren <ryan@buyerkiosk.com> 1779135877 -0500	rebase (finish): returning to refs/heads/feat/qb-stuck-posting-recovery
4b04e7f72338f300633be0840aa24b690a5d138d 672640c1f8dda2194b49e8b7bb72977b32e7ee00 rvanvuren <ryan@buyerkiosk.com> 1779135978 -0500	commit: fix(qb-recovery): use strict de-dupe (fail-closed) for stuck-row resolution
672640c1f8dda2194b49e8b7bb72977b32e7ee00 89df14dca0d90f7db528c54c1e272983d78ebe9c rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	checkout: moving from feat/qb-stuck-posting-recovery to integration-test
89df14dca0d90f7db528c54c1e272983d78ebe9c 45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	merge origin/fix/qb-sparse-update-preservation: Fast-forward
45fe3b5337a2ed15cb0fdc3fb275bcdb9e9f7ea2 542cbcd8e595d5480ce7b6aee900f7f65c9d91a6 rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	merge origin/fix/qb-cash-over-short-seed-direction: Merge made by the 'ort' strategy.
542cbcd8e595d5480ce7b6aee900f7f65c9d91a6 a2c2169051daf7cea62d6401d75eccc598a4648e rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	merge origin/fix/qb-gift-card-mappings: Merge made by the 'ort' strategy.
a2c2169051daf7cea62d6401d75eccc598a4648e 2e1b296cdee5e1fe982617d5bb616f066c450082 rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	merge origin/fix/qb-approval-payload-edits: Merge made by the 'ort' strategy.
2e1b296cdee5e1fe982617d5bb616f066c450082 21fd63d133f394a0df042097bf976eeebb19037b rvanvuren <ryan@buyerkiosk.com> 1779136001 -0500	merge origin/fix/qb-staged-entry-race-lock: Merge made by the 'ort' strategy.
21fd63d133f394a0df042097bf976eeebb19037b 4f7f4cc3c523fb6b542c215435d069b0da176842 rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-reconciliation-match-by-description: Merge made by the 'ort' strategy.
4f7f4cc3c523fb6b542c215435d069b0da176842 933fc4a2120fbcd4d5553ae728eb6e119ebbed70 rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-dedupe-distinguishes-error-from-no-match: Merge made by the 'ort' strategy.
933fc4a2120fbcd4d5553ae728eb6e119ebbed70 b713b08b75c7aec573580c67e7ea7301ecf04a4b rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-auto-sync-docnumber-dedupe: Merge made by the 'ort' strategy.
b713b08b75c7aec573580c67e7ea7301ecf04a4b 8c3b924d4fb6a28c593de2c8f95d562f256595d5 rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-restage-after-void: Merge made by the 'ort' strategy.
8c3b924d4fb6a28c593de2c8f95d562f256595d5 eec5c873975ffec60d3f1db791d4e3ebaaf5c7e2 rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-recon-pos-total-mapped-fields-only: Merge made by the 'ort' strategy.
eec5c873975ffec60d3f1db791d4e3ebaaf5c7e2 e0fb14bf547206a2dfbe6def48770347215bd23d rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-recon-status-with-sparse-posdata: Merge made by the 'ort' strategy.
e0fb14bf547206a2dfbe6def48770347215bd23d 08cf75dd8885a3a263e1ca900a3747eaffccc39b rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/feat/qb-stuck-posting-recovery: Merge made by the 'ort' strategy.
08cf75dd8885a3a263e1ca900a3747eaffccc39b 8c1b29f2a247fbfc0c0088028fc9653ba818a4be rvanvuren <ryan@buyerkiosk.com> 1779136002 -0500	merge origin/fix/qb-approval-line-edits-actually-post: Merge made by the 'ort' strategy.
8c1b29f2a247fbfc0c0088028fc9653ba818a4be 74827b5c9c61fd983e336761d0a184000f095e33 rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-approval-edit-preserves-account-ref-shape: Merge made by the 'ort' strategy.
74827b5c9c61fd983e336761d0a184000f095e33 50c7060cf7a39dcad030360bc25976a745a7ca4f rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-ui-render-extracts-account-ref-value: Merge made by the 'ort' strategy.
50c7060cf7a39dcad030360bc25976a745a7ca4f b04d027267f6a251c1c1417d310eddfd138062ca rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-sync-log-status-enum-extension: Merge made by the 'ort' strategy.
b04d027267f6a251c1c1417d310eddfd138062ca 5917ab48c542342b25e7245d4538353b92ff8bd2 rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-fail-closed-no-balancing-account: Merge made by the 'ort' strategy.
5917ab48c542342b25e7245d4538353b92ff8bd2 0978ee515b7a6acd9119e0b2e878f01a8e3b095c rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-balance-caps-in-valid-keys: Merge made by the 'ort' strategy.
0978ee515b7a6acd9119e0b2e878f01a8e3b095c a4fe44ed20920be141fd9931d75da0705b3d2f26 rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-rate-limit-write-operations: Merge made by the 'ort' strategy.
a4fe44ed20920be141fd9931d75da0705b3d2f26 143e6e150234c86d57a5f74b654482cfa3549882 rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-balancing-account-stricter-fallback: Merge made by the 'ort' strategy.
143e6e150234c86d57a5f74b654482cfa3549882 62da93c57741d3d5f043f07889b5a17d9794420d rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-mapping-completeness-broader: Merge made by the 'ort' strategy.
62da93c57741d3d5f043f07889b5a17d9794420d 353c288cab68418f36c43e6bfd8db3526974571c rvanvuren <ryan@buyerkiosk.com> 1779136003 -0500	merge origin/fix/qb-token-encryption-required: Merge made by the 'ort' strategy.
353c288cab68418f36c43e6bfd8db3526974571c 44ce6deeb47b3dc14a1780f79d018e72c5ec0b5a rvanvuren <ryan@buyerkiosk.com> 1779136004 -0500	merge origin/fix/qb-recompute-edited-base-totals: Merge made by the 'ort' strategy.
44ce6deeb47b3dc14a1780f79d018e72c5ec0b5a 8460c19d412e7db983a5568f3f00384644fd9d09 rvanvuren <ryan@buyerkiosk.com> 1779136006 -0500	checkout: moving from integration-test to fix/qb-mapping-completeness-broader
8460c19d412e7db983a5568f3f00384644fd9d09 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136427 -0500	checkout: moving from fix/qb-mapping-completeness-broader to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd 103ccf1495d8018a2736c3e83a21643180583401 rvanvuren <ryan@buyerkiosk.com> 1779136559 -0500	checkout: moving from master to fix/qb-gift-card-mappings
103ccf1495d8018a2736c3e83a21643180583401 5836728041c608cbce8187597cf5bdd5722b33b6 rvanvuren <ryan@buyerkiosk.com> 1779136559 -0500	rebase (start): checkout origin/master
5836728041c608cbce8187597cf5bdd5722b33b6 18fe52b821f57bcdc2cbfa6f6d16e2a0589f2f0e rvanvuren <ryan@buyerkiosk.com> 1779136559 -0500	rebase (pick): fix(qb): seed account mappings for gift-card / digital payment fields
18fe52b821f57bcdc2cbfa6f6d16e2a0589f2f0e 18fe52b821f57bcdc2cbfa6f6d16e2a0589f2f0e rvanvuren <ryan@buyerkiosk.com> 1779136559 -0500	rebase (finish): returning to refs/heads/fix/qb-gift-card-mappings
18fe52b821f57bcdc2cbfa6f6d16e2a0589f2f0e b8b7fd86df1750cf06deda6ec22410a8920dbe8d rvanvuren <ryan@buyerkiosk.com> 1779136568 -0500	checkout: moving from fix/qb-gift-card-mappings to fix/qb-approval-line-edits-actually-post
b8b7fd86df1750cf06deda6ec22410a8920dbe8d 5836728041c608cbce8187597cf5bdd5722b33b6 rvanvuren <ryan@buyerkiosk.com> 1779136569 -0500	rebase (start): checkout origin/master
5836728041c608cbce8187597cf5bdd5722b33b6 f2e1930eb00fbc3e92d8bcdb8e019b450bffc8b0 rvanvuren <ryan@buyerkiosk.com> 1779136569 -0500	rebase (pick): fix(qb): post user-edited line amounts/accounts from approval-edited payload
f2e1930eb00fbc3e92d8bcdb8e019b450bffc8b0 f2e1930eb00fbc3e92d8bcdb8e019b450bffc8b0 rvanvuren <ryan@buyerkiosk.com> 1779136569 -0500	rebase (finish): returning to refs/heads/fix/qb-approval-line-edits-actually-post
f2e1930eb00fbc3e92d8bcdb8e019b450bffc8b0 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136590 -0500	checkout: moving from fix/qb-approval-line-edits-actually-post to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd aeb1244c2fbdfea3b700daf47ec4e950a37d484a rvanvuren <ryan@buyerkiosk.com> 1779136638 -0500	checkout: moving from master to fix/qb-auto-sync-docnumber-dedupe
aeb1244c2fbdfea3b700daf47ec4e950a37d484a 90dff1c863b45e385c0741ef961a85d52b5857f8 rvanvuren <ryan@buyerkiosk.com> 1779136638 -0500	rebase (start): checkout origin/master
90dff1c863b45e385c0741ef961a85d52b5857f8 3e57fa3d2943d26dcdec36028061be4e85ac1789 rvanvuren <ryan@buyerkiosk.com> 1779136638 -0500	rebase (pick): fix(qb): query QBO for existing JE before posting in auto-sync mode
3e57fa3d2943d26dcdec36028061be4e85ac1789 8417cdf6e3bdc13a2a524ae414353ff4fdbcb8ae rvanvuren <ryan@buyerkiosk.com> 1779136638 -0500	rebase (pick): fix(qb): auto-sync de-dupe uses STRICT query path (fail-closed)
8417cdf6e3bdc13a2a524ae414353ff4fdbcb8ae 8417cdf6e3bdc13a2a524ae414353ff4fdbcb8ae rvanvuren <ryan@buyerkiosk.com> 1779136638 -0500	rebase (finish): returning to refs/heads/fix/qb-auto-sync-docnumber-dedupe
8417cdf6e3bdc13a2a524ae414353ff4fdbcb8ae 672640c1f8dda2194b49e8b7bb72977b32e7ee00 rvanvuren <ryan@buyerkiosk.com> 1779136640 -0500	checkout: moving from fix/qb-auto-sync-docnumber-dedupe to feat/qb-stuck-posting-recovery
672640c1f8dda2194b49e8b7bb72977b32e7ee00 90dff1c863b45e385c0741ef961a85d52b5857f8 rvanvuren <ryan@buyerkiosk.com> 1779136641 -0500	rebase (start): checkout origin/master
90dff1c863b45e385c0741ef961a85d52b5857f8 82222fcdfca55421bbdb7c7e788c67fd5aadcce4 rvanvuren <ryan@buyerkiosk.com> 1779136641 -0500	rebase (pick): feat(qb): stuck-'posting' recovery sweep job
82222fcdfca55421bbdb7c7e788c67fd5aadcce4 0893d63c2be22577724f39a36816d4456054012d rvanvuren <ryan@buyerkiosk.com> 1779136641 -0500	rebase (pick): fix(qb-recovery): docblock cron syntax must not contain */ sequence
0893d63c2be22577724f39a36816d4456054012d cdeba7c19c5c2fb6100e8a6159679622afa1e361 rvanvuren <ryan@buyerkiosk.com> 1779136641 -0500	rebase (pick): fix(qb-recovery): use strict de-dupe (fail-closed) for stuck-row resolution
cdeba7c19c5c2fb6100e8a6159679622afa1e361 cdeba7c19c5c2fb6100e8a6159679622afa1e361 rvanvuren <ryan@buyerkiosk.com> 1779136641 -0500	rebase (finish): returning to refs/heads/feat/qb-stuck-posting-recovery
cdeba7c19c5c2fb6100e8a6159679622afa1e361 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136686 -0500	checkout: moving from feat/qb-stuck-posting-recovery to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd a17da613d4a76c57b204025632976d7376ebd9cc rvanvuren <ryan@buyerkiosk.com> 1779136885 -0500	rebase (start): checkout origin/master
a17da613d4a76c57b204025632976d7376ebd9cc ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136891 -0500	rebase (abort): returning to refs/heads/master
ffb8154bf7b05c966734a4a8bd240c554e39cecd 89ae2171e595acbe05606d9bd4168988552b60af rvanvuren <ryan@buyerkiosk.com> 1779136926 -0500	checkout: moving from master to fix/qb-recon-pos-total-mapped-fields-only
89ae2171e595acbe05606d9bd4168988552b60af a17da613d4a76c57b204025632976d7376ebd9cc rvanvuren <ryan@buyerkiosk.com> 1779136926 -0500	rebase (start): checkout origin/master
a17da613d4a76c57b204025632976d7376ebd9cc b8e955c51f7705a1961e583b443a4a760e37be25 rvanvuren <ryan@buyerkiosk.com> 1779136926 -0500	rebase (pick): fix(qb): computePosTotal sums only mapped financial fields
b8e955c51f7705a1961e583b443a4a760e37be25 b8e955c51f7705a1961e583b443a4a760e37be25 rvanvuren <ryan@buyerkiosk.com> 1779136926 -0500	rebase (finish): returning to refs/heads/fix/qb-recon-pos-total-mapped-fields-only
b8e955c51f7705a1961e583b443a4a760e37be25 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136940 -0500	checkout: moving from fix/qb-recon-pos-total-mapped-fields-only to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd f3d88f78a1a986f743ec58a9fd22c39e90c7abdd rvanvuren <ryan@buyerkiosk.com> 1779136954 -0500	checkout: moving from master to fix/qb-recon-status-with-sparse-posdata
f3d88f78a1a986f743ec58a9fd22c39e90c7abdd dbe5f81297fe2b498e3e41fe761bc8861375217d rvanvuren <ryan@buyerkiosk.com> 1779136954 -0500	rebase (start): checkout origin/master
dbe5f81297fe2b498e3e41fe761bc8861375217d 6b904c5daa53bda17ee526260c04cdcd1428490e rvanvuren <ryan@buyerkiosk.com> 1779136954 -0500	rebase (pick): fix(qb): testReconciliationWithRateLimiter — mock the qb_staged_entries fallback query
6b904c5daa53bda17ee526260c04cdcd1428490e 92f245ab4e4b8b428ef6a0263098af4527ca68e9 rvanvuren <ryan@buyerkiosk.com> 1779136954 -0500	rebase (pick): test(qb): mock PR #45's loadMappedFieldNames query in fallback tests
92f245ab4e4b8b428ef6a0263098af4527ca68e9 92f245ab4e4b8b428ef6a0263098af4527ca68e9 rvanvuren <ryan@buyerkiosk.com> 1779136954 -0500	rebase (finish): returning to refs/heads/fix/qb-recon-status-with-sparse-posdata
92f245ab4e4b8b428ef6a0263098af4527ca68e9 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779136970 -0500	checkout: moving from fix/qb-recon-status-with-sparse-posdata to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd cdbaee1aa2bc2a11d675f555894bad2689588ec8 rvanvuren <ryan@buyerkiosk.com> 1779136998 -0500	checkout: moving from master to fix/qb-recompute-edited-base-totals
cdbaee1aa2bc2a11d675f555894bad2689588ec8 7f0b4e61ccdc6dd726e463a954667a2457bb1e76 rvanvuren <ryan@buyerkiosk.com> 1779137172 -0500	rebase (start): checkout origin/master
7f0b4e61ccdc6dd726e463a954667a2457bb1e76 7f0b4e61ccdc6dd726e463a954667a2457bb1e76 rvanvuren <ryan@buyerkiosk.com> 1779137172 -0500	rebase (finish): returning to refs/heads/fix/qb-recompute-edited-base-totals
7f0b4e61ccdc6dd726e463a954667a2457bb1e76 ffb8154bf7b05c966734a4a8bd240c554e39cecd rvanvuren <ryan@buyerkiosk.com> 1779137624 -0500	checkout: moving from fix/qb-recompute-edited-base-totals to master
ffb8154bf7b05c966734a4a8bd240c554e39cecd 7f0b4e61ccdc6dd726e463a954667a2457bb1e76 rvanvuren <ryan@buyerkiosk.com> 1779137636 -0500	reset: moving to origin/master
7f0b4e61ccdc6dd726e463a954667a2457bb1e76 b7d209a6c9ac071af33431af06ddfd8cbbc2d84d rvanvuren <ryan@buyerkiosk.com> 1779138063 -0500	commit: test(scheduling): cover TimesheetController buildDayBreakdown + getWeekStart
b7d209a6c9ac071af33431af06ddfd8cbbc2d84d fb54529458bba7885bc59bf7b64ecd1406d16bab rvanvuren <ryan@buyerkiosk.com> 1779138063 -0500	commit: chore(qb): add targeted batch-migration runner + ignore everee-docs scrape
fb54529458bba7885bc59bf7b64ecd1406d16bab fb54529458bba7885bc59bf7b64ecd1406d16bab rvanvuren <ryan@buyerkiosk.com> 1779208308 -0500	checkout: moving from master to master
fb54529458bba7885bc59bf7b64ecd1406d16bab fb54529458bba7885bc59bf7b64ecd1406d16bab rvanvuren <ryan@buyerkiosk.com> 1779208309 -0500	checkout: moving from master to feat/qb-auto-map-heuristic-learning
fb54529458bba7885bc59bf7b64ecd1406d16bab 1b23cd5507bff0933e33fcdbb82e9561b7dbc762 rvanvuren <ryan@buyerkiosk.com> 1779209331 -0500	commit: feat(admin-ui): admin UI kit + QB Account Mapping v2 redesign
1b23cd5507bff0933e33fcdbb82e9561b7dbc762 cab60e3fef4d77ff722bbd0cfc0ec6f0aad516e3 rvanvuren <ryan@buyerkiosk.com> 1779209389 -0500	commit: feat(qb): auto-map suggestions — heuristic engine + cross-store learning
cab60e3fef4d77ff722bbd0cfc0ec6f0aad516e3 66a8c211af4f4b642e5654130bf202e13e181bba rvanvuren <ryan@buyerkiosk.com> 1779210456 -0500	commit: fix(qb): review feedback — offset clear persists, learning stays in sync, save-button class
66a8c211af4f4b642e5654130bf202e13e181bba 5936acbe9d2bf57b328df40e8eeb83da27200f56 rvanvuren <ryan@buyerkiosk.com> 1779210917 -0500	commit: fix(qb): sync learning on the legacy single-field /mapping endpoint too
5936acbe9d2bf57b328df40e8eeb83da27200f56 fb54529458bba7885bc59bf7b64ecd1406d16bab rvanvuren <ryan@buyerkiosk.com> 1779211025 -0500	checkout: moving from feat/qb-auto-map-heuristic-learning to master
fb54529458bba7885bc59bf7b64ecd1406d16bab c827af8e99fbb7747c64dc73f47123a6484c2c6d rvanvuren <ryan@buyerkiosk.com> 1779211026 -0500	pull --ff-only origin master: Fast-forward
c827af8e99fbb7747c64dc73f47123a6484c2c6d c827af8e99fbb7747c64dc73f47123a6484c2c6d rvanvuren <ryan@buyerkiosk.com> 1779211037 -0500	checkout: moving from master to master
c827af8e99fbb7747c64dc73f47123a6484c2c6d c827af8e99fbb7747c64dc73f47123a6484c2c6d rvanvuren <ryan@buyerkiosk.com> 1779212238 -0500	checkout: moving from master to fix/qb-mapping-orphan-after-realm-change
c827af8e99fbb7747c64dc73f47123a6484c2c6d c9f7fc6be9c36772866618fe9a9eed90ae681b2f rvanvuren <ryan@buyerkiosk.com> 1779212238 -0500	commit: fix(qb): treat mappings pointing at deleted QBO accounts as unmapped
c9f7fc6be9c36772866618fe9a9eed90ae681b2f c827af8e99fbb7747c64dc73f47123a6484c2c6d rvanvuren <ryan@buyerkiosk.com> 1779212367 -0500	checkout: moving from fix/qb-mapping-orphan-after-realm-change to master
c827af8e99fbb7747c64dc73f47123a6484c2c6d 2a860553fdbffc614a0590de19666d47d190d3f5 rvanvuren <ryan@buyerkiosk.com> 1779212368 -0500	pull --ff-only origin master: Fast-forward
2a860553fdbffc614a0590de19666d47d190d3f5 2a860553fdbffc614a0590de19666d47d190d3f5 rvanvuren <ryan@buyerkiosk.com> 1779212368 -0500	checkout: moving from master to feat/qb-auto-map-llm-adapter
2a860553fdbffc614a0590de19666d47d190d3f5 5e3564999c27d0ec666d5f523681ebe8bb2c895f rvanvuren <ryan@buyerkiosk.com> 1779212683 -0500	commit: feat(qb): LLM auto-map adapter (gpt-4o-mini) — heuristic gap-fill
5e3564999c27d0ec666d5f523681ebe8bb2c895f 5c1395d5d9698999e21e06b40f21eb0868c6c3df rvanvuren <ryan@buyerkiosk.com> 1779214067 -0500	commit: feat(qb): split auto-map into instant (heuristic) + AI (LLM) flows
5c1395d5d9698999e21e06b40f21eb0868c6c3df 0b49f0e5fa43fdc048bf4c9236da95a9e79b1ebe rvanvuren <ryan@buyerkiosk.com> 1779214750 -0500	commit: fix(qb): AI auto-map env lookup + error surfacing
0b49f0e5fa43fdc048bf4c9236da95a9e79b1ebe 634b39071222d58fb50741c0678654cc9befa9a1 rvanvuren <ryan@buyerkiosk.com> 1779215020 -0500	commit: fix(qb): switch LLM auto-map to gpt-5 (was gpt-4o-mini)
634b39071222d58fb50741c0678654cc9befa9a1 5692f4147499c81adaa25d95348584bab4ddcf7a rvanvuren <ryan@buyerkiosk.com> 1779215084 -0500	commit: fix(qb): default LLM auto-map model is gpt-5-mini
5692f4147499c81adaa25d95348584bab4ddcf7a a615c1497033a72e75543fefe39770d285aaed54 rvanvuren <ryan@buyerkiosk.com> 1779215464 -0500	commit: fix(qb): bump LLM auto-map timeout to 90s + surface real OpenAI 429 reason
a615c1497033a72e75543fefe39770d285aaed54 edc3b2dd848519d7bc3eeb77705bdf7dee570d69 rvanvuren <ryan@buyerkiosk.com> 1779215906 -0500	commit: fix(qb): raise LLM auto-map MIN_CONFIDENCE from 0.4 to 0.6
edc3b2dd848519d7bc3eeb77705bdf7dee570d69 f4dc9c42cdd7018e44fd2cd8053ed537713f4d03 rvanvuren <ryan@buyerkiosk.com> 1779216171 -0500	commit: feat(qb): Redis-backed daily cap for AI Auto Map (5 runs/store/day)
f4dc9c42cdd7018e44fd2cd8053ed537713f4d03 227d13399a016fcb7f348dbe6ba91d46d417f468 rvanvuren <ryan@buyerkiosk.com> 1779216729 -0500	commit: feat(qb): AI badges + AI-first sort + weak-heuristic → LLM override
227d13399a016fcb7f348dbe6ba91d46d417f468 51e8a41d565d422ad9f59bcb980d001944733f5a rvanvuren <ryan@buyerkiosk.com> 1779217276 -0500	commit: feat(qb): heuristic 60% surface floor + System badge + Clear all/group + modal fixes
51e8a41d565d422ad9f59bcb980d001944733f5a b55ea6d93830f87a1bb558e9c443d326a566bc81 rvanvuren <ryan@buyerkiosk.com> 1779218429 -0500	commit: feat(qb): searchable account dropdowns via Syncfusion DropDownList
b55ea6d93830f87a1bb558e9c443d326a566bc81 19c5a460c6c63c674036ee2382f3ebf570dd92e2 rvanvuren <ryan@buyerkiosk.com> 1779218603 -0500	commit: fix(qb): center the account-type dot vertically in DDL value display
19c5a460c6c63c674036ee2382f3ebf570dd92e2 ebfb37d97b065e7e89e68b015ebd38af1e841262 rvanvuren <ryan@buyerkiosk.com> 1779218730 -0500	commit: fix(qb): account dot now actually centers in DDL value display
ebfb37d97b065e7e89e68b015ebd38af1e841262 d3cbc23b76e33a2039c5bb9be4cc4d726aa7cd04 rvanvuren <ryan@buyerkiosk.com> 1779219944 -0500	commit: fix(qb): four review-comment fixes — LLM scope guard, section-scoped modal, clear preserves edits, $_SERVER env
d3cbc23b76e33a2039c5bb9be4cc4d726aa7cd04 2a860553fdbffc614a0590de19666d47d190d3f5 rvanvuren <ryan@buyerkiosk.com> 1779220699 -0500	checkout: moving from feat/qb-auto-map-llm-adapter to master
2a860553fdbffc614a0590de19666d47d190d3f5 763c2a2b8189b697987bb19ead65dc9afdd95ba4 rvanvuren <ryan@buyerkiosk.com> 1779220700 -0500	pull --ff-only origin master: Fast-forward
763c2a2b8189b697987bb19ead65dc9afdd95ba4 763c2a2b8189b697987bb19ead65dc9afdd95ba4 rvanvuren <ryan@buyerkiosk.com> 1779220700 -0500	checkout: moving from master to feat/qb-pages-aui-kit-pr1
763c2a2b8189b697987bb19ead65dc9afdd95ba4 0e109b88e74616ee882b773b352351c39fd7bba6 rvanvuren <ryan@buyerkiosk.com> 1779221165 -0500	commit: feat(qb): migrate Settings + Dashboard to admin-ui-kit (PR 1 of QB-pages sweep)
0e109b88e74616ee882b773b352351c39fd7bba6 f2601bc9ec7ac9d4cad43303279c33e534c78697 rvanvuren <ryan@buyerkiosk.com> 1779222945 -0500	commit: fix(qb-dashboard): strip decorative color from icons, progress bar, activity feed
f2601bc9ec7ac9d4cad43303279c33e534c78697 7a5963d986a64c33f1ba64b73823a60d815f4c03 rvanvuren <ryan@buyerkiosk.com> 1779224530 -0500	commit: feat(qb-dashboard): adopt Option B design — header chips + Needs Your Attention + activity log
7a5963d986a64c33f1ba64b73823a60d815f4c03 320e18f81a071d416bc0161826ca643567c58676 rvanvuren <ryan@buyerkiosk.com> 1779224750 -0500	commit: fix(qb-dashboard): cache-bust dashboard.js include
320e18f81a071d416bc0161826ca643567c58676 7c288f87be10fdbbf5bce6bf240bcb172e302672 rvanvuren <ryan@buyerkiosk.com> 1779224903 -0500	commit: fix(qb-dashboard): full shell width, remove back link, kill button underlines
7c288f87be10fdbbf5bce6bf240bcb172e302672 9549304d97189c14ebf638feabf2dd852aa97fcc rvanvuren <ryan@buyerkiosk.com> 1779225002 -0500	commit: fix(qb-dashboard): drop redundant sandbox banner
9549304d97189c14ebf638feabf2dd852aa97fcc c9957111f47b36d92e5f3b7db512f8e824c70d0a rvanvuren <ryan@buyerkiosk.com> 1779225135 -0500	commit: fix(qb-dashboard): split activity tone from kind taxonomy
c9957111f47b36d92e5f3b7db512f8e824c70d0a 3795b85d58213bd6bcb1d9fbebe42b2a9280554e rvanvuren <ryan@buyerkiosk.com> 1779225310 -0500	commit: feat(qb-dashboard): humanize activity rows with target + detail lines
3795b85d58213bd6bcb1d9fbebe42b2a9280554e 8398297ca9309b1a30ccde0f7686753cf94c77fb rvanvuren <ryan@buyerkiosk.com> 1779225428 -0500	commit: feat(qb-dashboard): humanize cash variance threshold setting events
8398297ca9309b1a30ccde0f7686753cf94c77fb fadf8e581549842d6656d50dd9a10c6c5b7599f3 rvanvuren <ryan@buyerkiosk.com> 1779225709 -0500	commit: feat(qb-settings): surface cash variance threshold settings
fadf8e581549842d6656d50dd9a10c6c5b7599f3 59a49eb69e9011e8f42360f5e33b6c2a02b76b8f rvanvuren <ryan@buyerkiosk.com> 1779225903 -0500	commit: fix(qb-dashboard): only flag critical unmapped fields as warnings
59a49eb69e9011e8f42360f5e33b6c2a02b76b8f 2f12fe1ea6cc6aafc8c0f829fc0381cea575e817 rvanvuren <ryan@buyerkiosk.com> 1779225984 -0500	commit: fix(qb-dashboard): name the specific critical unmapped fields on warn card
2f12fe1ea6cc6aafc8c0f829fc0381cea575e817 c5beabd423644bf07e008a8b3ed46fd3e3ce42f0 rvanvuren <ryan@buyerkiosk.com> 1779226410 -0500	commit: feat(qb-mapping): isOptional flag — admins can mark fields as N/A per store
c5beabd423644bf07e008a8b3ed46fd3e3ce42f0 9fbf5c12a225c334871b26e710b8e9a4c5ce38ac rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (start): checkout origin/master
9fbf5c12a225c334871b26e710b8e9a4c5ce38ac 3399cb3b4a10561f23c8d315e3d46c43410e60bf rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb): migrate Settings + Dashboard to admin-ui-kit (PR 1 of QB-pages sweep)
3399cb3b4a10561f23c8d315e3d46c43410e60bf b8f61d781708f50617dc1f9b05a7b13a95f52e66 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): strip decorative color from icons, progress bar, activity feed
b8f61d781708f50617dc1f9b05a7b13a95f52e66 f4e53d5efadf3ff445786e8d6b5f2f629bcbeb01 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb-dashboard): adopt Option B design — header chips + Needs Your Attention + activity log
f4e53d5efadf3ff445786e8d6b5f2f629bcbeb01 ba90eedf409389b199cc684a4fdba574ab99514c rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): cache-bust dashboard.js include
ba90eedf409389b199cc684a4fdba574ab99514c bbc21ea7e719d0273f3722ccc8cbf3b82d3f981c rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): full shell width, remove back link, kill button underlines
bbc21ea7e719d0273f3722ccc8cbf3b82d3f981c 6f8dae05d1d65f56b6c2d351c322902e0598d4c0 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): drop redundant sandbox banner
6f8dae05d1d65f56b6c2d351c322902e0598d4c0 cc5bb0ca9d6666e713199cda68ae6ba0d3898c42 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): split activity tone from kind taxonomy
cc5bb0ca9d6666e713199cda68ae6ba0d3898c42 3aa1bb19b69dff36059a3fee764f4e4f96614e3c rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb-dashboard): humanize activity rows with target + detail lines
3aa1bb19b69dff36059a3fee764f4e4f96614e3c 8b9a0073260ad452a4a697e45eee205b8ebc023a rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb-dashboard): humanize cash variance threshold setting events
8b9a0073260ad452a4a697e45eee205b8ebc023a 142f7c5cdc7ac3b4ac859475f1232c1579382cf4 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb-settings): surface cash variance threshold settings
142f7c5cdc7ac3b4ac859475f1232c1579382cf4 dc58227e2b28ba2d8fbff378ee2353a75778083d rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): only flag critical unmapped fields as warnings
dc58227e2b28ba2d8fbff378ee2353a75778083d 1406ed7928cde797498d35fa863b0be841e65ce2 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): fix(qb-dashboard): name the specific critical unmapped fields on warn card
1406ed7928cde797498d35fa863b0be841e65ce2 5817014e7157056b5bcdd3f4e335ce8da542b741 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (pick): feat(qb-mapping): isOptional flag — admins can mark fields as N/A per store
5817014e7157056b5bcdd3f4e335ce8da542b741 5817014e7157056b5bcdd3f4e335ce8da542b741 rvanvuren <ryan@buyerkiosk.com> 1779226418 -0500	rebase (finish): returning to refs/heads/feat/qb-pages-aui-kit-pr1
5817014e7157056b5bcdd3f4e335ce8da542b741 7365b6bab2570b4844aa21b8b0b0d60b7740ba6c rvanvuren <ryan@buyerkiosk.com> 1779227518 -0500	commit: feat(qb-mapping): "Not used at this store" option in account dropdown
7365b6bab2570b4844aa21b8b0b0d60b7740ba6c 276651bdbeb920194289e26f3b113b1f5e1a1744 rvanvuren <ryan@buyerkiosk.com> 1779227645 -0500	commit: fix(qb-dashboard): treat isOptional fields as resolved, not "optional unmapped"
276651bdbeb920194289e26f3b113b1f5e1a1744 51b43c3e729d463a2538d5e278fd9b567c855ee6 rvanvuren <ryan@buyerkiosk.com> 1779227900 -0500	commit: fix(qb-dashboard): hide attention panel when nothing's worth showing
51b43c3e729d463a2538d5e278fd9b567c855ee6 f5d87e3053a0f4386df13e2a4ebb3c95b708696d rvanvuren <ryan@buyerkiosk.com> 1779228083 -0500	commit: fix(qb-mapping): drop redundant sandbox banner (matches dashboard cleanup)
f5d87e3053a0f4386df13e2a4ebb3c95b708696d 763c2a2b8189b697987bb19ead65dc9afdd95ba4 rvanvuren <ryan@buyerkiosk.com> 1779228239 -0500	checkout: moving from feat/qb-pages-aui-kit-pr1 to master
763c2a2b8189b697987bb19ead65dc9afdd95ba4 f268a4b23993c1cc12df128cf03656c8e4743378 rvanvuren <ryan@buyerkiosk.com> 1779228240 -0500	pull --ff-only origin master: Fast-forward
f268a4b23993c1cc12df128cf03656c8e4743378 f268a4b23993c1cc12df128cf03656c8e4743378 rvanvuren <ryan@buyerkiosk.com> 1779380393 -0500	checkout: moving from master to feat/qb-logs-aui-kit
f268a4b23993c1cc12df128cf03656c8e4743378 6c1e7b50853dfdfc0a747fbea8403d19e56fe1e7 rvanvuren <ryan@buyerkiosk.com> 1779380642 -0500	commit: feat(qb-logs): migrate Sync Log + Audit Log to admin-ui-kit
6c1e7b50853dfdfc0a747fbea8403d19e56fe1e7 328e8e08de2a75f5fb44facdc4f715df1744e5d3 rvanvuren <ryan@buyerkiosk.com> 1779380845 -0500	commit: fix(qb-sync-log): row-expand was stuck on "Loading details..." forever
328e8e08de2a75f5fb44facdc4f715df1744e5d3 a5e26e210b0d427a902f95643e0ef7a521d74196 rvanvuren <ryan@buyerkiosk.com> 1779381129 -0500	commit: fix(qb-approval-queue): surface server errors instead of silent console-log
a5e26e210b0d427a902f95643e0ef7a521d74196 cf0bc1412cec3387cf5147437f7dfe1fddd0728e rvanvuren <ryan@buyerkiosk.com> 1779381387 -0500	commit: feat(qb-approval-queue): migrate to admin-ui-kit
cf0bc1412cec3387cf5147437f7dfe1fddd0728e e28dcfc35e8661c354a5212d678eba8517919209 rvanvuren <ryan@buyerkiosk.com> 1779381557 -0500	commit: fix(qb-approval-queue): restyle grid row-action buttons + adjustment remove
e28dcfc35e8661c354a5212d678eba8517919209 f6510e40de7763409f773209154950c1fd205ba4 rvanvuren <ryan@buyerkiosk.com> 1779381622 -0500	commit: fix(qb-approval-queue): soften the Approve button — neutral resting, green hover
f6510e40de7763409f773209154950c1fd205ba4 864a3547a6976af54803b9939cbee6a3aedcc9f1 rvanvuren <ryan@buyerkiosk.com> 1779381804 -0500	commit: fix(qb-audit-log): no more raw escaped JSON in expanded rows + correct summaries
864a3547a6976af54803b9939cbee6a3aedcc9f1 fefa5779df1913cdf1f87ec112eda639e4458ba4 rvanvuren <ryan@buyerkiosk.com> 1779382119 -0500	commit: feat(qb-reconciliation): migrate to admin-ui-kit + finish sandbox cleanup
fefa5779df1913cdf1f87ec112eda639e4458ba4 541b024bb4702d09a719a5100405a673b50cb99a rvanvuren <ryan@buyerkiosk.com> 1779382371 -0500	commit: fix(qb-shared): remove old unscoped .qb-env-badge rules + lock badge centering
541b024bb4702d09a719a5100405a673b50cb99a 60c26830a4e95a7bdaa3950233105e38ccb601c4 rvanvuren <ryan@buyerkiosk.com> 1779384049 -0500	commit: fix(qb-reconciliation): remove leftover env-badge fn that overrode AUI-kit styles
60c26830a4e95a7bdaa3950233105e38ccb601c4 6775359f6b8d918373ff41ae71a3332a028dec55 rvanvuren <ryan@buyerkiosk.com> 1779384898 -0500	commit: fix(qb-modals): missing CSRF on void + unstyled buttons after body-relocation
6775359f6b8d918373ff41ae71a3332a028dec55 e3be90c530111b969d21c46301257cab16d94ad3 rvanvuren <ryan@buyerkiosk.com> 1779385592 -0500	commit: feat(qb-sync-log): unify auto-sync + manual-approval history
e3be90c530111b969d21c46301257cab16d94ad3 3b3c93b6c73a3ebce2d6ecf0f4684282b094f247 rvanvuren <ryan@buyerkiosk.com> 1779385808 -0500	commit: fix(qb-sync-log): UNION 500 from mismatched table collations
3b3c93b6c73a3ebce2d6ecf0f4684282b094f247 5ae20b006f8de623a4b2367c123a1364070cbd2b rvanvuren <ryan@buyerkiosk.com> 1779386414 -0500	commit: feat(qb-sync-log): real per-row actions instead of generic navigation
5ae20b006f8de623a4b2367c123a1364070cbd2b 171ff3a1cf314f0d2360abf9dea70fd6433e0f37 rvanvuren <ryan@buyerkiosk.com> 1779386648 -0500	commit: fix(qb-sync-log): use QBO's canonical deep-link URL (no app. subdomain, query-param realmId)
171ff3a1cf314f0d2360abf9dea70fd6433e0f37 a31b33ef3e585d0d653f876392ef002277d4de9c rvanvuren <ryan@buyerkiosk.com> 1779387071 -0500	commit: feat(qb-pages): clickable QBO links wherever a Doc # appears
a31b33ef3e585d0d653f876392ef002277d4de9c 89c3d9c64bb64bc9e8d7232d2f12c5cdd1125d9f rvanvuren <ryan@buyerkiosk.com> 1779391523 -0500	commit: fix: prevent support article prices from rendering as math
89c3d9c64bb64bc9e8d7232d2f12c5cdd1125d9f b53d472a30ad5c395d3058f55fd7bc35c45cd110 rvanvuren <ryan@buyerkiosk.com> 1779391721 -0500	commit: docs: add QuickBooks support articles
b53d472a30ad5c395d3058f55fd7bc35c45cd110 a31b33ef3e585d0d653f876392ef002277d4de9c rvanvuren <ryan@buyerkiosk.com> 1779392680 -0500	checkout: moving from feat/qb-logs-aui-kit to feat/qb-code-aui-kit
a31b33ef3e585d0d653f876392ef002277d4de9c 3f709d6a2f145ad7e97d42644d8174d4e61952a1 rvanvuren <ryan@buyerkiosk.com> 1779392957 -0500	commit: fix(qb-sync-log): preserve legacy history and post re-sync form data
3f709d6a2f145ad7e97d42644d8174d4e61952a1 b53d472a30ad5c395d3058f55fd7bc35c45cd110 rvanvuren <ryan@buyerkiosk.com> 1779392971 -0500	checkout: moving from feat/qb-code-aui-kit to feat/qb-logs-aui-kit
b53d472a30ad5c395d3058f55fd7bc35c45cd110 f8a5b529620b2c02f55810411b4d2ab60d3ec6c1 rvanvuren <ryan@buyerkiosk.com> 1779392975 -0500	merge feat/qb-code-aui-kit: Merge made by the 'ort' strategy.
f8a5b529620b2c02f55810411b4d2ab60d3ec6c1 3f709d6a2f145ad7e97d42644d8174d4e61952a1 rvanvuren <ryan@buyerkiosk.com> 1779393279 -0500	checkout: moving from feat/qb-logs-aui-kit to feat/qb-code-aui-kit
3f709d6a2f145ad7e97d42644d8174d4e61952a1 6d37ee467cef52695e0f3adbae297b348cf6be37 rvanvuren <ryan@buyerkiosk.com> 1779393373 -0500	commit: test(qb): update mocks for optional mapping fields
6d37ee467cef52695e0f3adbae297b348cf6be37 f8a5b529620b2c02f55810411b4d2ab60d3ec6c1 rvanvuren <ryan@buyerkiosk.com> 1779393384 -0500	checkout: moving from feat/qb-code-aui-kit to feat/qb-logs-aui-kit
f8a5b529620b2c02f55810411b4d2ab60d3ec6c1 d6584a44ccdc26ec33a6131e957843c9f7d83a4b rvanvuren <ryan@buyerkiosk.com> 1779393387 -0500	merge feat/qb-code-aui-kit: Merge made by the 'ort' strategy.
d6584a44ccdc26ec33a6131e957843c9f7d83a4b f268a4b23993c1cc12df128cf03656c8e4743378 rvanvuren <ryan@buyerkiosk.com> 1779394519 -0500	checkout: moving from feat/qb-logs-aui-kit to master
f268a4b23993c1cc12df128cf03656c8e4743378 b0d231333999db3111d83e9deb859cd623b0f8e0 rvanvuren <ryan@buyerkiosk.com> 1779394523 -0500	merge origin/master: Fast-forward
b0d231333999db3111d83e9deb859cd623b0f8e0 b0d231333999db3111d83e9deb859cd623b0f8e0 rvanvuren <ryan@buyerkiosk.com> 1779395194 -0500	reset: moving to HEAD
b0d231333999db3111d83e9deb859cd623b0f8e0 695462f8bb53a8f31c0124825867643e0547a052 rvanvuren <ryan@buyerkiosk.com> 1779570216 -0500	commit: docs(support): kiosk receipt customization articles + QB recategorization deploy
695462f8bb53a8f31c0124825867643e0547a052 695462f8bb53a8f31c0124825867643e0547a052 rvanvuren <ryan@buyerkiosk.com> 1779570555 -0500	checkout: moving from master to spec-003-schedule-visibility
695462f8bb53a8f31c0124825867643e0547a052 f99c1aeccabe4b10b29733fc9c58e85d244264f7 rvanvuren <ryan@buyerkiosk.com> 1779570583 -0500	commit: Spec 003 Phase 1: backend foundations for schedule-visibility
f99c1aeccabe4b10b29733fc9c58e85d244264f7 a713f36cd180cebad5694c1ad9f7f49a6f6eeebe rvanvuren <ryan@buyerkiosk.com> 1779570856 -0500	commit: fix(support-deploy): include all QB articles + correct user table lookup
a713f36cd180cebad5694c1ad9f7f49a6f6eeebe 695462f8bb53a8f31c0124825867643e0547a052 rvanvuren <ryan@buyerkiosk.com> 1779570906 -0500	checkout: moving from spec-003-schedule-visibility to master
695462f8bb53a8f31c0124825867643e0547a052 72d71853b9635f145c26df748d0b4ee33f90c13e rvanvuren <ryan@buyerkiosk.com> 1779570907 -0500	pull --ff-only origin master: Fast-forward
72d71853b9635f145c26df748d0b4ee33f90c13e e3068340b125a27ddaa129ef73cf51e2bf5dffd4 rvanvuren <ryan@buyerkiosk.com> 1779570907 -0500	cherry-pick: fix(support-deploy): include all QB articles + correct user table lookup
e3068340b125a27ddaa129ef73cf51e2bf5dffd4 e3068340b125a27ddaa129ef73cf51e2bf5dffd4 rvanvuren <ryan@buyerkiosk.com> 1779814926 -0500	checkout: moving from master to 050-everee-payroll-foundations
e3068340b125a27ddaa129ef73cf51e2bf5dffd4 a713f36cd180cebad5694c1ad9f7f49a6f6eeebe rvanvuren <ryan@buyerkiosk.com> 1779815074 -0500	checkout: moving from 050-everee-payroll-foundations to spec-003-schedule-visibility
a713f36cd180cebad5694c1ad9f7f49a6f6eeebe c284932dc47e2c85fa53b02d2eba20fbee9d87d9 rvanvuren <ryan@buyerkiosk.com> 1779815311 -0500	commit: fix(publish): include edited published shifts when republishing a week
c284932dc47e2c85fa53b02d2eba20fbee9d87d9 a713f36cd180cebad5694c1ad9f7f49a6f6eeebe rvanvuren <ryan@buyerkiosk.com> 1779815345 -0500	reset: moving to HEAD~
a713f36cd180cebad5694c1ad9f7f49a6f6eeebe a713f36cd180cebad5694c1ad9f7f49a6f6eeebe rvanvuren <ryan@buyerkiosk.com> 1779815354 -0500	reset: moving to HEAD
a713f36cd180cebad5694c1ad9f7f49a6f6eeebe 2d77c99722cde1159ad35c5bfe664c00884d2b38 rvanvuren <ryan@buyerkiosk.com> 1779815366 -0500	commit: fix(publish): include edited published shifts when republishing a week
2d77c99722cde1159ad35c5bfe664c00884d2b38 8e71d19f5e27f52003d4f18c724707ff55e4d3e4 rvanvuren <ryan@buyerkiosk.com> 1779815450 -0500	commit: fix(publish-state): honor unpublishedAt in isWeekPublished / findByWeekStart and reset on republish
8e71d19f5e27f52003d4f18c724707ff55e4d3e4 d984ddea0bc915e55336e47f10f81b889e1c5b35 rvanvuren <ryan@buyerkiosk.com> 1779815601 -0500	commit: fix(ably): wire AblySchedulePublisher into production controller + shift CRUD
d984ddea0bc915e55336e47f10f81b889e1c5b35 ec398778ad8ce30cfb9d45e4f43934da249bfaaa rvanvuren <ryan@buyerkiosk.com> 1779815666 -0500	commit: fix(ably): reuse eventId across both channel envelopes for client dedup
ec398778ad8ce30cfb9d45e4f43934da249bfaaa 44f9ee8b2b4c680b985c2c99bd9d9f363d555ead rvanvuren <ryan@buyerkiosk.com> 1779815768 -0500	commit: fix(dashboard): compute hasUnpublishedChange inline to avoid undefined-key warning
44f9ee8b2b4c680b985c2c99bd9d9f363d555ead 44f9ee8b2b4c680b985c2c99bd9d9f363d555ead rvanvuren <ryan@buyerkiosk.com> 1779815783 -0500	reset: moving to HEAD
44f9ee8b2b4c680b985c2c99bd9d9f363d555ead e3068340b125a27ddaa129ef73cf51e2bf5dffd4 rvanvuren <ryan@buyerkiosk.com> 1779815792 -0500	checkout: moving from spec-003-schedule-visibility to 050-everee-payroll-foundations
e3068340b125a27ddaa129ef73cf51e2bf5dffd4 44f9ee8b2b4c680b985c2c99bd9d9f363d555ead rvanvuren <ryan@buyerkiosk.com> 1779815833 -0500	checkout: moving from 050-everee-payroll-foundations to spec-003-schedule-visibility
44f9ee8b2b4c680b985c2c99bd9d9f363d555ead 20131d7a91b0f23421f6f91cd08b5c3f902ff64b rvanvuren <ryan@buyerkiosk.com> 1779816201 -0500	commit: feat(spec-050): T1 Employee class consolidation (PRD F1 / CON-21 gate)
20131d7a91b0f23421f6f91cd08b5c3f902ff64b 8100a3f984a722c2b165972cc4b4223955cb4752 rvanvuren <ryan@buyerkiosk.com> 1779916995 -0500	checkout: moving from spec-003-schedule-visibility to codex/fix-unauthenticated-routes-in-constant-contact
8100a3f984a722c2b165972cc4b4223955cb4752 c6afaa70ee2a95f5af877bd0cc5bca42d0cd3001 rvanvuren <ryan@buyerkiosk.com> 1779917300 -0500	commit: fix(constant-contact): extend authz guard to all remaining unauthenticated routes
c6afaa70ee2a95f5af877bd0cc5bca42d0cd3001 b5e3993f56b03075fa2fc87d41fd23c9b5da74f6 rvanvuren <ryan@buyerkiosk.com> 1779917410 -0500	checkout: moving from codex/fix-unauthenticated-routes-in-constant-contact to codex/patch-unauthenticated-legacy-api-sql-injection
b5e3993f56b03075fa2fc87d41fd23c9b5da74f6 aeec69c86a83f1c8473effd354df8d8a650a9d80 rvanvuren <ryan@buyerkiosk.com> 1779918547 -0500	checkout: moving from codex/patch-unauthenticated-legacy-api-sql-injection to codex/propose-fix-for-wiw-setup-vulnerability
aeec69c86a83f1c8473effd354df8d8a650a9d80 6d1f599966d1380b371894d1638ccbb7d7f695ec rvanvuren <ryan@buyerkiosk.com> 1779918616 -0500	commit: fix(wiw): extend authz guard to /validateToken, /disconnect, /wiw/debug-users
6d1f599966d1380b371894d1638ccbb7d7f695ec 50b497927967be196babc23244a716c2b6f8a47b rvanvuren <ryan@buyerkiosk.com> 1779918876 -0500	checkout: moving from codex/propose-fix-for-wiw-setup-vulnerability to codex/propose-fix-for-unathenticated-access-vulnerability
50b497927967be196babc23244a716c2b6f8a47b d0e21f6324d739e15a495aaec665ff58f7e2d2c9 rvanvuren <ryan@buyerkiosk.com> 1779918942 -0500	commit: fix(employee.php): tighten authz with uri_store_settings + checkStoreGroup
d0e21f6324d739e15a495aaec665ff58f7e2d2c9 822f4ecd4ed38de1f17ac2b6277bf88538206821 rvanvuren <ryan@buyerkiosk.com> 1779981989 -0500	checkout: moving from codex/propose-fix-for-unathenticated-access-vulnerability to docs/timesheets-custom-export-two-week
822f4ecd4ed38de1f17ac2b6277bf88538206821 4b3c00ca19ea52abf605a6ea7c8242e0ced38dbe rvanvuren <ryan@buyerkiosk.com> 1779982486 -0500	commit: docs(support): timesheets pay-period + custom-export deploy
4b3c00ca19ea52abf605a6ea7c8242e0ced38dbe e3068340b125a27ddaa129ef73cf51e2bf5dffd4 rvanvuren <ryan@buyerkiosk.com> 1779983226 -0500	checkout: moving from docs/timesheets-custom-export-two-week to master
e3068340b125a27ddaa129ef73cf51e2bf5dffd4 7114de77a22c62f30f31b05e1d4907813581236d rvanvuren <ryan@buyerkiosk.com> 1779983227 -0500	pull origin master --quiet: Fast-forward
7114de77a22c62f30f31b05e1d4907813581236d 7114de77a22c62f30f31b05e1d4907813581236d rvanvuren <ryan@buyerkiosk.com> 1779983227 -0500	checkout: moving from master to docs/break-policy-support-articles
7114de77a22c62f30f31b05e1d4907813581236d 05312ea9a512bb7f3974174ad81db40676d64bf5 rvanvuren <ryan@buyerkiosk.com> 1779985530 -0500	commit: docs(support): break policy + compliance dashboard articles
05312ea9a512bb7f3974174ad81db40676d64bf5 e3068340b125a27ddaa129ef73cf51e2bf5dffd4 rvanvuren <ryan@buyerkiosk.com> 1780086136 -0500	checkout: moving from docs/break-policy-support-articles to 050-everee-payroll-foundations
e3068340b125a27ddaa129ef73cf51e2bf5dffd4 f429d715b49cbfcbc415e4c4755e0c09262703ae rvanvuren <ryan@buyerkiosk.com> 1780086136 -0500	cherry-pick: feat(spec-050): T1 Employee class consolidation (PRD F1 / CON-21 gate)
f429d715b49cbfcbc415e4c4755e0c09262703ae 24c1d7467cfa1957f9a10425ea6b7bb090028f80 rvanvuren <ryan@buyerkiosk.com> 1780090406 -0500	commit: feat(spec-050): T2 payroll schema migrations (16 JSONs) + idempotency/permission tests
24c1d7467cfa1957f9a10425ea6b7bb090028f80 5eceaf15e092c13808f368312f2c1511475a91f0 rvanvuren <ryan@buyerkiosk.com> 1780090421 -0500	commit: feat(spec-050): T3 person-centric account verification CLI + test
5eceaf15e092c13808f368312f2c1511475a91f0 c0e1074eb1c366ab17e202f2b1ce6ea5502bb7bb rvanvuren <ryan@buyerkiosk.com> 1780090433 -0500	commit: feat(spec-050): T4 TaskEngine infrastructure audit test (PRD F12 gate)
c0e1074eb1c366ab17e202f2b1ce6ea5502bb7bb 5d1df2f14ce539742fbe40afd3e2bb8feccc95f9 rvanvuren <ryan@buyerkiosk.com> 1780090443 -0500	commit: feat(spec-050): T5 Phase 0 pre-flight checklist test (PRD F13)
5d1df2f14ce539742fbe40afd3e2bb8feccc95f9 03f06baa9676e0827edee9223dfa8d781f5ea461 rvanvuren <ryan@buyerkiosk.com> 1780091246 -0500	commit: fix(spec-050): T2 migrations 012/015 — correct schema targets found at live apply
03f06baa9676e0827edee9223dfa8d781f5ea461 81759f742f8f45aa0da3a76b5482611624a912ee rvanvuren <ryan@buyerkiosk.com> 1780339823 -0500	commit: feat(spec-050): CON-22 remediation — assign existing user to a second store
81759f742f8f45aa0da3a76b5482611624a912ee 3dd0b07ba564c9872d822357ad054b125b7c174e rvanvuren <ryan@buyerkiosk.com> 1780341552 -0500	commit: feat(spec-050): T11 PayrollAudit layer — Entry + Repository + Service (PRD F9)
3dd0b07ba564c9872d822357ad054b125b7c174e c6d3d1f164f6de463788107a000894a86f53d302 rvanvuren <ryan@buyerkiosk.com> 1780344050 -0500	commit: feat(spec-050): T6 EvereeTokenStorage + PayrollTenant + token-leak CI (PRD F4, ADR-1)
c6d3d1f164f6de463788107a000894a86f53d302 59ac0409380659ce901e1ffc8b8440ffceef5aac rvanvuren <ryan@buyerkiosk.com> 1780352044 -0500	commit: fix(spec-050): address holistic review — assign-existing trust + halt body + exact key length
59ac0409380659ce901e1ffc8b8440ffceef5aac 59ac0409380659ce901e1ffc8b8440ffceef5aac rvanvuren <ryan@buyerkiosk.com> 1780352805 -0500	reset: moving to HEAD
59ac0409380659ce901e1ffc8b8440ffceef5aac 5444a4646897418adcf51d1b871c3cd6bc7cd74c rvanvuren <ryan@buyerkiosk.com> 1780355455 -0500	commit: fix(spec-050): modernize EmployeeApiController test + fix systemic Slim 2 response bugs
5444a4646897418adcf51d1b871c3cd6bc7cd74c b546320e61b64bdabfda0519b306f0aecbab60d8 rvanvuren <ryan@buyerkiosk.com> 1780357478 -0500	commit: feat(spec-050): T7 EvereeApiClient — recorded-fixture HTTP client (PRD F5 gate)
b546320e61b64bdabfda0519b306f0aecbab60d8 b20b543bf353578eba3ffd6c2a6cd9b32a945b6b rvanvuren <ryan@buyerkiosk.com> 1780422777 -0500	commit: feat(spec-050): T13 SchedulingProviderGate — WIW-exclusion gate (PRD F11)
b20b543bf353578eba3ffd6c2a6cd9b32a945b6b 567d1d0d309f63dbee07e65dd7cc66039656c42b rvanvuren <ryan@buyerkiosk.com> 1780426541 -0500	commit: feat(spec-050): T9 EvereeProvisioningService + PayrollTenantRepository (PRD F6, ADR-11)
567d1d0d309f63dbee07e65dd7cc66039656c42b b981294cefa26e62a486c57eb7f997b0c12e16ae rvanvuren <ryan@buyerkiosk.com> 1780429721 -0500	commit: feat(spec-050): T10 Round 1 — Everee webhook ingestion (HMAC + idempotency + PII redaction)
b981294cefa26e62a486c57eb7f997b0c12e16ae aea35c21e83d85cff49d5c3b381bc7024bce27d2 rvanvuren <ryan@buyerkiosk.com> 1780431506 -0500	commit: feat(spec-050): T10 Round 2 — webhook async processing (job, UserPayrollProfile, controller, route)
aea35c21e83d85cff49d5c3b381bc7024bce27d2 793b81c0aa5dd7242e3dee0a272a87871f02b6d5 rvanvuren <ryan@buyerkiosk.com> 1780434021 -0500	commit: feat(spec-050): T8 PayRateService + GuardedPdo — append-only rate history (PRD F7, ADR-2)
793b81c0aa5dd7242e3dee0a272a87871f02b6d5 a37785a9dd7f3245c751111cef54e4941e484a8a rvanvuren <ryan@buyerkiosk.com> 1780439200 -0500	commit: feat(spec-050): T12 PayrollAdminController + admin routes (PRD F6/F7)
a37785a9dd7f3245c751111cef54e4941e484a8a e10c644d7046037b9c97364c139bf248099ba2e2 rvanvuren <ryan@buyerkiosk.com> 1780440044 -0500	commit: feat(spec-050): T14 rate-backfill CLI (PRD F7 / SDD Deliverable 2)
e10c644d7046037b9c97364c139bf248099ba2e2 f76c3513084ecb9e315d1acc7174ea12088fa558 rvanvuren <ryan@buyerkiosk.com> 1780440190 -0500	commit: chore(spec-050): T16 — env/docs housekeeping + fix reprocess-webhooks CLI bootstrap
f76c3513084ecb9e315d1acc7174ea12088fa558 e199885cf54b35e72c8e513d83c2b600c0c5381e rvanvuren <ryan@buyerkiosk.com> 1780440406 -0500	commit: fix(spec-050): T17 — clear token-leak scanner (var_export -> json_encode)
e199885cf54b35e72c8e513d83c2b600c0c5381e e199885cf54b35e72c8e513d83c2b600c0c5381e rvanvuren <ryan@buyerkiosk.com> 1780507988 -0500	reset: moving to HEAD
e199885cf54b35e72c8e513d83c2b600c0c5381e e199885cf54b35e72c8e513d83c2b600c0c5381e rvanvuren <ryan@buyerkiosk.com> 1780508082 -0500	reset: moving to HEAD
e199885cf54b35e72c8e513d83c2b600c0c5381e b3073560d7a22eef3e442e32ed76384e0d58fe7b rvanvuren <ryan@buyerkiosk.com> 1780508082 -0500	commit: feat(spec-050): T18 schedule F8 webhook recovery as TaskEngine job
b3073560d7a22eef3e442e32ed76384e0d58fe7b b3073560d7a22eef3e442e32ed76384e0d58fe7b rvanvuren <ryan@buyerkiosk.com> 1780510070 -0500	reset: moving to HEAD
b3073560d7a22eef3e442e32ed76384e0d58fe7b 8517e093fd61246f8837150d68626da5477bdb27 rvanvuren <ryan@buyerkiosk.com> 1780510070 -0500	commit: feat(spec-050): T19 atomic per-event claim closes T18 residual gap
8517e093fd61246f8837150d68626da5477bdb27 8517e093fd61246f8837150d68626da5477bdb27 rvanvuren <ryan@buyerkiosk.com> 1780515026 -0500	reset: moving to HEAD
8517e093fd61246f8837150d68626da5477bdb27 3ff0db2c6a3d4cb7e7503b051b7dfbc5d5abd5a4 rvanvuren <ryan@buyerkiosk.com> 1780515026 -0500	commit: fix(task-engine): T20 atomic pending->running transition closes worker race
3ff0db2c6a3d4cb7e7503b051b7dfbc5d5abd5a4 3ff0db2c6a3d4cb7e7503b051b7dfbc5d5abd5a4 rvanvuren <ryan@buyerkiosk.com> 1780517520 -0500	reset: moving to HEAD
3ff0db2c6a3d4cb7e7503b051b7dfbc5d5abd5a4 d6fce3aae20ef984ec78e8c2a37b5b24a0fd2d8b rvanvuren <ryan@buyerkiosk.com> 1780517521 -0500	commit: fix(spec-050): T15 live-sandbox smoke — fix worker-list parse + F6 gate + base URL
d6fce3aae20ef984ec78e8c2a37b5b24a0fd2d8b d6fce3aae20ef984ec78e8c2a37b5b24a0fd2d8b rvanvuren <ryan@buyerkiosk.com> 1780518711 -0500	reset: moving to HEAD
d6fce3aae20ef984ec78e8c2a37b5b24a0fd2d8b 8518033beb6785837e3ea362ae8dbf9251c4cb72 rvanvuren <ryan@buyerkiosk.com> 1780518711 -0500	commit: fix(spec-050): T15 write-smoke — fix EvereeWorkerDTO to real worker shape
8518033beb6785837e3ea362ae8dbf9251c4cb72 8518033beb6785837e3ea362ae8dbf9251c4cb72 rvanvuren <ryan@buyerkiosk.com> 1780521937 -0500	reset: moving to HEAD
8518033beb6785837e3ea362ae8dbf9251c4cb72 31fb373f925b18939ab92185c56ee33fa048ba79 rvanvuren <ryan@buyerkiosk.com> 1780521937 -0500	commit: feat(spec-050): T15 follow-ups — listWorkers pagination + createWorker embedded endpoint
31fb373f925b18939ab92185c56ee33fa048ba79 31fb373f925b18939ab92185c56ee33fa048ba79 rvanvuren <ryan@buyerkiosk.com> 1780523250 -0500	reset: moving to HEAD
31fb373f925b18939ab92185c56ee33fa048ba79 694e38c65ee207cec55cd8d55419bd3fc135aeca rvanvuren <ryan@buyerkiosk.com> 1780523251 -0500	commit: feat(spec-050): F6 readiness redefinition — reachable = listWorkers 200
694e38c65ee207cec55cd8d55419bd3fc135aeca d25a3d5f787ba92c1f4c2f1e012d7edf4a7b0c2d rvanvuren <ryan@buyerkiosk.com> 1780608710 -0500	commit: feat(spec-050b): T3/T4/T6/T9 pay-run plumbing + codex round-2 hardening
d25a3d5f787ba92c1f4c2f1e012d7edf4a7b0c2d 384a4bd9431dd8c778777ded6ff4354e311c0eac rvanvuren <ryan@buyerkiosk.com> 1780610332 -0500	commit: feat(spec-050b): T10 PayRunCalculator — integer-cents gross engine
384a4bd9431dd8c778777ded6ff4354e311c0eac 3be20587221f68a75fa537e0b7e8908d63476f82 rvanvuren <ryan@buyerkiosk.com> 1780692012 -0500	commit: docs(spec-050b): T1 live Everee sandbox capture — real Payables contract corrections
3be20587221f68a75fa537e0b7e8908d63476f82 822a29e4a779476337331b1c727751790ed98b52 rvanvuren <ryan@buyerkiosk.com> 1780692680 -0500	commit: docs(spec-050b): T1 capture — codex review hardening (proven vs inferred)
822a29e4a779476337331b1c727751790ed98b52 84d3bf1fb67d1795b2a270bc947e1a806571877b rvanvuren <ryan@buyerkiosk.com> 1780699372 -0500	commit: feat(spec-050b): T7 EvereeApiClient Payables methods (submit/recovery surface)
84d3bf1fb67d1795b2a270bc947e1a806571877b 85e45386a66857c6a2167f62cf23d2c68b36a97a rvanvuren <ryan@buyerkiosk.com> 1780702762 -0500	commit: feat(spec-050b): T11 PayRunService — lifecycle/submit/recovery state machine
85e45386a66857c6a2167f62cf23d2c68b36a97a 7114de77a22c62f30f31b05e1d4907813581236d rvanvuren <ryan@buyerkiosk.com> 1783790681 -0500	checkout: moving from 050-everee-payroll-foundations to master
7114de77a22c62f30f31b05e1d4907813581236d 968e047a2e6510a90a72caed42e87aef87d042d0 rvanvuren <ryan@buyerkiosk.com> 1783790697 -0500	pull --ff-only origin master: Fast-forward
968e047a2e6510a90a72caed42e87aef87d042d0 968e047a2e6510a90a72caed42e87aef87d042d0 rvanvuren <ryan@buyerkiosk.com> 1783790697 -0500	checkout: moving from master to punch-system-audit-fixes
968e047a2e6510a90a72caed42e87aef87d042d0 59ab999025ed8e1bb3f51aeb288980e7641ee288 rvanvuren <ryan@buyerkiosk.com> 1783792796 -0500	commit: fix(punch-audit): Phase 0 — observability (WS-6) + write serialization (WS-1) + F-03 break-state hotfix
59ab999025ed8e1bb3f51aeb288980e7641ee288 d14dd944084255871bf54068ee187527897fd1dc rvanvuren <ryan@buyerkiosk.com> 1783793166 -0500	commit: chore(punch-audit): targeted single-store runner for Phase 0 migration
d14dd944084255871bf54068ee187527897fd1dc dd5642f4d6e756ed3263bcc432fa821267829720 rvanvuren <ryan@buyerkiosk.com> 1783794096 -0500	commit: ui(time-clock): unify status card, label timers, single action row
dd5642f4d6e756ed3263bcc432fa821267829720 a8ea0c78bf03a02b4d438a8486010b310dd87c41 rvanvuren <ryan@buyerkiosk.com> 1783795199 -0500	commit: ui(time-clock): de-yellow the status view, upgrade Switch Employee button
a8ea0c78bf03a02b4d438a8486010b310dd87c41 fcc50bce9f0355d8bd84a02e1c8e2cac9d97832f rvanvuren <ryan@buyerkiosk.com> 1783809324 -0500	commit: fix(punch-audit): address PR #76 review — dedupe survivor rule, deny-under-lock, ambiguity classification, in-lock timestamps
fcc50bce9f0355d8bd84a02e1c8e2cac9d97832f b547aec51c514a2c11d17c3ec29b267b4cfe9828 rvanvuren <ryan@buyerkiosk.com> 1783810991 -0500	commit: fix(punch-audit): PR #76 round 2 — convergent archive-first dedupe, atomic approval, modal-sm fit
b547aec51c514a2c11d17c3ec29b267b4cfe9828 4a5c4f5ce7e4d90275573c734cff6a50c87c2537 rvanvuren <ryan@buyerkiosk.com> 1783812380 -0500	commit: fix(punch-audit): PR #76 round 3 — image-snapshot dedupe, post-commit cache invalidation, no duplicate log rows
4a5c4f5ce7e4d90275573c734cff6a50c87c2537 f61245203f7c24b16bf4d599ad1f0211c667e86c rvanvuren <ryan@buyerkiosk.com> 1783813163 -0500	commit: fix(punch-audit): PR #76 round 4 — atomic archive+delete, generation-keyed cache, Redis out of the lock
f61245203f7c24b16bf4d599ad1f0211c667e86c 89b93b3265c4f30825a9a9a44b5b320f39cae55e rvanvuren <ryan@buyerkiosk.com> 1783814313 -0500	commit: fix(punch-audit): PR #76 round 5 — tx-local delete set, runner require, refresh gen pin, Redis fully out of the lock
89b93b3265c4f30825a9a9a44b5b320f39cae55e 968e047a2e6510a90a72caed42e87aef87d042d0 rvanvuren <ryan@buyerkiosk.com> 1783814510 -0500	checkout: moving from punch-system-audit-fixes to master
968e047a2e6510a90a72caed42e87aef87d042d0 3718cadfb25821b44f4dd54a81787a7fc9080355 rvanvuren <ryan@buyerkiosk.com> 1783814511 -0500	pull --ff-only origin master: Fast-forward
3718cadfb25821b44f4dd54a81787a7fc9080355 3718cadfb25821b44f4dd54a81787a7fc9080355 rvanvuren <ryan@buyerkiosk.com> 1783814511 -0500	checkout: moving from master to punch-audit-phase1
3718cadfb25821b44f4dd54a81787a7fc9080355 835396b2adb00daabeca6c6c8a879fa952f96891 rvanvuren <ryan@buyerkiosk.com> 1783816247 -0500	commit: fix(punch-audit): Phase 1 WS-2 — latest-punch-wins state derivation (F-06/F-07/F-08)
835396b2adb00daabeca6c6c8a879fa952f96891 8ce7fcefc3b98b29140f24777321f6e4c888814b rvanvuren <ryan@buyerkiosk.com> 1783816706 -0500	commit: feat(punch-audit): Phase 1 WS-3 — mobile break capture (F-02/F-19) + kiosk lock narrowing
8ce7fcefc3b98b29140f24777321f6e4c888814b 4e388a46b0c11c5612f8f95523de3efd9bff03e9 rvanvuren <ryan@buyerkiosk.com> 1783867564 -0500	commit: fix(punch-audit): PR #77 review — policy-gated break typing, punch-seq event ordering, tuple session boundary
4e388a46b0c11c5612f8f95523de3efd9bff03e9 75e46d58abe89d479715ac73fd9f30a92efa9698 rvanvuren <ryan@buyerkiosk.com> 1783873359 -0500	commit: fix(punch-audit): PR #77 round 2 — enforce punchSeq high-water mark centrally in WorkbookAblySync
75e46d58abe89d479715ac73fd9f30a92efa9698 3718cadfb25821b44f4dd54a81787a7fc9080355 rvanvuren <ryan@buyerkiosk.com> 1783875132 -0500	checkout: moving from punch-audit-phase1 to master
3718cadfb25821b44f4dd54a81787a7fc9080355 295fb9a330013d286b5db6a62a7ae0db9c23368e rvanvuren <ryan@buyerkiosk.com> 1783875133 -0500	pull --ff-only origin master: Fast-forward
295fb9a330013d286b5db6a62a7ae0db9c23368e 295fb9a330013d286b5db6a62a7ae0db9c23368e rvanvuren <ryan@buyerkiosk.com> 1783875133 -0500	checkout: moving from master to punch-audit-phase2
295fb9a330013d286b5db6a62a7ae0db9c23368e 295fb9a330013d286b5db6a62a7ae0db9c23368e rvanvuren <ryan@buyerkiosk.com> 1783875592 -0500	reset: moving to HEAD
295fb9a330013d286b5db6a62a7ae0db9c23368e 3e4bfb6ad5e159a5304e425c45f2d400b5db47db rvanvuren <ryan@buyerkiosk.com> 1783875628 -0500	commit: feat(punch-audit): Phase 2 WS-4 — mobile Ably broadcasts, board break state + unscheduled workers, throttle exemption
3e4bfb6ad5e159a5304e425c45f2d400b5db47db 83751f26a68a69dd3d97b60dff8626c2fd8cdfb1 rvanvuren <ryan@buyerkiosk.com> 1783876293 -0500	commit: feat(punch-audit): Phase 2 WS-5 — hours invariant, UTC OT window, store-week mobile hours, sum-in-seconds
83751f26a68a69dd3d97b60dff8626c2fd8cdfb1 e89e64de27e5efa270a404a0f59ab3be8b74c079 rvanvuren <ryan@buyerkiosk.com> 1783876811 -0500	commit: fix(punch-audit): getStoreWeekStart queries kiosk_buykiosk.stores fully qualified
e89e64de27e5efa270a404a0f59ab3be8b74c079 7601079e2ae47e3e890ce8220582b5d50f9cc904 rvanvuren <ryan@buyerkiosk.com> 1783959950 -0500	commit: fix(punch-audit): PR #78 round 1 — policy-classified breaks in OT engine, premium clip, period clipping, board lookback
7601079e2ae47e3e890ce8220582b5d50f9cc904 731550d87c2fa442baa1160ead4cc131c42060e5 rvanvuren <ryan@buyerkiosk.com> 1783965861 -0500	commit: fix(punch-audit): PR #78 round 2 — evaluator authority, always-enforced invariant, export guard, week cutoff instants
731550d87c2fa442baa1160ead4cc131c42060e5 089e2ecd0a3e8a42b2627b2eedee665e6f398ac8 rvanvuren <ryan@buyerkiosk.com> 1783977469 -0500	commit: fix(punch-audit): PR #78 round 3 — reconcile-at-ingest exports, pay recompute, range-overlap break deduction, sibling sweep
089e2ecd0a3e8a42b2627b2eedee665e6f398ac8 089e2ecd0a3e8a42b2627b2eedee665e6f398ac8 rvanvuren <ryan@buyerkiosk.com> 1783981978 -0500	reset: moving to HEAD
089e2ecd0a3e8a42b2627b2eedee665e6f398ac8 daca013e24470924119c04232188bc5f9c8d0a3f rvanvuren <ryan@buyerkiosk.com> 1783982120 -0500	commit: fix(punch-audit): PR #78 round 4 — punchId ordering, autoDeduct to payroll, rounded-component totals, audit parity, period bounds
daca013e24470924119c04232188bc5f9c8d0a3f 8d126e4f4072f3fe87f0b45afe0c66cceebeb5da rvanvuren <ryan@buyerkiosk.com> 1784042465 -0500	commit: fix(punch-audit): PR #78 round 5 — autoDeduct in OT engine, instant-vs-label week semantics, CSV-quantized totals, export snapshot audit
8d126e4f4072f3fe87f0b45afe0c66cceebeb5da b36c039bc0339188e1692b625836a6c8a423b5a2 rvanvuren <ryan@buyerkiosk.com> 1784135057 -0500	commit: fix(punch-audit): PR #78 round 6 + adversarial pre-review — WorkWeek unification, exported-terminal locks, store-wall punch entry
b36c039bc0339188e1692b625836a6c8a423b5a2 b36c039bc0339188e1692b625836a6c8a423b5a2 rvanvuren <ryan@buyerkiosk.com> 1784136142 -0500	reset: moving to HEAD
b36c039bc0339188e1692b625836a6c8a423b5a2 602a7e9fb8759738b34155a4b1f1d2d1115966c4 rvanvuren <ryan@buyerkiosk.com> 1784144545 -0500	commit: feat(punch-audit): Phase 3 — WS-7 geofence UX + WS-8 hardening, adversarially pre-reviewed
602a7e9fb8759738b34155a4b1f1d2d1115966c4 8c6bb06b11a13442cf2c310b308dced18ed782c8 rvanvuren <ryan@buyerkiosk.com> 1784210546 -0500	commit: fix(punch-audit): PR #78 round 7 — canonical lock names, structural lock-then-flush
8c6bb06b11a13442cf2c310b308dced18ed782c8 c473478891697c7a3e0a0d6237c54e37291705cd rvanvuren <ryan@buyerkiosk.com> 1784213732 -0500	commit: fix(punch-audit): PR #78 round 8 — pre-lock policy I/O, canonical cache-gen key, lock-flush tests
c473478891697c7a3e0a0d6237c54e37291705cd c473478891697c7a3e0a0d6237c54e37291705cd rvanvuren <ryan@buyerkiosk.com> 1784217540 -0500	reset: moving to HEAD
c473478891697c7a3e0a0d6237c54e37291705cd c473478891697c7a3e0a0d6237c54e37291705cd rvanvuren <ryan@buyerkiosk.com> 1784217655 -0500	reset: moving to HEAD
c473478891697c7a3e0a0d6237c54e37291705cd 638ceabf6cc6e02bc202446ea465c7373d4fcd01 rvanvuren <ryan@buyerkiosk.com> 1784219203 -0500	commit: fix(punch-audit): PR #78 round 9 — queue-before-audit, pre-lock preflight, resolved-store keys, telescoping deduct rounding
638ceabf6cc6e02bc202446ea465c7373d4fcd01 295fb9a330013d286b5db6a62a7ae0db9c23368e rvanvuren <ryan@buyerkiosk.com> 1784221520 -0500	checkout: moving from punch-audit-phase2 to master
295fb9a330013d286b5db6a62a7ae0db9c23368e 87b3442b1c366f4518ff69f949347362d83bf92c rvanvuren <ryan@buyerkiosk.com> 1784221521 -0500	pull origin master: Fast-forward
87b3442b1c366f4518ff69f949347362d83bf92c 8f6f4c5bd7db96f8b345d2e89841b474fe96d4ee rvanvuren <ryan@buyerkiosk.com> 1784236593 -0500	commit: feat(scheduling): shift offers w/ manager approval, mobile week-start, swap flow fixes
8f6f4c5bd7db96f8b345d2e89841b474fe96d4ee 4d41a07135d181ef07afdcb2c85e1d463c182262 rvanvuren <ryan@buyerkiosk.com> 1784307114 -0500	commit: feat(staff-chat): role-aware message delete authorization + member roleLevel
4d41a07135d181ef07afdcb2c85e1d463c182262 a4b0349be31e10e9f7366442ecb5d56e1f8c5329 rvanvuren <ryan@buyerkiosk.com> 1784320101 -0500	commit: feat(scheduling): swap eligibility — position qualification + availability filtering
a4b0349be31e10e9f7366442ecb5d56e1f8c5329 cc3aa4d9b488f8defb670ae3b81316d6a92d9ae3 rvanvuren <ryan@buyerkiosk.com> 1784322026 -0500	commit: fix(scheduling): store-timezone canonical calendar — reverse Syncfusion display shift on save
cc3aa4d9b488f8defb670ae3b81316d6a92d9ae3 ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 rvanvuren <ryan@buyerkiosk.com> 1784322033 -0500	commit: fix(scheduling): cell tooltip resolved hovered day in wrong basis for viewers east of the store
ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 rvanvuren <ryan@buyerkiosk.com> 1784663726 -0500	checkout: moving from master to 051-scheduling-onboarding
ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 3f241f9825031d6c0926850caa937f90c57f09db rvanvuren <ryan@buyerkiosk.com> 1784663738 -0500	commit: feat(onboarding): spec 051 T0 — fixture-store reset tooling, vendored driver.js, article deploy artifact
3f241f9825031d6c0926850caa937f90c57f09db 3f241f9825031d6c0926850caa937f90c57f09db rvanvuren <ryan@buyerkiosk.com> 1784665164 -0500	reset: moving to HEAD
3f241f9825031d6c0926850caa937f90c57f09db 6becdc7e25532f886b5a3fe023561b4b905f9afd rvanvuren <ryan@buyerkiosk.com> 1784665988 -0500	commit: feat(onboarding): spec 051 T1A+T1B — entitlement foundation (dark) + full 051 schema
6becdc7e25532f886b5a3fe023561b4b905f9afd a444d658c93f4aaf35373266c18887fae440ad73 rvanvuren <ryan@buyerkiosk.com> 1784668558 -0500	commit: fix(onboarding): spec 051 T1 review fixes — exact flags-off invariant + app-aware registration
a444d658c93f4aaf35373266c18887fae440ad73 a444d658c93f4aaf35373266c18887fae440ad73 rvanvuren <ryan@buyerkiosk.com> 1784672568 -0500	reset: moving to HEAD
a444d658c93f4aaf35373266c18887fae440ad73 c0beb6ee7d0fb849f3fba106dc3e64174400cc93 rvanvuren <ryan@buyerkiosk.com> 1784685655 -0500	commit: feat(onboarding): spec 051 T2 — framework, 10 detectors, hub API + UI, producers, batteries
c0beb6ee7d0fb849f3fba106dc3e64174400cc93 c0beb6ee7d0fb849f3fba106dc3e64174400cc93 rvanvuren <ryan@buyerkiosk.com> 1784688501 -0500	reset: moving to HEAD
c0beb6ee7d0fb849f3fba106dc3e64174400cc93 c0beb6ee7d0fb849f3fba106dc3e64174400cc93 rvanvuren <ryan@buyerkiosk.com> 1784689514 -0500	reset: moving to HEAD
c0beb6ee7d0fb849f3fba106dc3e64174400cc93 3c8776261adad2732b1f6013c2ad60b3c648fb53 rvanvuren <ryan@buyerkiosk.com> 1784690276 -0500	commit: fix(onboarding): spec 051 T2 review fixes — dark-deploy gate, active-assignment authz, TZ basis, contract completeness
3c8776261adad2732b1f6013c2ad60b3c648fb53 3c8776261adad2732b1f6013c2ad60b3c648fb53 rvanvuren <ryan@buyerkiosk.com> 1784733525 -0500	reset: moving to HEAD
3c8776261adad2732b1f6013c2ad60b3c648fb53 3c8776261adad2732b1f6013c2ad60b3c648fb53 rvanvuren <ryan@buyerkiosk.com> 1784734426 -0500	reset: moving to HEAD
3c8776261adad2732b1f6013c2ad60b3c648fb53 3c8776261adad2732b1f6013c2ad60b3c648fb53 rvanvuren <ryan@buyerkiosk.com> 1784736506 -0500	reset: moving to HEAD
3c8776261adad2732b1f6013c2ad60b3c648fb53 5f774ac4e513ce20b04f031f8fa63db69232b267 rvanvuren <ryan@buyerkiosk.com> 1784738233 -0500	commit: feat(onboarding): spec 051 T3-T6 — invite delivery + activation, mobile producers, walkthrough, analytics + privacy
5f774ac4e513ce20b04f031f8fa63db69232b267 b3b2f8ddb22da6cdf3cfeaf941e2bb02d5c234ab rvanvuren <ryan@buyerkiosk.com> 1784741754 -0500	commit: feat(onboarding): spec 051 T7 — integration gate: cross-phase chains, all-flags matrix, criterion audit
b3b2f8ddb22da6cdf3cfeaf941e2bb02d5c234ab b3f1a41ddb90121132c29584308a1cbc6e2a46cd rvanvuren <ryan@buyerkiosk.com> 1784747980 -0500	commit: fix(onboarding): spec 051 T7 review fixes — at-most-once delivery, sealed tokens, transactional redemption, walkthrough wiring
b3f1a41ddb90121132c29584308a1cbc6e2a46cd 393d247067d5113a54c12c16d496852f9246fafc rvanvuren <ryan@buyerkiosk.com> 1784752599 -0500	commit: chore(deps): update phpmailer 5.2.10 -> 6.12.0; fix Slim Flash patch idempotency fatal
393d247067d5113a54c12c16d496852f9246fafc 66e73f1111ba128aed0cde8f2eaaf0dff312c7b8 rvanvuren <ryan@buyerkiosk.com> 1784754792 -0500	commit: feat(onboarding): spec 051 T8 — launch readiness: gates green, live smoke, three E2E-caught fixes
66e73f1111ba128aed0cde8f2eaaf0dff312c7b8 4ba7c1f33520331dd274154547a1c8413f8aba3e rvanvuren <ryan@buyerkiosk.com> 1784758039 -0500	commit: fix(onboarding): spec 051 final review pass — token-cache Predis, SendGrid nuances, honest telemetry, green PHPStan
4ba7c1f33520331dd274154547a1c8413f8aba3e c0d984355f83eba35d43499a1a460e00a0b0796b rvanvuren <ryan@buyerkiosk.com> 1784758431 -0500	commit: docs(onboarding): spec 051 T8.10 business acceptance recorded — accepted in full 2026-07-22
c0d984355f83eba35d43499a1a460e00a0b0796b eee172493869c7e81b79553af1f9f401934e39d3 rvanvuren <ryan@buyerkiosk.com> 1784827361 -0500	commit: fix(onboarding): guests hitting hub/resolver routes get the login page, not a bare 403
eee172493869c7e81b79553af1f9f401934e39d3 7e4af1418471d4c52228ed70129189121c17d767 rvanvuren <ryan@buyerkiosk.com> 1784829135 -0500	commit: feat(onboarding): M6-03 amendment — inline settings editing in the hub + humanized evidence
7e4af1418471d4c52228ed70129189121c17d767 7e4af1418471d4c52228ed70129189121c17d767 rvanvuren <ryan@buyerkiosk.com> 1785253591 -0500	reset: moving to HEAD
7e4af1418471d4c52228ed70129189121c17d767 7e4af1418471d4c52228ed70129189121c17d767 rvanvuren <ryan@buyerkiosk.com> 1785253765 -0500	reset: moving to HEAD
7e4af1418471d4c52228ed70129189121c17d767 27fb07e2b0a758c3e1ef522f4a8aa7f8da31f887 rvanvuren <ryan@buyerkiosk.com> 1785256387 -0500	commit: feat(onboarding): inline-first hub — grouped hours, quick-add roster, help popovers, Confirm & continue
27fb07e2b0a758c3e1ef522f4a8aa7f8da31f887 27fb07e2b0a758c3e1ef522f4a8aa7f8da31f887 rvanvuren <ryan@buyerkiosk.com> 1785273365 -0500	reset: moving to HEAD
27fb07e2b0a758c3e1ef522f4a8aa7f8da31f887 63f0889f9fa3f7a57a38aef9e110bfe0e0350595 rvanvuren <ryan@buyerkiosk.com> 1785274353 -0500	commit: feat(onboarding): combined Build-your-team card — create-and-invite in one motion
63f0889f9fa3f7a57a38aef9e110bfe0e0350595 3aadbee0c1a43d64ec3809450cdbe2cdda5235c4 rvanvuren <ryan@buyerkiosk.com> 1785274684 -0500	commit: fix(onboarding): roster shows In Progress from the first member; Team card gains Continue button
3aadbee0c1a43d64ec3809450cdbe2cdda5235c4 3aadbee0c1a43d64ec3809450cdbe2cdda5235c4 rvanvuren <ryan@buyerkiosk.com> 1786381733 -0500	reset: moving to HEAD
3aadbee0c1a43d64ec3809450cdbe2cdda5235c4 1eef116234fbb9019b83806d83c8c0497c67cd4d rvanvuren <ryan@buyerkiosk.com> 1786382463 -0500	commit: feat(onboarding): inline availability editor + humanized member ladders
1eef116234fbb9019b83806d83c8c0497c67cd4d 4ed68fc2b747c8a252f14ab7ff24f7ee340de2b7 rvanvuren <ryan@buyerkiosk.com> 1786383448 -0500	commit: chore(fixtures): targeted cadence migration runner for ob01/ob02/ob03
4ed68fc2b747c8a252f14ab7ff24f7ee340de2b7 5cd1bd67be53b6cdbc1b5ccce7c419206c6004bb rvanvuren <ryan@buyerkiosk.com> 1786386714 -0500	commit: feat(onboarding): real App Store / Google Play badges on activation success
5cd1bd67be53b6cdbc1b5ccce7c419206c6004bb 77c0880635a9908789806657233375db5705f544 rvanvuren <ryan@buyerkiosk.com> 1786386971 -0500	commit: chore(fixtures): reset-activated-member dev script
77c0880635a9908789806657233375db5705f544 fa794f9b1046a51adf574914bbae6f8f040d2670 rvanvuren <ryan@buyerkiosk.com> 1787836958 -0500	commit: docs(runbooks): two pre-fleet findings from live invite/apps E2E
fa794f9b1046a51adf574914bbae6f8f040d2670 fa794f9b1046a51adf574914bbae6f8f040d2670 rvanvuren <ryan@buyerkiosk.com> 1787837337 -0500	reset: moving to HEAD
fa794f9b1046a51adf574914bbae6f8f040d2670 fa794f9b1046a51adf574914bbae6f8f040d2670 rvanvuren <ryan@buyerkiosk.com> 1787837654 -0500	reset: moving to HEAD
fa794f9b1046a51adf574914bbae6f8f040d2670 fa794f9b1046a51adf574914bbae6f8f040d2670 rvanvuren <ryan@buyerkiosk.com> 1787837838 -0500	reset: moving to HEAD
fa794f9b1046a51adf574914bbae6f8f040d2670 34a1bafa2f5a2afad623efe62458402ffaf8401a rvanvuren <ryan@buyerkiosk.com> 1787837916 -0500	commit: fix(team-members): QA-1 — sensitive-write strip no longer mints Buyers, and discloses itself
34a1bafa2f5a2afad623efe62458402ffaf8401a 32b7223b48f47de3cdc9221cf489eff7b250b5dd rvanvuren <ryan@buyerkiosk.com> 1787838496 -0500	commit: feat(onboarding): positions wrap-up — persistent chips, fresh evidence, QA-1 reduced form, working cache-buster
32b7223b48f47de3cdc9221cf489eff7b250b5dd eb8c76782338c2db4661e6fea0f4e08edee6eb32 rvanvuren <ryan@buyerkiosk.com> 1788021219 -0500	commit: chore: checkpoint in-progress work
eb8c76782338c2db4661e6fea0f4e08edee6eb32 ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 rvanvuren <ryan@buyerkiosk.com> 1788021306 -0500	checkout: moving from 051-scheduling-onboarding to master
ce5f6055d4fff0e0b0108ed0a1e43d25af1d1ed7 2dc8555e34a2f6f3cf0aaa1bdd22f9b9b5be868c rvanvuren <ryan@buyerkiosk.com> 1788021306 -0500	merge origin/master: Fast-forward
2dc8555e34a2f6f3cf0aaa1bdd22f9b9b5be868c 2dc8555e34a2f6f3cf0aaa1bdd22f9b9b5be868c rvanvuren <ryan@buyerkiosk.com> 1788021306 -0500	checkout: moving from master to fix/scheduling-integrity
2dc8555e34a2f6f3cf0aaa1bdd22f9b9b5be868c 38378946d7e0ac5c1cc185ecf51622c600d5b1c0 rvanvuren <ryan@buyerkiosk.com> 1788024434 -0500	commit: fix: harden scheduling integrity
38378946d7e0ac5c1cc185ecf51622c600d5b1c0 5d35ffbdbc56dcd7e9206aad9489cdb411d64e2a rvanvuren <ryan@buyerkiosk.com> 1788027891 -0500	commit: fix: address scheduling review regressions
5d35ffbdbc56dcd7e9206aad9489cdb411d64e2a e73eb340fa163fa8c0c863da6c81d563963cab92 rvanvuren <ryan@buyerkiosk.com> 1788035064 -0500	commit: fix: link manager overrides to draft shifts
e73eb340fa163fa8c0c863da6c81d563963cab92 a37c32e7bb5add575d9808e779c8f693f8359404 rvanvuren <ryan@buyerkiosk.com> 1788035068 -0500	commit: test: exercise real scheduling solver bridge
a37c32e7bb5add575d9808e779c8f693f8359404 73c5b221c4a175492b13cc07c764491e4efc3b0b rvanvuren <ryan@buyerkiosk.com> 1788378730 -0500	commit: [verified] fix: harden scheduling integrity
73c5b221c4a175492b13cc07c764491e4efc3b0b c264257f7839d5d3c417879ef3e0523453e9f1eb rvanvuren <ryan@buyerkiosk.com> 1788379396 -0500	commit: docs: record verified scheduling packaging
c264257f7839d5d3c417879ef3e0523453e9f1eb ae6e696f9c54fa1e37bc8bb312a83e368ad0b0e0 rvanvuren <ryan@buyerkiosk.com> 1788544541 -0500	commit (merge): merge: reconcile scheduling integrity with master
ae6e696f9c54fa1e37bc8bb312a83e368ad0b0e0 1d8d0f5cb5c1b52df47f4c3cd8a610b5c0704242 rvanvuren <ryan@buyerkiosk.com> 1788552821 -0500	checkout: moving from fix/scheduling-integrity to 1d8d0f5cb
1d8d0f5cb5c1b52df47f4c3cd8a610b5c0704242 4ca047d1d466d1d946446b9958cd598a75d28a65 rvanvuren <ryan@buyerkiosk.com> 1788553050 -0500	checkout: moving from 1d8d0f5cb5c1b52df47f4c3cd8a610b5c0704242 to 4ca047d1d
4ca047d1d466d1d946446b9958cd598a75d28a65 cf99f36d62a977e1c77317cf6c62bd32ba3472a8 rvanvuren <ryan@buyerkiosk.com> 1788553676 -0500	checkout: moving from 4ca047d1d466d1d946446b9958cd598a75d28a65 to cf99f36d6
cf99f36d62a977e1c77317cf6c62bd32ba3472a8 e8160b8f90934f2007564cc48f082d14d31a8101 rvanvuren <ryan@buyerkiosk.com> 1788555718 -0500	checkout: moving from cf99f36d62a977e1c77317cf6c62bd32ba3472a8 to e8160b8f9
e8160b8f90934f2007564cc48f082d14d31a8101 eb8c76782338c2db4661e6fea0f4e08edee6eb32 rvanvuren <ryan@buyerkiosk.com> 1788563992 -0500	checkout: moving from e8160b8f90934f2007564cc48f082d14d31a8101 to 051-scheduling-onboarding
