================================================================================ DAFTAR LENGKAP COMMIT KELUARGAMART — CATATAN RILIS 1.5.0 ================================================================================ Tanggal penyusunan: 2026-11-01 Cakupan: seluruh commit yang dapat dijangkau dari HEAD saat penyusunan. Urutan: git log HEAD, terbaru terlebih dahulu; merge tetap dicatat. Kolom: hash lengkap | tanggal author (YYYY-MM-DD) | versi/atribusi | subjek asli DASAR ATRIBUSI VERSI - Tidak ada tag Git saat penyusunan. Versi mengikuti riwayat rilis monorepo, bukan pengelompokan tanggal atau asumsi versi repositori asal. - 1.0.0: 19 commit monorepo, dari inisialisasi sampai eb49cd7 (inklusif). - 1.1.0: 22 commit monorepo sesudah eb49cd7 sampai bump 86b4173 (inklusif). - 1.2.0: 5 commit monorepo sesudah 86b4173 sampai a192112 (inklusif). - 1.3.0: 18 commit monorepo sesudah a192112 sampai d0392e3 (inklusif). - 1.4.0: 4 commit monorepo sesudah d0392e3 sampai ce2ff43 (inklusif). - 1.4.1: 3 commit monorepo sesudah ce2ff43 sampai 3bc20a6 (inklusif). - 1.5.0: 80 commit monorepo sesudah 3bc20a6 sampai HEAD saat penyusunan. - Historis impor / versi tidak ditetapkan: 1077 commit dari riwayat repositori asal di luar first-parent monorepo. Versi SemVer historis tidak ditebak. - Setiap commit tercantum tepat satu kali. Dokumentasi mencatat riwayat source, bukan bukti deploy atau klaim semua fitur lama masih aktif. STATUS PASANGAN CI YANG DIBATALKAN - 0f887c8 menambahkan dual-tag alias legacy GHCR, kemudian dibatalkan d59dd5b. Keduanya bagian riwayat 1.1.0; dual-tag tersebut bukan fitur aktif rilis. RINGKASAN JUMLAH 1.5.0: 80 | 1.4.1: 3 | 1.4.0: 4 | 1.3.0: 18 | 1.2.0: 5 | 1.1.0: 22 | 1.0.0: 19 | Historis impor: 1077 | Total: 1228 ================================================================================ HASH LENGKAP | TANGGAL AUTHOR | VERSI / ATRIBUSI | SUBJEK ASLI ================================================================================ 0999bfe715a4b234d71239a865293a4f175661bc | 2026-11-02 | 1.5.0 | chore: commit the parallel session's working-tree changes (galon & gateway) 5aa6bf7bfff206e976c357f8bf2f16c5e3e3993e | 2026-11-02 | 1.5.0 | fix(erp): supplier-debt headers sort via the server (option b) e352236f82833a570e0929da104094aad61f407f | 2026-11-02 | 1.5.0 | docs(release): record the supplier-debt drill-down and purchase-return fix in 1.5.0 c017b7da324af8999e2771ad978a88dccea2503d | 2026-11-02 | 1.5.0 | fix(db): include the goods-receipt rejected columns in the generated model 21c930e7ef8966902ff6b89711268dc7e91eb55c | 2026-11-01 | 1.5.0 | docs(release): record the galon auto-journal feature in 1.5.0 23c31191ee9fe720202b96036067f9d927779011 | 2026-11-01 | 1.5.0 | style(galon): gofmt alignment in model.go d414de1cea7c8838b17ccecbe5fdfc0656a5ec57 | 2026-11-01 | 1.5.0 | feat(galon): post an automatic journal per completed transaction 4cc2127091d99b3ff8d1c90f71aaa73ada3c7d4a | 2026-11-01 | 1.5.0 | docs(release): record the galon report visibility fix in 1.5.0 9bf362e30b9b90eb15d2acbafb1bf22f8e27b2ee | 2026-11-01 | 1.5.0 | fix(erp): galon transactions were invisible in the Sales Report 63363f32e0874c8abbece57a4fd134a053329a4a | 2026-11-01 | 1.5.0 | fix(erp): register the seven navigation icons the sidebar was missing 16fd096021470da7822426868aa827e5b93e4e50 | 2026-11-01 | 1.5.0 | docs(release): record the DO completion fix in 1.5.0 31035d47a62d3a6627b4dfdaca365fb9ffcebfa4 | 2026-11-01 | 1.5.0 | fix(distribution): completing a DO no longer panics on the POD write 39a1485c3edd020fcf07789952e1da78a2dfb7cd | 2026-11-01 | 1.5.0 | fix(pos): isolate pickup receipt print to iframe and fix print media clipping 40f46ae09ed8a4ae3b083b63f5ef632c5df961e9 | 2026-11-01 | 1.5.0 | docs(release): record the Bronze starting-tier correction in 1.5.0 97492d1474bf2ed5d67df0ed8ce934791aabe7ca | 2026-11-01 | 1.5.0 | fix(membership): buyers start at Bronze — 2%, not the 5/10/15/20 the UI claimed d37a0435bf5bf8c5c9bf2f2589c4f23ead7014c4 | 2026-11-01 | 1.5.0 | docs(release): record the opname difference/freeze fix in 1.5.0 735fb6b2e0e17be424e76fd49cb17be284287a8b | 2026-11-01 | 1.5.0 | fix(inventory): opname differences follow the frozen snapshot 0c765a56ec42debc2f24c8669f65c816e0a80b2e | 2026-11-01 | 1.5.0 | docs(release): record the duplicate-plus fix in 1.5.0 397af9cbba1de06bc29e0008f3d2b711dc8f0d3a | 2026-11-01 | 1.5.0 | fix(erp): one plus, not two, on "Input Kunjungan Mandiri" 16e2a897bc6db7a3c51f5be8c9fa9b1e97f0c4a3 | 2026-11-01 | 1.5.0 | docs(release): record the table readability fix in 1.5.0 d9257161e36c0215eef8111ed691c966e101b978 | 2026-11-01 | 1.5.0 | style(erp): give data tables a header band and column rules 5ddc1d57031e65c4153cc1c22dbd44833f617e5f | 2026-11-01 | 1.5.0 | docs(release): record the product sort fix in 1.5.0 f5fb6f25fc9f8ae2d58b1c358396e6fbcf5663bc | 2026-11-01 | 1.5.0 | fix(catalog): make the product table's ascending/descending actually sort 729e3dcb82d7cf276eb1ac2139aee7b74e13d3e5 | 2026-11-01 | 1.5.0 | docs(release): record the stuck-payment fix in 1.5.0 72694309d29f76144e53118fc11d77c8bb62bc0d | 2026-11-01 | 1.5.0 | fix(sales): no payment method is not an unpaid transfer bb7269ff0b9be3923bf3fea0bc3077bee0ec8b14 | 2026-11-01 | 1.5.0 | fix(pos): implement printable store pickup handover receipt with print stylesheet 22bd0fa17e3c9c2c989f0c2a787c0164f537e76c | 2026-11-01 | 1.5.0 | docs: the order-to-cash flow, written for operators ce657e15a2d344bffe0815871203e508ba00151b | 2026-11-01 | 1.5.0 | fix(erp): the cashflow widget labels its months instead of assuming Jan…Dec 3cec32714cfb95f1f4a4fcbb738528eeda50b607 | 2026-11-01 | 1.5.0 | feat(erp): add direct 'Buat Order' button to Sales Orders page header 2ea3b154530e3d48955a1ac2a1c4a03804989039 | 2026-11-01 | 1.5.0 | fix(sales): hand over a pickup that was already approved 58276de533af24af2f23eae722c18a7040eea404 | 2026-11-01 | 1.5.0 | docs(release): record the B2B register/notification fixes in 1.5.0 b06ac1dfec0dd83947450fa3b68bf4482ce3738d | 2026-11-01 | 1.5.0 | fix(b2b): the register button now says why it refused; repair the notification feed 4afd2352ee48a89b8a01474cfc3af011e35cc822 | 2026-11-01 | 1.5.0 | fix(sales): add payment method selection and prevent ERP orders from getting stuck in awaiting payment 37a589f8b8fe8131fcdf9ce1624b8b775f7c8fe5 | 2026-11-01 | 1.5.0 | docs(release): record the pickup payment-method fix in 1.5.0 6b1c9bfec8aafacab137ebd0bdfc4f02ff4db5c1 | 2026-11-01 | 1.5.0 | fix(pos): say which payment method a pickup order uses 045119cfe27f3192d5647936a9094acf16710d78 | 2026-11-01 | 1.5.0 | docs(release): record the approval-permission fix and sync 1.5.0 6349751a5c181fa313fc351d5aada599f360012a | 2026-11-01 | 1.5.0 | fix(rbac): the people the approval screen names can finally approve bf4553a3e51fe412688c6ea908e1ddb0e8a9126d | 2026-11-01 | 1.5.0 | fix(membership): revert policy to start buyers from Bronze while preserving non-member safety fallback bd0fdd0a28aa41466b5966ca1a6cb076e29e6296 | 2026-11-01 | 1.5.0 | fix(erp): define missing hasDriver and hasDispatches in DO progress stepper a5d26cee53e4cda6ce490d1c5aa227f15b989885 | 2026-11-01 | 1.5.0 | test(erp): pin the new notification filtering instead of the dead-link toast bd67b8d01b12e953242d8c66b7e95bb2c8310392 | 2026-11-01 | 1.5.0 | docs(release): sync the commit ledger with the final 1.5.0 HEAD 0cc86709271087f1b44e1b644fcd3559762d80b2 | 2026-11-01 | 1.5.0 | docs(release): membership policy change in 1.5.0 (regular accounts, 000144) ef60dc5ddafe6afe50a89dfba723788559a6faf9 | 2026-11-01 | 1.5.0 | chore(scripts): commit the sweep implementations the commands point at 756c79422a941b4d787c33f875723bcc3c559191 | 2026-11-01 | 1.5.0 | fix(migrations): revert buyer auto-enrollment to ensure all buyers start as regular accounts da12f345680806559cb3ba71804d8d743dd53257 | 2026-11-01 | 1.5.0 | docs(release): regenerate the commit ledger for 1.5.0 43290704591f0df08327078671f57bc13563bd86 | 2026-11-01 | 1.5.0 | docs(release): record the ERP/B2B notification read-state fix in 1.5.0 1ad5652391456152cd151acbe38995cb91e2de7d | 2026-11-01 | 1.5.0 | docs(release): bring the 1.5.0 note up to date with the last four fixes 6fed8d13e50cb99a1128b11cb09b8ae7df565d86 | 2026-11-01 | 1.5.0 | fix(notifications): persist notification read-state across reloads in ERP and B2B 540be14ed074cc8ed4d55c71d7f24efa77a86f4e | 2026-11-01 | 1.5.0 | fix(sales): an unknown voucher is a validation answer, not a 404 797b04336956858192cbbad89ee2e20b01936b88 | 2026-11-01 | 1.5.0 | chore: wire the documented sweep scripts and their playwright dependency a749b5cc854e22000b78cf073994c5063234c69b | 2026-11-01 | 1.5.0 | chore(erp): drop the transfer form's dead product list fdfbd5374500aef03c2046191279c07302c6f352 | 2026-11-01 | 1.5.0 | fix(b2b): stop the guest deep-link hydration mismatch; keep the cookie on http 13826a48f94ccad5b1ba2d5ef2fb1bd8188c1c6d | 2026-11-01 | 1.5.0 | fix(auth): unify business and individual registration to start as regular accounts without auto-membership enrollment a16330d41465097f75df6c22272de922863bf66c | 2026-11-01 | 1.5.0 | fix(b2b,erp): resolve b2b SSR html hydration mismatch and remove erp transfer 200 product limit 02893c72f83db103032931c2fa55e57a12ad4883 | 2026-11-01 | 1.5.0 | fix(migrations): prevent member_number collision in 000141 auto-enroll 7ce2f7d8c25c94cd1cdec08ac4009f9621177f85 | 2026-11-01 | 1.5.0 | docs(release): publish v1.5.0 changelog (markdown, in-app, plain text) fa9c8e9dc1f3fd3ef13c9fdb7f76d75b14f94b92 | 2026-11-01 | 1.5.0 | docs: a page without a route is not shipped; negative paths must be visible 7df125b1470365b8312d5edee518c8c88f2f716a | 2026-11-01 | 1.5.0 | feat(pos): ship the Ambil Toko screen (route, menu, service, handover) 3a71081a32c310a37b9880152ceebdba9cd054a3 | 2026-11-01 | 1.5.0 | fix(sales): honour the list's date/store scope; filter pickup in SQL 82c565afa3691932993e08d411dbdb845fbec5b6 | 2026-11-01 | 1.5.0 | docs: dashboard data-source registry (card → endpoint → SQL → drilldown) ba36507997a0cd5efcda4ec1a6b8b6b131f2e0dd | 2026-11-01 | 1.5.0 | fix(erp): drilldown rows show the SO number; tidy the member-discount note a4665290aa56136c9a921d52da24a9a47f06f027 | 2026-11-01 | 1.5.0 | chore(sales): drop the debug trace test committed with the delivered-order fix 8f40eff9a90a6d0f085e14fed3a5a5bf6fc50ad4 | 2026-11-01 | 1.5.0 | docs: gates for terminal-status hooks, money arithmetic, dashboard parity 1321ff4ab538e3c3d757def836f622913dfc6520 | 2026-11-01 | 1.5.0 | fix(erp): sales-order detail shows the membership discount; drop warehouse panel 0a14d89da82ae1fbbe39ed121b4005ebd902a9ea | 2026-11-01 | 1.5.0 | fix(dashboard): every card now comes from the table its detail reads 915f52502775529d29575346c84c753bc95799d9 | 2026-11-01 | 1.5.0 | fix(sales): cashier handover cannot skip a delivery order's courier chain 504da8248c98c1b3307e333c8aff5f6fc694e50a | 2026-11-01 | 1.5.0 | fix(sales,finance): a delivered order must stay delivered 57c0271bacb7acbf3be53c487fd45f1233e7818c | 2026-11-01 | 1.5.0 | fix(b2b): restore pickup/cash-order helpers the rebase left behind dfd1792ca3ba4d0730360acdf8c81354554ca8dc | 2026-11-01 | 1.5.0 | docs: merge AGENTS.md — keep both guideline sets from parallel sessions b278bb655cd2c9efbb6d19bdf9f6204ac4937140 | 2026-11-01 | 1.5.0 | fix(sales): complete the exclude_pickup sqlc regeneration 5a15425546822fe15ea868c730e2d489aa0cd8ce | 2026-11-01 | 1.5.0 | docs: fulfillment-mode and UI-orphan gates; contracts for new routes aacb4cb7f9328971bd15f53ae26e3b45172918e2 | 2026-11-01 | 1.5.0 | fix(pos,erp): persist notification read-state; POD capture; pickup filter 7d75a63aa812d727f901bc39c23cc65fd1d4bb8b | 2026-11-01 | 1.5.0 | fix(b2b): pickup-aware order page; delivery proof upload; typecheck 020f7404450a9527a9a1f6d7aa062e79c45f6c6c | 2026-11-01 | 1.5.0 | feat(distribution): proof-of-delivery photo; skip auto-DO for pickups 66724dbc1723e760d078f72302e029f0379f81d7 | 2026-11-01 | 1.5.0 | fix(cart): map every checkout failure the placer can return, never a 500 8a236288d6595581e3e74e8a23dbcedab92f87b3 | 2026-11-01 | 1.5.0 | fix(sales): human-accept gate, till handover, pickup filters, buyer proof c9972fa8633341087d74697be53d6add441987ef | 2026-10-31 | 1.5.0 | fix(b2b,distribution,erp): resolve b2b order fulfillment flow from checkout to receipt ec0d8aeebaf5c44fe5605b6fbb0c066572337c47 | 2026-10-31 | 1.5.0 | fix(b2b): remove mock silver tier fallback and reflect real membership data 55d70c02a1d5eb275324db197a0716796210981a | 2026-10-30 | 1.5.0 | feat(erp,system): group and filter user management by application module f49f938db96c4773652f8a195c7010b216244007 | 2026-10-30 | 1.5.0 | chore(release): publish v1.4.1 changelog across ERP POS and B2B 3bc20a67e411bcf7047f3844f2b18987ec7c0e5a | 2026-10-30 | 1.4.1 | docs: add master system reference, operational guidelines and live audit ledger 197f65192b9506be3840bfb17f19d588d43bf845 | 2026-10-30 | 1.4.1 | fix(pwa): resolve service worker navigation typeerror and add mobile-web-app-capable meta 4455cc6226a583669876513b2b95f42ba007ae2d | 2026-10-30 | 1.4.1 | fix(flow): sync DO fulfillment stepper, auto-settle B2B COD orders, and fix return 403 ce2ff430042532e91cfab0626e82ac01f7ee2f00 | 2026-10-29 | 1.4.0 | chore(release): publish v1.4.0 changelog across ERP POS and B2B d6907b7c05dbb920d848f6266fbd009a356ae2ab | 2026-10-29 | 1.4.0 | fix(b2b,erp,push): hide COD pay now button, separate warehouse fulfillment actions in ERP, and implement background push notifications 569d47527a42d31f827b22228bb09de3588c1f06 | 2026-10-29 | 1.4.0 | fix(inventory,sales): enforce destination warehouse transfer receiving and B2B return authorization 3efede27039012e84c9e33619a5a863a6a46bd48 | 2026-10-27 | 1.4.0 | fix(auth,infra): fail-open login rate limiter on redis outage and disable nginx port in redirect d0392e3c385bb084adaa41d8bb4e982de211c65c | 2026-10-27 | 1.3.0 | chore(release): publish v1.3.0 changelog across ERP POS and B2B d1fd076b57f6f809bd915c0747f4c6946edb5692 | 2026-10-26 | 1.3.0 | docs: add full word-for-word voiceover script and visual guide for video presentation 0d148d8b7126ac4725bb53186efd5ee662a1bdf3 | 2026-10-26 | 1.3.0 | docs: add comprehensive video presentation storyboard and flow guide 8ac3cbf872bb7860284932963cd7d829bd35083a | 2026-10-26 | 1.3.0 | fix(b2b): prevent Midtrans trigger for cash payment and add cash COD flow 02ba2d26f0a55a5239f8c70ed8b6571424458cf7 | 2026-10-26 | 1.3.0 | fix(b2b): resolve hydration mismatch and ensure auth token propagation on account orders b4e9fa12815c84bc9f4d03b91538ba5a1c7b457b | 2026-10-26 | 1.3.0 | fix(erp): standardize Packing Order UI with KDataTable, KStatCard, and DetailItem 13c556275c76c5f1fce333f0238dd165915a6fa0 | 2026-10-26 | 1.3.0 | fix(inventory): scope stock movement sequence per day to prevent unique constraint collisions 9dddca4678931581d892c667174cf21386a18e50 | 2026-10-26 | 1.3.0 | feat(erp): add store/outlet filter to Packing Order and Sales Order pages fe177d87130b57be9c6a26c25ddcfafa3cc25cf5 | 2026-10-26 | 1.3.0 | fix(distribution,b2b): default delivery order pagination and handle completed status in order tracking 4143ffea40bcb42e09dd8840b62bf2e6bb5e1480 | 2026-10-26 | 1.3.0 | fix(erp): import warehousesService from master api in PackingOrdersPage 17e9d15acacae83389301e471cb18c763e240999 | 2026-10-26 | 1.3.0 | feat: implement dedicated Packing Order in ERP and Returns in B2B E-commerce 9aaa2379ec51715e718d10d56b2c9f0580a2e145 | 2026-10-26 | 1.3.0 | fix(sales,finance,dashboard): accept gateway in pay methods and guard pnl report on dashboard f29859ab074e5542760ad1bb141bdcd7e1503b80 | 2026-10-26 | 1.3.0 | fix(numbering): restore full YYYYMMDD date in document numbers while retaining monthly sequence reset 19984419d79519207144ae63b20d1326f496155e | 2026-10-26 | 1.3.0 | feat: add auto-refresh on shipment and order status changes across B2B and ERP 2f7b9d3e2fd810a9d91d5f5f1fb71929a5d8cae7 | 2026-10-26 | 1.3.0 | feat(inventory,purchasing,finance): monthly sequence resets, robust transfer flow & approval fallback 1f12615b2ed97a879ac540b2d76792e438d04d8c | 2026-10-26 | 1.3.0 | feat(erp,backend): introduce Packing Order for B2B fulfillment and fix checkout gateway validation 95f28aea3f83e1010235251213adcebb9bf69f49 | 2026-10-26 | 1.3.0 | fix(inventory): scope stock queries and options to active warehouses with active stores 4c32cad0e11a0be996be499502d45b2f2865d74b | 2026-10-26 | 1.3.0 | fix(b2b): allow permissive stock checkout for b2b orders a1921127e3fd86d669314f399bbe10957dbb58c2 | 2026-10-26 | 1.2.0 | chore(release): publish v1.2.0 changelogs across ERP POS and B2B c9f9ef205cd9c313a11d5a97571868b60aba05e1 | 2026-10-26 | 1.2.0 | fix: enforce POS, inventory, and B2B transaction integrity 3bad1e88c3faabc522d310ba5c02014fc299d6db | 2026-10-25 | 1.2.0 | fix(pos): improve shift close breakdown, discrepancy prevention, and detail summary 771105d2411c22cfba9f9d8fd6ebabffbcef93f5 | 2026-10-24 | 1.2.0 | fix(support,notif): render ticket details in table/modal and trigger audio alerts for urgent tickets 7d67730557f8ee4d43966dd1ec94e4855c6e011d | 2026-10-24 | 1.2.0 | feat(pos,erp): display version string v1.1.0 on login pages 86b417306f5c1c1213fc9bf1bb6d8471fbd24294 | 2026-10-24 | 1.1.0 | chore: bump platform version to v1.1.0 across all applications and update changelogs 0b89b96e6a55d8ddc3b15a8fddcf3649da41e444 | 2026-10-24 | 1.1.0 | feat(erp): display customer order conversion rate in ao performance widget and modal b14229fb1d5ece63de59dce7ccccb89908ebe3de | 2026-10-24 | 1.1.0 | fix(reports,erp): improve customer order conversion rate calculation and formatting 8cc2798d4f337e5a1b4de734479f790ec98f092b | 2026-10-24 | 1.1.0 | fix(pos): show access denied error notification when logging in with non-pos account 4332fe4e8bfbef56309975d59d35f29e7db7e4d7 | 2026-10-24 | 1.1.0 | feat(erp): change filter on receivables and payments to Customer / Toko a0b4fd361d4e2a8c50eda12fca00adbb6638b82f | 2026-10-23 | 1.1.0 | feat(finance): add store/toko filter on receivables and payments 48d963b320a2f2a1c2269b8e30ebf711530796ad | 2026-10-23 | 1.1.0 | fix(erp): enable clickable stat cards, fix modal routes, and complete sales role grants e7dc708d209450c0519b4410a11fc9e4ee790b5f | 2026-10-23 | 1.1.0 | fix(dashboard): enable clickable stat cards, role dashboard preview, and allow erp roles to access kpis/charts 3158dfff2bf3f7f5878b772e215c1b9acd2fbe2a | 2026-10-23 | 1.1.0 | feat(erp): add role selector to customize dashboard for configuring role-based dashboards 8861a8bce7c14dc8be6f9af15206fe95e0871e22 | 2026-10-23 | 1.1.0 | feat(erp): remove duplicate widget policy from roles page and move customize dashboard to system menu 70a96144859387b0e91dc3468a442c55948e80cd | 2026-10-23 | 1.1.0 | feat(erp): move dashboard customize to sidebar and expand widgets per role and permission 528d8ac886d889d3ae8bdb16dbf07f5bf8051f22 | 2026-10-23 | 1.1.0 | feat(erp): dynamic permission-governed role dashboards and customization menu backed by database d59dd5b3ae13a5614ec1d583f4415eae0cfb7a3a | 2026-10-23 | 1.1.0 | Revert "ci: dual-tag container images with legacy aliases on GHCR" 0f887c8012e055c8ee85726c978f0ee02edab2ea | 2026-10-23 | 1.1.0 | ci: dual-tag container images with legacy aliases on GHCR 21e2aa5c70f6a674d45913778faeebfcc94db866 | 2026-10-23 | 1.1.0 | feat(pos): allow walk-in checkout without customer and permit zero/insufficient stock transactions 21863e5ca528fba4772cedc297fcdcaecfcb3760 | 2026-10-23 | 1.1.0 | fix(accounting): enforce reversal integrity fb4b744ccc02d7ad545329b5416f4dfd045c41eb | 2026-10-23 | 1.1.0 | feat(finance,erp): implement period closing, dynamic role widgets, and access isolation 55e1dfb8ccb3168c410557a8fb3c65c03d9bddb0 | 2026-10-23 | 1.1.0 | docs(audit): record implementation verification ff5078d75c27813641ed115f73a6db84e618baee | 2026-10-23 | 1.1.0 | feat(erp): add period closing and access isolation 53af10cd8c7c75e36215df8c18a7f3aa4326cec4 | 2026-10-22 | 1.1.0 | feat(pwa-twa): add PWA manifests, icons, service workers, and signed TWA APKs for pos, erp, b2b 288b6cea77c3aa8c77e314f0bbef48d7bf35828e | 2026-10-18 | 1.1.0 | feat(erp/reports): implement active outlet (AO) ratio and customer base formula e8fa5827a523d32d44f0c06b4462ba8dd06f030c | 2026-10-17 | 1.1.0 | feat(sales): allow permissive stock checkout for POS and B2B, seed walk-in customer eb49cd70d9c5d5941277da3cf416f2ddf07bad2b | 2026-10-17 | 1.0.0 | feat: unified design system, icon reliability audit, changelog, developer info, and centralized ticketing system 2eed2d9fd70328f3d4185fcd94b0839ea2e65de5 | 2026-10-17 | 1.0.0 | feat(ops): enhance vps-manage.sh to support dual prod and stg environments 3030f68660884375d2e496a011561aabb1cf3200 | 2026-10-17 | 1.0.0 | feat(ops): add VPS management helper script for Hostinger production stack 655c61a7c7c9c5ce2a889f42a90f45740660b2df | 2026-10-17 | 1.0.0 | fix(ci): publish container images to km-* namespace on GHCR d8eb88b0c5c604c2ae43492b70193cd7c06ac17d | 2026-10-17 | 1.0.0 | ci: allow GHCR_TOKEN secret fallback for package write permissions 63a8865f7c3528e402614b99b26f7889ff3ce738 | 2026-10-17 | 1.0.0 | ci: add workflow_dispatch trigger to CI workflow 5001d49a58353605ff52117593b1dba0c0162ad4 | 2026-10-17 | 1.0.0 | feat(perf): harden runtime, optimize resources for 2vCPU/8GB VPS, and establish team vibe coding hierarchy bae3d46b547350bc9bdb8b68782444355db38671 | 2026-10-17 | 1.0.0 | docs: add comprehensive architecture, migration, development, deployment docs and ADRs d0526b1988f2388f0083a174f22913cb19eee9b9 | 2026-10-17 | 1.0.0 | ci: consolidate workflows into root .github for monorepo 830930b635d27d00396941fe6c2028a9b8598428 | 2026-10-17 | 1.0.0 | feat(infra): add container compose, reverse proxy Caddyfile, and .env.example dc9dcf24c149e239470494dca783c8c6b802f531 | 2026-10-17 | 1.0.0 | feat(packages): extract shared packages (@keluargamart/contracts, permissions, utils, api-client) and integrate frontends 9bc8efe2f472deac89d34fdd1528235c5c983463 | 2026-10-17 | 1.0.0 | fix(build): add zxing-wasm and vue dependencies for clean monorepo builds 7790525fde98a75846dc611d569a3b249e553801 | 2026-10-17 | 1.0.0 | feat(workspace): configure pnpm workspace, turbo orchestration, and pass test baseline 8476e278297fda11d4e4587d116c4741cec28e06 | 2026-10-17 | 1.0.0 | refactor(structure): move nextreport to apps/nextreport d6aeb75d1ecf5a37a854d8b0e4962ee74eec8ccc | 2026-10-17 | 1.0.0 | feat(migration): import keluargamart-b2b-frontend into apps/b2b with history f2a4de91e0d6d16c4d86ed5b4365a85cdaaa2533 | 2026-10-17 | 1.0.0 | feat(migration): import keluargamart-pos-frontend into apps/pos with history 44445afe277ab76f21248082c8cb09f6abf16bd6 | 2026-10-17 | 1.0.0 | feat(migration): import keluargamart-erp-frontend into apps/erp with history ec4577c16253f0003f0f83ac72bc00ab80b1b7af | 2026-10-17 | 1.0.0 | feat(migration): import keluargamart-backend into apps/backend with history 6bd9d1441292d5fc3f764d27a314b734792d8915 | 2026-10-17 | 1.0.0 | chore: initial commit for keluargamart-monorepo 7669d82d1b11c6217ead59d771b7c7b67280ae3b | 2026-10-17 | Historis impor / versi tidak ditetapkan | fix(reports): AO Aktif month window comes from the KPI service, not DB UTC c47b985f55c066bb0b9fe667e3f4723f5e01fe0a | 2026-10-16 | Historis impor / versi tidak ditetapkan | fix(erp): AO Aktif hint follows the invoice-month definition f0724defd2c3604845ff47fb0b920641c483103b | 2026-10-16 | Historis impor / versi tidak ditetapkan | fix(reports): AO Aktif counts invoiced customers this month, not ordered in 45 days d55a457b5763211ce12f887ff44122267b067406 | 2026-10-16 | Historis impor / versi tidak ditetapkan | fix(stores): retire the outlet warehouse with its last store e63f1d82615e492c02d5dd518f52030a374f8754 | 2026-10-03 | Historis impor / versi tidak ditetapkan | fix(audit): pass ids as a plain slice so object labels resolve d457f38f23cc6010e0f3fabdf7c12115c95f3c1f | 2026-10-03 | Historis impor / versi tidak ditetapkan | feat(audit): name the affected object in activity log rows c341c67f6ee622bdc7207c6db2396480bc790fd0 | 2026-10-03 | Historis impor / versi tidak ditetapkan | feat(erp): show the affected object in activity rows ee01fdc7a422aa4c49da81be0da5109bec288f80 | 2026-10-03 | Historis impor / versi tidak ditetapkan | fix(deploy): keep watchtower updates working under podman 39a4e4787547d80fba6a4e56e3685322c755726f | 2026-10-03 | Historis impor / versi tidak ditetapkan | docs(deploy): require --in-pod false with podman-compose 7670f0048b1c4af2e0ed21d477401b8a9cc59861 | 2026-10-03 | Historis impor / versi tidak ditetapkan | fix(deploy): make podman-compose up work end to end 7803e7d21e94c5243760a82bf451a66516acefc3 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(erp): read legacy verb-in-module rows as their verb d8baa032ec54129ab8b981f8ef04dabe382fe2b8 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(audit): classify action verbs instead of merging them into the module 1abb778f19fb8969080f44fb5404744fbaa7dcaa | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(hr): honour employee_id on leave, and block self-approval 627f2626afcb77a5aa7e70a0ee1101a27da2f8bb | 2026-10-02 | Historis impor / versi tidak ditetapkan | test(erp): gate the router's permissions on the backend catalog a89b1713bc15669525d9ace397eb360ea59fb804 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(erp): a failed catalogue load must not look like an empty store 47597f26810c289ef05a27fe8a8b0b44518e72bb | 2026-10-02 | Historis impor / versi tidak ditetapkan | test(b2b): guard the repository layer against backend API drift e537de1337ad61ab824996aa1e643021527e8a00 | 2026-10-02 | Historis impor / versi tidak ditetapkan | test(pos): guard the service layer against backend API drift 38ae3e3d4dff6e454db78160d5999199719fa50a | 2026-10-02 | Historis impor / versi tidak ditetapkan | docs(b2b): correct the warehouse-fallback comment 486e09450d1fdcbaf0f86510383cf9fecb91f427 | 2026-10-02 | Historis impor / versi tidak ditetapkan | docs(pos): correct the stale /employees-vs-/users note 6a4cd3ebe2bfbe3c4e7dc54d3319241b96926544 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(erp): check the verb in the drift guard; four more live 404/405 751e24f32b13fd09132fcf668321fb4171937deb | 2026-10-02 | Historis impor / versi tidak ditetapkan | docs(b2b): record the verified backend surface and the stub hazard d0a08d6fe866aefd0bacdb92a654f5aafc2a4197 | 2026-10-02 | Historis impor / versi tidak ditetapkan | chore(b2b): correct the lint-debt count in CI 3733ea0019260bb0565c03ba7eb6b6db4773513a | 2026-10-02 | Historis impor / versi tidak ditetapkan | chore(pos): drop the dead VITE_USE_MOCKS plumbing 3df977de55690b56c7801f080901a5a9e0c3473b | 2026-10-02 | Historis impor / versi tidak ditetapkan | refactor(pos): drop the mock catalogue, keep the constants that were real ab3bd0f61cc6a1ac53ae5ca16eb4639c83a237b2 | 2026-10-02 | Historis impor / versi tidak ditetapkan | refactor(b2b): drop the mock repository layer baaaeba2065801882ca6c38a8ae96b88be7fc5e4 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(erp): call the routes the backend actually serves; drop the mock layer 19cf57fe281dbc6a056b74f9e85723631dd24fd1 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): resolve walk-in server-side instead of guessing customer 1 ca7bcf9cdc051b43e0cd39fd6ccf0bdee9f0de71 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(db): row-count the write queries that must not silently no-op 308351226297c965c05c59a0e1f220930319c479 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): return dialog clamps to the not-yet-returned remainder 34772df1d80fc98ceaf66e2a5d7034fc9913661d | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): follow pagination for products, stock and customers 1445007927afa840c269d625da8a68d5ee4544e6 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): send the cashier order note to the POS pipeline 276d7c74b728e47f0ce7b9902491173c0512dbe3 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): customer selection stays inside fail-closed resolution ff9bebbd55ee9fa8e48ad2944bc5a60280d61211 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): hold/restore keeps notes and revalidates the voucher 6b5d34383ddc369a10fe2eb640dff41e90859103 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(pos): fail-closed shift open and session-isolated login 9121db6d7961cc81484221d51d8eb7c1fbf2e0b5 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(cashier): shifts open only for the caller, admins excepted fbe61f46ea5540fd1a11f40adb135f8ce50db702 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(sales): for-return attaches remaining qty; POS pipeline keeps notes c1257b73b0c72a22e0da62c1ac67866a7bccb0b4 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(b2b): admin status dropdown offers only legal transitions a30e63e9e10ba6debe7765b0d38836c65325b43c | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(b2b): persist live notification prefs on-device with defaults 4a51d599589e61bb0b1b05b7b8502181c162385c | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(b2b): reject spreadsheets at order import with guidance 194eafeeb5133f9ed096730494d794998f14a3ae | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(b2b): supersede stale cart mutations, serialize mock drafts 922feaf1121a51f548d96f9c5615f9d16646ed69 | 2026-10-02 | Historis impor / versi tidak ditetapkan | fix(erp): gate products/categories/units routes on read permission f9d0db55cd9d80a98e1063289b5dd20af1460d9f | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(distribution): refuse to complete a delivery order with nothing shipped 944aa0321741a42b95784d0e18460bfa0965f6ec | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(inventory): guard opname writes and item reads by outlet warehouse 83a12afdef0ef2b6f5c5210aefe19f9d042963f6 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(inventory): lock transfer stock rows in canonical order before approving 61f4548b67ac002b39f3952a24812119d010d3a9 | 2026-10-01 | Historis impor / versi tidak ditetapkan | chore(seed): minimal prod baseline - 1 admin, Galon Indodes, empty masters 21a7b58df731684b98f924117a8ef7de3cfee78b | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): generic login placeholder, dev-gate demo quick-fill on VITE_APP_ENV 4ae3f047a141c2c2af541b18523c25fa9a159743 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(b2b): remove demo quick-fill accounts from login 4838937eef2e25cdcad12472c618f8439cf60045 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(erp): remove demo quick-fill accounts from login 5a4f5a5e7a670e5857e86fe1687aa2f5732beb30 | 2026-10-01 | Historis impor / versi tidak ditetapkan | docs: mark hosts production as of 1 Oct 2026, Midtrans stays sandbox 037a65db3ea57458bbbac9e4fde6decc1a549229 | 2026-10-01 | Historis impor / versi tidak ditetapkan | build(pos): CI bakes VITE_APP_ENV=production so :latest hides the DEV banner 20c651276c7b6d2aa972c220173042fabce876fb | 2026-10-01 | Historis impor / versi tidak ditetapkan | build(erp): CI bakes VITE_APP_ENV=production so :latest hides the DEV banner 5f8cbd3c3679200f45c0f6a31f49b1fe5bfa4535 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(erp): format activity log rows in natural indonesian with safe spacing 6179dda1055982f77d541aad1f87630bac3349f3 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(erp): render activity-log rows from method+module instead of raw request line 9cea66304c0f68bace0927cefe124d6f04f087b4 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(distribution): focus map instead of opening detail modal when selecting shipment from list 54199d581a0a9f241abba8af17b500ca137f5a2a | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(erp): stop the cash-flow statement showing three zero sections 651f6a0f88bde73f9c90ec31d8142e9b2fdd9344 | 2026-10-01 | Historis impor / versi tidak ditetapkan | feat(reports): a real cash-flow statement, built from the journals ca77a1d304976ca934a096018c93da91ca885a46 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(ci): stop an LHPP assertion from expiring on the first of every month 1480baf861b59fa730c2fd25bf0f262bca4bc109 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(ci): make `sqlc generate` reproducible, which also fixes an int32 truncation 786e25f5df9a535837477c47b6190efa1ed6ce5d | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(ci): restore the atlas.sum entries for five migrations 44b00b9846abb364cb31a63e1f2e0eabc2e42345 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): customers table fits tablet without clipping actions 744b434d5b58f6c6c4d3ed473d3ecaaf9efd77d9 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(galon): write deposit refund row on container return 76c124d5e42c83bd633bc79a82cd704f6732a98d | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(reports): Neraca Kas from system money only (ruling A) d6ffe4f8bbe919bcd856aeeaea4a58f012f25fb2 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(distribution): refuse a second open delivery order per sales order f1dbfdd6b7ea083b16cbaa7efdda4aed644420b4 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): stable idempotency keys per logical sale and return 05d49bf84457cb799c87e2676d3220fecd2eaa3d | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(auth): reject malformed emails at registration a302caa8fa618c534bd5fe8c2f8a0fead3fd17cd | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(b2b): tiers fetch uses versioned API prefix 47af540ec88b8dae0136761c8e0794c6fb4325f2 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(auth): let buyers read own membership and public tiers af745ced1582cc24df4ec364e452b6f62466cb84 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): narrow thermal-style receipt preview c8361130b11f209b47a1adaea2b07f33b48f12d8 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(b2b): surface voucher errors instead of swallowing them e6a09ffb110839db80d80369db3cd2630c327a3c | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): reset till state after QRIS cancel 2a0abb7b9b6d53ad92c137939c67439bbfe0cb2e | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(auth): survive hard reload — client revalidation carried no token (R4-1) 947a854334b5212ebafcd4566183667c31b160dd | 2026-10-01 | Historis impor / versi tidak ditetapkan | docs: R4-1 root cause and fix 7a5527f45f48ba0d4b685aea0c5c7315cb45864a | 2026-10-01 | Historis impor / versi tidak ditetapkan | docs: add round-4 B2B live sweep report (R4) cace45bea35ec57e8299882ade57c3b76af4ed18 | 2026-10-01 | Historis impor / versi tidak ditetapkan | docs: add idempotent QA artifact cleanup script (R3-4) 42b8484e6937811d212c177f53a49e77412e4913 | 2026-10-01 | Historis impor / versi tidak ditetapkan | feat(reports-of-sales): manage sales vouchers from the ERP (R3-7) eabccb835ff21a5e6c03e6e24b96860a41a432f3 | 2026-10-01 | Historis impor / versi tidak ditetapkan | feat(sales): manage POS sales vouchers from the ERP (R3-7) 802fe5a602f7dfeb6fc7d737333733248e4c60b6 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(auth): drive sales-order approve affordances by permission, not role list 1ca0f91de94a5a05e9f60719dae14606c4b992b9 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): gate transaction history behind permission; resolve walk-in customer at checkout 82a355776a6d822e2faf79579b8d1056e35167b9 | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(sales): stop silent walk-in membership discount; add R3 sweep report 24ba4c88d0d82ad5fc8e131f23ab08540ae08c09 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(erp): show on the map that every facility pin is an approximation 994659024de8cd28c6cb2086ae08f4ae0ec65bf7 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(distribution): carry coordinate precision on the map feed, and clear a wrong store pin 19226daadfd50bdc117dbb590971b9d0b37e2a08 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(warehouses): put warehouse coordinates on the tracking map, and say how accurate they are 5058733329e3c607724081a7c1c7d88d4572cb33 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(membership): make the tier config audit trail readable 2c1bcaa95a523aad464a27ee2629c8a9b1dccac9 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): one close button on the receipt, not two b8af9753ea95e053b87bcb923d6967a5b2eeee84 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): size the QRIS panel to the code, and give the receipt dialog a close button c2a2f9ee6506ed0e6f5be70881fe4411fc41f5e0 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(b2b): pay with Midtrans' overlay instead of an embedded page or a new tab a390a6a6c22d8c1f118ff9040540baf1f3bcd07b | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(b2b): balance account dashboard cards vertically on desktop 1fffa2070acf9c2b34f199bef93e928f585728ff | 2026-10-01 | Historis impor / versi tidak ditetapkan | fix(pos): closable success receipt dialog be0892139e52808985e723ff60052d187db23860 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(pos): the till draws the QR itself instead of framing a Midtrans page 1caa53328b4af2cb3313aa11a0207526f9ad92a2 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(sales): POS QRIS draws its own QR via the Core API, not a Midtrans page cc92a3978d734577bf1096b6db5b3c7cb1ce0b8e | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): the embedded payment frame was clipped and needed scrolling on a tablet 4689e45b65584e0d09de02f35fb467a88f5384d0 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(b2b): embed the Midtrans payment page in a modal instead of a popup 4b89efe3d9a9dde575e8bad6b9c0283774bd0907 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(pos): embed the QRIS payment page in the checkout dialog 5fd4ccf99b5e9da9a48cbe00e18b4e3ed3318d1e | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(b2b): two-column account dashboard on desktop e488a0ce369e8a39c334af92c12077e4ec11cd84 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(sales): QRIS snap rendered "No payment channels available" to the customer 6bb1ff382232d225991529f80fb5b95b9e9d96a5 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(sales): QRIS at the till 500'd on a nil DBTX in eight invoice writers 88db326d23b5d24033437b1e5b0fcb8590c85b8b | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): nginx cached the backend's IP, so every /api call 502'd after a restart 0ca274106653d91d63757b4f910aa35d7885d059 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(erp): nginx cached the backend's IP, so every /api call 502'd after a restart e2bd88d5c89f916ef1272d5720ceceb1510bbf70 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(dev): b2b-dev called the API with a doubled /api/v1 prefix 416dfbdeed89f94d0a5c15bf4f592ca917799697 | 2026-09-30 | Historis impor / versi tidak ditetapkan | refactor(b2b): match the repo's USelect convention on the address pickers 4dd970a0f0022f25f5f041b39d6a33e69ec683c9 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(b2b): the account profile page is editable and actually saves ce6ced7e838a66c5e7eb1fd46618d742b4b282ec | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(partners): PUT /customers/me blanked every column it did not mention 6e0f9af953b33a3f56c3c936f7d13625de7f6b35 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(partners): GET/PUT /customers/me — the storefront's own company profile b89897062260afd029cd6a5663599ec9c3ab2900 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(accounting): deactivate the duplicate cash accounts 0843bc08ba03e8fced6dd03c8b784d7aaa7bf51b | 2026-09-30 | Historis impor / versi tidak ditetapkan | build(erp): make the dev-server proxy target configurable c7315a6a9be2aca55e51c444bd569f3ce1366ad1 | 2026-09-30 | Historis impor / versi tidak ditetapkan | build(pos): make the dev-server proxy target configurable 94f571e5418a1fe321c3e35437a3b95f98a866c6 | 2026-09-30 | Historis impor / versi tidak ditetapkan | build(dev): hot-reload loop and live dev servers for all three frontends f8b3275f182e36cda75d06034ae74873ae0f7fd0 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(galon): record the deposit as a liability on completion ff350b664ba70dd292c651df0e1cd1fe1402cf96 | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): ENVIRONMENT — no production exists, all hosts are dev 07fcff6d229ddb115a9ac0343177c98f0110c199 | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): ENVIRONMENT — no production exists, all hosts are dev ca3c7b0e3cb523a51aa7e14f582acbe53da0f0fe | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): ENVIRONMENT — no production exists, all hosts are dev b61f4053651faaa82406dc08e2756716ef93e6b9 | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): ENVIRONMENT — no production exists, all hosts are dev afc3d0bf8bc2980cacc9b304a2f1745a12c1f15d | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(ops): DEV environment banner unless production declared 4f9697d492f975835a9233d59d078d36c3ded98c | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(ops): DEV environment banner unless production declared 6bc4cedcfb3caa370d2ecfdb711e6e98d9dc66b4 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(ops): machine-readable environment identity on health 20f3fe82377856cec017f379c4f6b336705c9698 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(ops): DEV environment banner unless production declared 18aeb7be9bdc8699dff35b0fb10c096a4bbd886e | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): stop the settings fallback asserting a wrong store address 7370f3e2daedc95027aa67adcfd29ba5f2c63947 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(rbac): let a cashier read the store settings their receipts print 43be48dc0f32792893aa449ec24cfcb357b0e0a7 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(rbac): let a B2B buyer validate a voucher code 8d570e1df44fcebc9bc12b68f34c4b0ccff4216d | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(settings): a partial price list must not silently zero galon prices 638ab8345c40f36721d586e5cd19d28ac95e4bc2 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(rbac): let GM read the tier catalogue it can now edit 279af4c2e1e7caac22cc39cc20d141d4bac2ff42 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(b2b): stop the error page showing raw Go text and raw i18n keys 39b02e9fae11a3b76cca26ca7a564a4fd11af01d | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(rbac): assign membership tier pricing to GM and store manager f090b8b0e9644292f76e6868666265340eed15f2 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(pos): QRIS checkout through Midtrans Snap with poll and cancel c68d0cf866f411a939d3705e806115307a012a12 | 2026-09-30 | Historis impor / versi tidak ditetapkan | feat(sales): deferred-gateway POS QRIS via Snap with till-side poll 8288e3d468f74c91db00e4f346c52a40b7bf676c | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): return dialog resolves exact SO number instead of listing eeb9b893cd4dec145ebf311e545d0c560b8915f6 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(sales): exact-number return lookup so cashiers can process returns f2ff628508caf3633dedd95aafbea2c39570408a | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(b2b): scope the checkout idempotency key to the action, not the request 3ceec797eae4bc56413584b1d7aacd2d90f3a1b7 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(partners): raise customer list cap so POS book loads whole 4f34c5b42a2eda4489c0106567b12089349bb38c | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(b2b): stop the Midtrans loader from hanging with no feedback 5a6e2b9aa1e9518c7ccc4004239fcf45e86357ce | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): retract the 'quick fix' claim on R2-5 after checking the schema 6ace0973bbb6cfff97702babf0c5e9ab8f3e02cb | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): fix wording in the round-2 reconciliation note cee972f35ae5778c9117278e5b661d626dc60781 | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): reconcile round-2 findings against the code, 5 of 6 are closed a9c3f3830be4db6082929457594c8b2d1846424e | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(galon): stop reporting invented counts on the POS stat tiles 849433a3d3891463ac24af9275656317d039e411 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): show "—" instead of zeroed galon counts when the request fails 579964fbb538f844381080165b861e07208e3008 | 2026-09-30 | Historis impor / versi tidak ditetapkan | docs(ops): round-2 bug sweep report and post-deploy checklist 233acdd6894ea07123528cec15fe87b864294eca | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(rbac): let a sales rep finish the customer enrolment in POS 00a2168e9140e0c4135f05821f06b01f6f7b13e0 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): simplify customers table so columns fit without clipping 8e4c8439c8ca4dc589ee58dd8e1321d0acd08328 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(cashier): show cashier name on shift list 4af66fba1ba6d58fe1b5ec9348f5dca21e24ba02 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(pos): build cashier object from shift list cashier_name 96b995ee9e25b07b33f8d6bb4426f13aed4d3c88 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(settings): do not serve settings that failed to persist c95d704a6e8fa44bd9b277025613f2aa62598eda | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(distribution): refuse to dispatch a terminal delivery order 7837538b5a12d1942002a2d6034050b4a9066997 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(rbac): restore visit-schedule grants deleted by the 000061 wipe 44db501df8a18bccff7137985e07fae1e5341913 | 2026-09-29 | Historis impor / versi tidak ditetapkan | test(integration): require explicit consent before the destructive suite 23bde14185fe51454e8f744ec2abf9ae8f6946a9 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(sales-tracking, lhpp): stop handing users another employee's record 4ba1cd8027fca3b39f44a005833ffdc1eba953e6 | 2026-09-29 | Historis impor / versi tidak ditetapkan | docs(deploy): warn that a stale data/postgres is worse than an empty one 76ca2e245d19b873de6c84b1b1abadf1b9afcd18 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): repair unparseable templates in account users and profile 6a8f0b32474e37b6e2921e989c7b56733e080931 | 2026-09-29 | Historis impor / versi tidak ditetapkan | test(sales): pin sales_name to employees, and regenerate the finance fix 9f369adac1928d2638273d2f7bf657a1e234d4ec | 2026-09-29 | Historis impor / versi tidak ditetapkan | docs(deploy): record PGDATA_DIR as mandatory, and why `up` misbehaves here ab2db814fc966b3b1853623617a29c4d7b5f53e9 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(deploy): declare the "backend" network alias the frontends proxy to d9bcb754d9079242a64f7b8b80709727fda7d3ea | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(sales): let buyers confirm receipt on their own orders 523a732ba07f1d917a6fa73afb004a86efd2f841 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(finance): no orphan delimiter when re-reviewing verdict-only notes da4e011073fe4c7da4553b9c70af82dd9b390f41 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(reports): PayablesAging counts only received goods ce30c56f931f5eb915ff8369d80207ebac600a94 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(cart): answer 404 for PATCH/DELETE on missing cart items 2d620463d6abd49b8324af401b5fbda1901f7f55 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(auth): sync login access on admin password change and customer deactivation e33e3c3c9b0210864a5724f470ae6bb5b0b09239 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(b2b): cap cumulative order window at backend max 858d4e724a2b25f15b4279538de4a3f9d448a7c3 | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(sales): raise buyer MyOrders window cap for cumulative pagination ce830a65ef166acc0827f8b67267239421dd631d | 2026-09-30 | Historis impor / versi tidak ditetapkan | fix(erp): bulk-approve reports per-order success and names failures cc8d8895d84ce501bae113d6b0e3503a2cc2cbbc | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): gate account users to admin and mark server-unavailable features honest c5a7a4321f0a0ef6a6fd3ee9fa926a04960efb4b | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(galon): server-authoritative pricing plus payment row on complete 75983996eb788bc56146b864ac1c7c31503a8b43 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(sales): remap legacy sales_orders.sales_id, and stop 66 orders crediting the wrong person 336df8c47cb6ae87be5301ff02780be2ce8f56ef | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(sales): resolve sales_name through employees, not a users-first COALESCE 92be381991d93290c09f30be4816ab86aa9ac87f | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(erp): sidebar modal shadow only when mobile drawer open 10356118b6eec35423507a4d7e0c4b07ad4b7075 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(sales): resolve creator to employees row for sales_id FK 550a05c32111092734f22737d913494d18136656 | 2026-09-29 | Historis impor / versi tidak ditetapkan | feat(b2b): geocode typed addresses so nearest-hub can match on position d62097b634b058478bbdb0a54b508a8cd1391dcf | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): keep a GPS fallback out of the city field 1b41f849d0fc4e19b149f9fe813edf3a11809bdf | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): stop guessing the nearest hub when nothing matches 600e79c2d4ad7c8a46116d4aeed76f5cdfc879df | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(finance): VerifyPayment returns persisted verdict with reviewer identity eb97430f29be7f11024a6deee6ec204a4f9a9f52 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(erp): HPP visibility and inventory value follow inventory.cost.view a1eb1497b5661c595f8b8023005b396b068453a9 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): true galon pricing, payment-to-order links, multi-status pagination 3766644e97285967fc783246c39d5ec838674c4b | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(pos): receipt prefs read app-wide, non-cash tenders settle the total 89c702870e67a1207a136c961814a0eaa84010a7 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(catalog): gate product purchase_price behind inventory.cost.view d7b65802937fb2b6b92f298f8761ed593f5d990f | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(core): purchasing state machine, real payment verification, shift cash columns ce09f84e189a1c4f0563916b4d3bb2202684326a | 2026-09-29 | Historis impor / versi tidak ditetapkan | chore(db): regenerate sqlc for sales return comment sync 0b0ea59ce12139a42e71522c1875ebb4b1283b0b | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(core): harden refund drawer lock and resolver error code 4dc2a265654406d72c756fa371d64b9329fd1e82 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(galon): complete galon transactions after creation a901cca9d8a2be4a5d7f79f0fd607e4ddc0fd551 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(cart): honor voucher in tender and rebase change on server total 359dd025aa79bbed5a18f44f70448bd67bf392d5 | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(core): close authz and money-integrity gaps from full sweep 29694057185ea23227668b80c4acf712e7934b2b | 2026-09-29 | Historis impor / versi tidak ditetapkan | fix(b2b): server-side category scoping for catalog filters f590abf49748b91ca6234570268528f16cb0eebc | 2026-09-28 | Historis impor / versi tidak ditetapkan | test(erp): pin the catalog category filter with live-shaped rows 676a426da9d548abb6515cab7dea55b8dc47ac47 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(catalog): stop silently resetting per_page above 100 to 20 ea9d5d365a118fabab0a3dee21a5d58a5aabbd53 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): notification sound SPV-only, silenced on logout a2240c3fc07d22545bc7a044f6e37aac8fc5b4c4 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): keep order-line rows aligned with the stock hint dd7dd9a09f08a17929bc2460ea82d911d7eba4b5 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): keep product code/name on catalog-drafted order lines dd052d2bd16b44bdf4c73d26b01549d74c9e2c96 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): show warehouse stock per order line before submit ca7ecb3f17b97bce7a887f4a881ad8a7dcf16e66 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): per-warehouse stock breakdown in the POS product modal 8cc1b301605a6f64c49f4a1d00883ebd1cc80b34 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(shift): include typed closing cash in PDF recap payload f63675a32765308c87a51397d8a2f732b400bb58 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(reports): bind shift-print PDF to real cashier summary 9fbfa2467c28a64bdb6f16631002865517ae4a8f | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(b2b): pickup highlight only in pickup mode 6b6dd6dcfecd345fa268ce6c1bfd1f98bec62437 | 2026-09-28 | Historis impor / versi tidak ditetapkan | feat(search): navbar product suggestion dropdown 368614eda7dd2f7016305a3f94a214be738c0219 | 2026-09-28 | Historis impor / versi tidak ditetapkan | feat(storefront): auto-select nearest delivery warehouse 41bb2f79406af0e474b9fab42f6ece37da2d83d8 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(catalog): categories and units answer search and pagination ef969a58d9166e17bc54eac45db756c264d813d0 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): field-level errors on the employee form, before and after submit ed25827eb829b3649a893691bbe33d46be6b76be | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): serialize fake Begin in the concurrent sweep test 7d10fe8369ddc1717503b02e7d400985c59ebd56 | 2026-09-28 | Historis impor / versi tidak ditetapkan | ci: cover the 000107/000108 write path on populated data 51791236d5eb92dfb98e5ff8d88973edd0191959 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): guard shared Midtrans status stub with a mutex 1a6a243ac1023b568ca6e3328dcf1f66412af1f7 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(hr): a payroll run consumed k ordinals but advanced the counter by one e6b8d4ad73383c020df7a917fb0766dc33d1262a | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(migrations): 000107 section 2 had lost its FROM, so the file cannot apply f9c01b1f323b109e99abeb9bc4f03e8e71ead1bc | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): make the mock publish the shape the user directory actually returns f44481b76d8a637b645e9cccb4c7b97fadf86e01 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(hr,warehouses): two more allocators bucketed by a date their numbers lack e26e412d9a6ccc7563dc8e04a0e94f6d3017530d | 2026-09-28 | Historis impor / versi tidak ditetapkan | ci: make the race detector a gate that blocks the image 350b822991931dc82800a08927e11411cf60ddfc | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): bulk-clearing a group must not hand a revoked permission back 5671326398541c1ed180bc3905ff5923ed975977 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(hr): the employee number carried no date but was allocated from today's bucket dc1eb99699f0e7b30b465239e9f57e726b3597a6 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): correct the leave vocabulary, and make mocks store codes a3f442ff4fc9c53ba82204953992a9305fa2adff | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(api): stop returning driver error text to clients, at every copy of it dc88e1708a5323e3ac53f73a2092f626b11ad4f3 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): stop the report pages claiming a reconciliation they never did a7bfdb6feeba0b0b82106550591bc0eb568be35a | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): send the department code the database actually accepts 5b636bd8bf06462afe52ad5855c80a262422442d | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(authz): clear the operator overrides that role migrations cannot reach f08a10c8bd09ad605f40afdd99f6626098192077 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(finance): scope cashflows to the caller's own outlet 97619596295201fca2116521358d735cee88a442 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): stop the cash flow statement inventing figures and claiming a check 2b6edae2e48f5f0653febcf3eebb77ea66cab360 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(authz): close the operator authorization leaks, restore hr_manager dbbeecae7e21430daf1f2b2914672100977ef0f7 | 2026-09-28 | Historis impor / versi tidak ditetapkan | test(erp): make API-call extraction survive formatting and stop reading comments 1a1a3963e1106cba81e497107d9a3dd0f562b0de | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): stop asserting a gate that does not exist, and stop defeating idempotency a88b19ef5bdb3494dc63db481d5a0fffa7354296 | 2026-09-28 | Historis impor / versi tidak ditetapkan | feat(sales): background Snap sweeper for invoices past the webhook window 0680ea10d775e1ff5d5dcc0081147f3d54370b00 | 2026-09-28 | Historis impor / versi tidak ditetapkan | docs(ci): correct the atlas.sum recovery recipe in the workflow comment a297b04395a7a8423e10201fc3f79595dfd08dd5 | 2026-09-28 | Historis impor / versi tidak ditetapkan | feat(sales): read-only report of Snap invoices no poll can settle any more c600cdaf8762f4cae01f1bd316ae06fa3a02faca | 2026-09-28 | Historis impor / versi tidak ditetapkan | feat(sales): storage for the background Snap reconciler 72461fccec05cdac66e4a4911c99907e8d425808 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): make the LHPP merge controls reachable and honest on mobile d84153c19b578ac560c1010aa079e471d649a604 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(migrations): make atlas.sum match the files git actually stores bf7eebf7cdb7f1f3207dce885ad2790ca355b50d | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(header): slim mobile location strip, Kirim ke text, and Ganti chip for 320px-360px 2411940005ddaea99309f87b8573bd6350993cc1 | 2026-09-28 | Historis impor / versi tidak ditetapkan | ci: validate the committed atlas.sum instead of regenerating it cc14cdfff7f931fe584437e0e8ce92122c7a2947 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): bound every Midtrans call with an explicit deadline 180b19a1c4d26ad2f8e5325c5b0edf6cd9fbacf4 | 2026-09-28 | Historis impor / versi tidak ditetapkan | refactor(b2b): drop getAdminPayments, the last orphaned admin repo method 03e3e79de2e4fcdb07265ee08f9259e791e294f4 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): settle PayCheckout on the figure it just settled the invoice at 617cf36c1704d8a9d273a1083d4bbc230f8efb35 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(ui): sweep mobile and tablet responsive layouts across all storefront and account pages dc584204d1d5c580e148700b1bea5941c8417885 | 2026-09-28 | Historis impor / versi tidak ditetapkan | refactor(b2b): drop admin methods left dead by the admin page removals cb22fd70390584e88101f28fe01abe5a7bce84f0 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(erp): make mock-mode accounts and permissions match the real seed ca7caebb742260ed5b0013a4466243162858b88d | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(header): enlarge mobile Ganti location button and refine tablet location selector 540945a19717499c50a7d5782c06deb8ddc15ccc | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): book the reconciled payable, not the raw remaining balance e208de5a6e88635d0a5e05cb02f63cda445ac44e | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(css): adjust xs breakpoint to 376px for 360px+ smartphone scaling 32c426d52c6871067ff04f61bf517556552bb563 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(b2b): offer Midtrans first and withhold bank transfer in checkout 18e7510b88422c1dfff7425ca3e76b160040c4e9 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(b2b): sweep responsive UI for 320px/360px, 480px, and tablet viewports a4d89a9d28b51ff820e8b829fc7505273769ea28 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(ci): restore atlas hash, document the webhook aliases, unbreak main d313f3f11779ae5aeb540aa5143b981f0152207f | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(backend): untrack internal/uploads tests hidden by a gitignore pattern 001cacd0f3f7dd598b3eab9d17df39e6593a07e3 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(checkout): pass dynamic finish url to snap token for public redirect a354b583e55d839358133f3077bdf5669923f9df | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(finance,sales): fix midtrans signature verification, order payment settlement, and redirect url 8341bd8aa023edb3320149e266b936dcff0e38e2 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): probe the canonical Snap ref when recovery finds no capture adffcb099fc7da9ec4e53d33f199dec3ab9bca49 | 2026-09-28 | Historis impor / versi tidak ditetapkan | ci: stop regenerating atlas.sum before validating it 392643a90edc84cf3b79b88a2b60c721784c81a1 | 2026-09-28 | Historis impor / versi tidak ditetapkan | fix(sales): reconcile Midtrans amounts against the figure Snap was told 975934d40b8caf458618eca0acb2c87e8feb2b7a | 2026-09-27 | Historis impor / versi tidak ditetapkan | perf(b2b): compact the account page for 320px and 360px phones 536e34e10ca2586e038ee7b31cb11c1e44c0bacb | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(b2b): stop the paid redirect from suppressing payment verification 5e24a4047a7c973131d303ba1090c6650069f3bb | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(b2b): ask the server to verify payment before polling recorded state eb7beda9d31592c64323bed6299f69cc82a3e7dd | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(lhpp): manual, reversible LHPP groups backed by real tables 9f5885a460301a24fcfd114ccbec50a05dbbff81 | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(erp): manual, reversible LHPP grouping 9d87fe2bebf8dee688e20e4cb235436e58daf6d4 | 2026-09-27 | Historis impor / versi tidak ditetapkan | docs(b2b): stop advertising routes that no longer exist f112b1a7c8936ad94b0c78074ecfadc67cde7cba | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(lhpp): stop reporting a written-off invoice as fully paid 5d84a32c681715bf70c6d315cb5e10573d238e38 | 2026-09-27 | Historis impor / versi tidak ditetapkan | chore(b2b): remove pages and files that nothing links to e1fb8b43321a5891ab3da06487ac8a6b4b4e3b4b | 2026-09-27 | Historis impor / versi tidak ditetapkan | refactor(erp): share the HPP detail modal between Dashboard and Stock Position 0700145cef4d82532c4339684be21a46db8a9544 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(sales): carry sales order id on the Snap finish redirect 98228e572f4732eedaf3e3df04a704da0c51dcff | 2026-09-27 | Historis impor / versi tidak ditetapkan | Delete km-server.exe~ 51d5dbed98406ddbca1f5c85c4d137d784d00e20 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(shift): show kas masuk / kas keluar in the close-shift dialog fba1e1fd587aa6d1902ddd93d82da8bc3c1c3d38 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(payment): centre the Snap popup using same-origin screen geometry a5220f518894503c97283a31f03b00c73d4a1b81 | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(inventory): show HPP and stock value on the low-stock table 667cb1d0704b1934b8cdd66f79a6168896a4215e | 2026-09-27 | Historis impor / versi tidak ditetapkan | perf(erp): drop 1.05 MB gzip from the initial page load d47e38515dfcc28929a89f50576f2180981de697 | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(payment): open Midtrans Snap in a centered popup 0cecfa430f89fddc1d2bc8dca83bfc61d4600cc2 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(b2b): repair broken payment detail page and checkout form 31b98db0ac5b93c6aadc0d25ae38bb1b8674d6b3 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(pos): resolve undefined symbols that crashed galon, print, and shift export 3cde5706e54dd1fc43e94bb1daeae93165fdce62 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(security): authorize payment-proof reads and fail closed on discarded writes c17112f435f51d374d7f716cf4ad5de44264c9e6 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(checkout): fix address api path to /api/v1/account/addresses, auto-select saved address, and default saveToAddressBook c7b6f75a8a90a6ac57fb51d69863d466bb7e8b6d | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(account): auto-seed default address from customer profile and attach customer to login response 811cb25d7f3a616bf37c1fe372aed91ba303e7d2 | 2026-09-27 | Historis impor / versi tidak ditetapkan | perf(finance): optimize buyer-scoped MyPayments and record migration 000098 index test d9279817addf4d2dccd1283c7a48f2f2f55b9c0b | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(orders): keep unpaid orders in pending confirmation tab until payment settles fae0aaed0f49b57d5ddef0664a8113bba7f8433a | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(sales): count unpaid invoiced/confirmed orders as pending in my-orders-summary c77f65cfe4cec40f366ced31b045236ea7e00aed | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(storefront): sync location and warehouse selection with header destination label 367036f7e32e7a4af6ec97fe27ce539704678397 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(rbac): restore cashier permissions for customer and membership creation in POS e95ccf50d921473db433908deb9645aabb1c466d | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(pos): improve 403 error feedback on walk-in member creation d7d57f42135e07313276527de879b56517fa526a | 2026-09-27 | Historis impor / versi tidak ditetapkan | Refactor docker-compose.yml for improved readability c2e3aac2bbb284ae741f74b066c4386a8fbeef3e | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(finance): unify cashier cashflow label to Arus Kas Kasir 872fe87c33350a002283a36faa4a6c6bedb73aa6 | 2026-09-27 | Historis impor / versi tidak ditetapkan | refactor(payments): centralize method classification in paymentMethods util e2e59ce3e8dc2f8dc94953a997bfc9865fb04834 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(payment): cache snap token on modal close to allow instant payment retry 3ad76825dbd357481b8fdc9ce67872f3780cbcb9 | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(sales): allow retrying midtrans snap token by appending unique attempt suffix a6060c929d1279f5fe2e2f705fe92f3222a3978b | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(checkout): trigger midtrans snap directly on submit and improve pending confirmation state 15ae3b62af230c3159eb16763013686b183d7c78 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(sales): contextualize snap token invalid-status errors 9fec75248709cf749899c6d6425219f4ecc25f90 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(payment): clarify invalid order status error message 11c4afd26514d51c9d88af727fa96e58a34a6ab9 | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(orders): add payment method display, midtrans snap error handling, and bank transfer modal 5ed5028b2a9edf999af959948aed44c8ad02aaef | 2026-09-27 | Historis impor / versi tidak ditetapkan | feat(sales): auto-create invoice for snap token and add midtrans env config 7203e7d52cd2b6bef5d8733d48ec68870c3d4981 | 2026-09-27 | Historis impor / versi tidak ditetapkan | fix(b2b): compact mobile ui, add pay button for unpaid orders, fix header unpinning bug cfb146426aee4eae02620e753884797269b8222d | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(migrations): add 000082 checksum to atlas.sum d0e3d521ad98f08035290ceb54f7212c9a462184 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(perf): resolve navigation stall, add NuxtLoadingIndicator, and cache master catalog b0b9459e7ef7d891e1230633f895181f6d876776 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(ui): scale down 320-360px components, remove carousel pause button, and add swipeable depot rail f9c5c3fb533c2c2859b3ed2d9f03a3eeb6ef74c7 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(orders): add line item thumbnails, link address book to backend api, and clean up action modal 1dfbb6f36014af9ce726d07cc868e91a604bc6c6 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(account): add buyer address book API and customer address fields 3058bcf13bbe07f57a7b6a76ff1a16273ae42fe5 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(layout): align container padding and subtab negative margins for 320-360px viewports 88b77c4cee4c40be839e6460040d439c693e2042 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(checkout): optimize layout, stepper pills, and typography for 320-360px screens 67c3f5370dafbff61bdc30806ced27bf4fc74c7c | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(nav): calibrate mobile bottom nav top padding and cart badge position 1e973b729015b1d1fcd3441cf8085176494eea57 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(pdp): eliminate double checkout card on mobile, add slim 2-button action bar, and optimize 320-360px typography 5c7b8ca5eafe35f30d3d182e29f64e3eafe5dac0 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(ui): scrollable modal tables at 320-360px, drop stale PageHeader computed b1b46ec17ccd2b1c633f8170e4109028c7ed056b | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(pdp): press-and-hold magnifier in viewer, drop jumpy hover zoom cd3595089f1f064f8b0a8b2a2757a972318aec92 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(ui): modal dvh viewport, footer wrap, breadcrumb dupe, DO table overflow 087ace59dc851be2ac330409de90a0a97b0ea7ba | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(pdp): fullscreen image viewer with pinch-zoom + fix mobile menu header z-index f7069dd4fb71f37feb614496b5f8d6dc6fabbd52 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(storefront): add store pickup fulfillment option and disable shipping 4f2de394f14471a06f121d8cd0e72765485c911c | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(storefront): reposition desktop location chip to left of user, fix cart discount price hierarchy, make WA floating desktop-only, and unify WhatsApp support page 854d9906c64628d49dc3339a4f65fbbe1cd80291 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(mobile): adapt 420-480px UI scaling, clean warehouse from destination chip, and fix small px right space 5f2b77b15ab976e2ab68595947fab8c9873544d4 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(mobile): restore chat/notif top bar icons on 320/360px and compact cart layout 39eeeca31e98cc39611053435180b425e2c19d5e | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(orders): query constituent statuses in parallel so invoiced/picking orders render in Diproses tab 5864dec6fdeca4b8641ef40f6d5d62d4bca91807 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(mobile): slim down top bar and compact spacing on 320px/360px 5059e275ed8c83c886c97b71ea218fc0fcab7cd4 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(mobile): adapt cart, pdp, catalog, and checkout for 360px & 480px 81b75a7c1544ec68539628e7d151df0711f508b4 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(mobile): hide scroll rails + tighten 360px layout 3f139cab1b8c7d88c5f70f8e692b3530dc23d97f | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(sales): buyer confirm-receipt shipped-only, operators keep fast-forward 2512c8926de94a37393626e50c3df736d097be41 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(address): saved-address selection drives header destination f0dcd3e1a3b44e12bfadd99340df3d62f5899b71 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(orders): buyer confirm-receipt gated to shipped-only 30c57f8fe5e04f236095ecc6628a4e707b3bf9d7 | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(migrations): add 000095 checksum to atlas.sum a42c4cae4a99a122d4212243c33408972c69dd15 | 2026-09-26 | Historis impor / versi tidak ditetapkan | feat(sales): buyer snap-token endpoint + openapi 848257069ab6012333223884cef56fa1fa4cc93a | 2026-09-26 | Historis impor / versi tidak ditetapkan | fix(orders): send single status param so pending tab works on deployed backend 67db307e990b8cd69c61e74222008bfa18ef3465 | 2026-09-25 | Historis impor / versi tidak ditetapkan | revert: revert changelog markdown updates 99da137b48f60d7fd25241e12ae8d4dbd817d35e | 2026-09-25 | Historis impor / versi tidak ditetapkan | revert: revert changelog markdown updates 35679a832ab1ba09082ea67cbb7b23193576206b | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs(changelog): update v0.10.0 with Midtrans Snap config documentation 2295e05b5df8ba0f268a3721d8c5dff4a8e05ac7 | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs(changelog): update v0.11.0 with loyalty member registration and mobile responsive improvements a6a5f6ff611a5d95b703ee4f3c24e4fa4cacc31b | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs: add Midtrans Snap client key variables to .env.example fb98321653f34db9197aff951bbf4f1904705c11 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(ui): improve mobile responsiveness for KChartCard, StockValueList, and dashboard cards 37685e03eb8c6cd5ef486cdea651e0839cc20745 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(ui): improve mobile responsive layouts for stat cards, approval queue, table toolbar, and action headers b5b4af102ee90fdd132a6e0adfdf39784aedf328 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(orders): align order summary counters and fix multi-status tab filtering 50664807bf2e0c8b859e0cbb3d15c1af31a8f4a0 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(sales): support multi-status order filter and add my-orders summary endpoint 33efcab5d5d591d77562fd4a688437aff1fbd215 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(erp): add loyalty member registration in memberships and customers pages 08254344aac4891be2f6ebc0d0ca9cfe0b00df3d | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(ui): optimize mobile responsiveness and compact select overlay 0953569cc60da5d87bb9efa8a03cbb5b586b9410 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(customers,targets): add kecamatan/kelurahan/desa customer inputs and role scope hints f9b4fbeeb63e4d5f2f38f3c16003698c3c4de77d | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(salestargets,customers): add territorial areas and roll-up for hierarchical targets 7255d20038526605a51a38271da97b6d4f452be8 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(inventory): do not auto-open critical modal when clicking stock filter tabs 6b9a9272d7a648a9c360f78c8acd076cfeb3d68e | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(ui): streamline stock HPP modal, pinned footer, crisp HPP typography, and dialog flex layout 2442930afd6b527f7b9a7949cb8e7f2b3e548675 | 2026-09-25 | Historis impor / versi tidak ditetapkan | style(dashboard): nowrap for hpp badge in stock breakdown modal 0abb8fc306cdbe97ced1ab245f7c309c30189b9c | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(dashboard,inventory): add comprehensive HPP breakdown per product modal on dashboard and HPP column in stock table 81eb08b23317fd3a17eb77f3623bcd9a51f6085e | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(inventory,auth): return purchase_price and hpp per product, grant sales targets and tracking permissions 7b0a8a8d7e07b1c7147c8f2d37d421d3e23281b2 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(migrations): use safe alias d instead of reserved keyword do in 000092 7f74a38381ed07dd596546bd36635a99b4fb9076 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(sales): support fulfillment advance action for paid orders in detail page cb5ab8bfbc67e79a32f6fe67e3b60cbcaa9de9ce | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(distribution): reconcile DO in_transit status to SO shipped and protect fulfillment status from payment clobber a1a89e47eaceca6d88767c736e3c4b2578d610a8 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(auth): admit buyer identity through sales-orders cancel gate 054c3de5d9624f81c9093a98954c8c8479f59f20 | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs: update changelog and in-app changelog for v0.10.0 22513ad225e265f56e05df384026a2bd0aa7b549 | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs: update changelog and in-app changelog for v0.11.0 bb9e2bb4f2f7d4204bd73e5045ba3825ff2475ca | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs: update changelog for received confirmation and order status sync e03478ede0d620324db0e66c6e0c13fa6f44fdc3 | 2026-09-25 | Historis impor / versi tidak ditetapkan | docs: update changelog for distribution sync and admin deliver endpoint 1c185f568b0df4ad66f09081d4f766b1be789b53 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(shift): add friendly error and recovery when cashier has open shift 9d1c5bc4d19fdcb1740a14710654fec358371821 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(distribution): add complete order action in DO modal and SO detail, and show reserved stock in inventory 20d321c1fc95a7727b605f11669f1f288b721919 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(orders): replace cancel button with confirm receipt for processed orders and support admin delivery status 2161c82af6d2effac84d8574d12c4b13218ceb41 | 2026-09-25 | Historis impor / versi tidak ditetapkan | feat(distribution): sync DO dispatch and delivery status to ecommerce and add admin order completion a85e94289f79be715faefe64d5b6515d3dfd5932 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(responsive): render mobile card view on phones for SO, PO, and transfer items 947302149087274315e10111a69cfb2d12226921 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(transfers): restrict approve action to draft status and extract backend error message c9756b8020811511fa42699b0577b02f9ece9d43 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(inventory): allow store-scoped users to transfer between outlet and partner warehouses 7d13de7bab11b019d50a4bd354345388436100c9 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(inventory): reconcile negative stock drifts, clean orphaned reservations, and seed baseline stock for outlet store warehouses ca7b65d9394720d7a35b1fd1f05c14c1e92536c9 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(pos): initialize shift options eagerly and add immediate open watcher 607b5de0271178e216a88d452a2f87a88cbe21dd | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(checkout): enhance reverse geocoding with multi-tier ArcGIS to resolve complete street and neighborhood address e554931d94b3c1d1a80fe3e26bacc5651617ca6d | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(rbac): grant full POS and retail operations permissions to store_manager 0c7af6b6bbe15acf9a1bc52cb82fcffdd114a537 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(distribution): wire WithAllowNegativeStock to distributionSvc in main.go 7e39663492cd5b6fafbf4cfdbda092a0a09d0614 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(pos): provide standard shift options for shift opening, allow store_manager role, handle login denied 6baf12c1618f64cf979aa913c8a9acb4e8616744 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(products,auth,dist): fix image upload path, allow store_manager in ERP, use errMessage on dispatch e5a5aec2d7275e6f094568e051f2e59a59025157 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(distribution): use selling_price instead of non-existent price column in DO item query 9a6d3b889156368c3d9ae54b23bc952228bd17de | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(mobile): container-based responsive detection for PO and SO item forms 497a1401a305f3fde40499dbda39368da9331056 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(sales): fix mobile order inputs conflict, error 400 masking and supervisor validation cc69db4d0884b3d1b910b098ce710088639998a3 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(erp): make order line items mobile responsive with card layout 3668e125262bf99d74680a151a5ceb3b6a92cb39 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(distribution): use selling_price instead of non-existent price column in DO item query a63e6c8d9af9bb8460addb50ff529abfea08c419 | 2026-09-25 | Historis impor / versi tidak ditetapkan | fix(reports): align sqlc cashflow query types and update generated code 15d7b0c120e8cd47426e440b9841af770747f132 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(storefront): reverse geocode full complete address and populate province 02badd2cbedaa0b0649ba35b861179d8c6e22738 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(inventory): implement complete stock opname flowchart workflow fc25097488c490db903505671dcc8d49b37971bf | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(inventory): trace opname stock movements and generate adjustment journals e371ca3adb8dbe1a613a3308f781c0ff144cb339 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(distribution): show harga/qty and total on DO items and reports mock 9edb40b02c540f90b47560a62ee06fe30675a2c6 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(distribution): add item prices and total to delivery orders and do-print template v2 db84db2f55d8e51eed417aeca362f65e50021537 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(inventory): critical stock window and stock movements initial/final stock a07e424795b31f9c54c8ebf61921665bf8e64618 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(checkout): keep ecommerce orders in pending_approval until confirmed 374020a95dbe3759379d89ff180abc640b96cc54 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(ecommerce): quantity input flexibility, hide stock view, cancel button, address geocoding 4693c2e027f90bc9345becce5ee67c5184600887 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(sales,dashboard,tracking): add hierarchical sales targets page, stock HPP breakdown, and connect activities and routes 8febd4b64b442d9cbfa4cdfec424085b12fb7c75 | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(sales,reports): add hierarchical sales targets, real HPP stock valuation, and connect activities and routes bbb637423ffee1fc4cdd023550b8813480fde402 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(b2b): map fulfilment statuses to tracking stages via shared orderStages util f9f3ac9af947a29b2bf78bad1a07b456727df29a | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(b2b): add cancel action to account orders, widen qty steppers 531dca787173a6c56e3ee54e9022eb12e78ffa1e | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(inventory): widen movement date filters to w-44 ed1f67011faa84ae25ee2473e0835cad9528b760 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(distribution,inventory): avoid double stock deduction on ecommerce DO dispatch and implement transfer approve endpoint d79dffb16a74da11ede6408960b5ee62cc59b681 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(b2b): checkout address autofill, cancel order flow, hide warehouse stock counts 1b60f8cf951f363f969f41ecbc7f5acc60f6707e | 2026-09-24 | Historis impor / versi tidak ditetapkan | feat(erp): low-stock filter and stock movement before/after columns 17e1cfb86633bb1c0437561fb600d6c1bcf794f6 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(sales): ecommerce checkout starts pending_approval so payment/confirm is the confirmation a70711514bec0c54068d5fbeecbb166b1d084ef8 | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(accounting): tanggal jurnal fills grid cell like sibling fields fb133b07912cdfe2832107490da1c58aaf60b2dc | 2026-09-24 | Historis impor / versi tidak ditetapkan | fix(accounting): split GR accrual PPN onto 110701 PPN Masukan 42bca73eeb9155deeb0becd4000882f27eabd008 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(maps): center map picker in Medan, embed GPS in checkout address, support numeric coords cde11c3530ed9c823fa63ce1ff1ff6b05cc1e17a | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(checkout): auto reload addresses on window focus when returning from address tab 8d27c6c519a3b2602cacc9ad8262668850e36e88 | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(rbac): restore purchasing stack and warehouse stock view (000085) c761c9dc44d18d88041f89cceaba4502a3788fe3 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(journals): backfill document_number_sequences for legacy buckets (000084) 26997e7a17eaab477d4223f699920ac6d80c129f | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(finance): cleanly separate main cashflow statement and cashier manual cash ae8c2424080d7a4c0fdea24315f2b7182d4ceccf | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(reports): derive cashflow statement from payments, purchases, and manual cash (000083) 01bebf0fa176fbd58ddfac01865f1b429e341809 | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(rbac): grant journal action verbs to finance and operators (000082) 6a7e491826b6a3d1d02876e53bda67a752385517 | 2026-09-23 | Historis impor / versi tidak ditetapkan | test(integration): align cart checkout and cashflow tests with manual arus kas 5710e3b1c107c1cfd8596877ce0a66f862f0ad57 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(migrations): renumber duplicate 000079 finance grants to 000081 01725bf47c4e4f4d77e0cb06aff339f55e28a1cd | 2026-09-23 | Historis impor / versi tidak ditetapkan | Revert "fix(finance): fix cashflow additions and reconciliation across stat cards and statement" 2080cd48946a7f951a126369d0de5b34e448214b | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(ecommerce): paid orders flow instead of jumping to delivered b46a3060122083c0115270eebe3f3971a81f0b4b | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(distribution): keep dispatched DO in in_transit 535ee2d87854ffc0a60c5d4d31db60e15b459d3d | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(finance): manual Arus Kas, drop cashflow auto-generation adde151ee34c3a5501cadc3efa07e29d9f002b69 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(sales): fulfill paid orders from invoiced status fbaec8bf3f8ad5d368c99e5b81d5b0b44e728f55 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(ecommerce): correct delivered mapping, address fallback, receive flow d2d7fc86ad9b2d04ee5679b03b3da27c8f48a18f | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(finance): route cashflow to Arus Kas Kasir page, rename report menu to Cashflow 59d2cd0c4733a4fad1c3bf8d15d52a327c142996 | 2026-09-23 | Historis impor / versi tidak ditetapkan | docs: changelog for checkout stock deduction, buyer receipt confirmation, warehouse SO access 3cd328180e6c102924bce4ab6c429f27c6137ad6 | 2026-09-23 | Historis impor / versi tidak ditetapkan | docs: changelog for Arus Kas Kasir rename and manual cashflow fa3c2d707df8a4036b230206d1a7003d80066103 | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(pos): cashier creates member inline with re-entrancy guard 81ce395aa5d66499cdadbc75b22193d92affb1ea | 2026-09-22 | Historis impor / versi tidak ditetapkan | fix(cart): clear-cart modal slots + subtle clear link away from checkout 76b8e8b1f0d9b92ca56cc39b8c3199c8a24ae5cf | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(sales): restock physical stock on POS cancel, pay never touches stock 3e721583d3a34e1293f615432391a3cfefd20d69 | 2026-09-22 | Historis impor / versi tidak ditetapkan | feat(sales): deduct physical stock at ecommerce checkout, restock on cancel 0c6c1f2283104fbd7480efceebd0c0242e98f7f6 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(finance): arus kas fully manual, rename to Arus Kas Kasir 6e30d9a92b2c034f086f85bb22282adcab682093 | 2026-09-22 | Historis impor / versi tidak ditetapkan | revert(finance): kembalikan arus kas pra-manual b0526cb0637952d46ad742529d752448f42e2358 | 2026-09-23 | Historis impor / versi tidak ditetapkan | fix(customers): unblock cashier access to Pelanggan/member menu 80c32743467232e3ff7e283db3e84ba3553a45b5 | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(orders): let customers confirm receipt of shipped orders 9ca696fef5924c45e29ba25c57ff6d5427b4b017 | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(sales): let buyers confirm receipt (shipped -> delivered) 27f92600e8035a4c6978a6991c0c218c16d9474b | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(distribution): add Customer Order menu for warehouse role 0112311a3cc2463d26b36844c53718a4ec38badd | 2026-09-23 | Historis impor / versi tidak ditetapkan | feat(sales): grant warehouse role view access to sales orders 0250e2bef12e109b864462845ca9d9d32e1925bf | 2026-09-22 | Historis impor / versi tidak ditetapkan | fix(finance): revert cashflow to fully manual, rename to Arus Kas Kasir 68fb3a5ec35806bbef400f272edfbbe8217c3fa5 | 2026-09-22 | Historis impor / versi tidak ditetapkan | fix(ecommerce): saved address picker on checkout, correct shipping status flow 04755c8cfff530a6baf490a45ec44902dcc9afc7 | 2026-09-21 | Historis impor / versi tidak ditetapkan | fix(tracking): localize order tracking map to North Sumatra hubs and destination 6021f576f39e6fbed7027656535cb934d178a529 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(transactions): scope order list to the active store de28da1451bb83d85bf3026067e543695bbaff7e | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(pos): refresh product stock after checkout 5846a7200b6029e7c9fef01c336e246c715f5426 | 2026-09-20 | Historis impor / versi tidak ditetapkan | refactor(pos): drop unit label from product card brand line 79260e407dd10267fa8d961d1164ef5469a7b14f | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(pos): show stock quantity on product cards d76e82b3e8274e50bf06dd4d66d5c63d163f8aa8 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(finance): list receivables newest invoice first 1e6a23293c1834ced8f9c7aba6492e5073639f13 | 2026-09-20 | Historis impor / versi tidak ditetapkan | refactor(finance): single Piutang menu, drop header pay button 0e163eea7e6ac39ec963879543f16ce5629d2dc0 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(sales): auto-book receivable on catalog checkout 2070a023ae245757d6bfea30c01af5905a85a9d7 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(ui): align and wire clear icon callback in KSelect and KMultiSelect 9e88306421c5f0d411d51a376aa4c48fc497f770 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(sales): restrict warehouse sales order view and fulfillment actions a7fbc5b0a44015f4056664af87b99ff8d5ec268e | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(sales): restrict warehouse role to approved sales orders and fulfillment 85c15fe5733bf0130dd042c2469d9e8fd64589a6 | 2026-09-20 | Historis impor / versi tidak ditetapkan | refactor(catalog): remove warehouse physical stock notice banner ff192d3d1d4490b9fa3fd4094a2377d25bc513c3 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(catalog): surface explicit error detail when fetching warehouse stock a9c47984d5f57edfe709bd3401ad646d09f68c83 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(auth): allow sales.pos.create and sales.sales-orders.view on /inventory/stock f7f61d8da88fb473a61d8ca49516d936143bb802 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(sales): populate sales_id on create and expose supervisor on orders b213837ad461f2d2d97563274f6df0634ac734e0 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(i18n): translate permission subjects to Indonesian and add catalog warehouse stock notice 1427b3162c3add396b9dab5e8633a7312fac4500 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(galon): enrich galon products in product detail lookups 4b3f546ae8a8106fe91bccdf9fbd3abe95654a90 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(inventory): warehouse filter uses bearer-only options feed e9ea92022ea799872862846efcd2d832b2e66705 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(catalog): fix warehouse stock pagination cap and clarify out-of-stock per warehouse 7ddc3489cf0849f4dd3a0b41c7b2f506fe632225 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(inventory): allow per_page up to 1000 without resetting to 20 6d1566a0c2e8bf2189d25cf799cbc22950606be6 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(cart): count distinct products in cart badge instead of total quantity 320b8f96b32f4b6fd0c938917231dbef46bab833 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(addresses): add map picker with device location to address form 64702c433f235874777b6f87166ee15332a66b27 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(i18n): refine roles and permissions copy to formal standard Indonesian c083b7921b823373e88b16c891ac459c14def8f4 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(i18n): localize system sidebar menu items to standard Indonesian 88dfd408d959c116b07df3aa93068158969e6aa5 | 2026-09-20 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of github.com:TaruLab/keluargamart-erp-frontend 73136fc84e1e9205957aca2eeca1a3fe6b7b8ec9 | 2026-09-20 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of github.com:TaruLab/keluargamart-backend 740caa4166d1cbdb24fa8c6353b28d2a4b420e6c | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(accounting): adjust context for system role in cash disbursement journal creation a5bb4759f0a75de3e4055abb4480273d66d15959 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(purchasing): add payment functionality for supplier debts and enhance voucher loading 3614d3fc99054f7e33cd78bc44925d63e185cfc0 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(finance): fix cashflow additions and reconciliation across stat cards and statement 10826f921150cbfbaf16a17d4889998425a1b29a | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(ui): KSelect clearable consistency + strip internal attrs, widen journal date filters 1f99065c8f1074c74ac722cca54c37aaafe36d83 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(system): make permission overrides optional and use formal bahasa baku on users page e40c5a9ad2e653e803650a6c737472122b246ecf | 2026-09-20 | Historis impor / versi tidak ditetapkan | style(accounting): align COA cards and table badges with KeluargaMart design tokens 0d8997261da47b24e5c70bf4a364719af7f74977 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(accounting): robust unwrap for accounts, departments, and advances data across GL and journals 477a38cad2ed3c5c42bf3cb2b5dccb96972a936a | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(erp): collapse per-user permission overrides, formalize ID language 4b1e9bd043c2af2143f9d5c054d95f2558902a97 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(accounting): fix empty COA bug and structure 5 major groups matching reference diagram 92b0180e445d8e7483109e9643a3e0601d2350e8 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(accounting): seed standard 5 groups chart of accounts matching reference e1be1cc96eb2513e7c7e85f600a2af69cf9e4c2e | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(finance): compute cashflow net client-side from income-expense c10483f7979231a1fe0b819162eb95c73f826cc4 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(purchase-orders, sales-orders): implement fetchAllPages utility for paginated data retrieval de5d4eb69137f01ff451fae394fb54e6ec57997a | 2026-09-20 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of github.com:TaruLab/keluargamart-erp-frontend bfcf9493976d9aab47df8b58e58ee84ef895a18b | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(purchase-orders): add barcode scanning functionality for product addition 53706b98cdb9eeb3d01a6a1262c89d8b4139b7ac | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(catalog): allow sales to select warehouses and display exact remaining stock de21e421f83ae8b53424e19575bfc4d21becb825 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(membership): normalize dynamic tier lookup to support case and prefix variations 8cdc1d862fddcbf7d554939779623807cb09a62c | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(sales): validate payment amount against remaining balance a9c3af04ed1c92892beeb434b2885bab7271287a | 2026-09-20 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of github.com:TaruLab/keluargamart-erp-frontend 4d8af21d5c4663d5644ab2981b69757e1bea2f29 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(roles): add confirmation dialog for role deletion 19448a96c12fd3b0d1a61db838bace74c4729923 | 2026-09-20 | Historis impor / versi tidak ditetapkan | fix(lhpp): include reference number on sales lhpp payments d32dfde597c2137601eebf95985a07141f82de59 | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(finance): require reference_number for invoice settlement and link lhpp number 1e0e14377e8516d0ed583e7b99efe4345e4d701a | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(receivables): make reference number required on invoice settlement fff4a7119ca0d3e7f49b79da2fe879e6f863184e | 2026-09-20 | Historis impor / versi tidak ditetapkan | change whatsapp cs number 2914454446f909f196340ace1884ebb77f3c58d2 | 2026-09-20 | Historis impor / versi tidak ditetapkan | docs(openapi): document Sales LHPP routes d49e321c79cbbd8919ebbc0a15e22a3d202d2dea | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat(lhpp): implement Sales LHPP functionality for billing visits, including sales grouping and payment processing 22ad87dda4ceacdc157c88ce040aded0b8404b2f | 2026-09-20 | Historis impor / versi tidak ditetapkan | feat: add LHPP Sales functionality for billing visits 4f63eb448e7a74eece764e17b5abd5d82713ad1d | 2026-09-19 | Historis impor / versi tidak ditetapkan | fix(migrations): remove invalid insert to non-existent permissions table in 000076 4cdd8891c9a4810a7ddd09a32a7dd29e808a9dcc | 2026-09-19 | Historis impor / versi tidak ditetapkan | fix(tracking): isolate map stacking context and sync dynamic membership tier rules 3cbe3197e34160a3149ba379c935a53bfd728509 | 2026-09-19 | Historis impor / versi tidak ditetapkan | feat(membership): manage min orders and min spend properties in ERP tier master 29c1c7df42a39b7f76cfa357e35290910d2cb691 | 2026-09-19 | Historis impor / versi tidak ditetapkan | feat(membership): add configurable min_orders and min_spend to membership_tiers 55ff82cada83c973af22786347665960a0e39ff2 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(addresses): replace cramped modal with dedicated responsive form page d5e6ab44ff2b4217ea73b351b8be0265326e6385 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(tracking): add interactive delivery route map with leaflet and openstreetmap 244239d64bb5c897222cd8ddbae53aa3acb735e8 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(orders): render item lines as vertical cards on mobile 1e2e3f664d8a1dd9118394941eb3f66094c5d2b0 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(b2b): replace vip banner with member badge 0ffdf23a5ef016850122643c36c48a23a7612977 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(b2b): shopee-style account hub, member tiering, order tracking, and homepage reorder bc53830b34e329375c6613f631c3e713c3517317 | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(erp): kselect option aliases, tiered approvals, stock movement sync, and hidden tier code 6a57662adf9f11c565424953a345da13e3105321 | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(backend): partner code sequence collision, warehouse stock display, and movement search 73521a1ec4021c5f3275f3344b2c0da707e64095 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(hr): add hr suite workflows, leave management, and payroll disbursement ui 93213294cef0f39bebd93ff03d1e8083f49ca345 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(hr): integrate hr suite modules, leave attendance sync, and gl payroll disbursement 5d25f34918b2458b8bf6d4d76de06484e87dffef | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(inventory): synchronize stat cards with pagination total using authoritative summary 8cc4760ea7f85221e463d8957fa4c2e1f8b59000 | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(inventory): add authoritative stock summary aggregates to ListStock response d6ab397aaff1c49a1d040f5c1b59682c6e9c52b4 | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(inventory): enable table pagination controls and update balance sheet liquidity flow b17ba12a1ec59324ed9f4b5b447c051d11a83c0e | 2026-09-18 | Historis impor / versi tidak ditetapkan | feat(reports): include low_stock_count in balance sheet response c4cfd6b0424e503382e4366d013745c15f6cb58c | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(cart): map ErrInsufficientStock to 409 conflict 83d1bfde89ba406d4853f1ca39a0dbb4dce78844 | 2026-09-18 | Historis impor / versi tidak ditetapkan | fix(b2b): validate stock availability and moq bounds 1526561d54037818dc785c1ebf61807a360535dd | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(sales): enhance SalesOrdersPage layout and add unit symbol to items 3d9c664d32ad29c0d8691d2f97b0e32d92de4269 | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(ui): clean up redundant modal close and table print actions 1760a376b530c5666db57f8d49516adf4d9a5625 | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(ui): remove unnecessary PSAK jargon and redundant modal/table buttons 393fd09fb48e5a118c40ef556e4e4fe64f9b29fc | 2026-09-17 | Historis impor / versi tidak ditetapkan | fix(modal): fix KModal dynamic width and remove duplicate Tutup button in DO detail a46b978786d7e22fc1a06e4a6b35f4c5a41e86b6 | 2026-09-17 | Historis impor / versi tidak ditetapkan | fix(ui): elevate toaster z-index to z-[9999] so notifications appear above modals 9757a17bb9519b2cd9719cdf3cc7dff0fad70ae5 | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(distribution): move Kirim ke Driver button into Detail & Timeline modal ce2ecc0f32e2771da36b6f23bc962249729d91fc | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(distribution): remove duplicate Cetak button from table rows b761df2eedde040bea7cfa8add17bcbc95d28985 | 2026-09-17 | Historis impor / versi tidak ditetapkan | chore: remove NextReport branding from all user-facing UI text 879fd33ecaef5721b4cc56926e86a35e5bd82b63 | 2026-09-17 | Historis impor / versi tidak ditetapkan | refactor(distribution): remove client-side surat jalan, use NextReport only 7f356fbddbf1691cefb1fc97987073a6a7a7136e | 2026-09-17 | Historis impor / versi tidak ditetapkan | feat(reports): apply cashflow stat card revision to FinancialReportPage eaca97edda1482ccd3fa69439ac2dd1c5a96f596 | 2026-09-17 | Historis impor / versi tidak ditetapkan | Change PostgreSQL data volume path in docker-compose 9dfe1f6e899ed21e514c253f43f8c67d16c6fe06 | 2026-09-17 | Historis impor / versi tidak ditetapkan | fix(catalog): compute total stock taking reserved quantity into account cfe935c437e87c80b9901d996a66f0e24809fa30 | 2026-09-17 | Historis impor / versi tidak ditetapkan | fix(b2b): add whatsapp modal, address select on checkout, and tests 40911206288a46c678355bb8b0e27012efcdde84 | 2026-09-17 | Historis impor / versi tidak ditetapkan | feat(pos): unify nextreport print and excel export utilities 81dcce2558b6788ad8d9d4f35232bbc86484c390 | 2026-09-17 | Historis impor / versi tidak ditetapkan | feat(erp): add 7 erp improvements and print fallbacks f74eb616e48e44b14ae8302830ff6f2f514da1f4 | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat: implement CreateWithPayments for warehouse deposits 404c8f8109147f7d0b0814a2062d8630db9dcf8d | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat(distribution): implement undeposited payments feature and enhance deposit handling e68d95911b6099477290e1e95481ded9a7997c3a | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat(distribution): add driver selection and LHPP reference for warehouse deposits 632bdd9a6a79fca9d938d9ed3389d63d1e8ca9fa | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat: add summary endpoint for LHPP cash+giro reference total b433371267703855ba85bea2087b1ae0139d62f2 | 2026-09-16 | Historis impor / versi tidak ditetapkan | chore: fix formatting in accounting RBAC migration file header b23d11d0115314ffc699988156d8729ac31ad35e | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(ui): remove PrimeVue Button wrapper from KButton to eliminate blue box override 54a0983a9dec30b32162bda36b60dd5188054aaa | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(ui): resolve button color clashes and empty modal actions c80152cc00c3ca565807cd41b663b8550085628d | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat(accounting): omit debit credit comparison for non-general journals (kas, bank, deposit) 713f78fb3c361811e094a6f1ac77d19c1da9acb2 | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(accounting,inventory): fix stock page refs, journal pagination total, single-entry balance strip, and print styling 9de5dca9159140bec9d93df4977865068d617e3f | 2026-09-16 | Historis impor / versi tidak ditetapkan | feat(accounting): expand operator role permissions for general ledger and journals 493a37f474e88d53970a85c67aa15c4695987d9e | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(gl): scrollable journal detail modal (overflow-y-auto) consistent with JournalsPage 79d7267cabff840a66eb0bf6176ff62ad9c8520c | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(stock): bind warehouse options to KSelect default value/label keys (was option-label attr ignored) 09c05894f84043d1ed742f59d9986f51ac8d3779 | 2026-09-16 | Historis impor / versi tidak ditetapkan | fix(journal): scrollable detail modal print-area overflow (no-print guard) 39cb9a6e07501b7a9deb1166d4b271f3101ac7ee | 2026-09-15 | Historis impor / versi tidak ditetapkan | test(inventory): assert StockLine.Outlets round-trips through converter b6f4a81702757beaab92c6f28c4b730598d840f1 | 2026-09-15 | Historis impor / versi tidak ditetapkan | feat(inventory): return per-outlet (warehouse) breakdown in ListStock 77e4910c21012eb1385edd297afdcf944b0305d8 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(ledger): sembunyikan counter '0-0 dari 0' saat total empty 9cf75f723473af1bd553d6780e86ae447f6043a3 | 2026-09-15 | Historis impor / versi tidak ditetapkan | refactor(distribution): drop the parallel LHPP implementation in favor of internal/lhpp 9589e0e3e95d084bc5ea701f5f409d40446e658b | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(erp): harden API response unwrapping across reports, templates, tracking, cashflow, and receivables 6c0a86f2b9e3764e7f7363988ca67486e51e52b0 | 2026-09-15 | Historis impor / versi tidak ditetapkan | feat(distribution): add driver management functionality with user creation and listing 87b242536ec355c167c8562efb00eca62310333c | 2026-09-15 | Historis impor / versi tidak ditetapkan | feat(lhpp): implement LHPP service for daily billing report with payment handling 00747d323007d135e2e52219d6445d2664cfea10 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(lhpp): update openPrint function to fetch full details for printing if items are not present 07a6317fc443ec4b982025a0cdb2acfb3f3c057d | 2026-09-15 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of github.com:TaruLab/keluargamart-erp-frontend aef9c854fbc1d20dfa2c8f385d38c66317b0eb0c | 2026-09-15 | Historis impor / versi tidak ditetapkan | feat(distribution): implement driver management for dispatching, including driver list and creation functionality df594fe85a9e74921acc7dcd00a9832e9f91a91e | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(lhpp): transition LHPP feature from mock to live, unify payment handling with invoices, and enhance UI for better user experience 19c217deb9c9edcbaa45c15909f5225a99d17d6a | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(accounting): unwrap ledger and journal response payload so posted journals appear in general ledger a57b3243ad0db29220760862a58acc03691720fd | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(ui): enhance button icon visibility, weight, and contrast across ERP modules b46b441e54828413b4e1179aca2e0a8f5071a914 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(accounting): sync journal tabs with sidebar active menu 91fe6411527110ae48a0bc7251f745871e135138 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(notifications): check route permissions before navigation and support deep query links 7210107406441083813932595dc62ba4e7ccfaac | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(system): filter live notifications by user RBAC permissions bc482d959778c6e0b71941efb9e40f5901baeee8 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(accounting): enhance general ledger button icons weight, size, and contrast c08a35b32cfe96079f84a0b154036ac0631abeea | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(router): add redirect from /purchasing/orders to po route b5cd88d3c68e9c3f821eb3f1ff854467ab179f49 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(system): correct purchase order notification link to /purchasing/po 06c58fffe5ac61d89321fca2eca1eac0aeb92474 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(accounting): enhance journal button icons visibility, thickness, and contrast 652538be8fc2dfee170e61039e03bec8619a9085 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(layout): resolve mobile responsive notification dropdown positioning and unify component 6858923946b165d4be024b6a422be5decb1f6a08 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(layout): resolve mobile notification popup stacking context and touch interaction 111ee52fd3ad7454e2f15d21943ee5b1b908756a | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(ui): eliminate duplicate table header text in KTable and KDataTable 03021ee06016f39e243b7a73c34c5389a9290159 | 2026-09-15 | Historis impor / versi tidak ditetapkan | chore: sync package-lock.json with primevue dependencies 31313da7b160c17afa916a917aca3fa05aa3ff2c | 2026-09-15 | Historis impor / versi tidak ditetapkan | merge: integrate origin/main PrimeVue migration with accounting RBAC, vouchers, and table sorting 3d71b492e38fe6f09270d978b30837061463cf80 | 2026-09-15 | Historis impor / versi tidak ditetapkan | fix(migration): renumber plant and depo migration to 000070 and update atlas.sum 30deb297718e856bf2e81af039dfcaa20c0f8c55 | 2026-09-15 | Historis impor / versi tidak ditetapkan | Merge remote-tracking branch 'origin/main' e34dbf6df7230a867c7dcca4a34253ebbe72341f | 2026-09-15 | Historis impor / versi tidak ditetapkan | feat(erp): add primevue-style table sorting and fix filtering across jurnal, buku besar, distribusi, and hr cd9e417f6dccc6d9e4d71f09f40b7b158bd8b96d | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(erp): resolve filter state desync, search pagination trap, and mock query matching b4ca0a44bb1b4e274c958cd57eb0a73d2ba62e3f | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(sales): include sales rep name in sales order search query ee7d16e9c15f8b8cfe3045bbf8bc7f32e98fa907 | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(deploy): ensure deploy-only compose with ghcr images and safe db-seed fallback a2407a016ed147afc48482ecdb3c4bd40e7ad759 | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(migration): make 000069 report templates seed idempotent on conflict 659902596773fb11870bc15752106cd677b53940 | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(deploy): remove deploy/docker-compose.prod.yml and enforce pull_policy always for deploy-only compose e9f16b0015925dfd9b122d071984c540e2a7d675 | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(erp): return totalRecords and rowsPerPage in useDataTableQuery, guard AudioContext, and standardize tables with PrimeVue b5c372b78531521a6f03c17e367a80345a2ec482 | 2026-09-14 | Historis impor / versi tidak ditetapkan | merge: feat/nextreport-integration into main 9d85aaa7bf1192a09edd0d564ac8d6b18fcc7087 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(b2b): add NextReport PDF document downloads for orders and invoices d5994e8d81afb46e6d5bdad4d76f7f6126f38645 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(pos): add NextReport PDF downloads for shifts and transactions f7ef5eae226f375758b309c7d070327ffd499649 | 2026-09-14 | Historis impor / versi tidak ditetapkan | merge: feat/primevue-migration into main ee3043c33fc13fa98bc8148519184f4483e8709c | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(audio): support native browser system alert sounds and pleasant harmonic chimes c538e7809aef38382968104121d91ce4a18598a4 | 2026-09-14 | Historis impor / versi tidak ditetapkan | test(accounting): add TestJournalRBACScoping verifying ListJournals and GetJournal role guards 49a06a8796bf3723ca991d65ac1e9c537ca0073b | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): implement role-based journal tabs, modal restrictions, and mock RBAC 9ee225b82153e4eb929fa59ca0ab2ba4fc18af32 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): enforce role-based journal entry workflows and RBAC restrictions 6f094d9e0fe0d703092d945e8e03f67c3d616fd5 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): automated purchase-to-general-journal, sub-ledger linking, and DMS integration ea059ddbd9f5a3742523891202f84cb21ecd9d54 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): add plant/depo departments and expose source_type/source_id in JournalInput eff3cce70cdaa93b3003048f1d8beaf92933b62b | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): add desktop toolbar, shortcuts, customer deposits, and GL link 9f76536f252740efe03a275b17b1d0e9dbdbf299 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(accounting): grant journal and deposit permissions to piutang and cashier 940ba7c3afb01ec89b3ed3a1f6f73b8c81f2839e | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(accounting): scope journal number sequence by month using seq.MonthStart 74f34c3ad2212fcaa205f4080776c62cbbe5daa3 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(primevue): migrate to PrimeVue styled engine and standardize data interaction across ERP 1729f9881efb57b205ca0133949540969db0ca56 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(erp): complete PrimeVue migration for Reports, Dashboard, and all application components 822812f59ef63683b64eb6885ede2619ecf679ad | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(sales-finance-distribution): migrate sales, finance, distribution & tracking pages to K-components ac044e1fb88922eaaf4f97ef1770c820fc7eee4d | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(purchasing-inventory): migrate purchasing and inventory pages to K-components e3bac9b9a014f05d377ce4238580bbabb3f08c6e | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(masterdata): migrate masterdata pages to K-components c0ef26d9f4b9a81f0948ba4951f4881fff494ce2 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(system): migrate auth, system, and settings pages to K-components d14ce2b2a59e1aec38eaad36b5af272490863359 | 2026-09-14 | Historis impor / versi tidak ditetapkan | chore(ci): align nextreport build-and-push with existing GHCR auto-pull workflow bb6eb5b14179d424d38ca0e77a8ec173fd3511fd | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(reporting): unify NextReport engine into backend and add VPS auto-deploy workflow 7d064d7a5d459431bfe90be27eed2b6614bcd1e7 | 2026-09-14 | Historis impor / versi tidak ditetapkan | merge(main): resolve atlas.sum and renumber report migrations to 000063-000068 f6fc50a65d4ffc7822504c32f08e4c2480e9ca00 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(reporting): integrate NextReport proxy, visual templates, and print documents 7d147f3827a5e86375b1fee30004662f6dfd5a75 | 2026-09-14 | Historis impor / versi tidak ditetapkan | fix(purchasing): resolve printGr syntax and merge accrual journal with NextReport slip print 7e9e276feb38c81ce63c0f3ed8e3ecac4c889fc8 | 2026-09-14 | Historis impor / versi tidak ditetapkan | Merge remote-tracking branch 'origin/main' into feat/primevue-migration 36a6d35096e2a6dc314fa9a91bfadee45cf81046 | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(reports): integrate NextReport designer, print slips, and visual template manager f81583d6da6379d3b96aee83c03f00ad4e41eb4d | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(ui/k): full K-component abstraction layer — Phase 1 44f8ba917e50b80edcecb7c80ab5d04455febd8b | 2026-09-14 | Historis impor / versi tidak ditetapkan | feat(ui): primevue v4 unstyled foundation + KButton proof 0d16b4365a4f2813ddb7a0a6cdf5577d70baa518 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(migrasi): header 000062 + checksum atlas.sum 6dcf55f4a8dd811415c932a3c82e6c7d42942d74 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(migrasi): renumber 000060->000062 tabrakan dengan visit_schedule_rbac 0cb6d726508da7e7b5c65b2f69f7caab0451ecb0 | 2026-09-13 | Historis impor / versi tidak ditetapkan | merge(jurnal-oto): drill-down akrual GR + badge sumber di daftar jurnal 947886b931fdc1d4919bea7797f1928370848d2f | 2026-09-13 | Historis impor / versi tidak ditetapkan | merge(jurnal-oto): GR otomatis draft jurnal akrual pembelian + drill-down 9574ca7b5495cc89c45ef4ba638569432c76454e | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(jurnal-oto): kembalikan Reference+Description di insert 434b47c44df2a730919be5c0fc19e53dd33e5127 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(jurnal-oto): lengkapi source linkage goods_receipt/GR-id 4c9f684344a07a94a35fb5cfedc07dbe99f9b7a2 | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(jurnal-oto): GR otomatis draft jurnal akrual pembelian + drill-down 7f9b6acfcc85efafc2ab2e44f36af1bd08fc8ffa | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(jurnal-oto): drill-down akrual GR + badge sumber di daftar jurnal b20f1c5f292c0516ffa6750304bf72a4686f99d7 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(products): derive flat category_name/unit_symbol from nested objects c8f9de91b1d2ac01a0111663cdd5f0480bc5ac9a | 2026-09-13 | Historis impor / versi tidak ditetapkan | merge: hapus fallback atasan hardcoded + blokir submit tanpa approver 3bca4e0c8f15d7631ed8b22e98f55ac833f3cfe0 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(sales): hapus fallback atasan hardcoded + blokir submit tanpa approver a0924d3e30acba5018e4b8e467839a760f9c051c | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(accounting): role-based journal input permissions and ledger status linkage 4b2a1f8095c44d4cb7749cb17766f727b4e10d04 | 2026-09-13 | Historis impor / versi tidak ditetapkan | Merge pull request #8 from TaruLab/feat/rbac-setup-gate c237268fc082cfcc7a15c0b13935b8361b6472fe | 2026-09-13 | Historis impor / versi tidak ditetapkan | Merge pull request #11 from TaruLab/feat/rbac-launch-reset 47d8e4b3c2e6027c3b888167b93477525d4cbcce | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(parity): implement ListSupervisors mock and add route to openapi spec 6aee4ac0d9fdee159c346983ef17c0a61cccbd62 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(sales): supervisor options endpoint and accurate urgent notif 759cf57a01b7ac26e2281ae31c4266562adc7055 | 2026-09-13 | Historis impor / versi tidak ditetapkan | fix(sales): outlet stock filter, urgent flag and supervisor options 4bfeda91308ff86342ecd25d736ea742ab3a4d73 | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(rbac): human permission labels, admin setup gate, zero-grant mocks cc5c1010cffe931dbc6ae62eea75800d95fc42dc | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(rbac): launch reset, wipe role_permissions matrix 026e9566daa7f873f076c93ffe7644d5a85b7eab | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(lhpp): live LHPP billing API over dispatched DOs (#10) 79bc1858a44d0efc82b0639b92b91190f43bf64a | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(salestracking): add endpoint to list sales employees for visit scheduling b60d5eab6851d0e0fb710cadd511e48288e2eb99 | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(tracking): add my visits and sales employees endpoints, enhance tracking functionality 6241b4879ab4a0b8899251fc1a7c06c45e13acaf | 2026-09-13 | Historis impor / versi tidak ditetapkan | feat(salestracking): enhance sales visit management with visit types and scheduling permissions fbbb3af1ffe0b20a8dde1d6ebdc3e9df76841efa | 2026-09-12 | Historis impor / versi tidak ditetapkan | fix(purchasing): resolve lineTotal falsy zero bug and link manual PO to existing approved PO e9dbc26e05b22d3904a37425c5aafa56d34f8fc6 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(purchasing): add manual PO option and 6 required fields to goods receipt form 67b80c5484c4b2b60498d6b2dbcbcbf102467ee7 | 2026-09-12 | Historis impor / versi tidak ditetapkan | fix(catalog): resolve product image URLs, add error fallback, and show thumbnails in catalog and master data 056349241cfbc44278ab649fbcb89153eb962cf6 | 2026-09-12 | Historis impor / versi tidak ditetapkan | fix(catalog): populate image_url in ProductView alongside image a2cbf1306760fd524ad0a5960d317cfc86fd34c3 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(core): RBAC role/user selection actions, receivables KPI summary, voucher print formatting, and driver cash deposit UI (#7) d35344de6361bf7bdc3c8a45f0e07cabe90bd1a5 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(core): RBAC admin gates, finance receivables overdue filter, SO voiding, siren notification separation, and warehouse cash deposits (#9) fe11577436ccf494d2f0f9dc992ab72d6d500899 | 2026-09-12 | Historis impor / versi tidak ditetapkan | merge(referral): read-only sales attribution on customers + SO detail ccb9b2ebc03b763e6950a1e859c976367cd88c29 | 2026-09-12 | Historis impor / versi tidak ditetapkan | merge(gr): searchable PO, supplier field, total harga on receipt form 930dc2d4ff193f145e582ffcbce216cc875cde25 | 2026-09-12 | Historis impor / versi tidak ditetapkan | merge(referral): business-only sales referral code passthrough 930c4db664700e19eda30f0a15655b6ff955a10a | 2026-09-12 | Historis impor / versi tidak ditetapkan | merge(referral): business signup sales code + checkout attribution 321c56e4b678ebc2bce78d64600a0c52a46c0bd4 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(referral): business signup sales code -> assigned_sales_id + checkout attribution b972945bd35596d77268a1f577a7684c867a7929 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(attribution): read-only sales display on customers + SO detail a275d70e18fd59ecb2fec6ca97f1551648f5c9f9 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(penerimaan-barang): searchable PO, supplier field, total harga on GR form 13a70a5097be8251032894a93eb5396afac037f3 | 2026-09-12 | Historis impor / versi tidak ditetapkan | feat(register): business-only sales referral code passthrough c5e96426d58ffda3a64f0f0dd481fd6bcdb64ac7 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(rbac): editors consume backend permission catalog (#6) d9089861fc959951490890e92570629ec5d0ca24 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(rbac): single-source permission catalog, DB-only role resolution (#8) 96f2877d7cd175895bcf6137d1c6ae426e801e5e | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(pages): restore dropped util/service imports + full SFC import test (#5) 34a6178ba0f87dd04452f1219c736124049d1ad6 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(pages): restore dropped vue/store imports + SFC import regression test (#4) ae992c5de844277cdb8f747efafbe5a55e8c52da | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(rbac): registry-driven role manager + effective matrix editor (#3) 29dd61f1e97154c48b54ceab1061733fae4124d3 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(rbac): frontend-driven role registry + effective matrix (#7) 35c8812555b35a68d2c8bdf30c0daf4b283af11a | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(reports): Cetak/PDF docs for shifts + transactions lists (#2) c5a8170ddc34a583bb9996f49bdd6d588bfc1ef7 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(reports): XLSX export + Cetak/PDF docs for all report tables (#2) d5f24f96ee8ce01cada1b7e2107012bf1af2e477 | 2026-09-11 | Historis impor / versi tidak ditetapkan | test(integration): cover phantom-schema paths (employees, notifications provider) (#6) 322ede77a4def71429088f145c1261b2ea257a25 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(hr): add missing employees.job_level column (000056) (#5) 7603804135ebefc20906419e5b7d64154499f11f | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(notifications): low-stock alert queried phantom product_warehouses table (#4) 05638f7c3bd5589243e17011c8ce2cdec0dd0de5 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(auth,geo): forgot/reset password, warehouse geolocation, honest payment mapping (#1) 5f1c17ae28dd3b1486df80d9423389a424d4fde1 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(export): CSV ke XLSX via exceljs (shifts, transactions) (#1) 806086e32e5e5d715f84c65529c56198a00c3906 | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(rbac,print,export,finance): tri-state permissions, launcher gating, modal print fix, XLSX, voucher print (#1) 0fdfcf3eabd10a7318a71458d1f610435b9d819f | 2026-09-11 | Historis impor / versi tidak ditetapkan | feat(auth,purchasing,inventory,finance): RBAC segregation, voucher-AP journal link, reset mailer, geo DTOs (#3) 04c34b47f96b228197d56ecb781340909338ea67 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(vouchers): ignore client-supplied status on create (server-owned transitions) 0d12ca4bc582ae8f28a54973f185a5764d57faee | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(vouchers): server-owned status, reconciliation hint on debt-pay failure 8bb7c1a0d51d6cf8268176a6070855767f2a223b | 2026-09-11 | Historis impor / versi tidak ditetapkan | chore(security): remove dead self-service reset code paths 14a5b8dea737c1a6ba454df87fe0dc5a5b57bb33 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(transfer): guard detail.items null in v-for (stale backend response) ac34846949cadb70e38005f4d7ea058529a5b41b | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(auth): reject password reset for deactivated accounts 20f06d32edc86cdc102b9d85255635248f4ed18a | 2026-09-11 | Historis impor / versi tidak ditetapkan | chore(security): drop dead reset-password page c4711f715a51857865cdb20240da1fa26a979895 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(security): replace forgot-password form with admin-contact notice f3bce122f6d9f871694c21bc2f051c95ab63ed3b | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(security): disable forgot/reset-password endpoints (P0 takeover) 94afe7bae600806d24ef87ae34eadc5636ae2ef2 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(ci): sync bun.lock (exceljs added without lockfile update) 404af8c88aca687d354893d58a8bbd8ab6531045 | 2026-09-11 | Historis impor / versi tidak ditetapkan | fix(migrations): strip UTF-8 BOM from 000052 breaking atlas apply 555aa25659af746b3ecd37639b10bcc8758f6c18 | 2026-09-10 | Historis impor / versi tidak ditetapkan | feat(b2b): wire forgot-password to reset token flow 1dafcfb9bc8e724c0b9e5df58d304639b55bb8e7 | 2026-09-10 | Historis impor / versi tidak ditetapkan | feat(erp): po form units, xlsx exports, debt-pay vouchers, live balances, journal polish f05766e60bf965b7804454e63ee55901a5f96c04 | 2026-09-10 | Historis impor / versi tidak ditetapkan | fix(erp): finance rbac, forgot-password, transfer items, receivable address, account balances b4530b5422e379b01e19682b7f8d53d09d83dcf4 | 2026-09-10 | Historis impor / versi tidak ditetapkan | feat(b2b): add forgot password service and GPS location detection a67789dec77e68c1feaa8e6f1f32b3b5b2da8d6a | 2026-09-10 | Historis impor / versi tidak ditetapkan | feat(erp): PO approval, goods receipt, vouchers print, excel export, and rbac fixes c7c55ba86bcf2377ae5bb4b10562c842e8f4f1ca | 2026-09-10 | Historis impor / versi tidak ditetapkan | feat(auth): add finance_head role and trim finance permissions (migration 000052) da40b51e33f12c5d907e5762917c2b340008ee4a | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(b2b): wire changePassword to PUT /auth/me, drop local session on revoke d2ed16810e5100ae7a169f254341afbc7c2855fb | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(pos): fail-closed customer resolution, never substitute walk-in on unknown id fde03312a92462157c97cec573045b5bac57b405 | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(rbac): sidebar, guard, dan role management full permission-driven 1fe36ac543c9cee4c7c54251b64e2b82bad5f124 | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(authz): tutup celah RBAC tanpa celah, permission-driven penuh 33c16f339f3c45604bf915863a38bf00387e678b | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(erp): recover sales, RBAC, detail, and mock fidelity defects 449bb48d31b30f1fb9659f0550b481cc2b46118a | 2026-09-09 | Historis impor / versi tidak ditetapkan | fix(erp): recover accounting, authz, and serializer defects 9b7b47908df8f7d23d62cc1f02cd1f2c7d2758a0 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(erp): purge hardcoded fake data, static mock arrays, and wire real API sources 9060b7029e54afe11a4e28f8e219ee7e1afa9e4d | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(ci): update db/schema.sql with sales_orders.payment_terms for sqlc generate parity 7c7768ce522ac725d2c3cdf4eb0a663b93141d3b | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(reports): use products.selling_price in StockValuation and update atlas.sum 25cbf0860479b962bb46a130f361d2b22b810256 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix: tampilan payment_terms dinamis dan piutang dari API nyata 8ded60133c6bdf73656c45dd2a97a545e895015b | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix: snapshot payment_terms ke sales_orders dan perbaiki due_date invoice b1c2166923c1ce39335a1fb7ab5889d9b749aa17 | 2026-09-08 | Historis impor / versi tidak ditetapkan | feat(reports,auth): implement breakdown & aging report endpoints and grant stores view permissions 898b88530729af82affc6f8c235bb3275946d7ee | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(pos): guard can() against falsy or non-string permission argument 41031ba3085b421e4770b81a0b995f0e7fe38b8e | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(erp): fix missing sidebar navigation caused by TypeError on undefined permission check cfdcf83020a140054bfefc9e99093c7886b2dcf0 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(erp): resolve core ERP UI issues for permissions, sales, finance, notifications, and mobile 3e61bf3a9d4e93cacc54a23b642c27e24342384d | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(erp): resolve core ERP issues for auth, finance, warehouse, notifications, and tracking 0737b029e9d5213269c3410f91609dcaff97d863 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(db): seed sales parity with 000044 (strip POS grants, add lookup/create + dashboards) 73af316689d13ddf82d032099a682261798a11dd | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(erp): can() wildcard-first + owner bypass, launcher owner tile parity 45aff0fe1357a6efb99f6a69acc31f402a4a4c98 | 2026-09-08 | Historis impor / versi tidak ditetapkan | feat(reports): add detailed PSAK statements for profit-loss, balance sheet, and cash flow 88b6b22c7c7ad55b8e1cc74c100dca1579ed9334 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(resilience): add reactive offline network detection 51db6ad40ba27dc13d4d363a5cb347fa89331a2a | 2026-09-08 | Historis impor / versi tidak ditetapkan | feat(pos): add rapid undo, galon routing, and shortcuts modal 900d7eb7a68548a454f10a972896720eacc74233 | 2026-09-08 | Historis impor / versi tidak ditetapkan | feat(accounting): add 7-journal suite, shortcuts and bugfixes 3abc215cfb8f02c235a052d67a79313e7c53b470 | 2026-09-08 | Historis impor / versi tidak ditetapkan | Delete .opencode/loop-history/loop-mt1um9vl-5otk5l directory 132a71af0f88ad14bca16777a10e764ea2f713ed | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(pos): break guard self-redirect loop that froze the tab f4e2417316eaa8ed224168e9b9f5592f9229c3a7 | 2026-09-08 | Historis impor / versi tidak ditetapkan | fix(auth): publish wildcard in EffectivePermissions for admin/owner bypass 3d7a999de7cc39c82c5c6873b4f9782915a3357b | 2026-09-07 | Historis impor / versi tidak ditetapkan | merge: fix/local-env-cors (accounting pages + launcher/toast/nav) into main 1d0de7ca536e92932dedee7bc40deda97445418a | 2026-09-07 | Historis impor / versi tidak ditetapkan | merge: fix/local-env-cors (frontend memory doc) into main ab15f968e9d3254a1c593cfd660d7a0252fcc859 | 2026-09-07 | Historis impor / versi tidak ditetapkan | feat: add barcode-detector and zxing-wasm dependencies 667d0bafcd60074d59174848bafb7fb48e0cc201 | 2026-09-07 | Historis impor / versi tidak ditetapkan | Add frontend project memory doc de214d6d0a151514a4fbc652085b30fb82d1172e | 2026-09-07 | Historis impor / versi tidak ditetapkan | gilang1 9254d68b0250f9398dec51265673bff33f079e94 | 2026-09-06 | Historis impor / versi tidak ditetapkan | feat(dependencies): add barcode-detector and related types for enhanced barcode functionality f224c5a1e9e153a3684a653f8ef5f927299cf007 | 2026-09-06 | Historis impor / versi tidak ditetapkan | feat(pos): add barcode scanning functionality with BarcodeScannerModal and update product retrieval by barcode d577549017e070a406c78356afc825be519f6f64 | 2026-09-06 | Historis impor / versi tidak ditetapkan | feat: add barcode scanning functionality e6b89968cd146a94b37d03184af19875ca6ebc9e | 2026-09-06 | Historis impor / versi tidak ditetapkan | feat(stores): add geolocation support for store locations with MapPicker component 55f62c33ef549cec59ba1e29e6236007f26786b6 | 2026-09-06 | Historis impor / versi tidak ditetapkan | fix(BaseMap): ensure leaflet CSS is imported for proper styling 4cd1160d4a5930a80b415238ec31e0bceafe3b1a | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(db): backfill product images on existing databases (000047) c33c8d5a5d1d10838c0d1ae2ad7a6ed6a0dbd851 | 2026-09-03 | Historis impor / versi tidak ditetapkan | fix(build): sync bun.lock after dropping chart.js/vue-chartjs 02d49e408a6f359819ef741420f600eebcf106fb | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: Add new migration files for sales hierarchy roles and store-warehouse linking 94456a173acaa57b7508bb0caedf1d1cd2665947 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: Update product images in seed data for better representation e8c840b4aa9f3b43a0033a6b8548eb187debe946 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: Implement store manager (kepala toko) features in ERP 218c7f2f6241e140f1d499d68d3d4f39ec3c98c9 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(pos): enhance transaction item count and line count calculations d9865c728d8e6d5663c4185d64c131a0abf3186e | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: Implement outlet dashboard and scoped reports for kepala toko 03eb2c22e5934968ecb93f1284961d17dbd656e2 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: link stores to warehouses and enhance store details 4cc5dff27509c1227da41a3e04c3156b7acd7b72 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(pos): enhance cashier functionality with outlet-specific features and updates d186473a04d0ca75c345ae8508f91d4680bed780 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(membership): implement membership management features including tier settings and member list 4f82053b3f17d8ae085746681f36ffbea2115491 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(pos): update changelog and workflow for cashier role; remove delete customer button ad142a1cd057e51314024fa8a11bc574ea4b09ac | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat(constants): update role definitions and add retail outlet roles for store manager and cashier d2043ce64e3f7b80fbd1701ee582ed1028ba6ff5 | 2026-09-03 | Historis impor / versi tidak ditetapkan | feat: Introduce store roles and permissions for retail outlets 3a2c2e0b3f46ea59dda9af77f2dd61ab9b876c2a | 2026-09-03 | Historis impor / versi tidak ditetapkan | refactor(pos)!: sederhanakan POS menjadi aplikasi kasir murni a391a26720b16c89298b4c46a7852bb4dfeebff3 | 2026-09-02 | Historis impor / versi tidak ditetapkan | Merge branch 'dev/fatahul' 2e615a5b1a971a3476e02cb39692cea33650d215 | 2026-09-02 | Historis impor / versi tidak ditetapkan | docs(openapi): document POST /api/v1/auth/register 631cf2c1fa2c3d3aad404b7998801dd5a601bbfd | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(sales): add fulfilment steps for warehouse operators and enhance order status management 811b697cdcc043e6a36dae13c2106b82d28c8d3e | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(orders): add fulfilment progress and membership discount details 5d16098d81657474eab3dee7ac4f35b2aaa72878 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(sales): implement fulfillment flow and advance fulfillment functionality 1c9b3590690bea62aeb67d2d8ba23db22cc07a7f | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(sales): enhance sales order details with dynamic labels for ecommerce orders d3c80aa291995116caf5a53d37774a6d7649fd29 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(auth): implement self-service storefront signup for buyers and linked customers 092b093f2c8c9305903f3e243fefc554c526ff62 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(register): implement self-service signup for individual and business accounts 365a7be2c02539aab5d947c631d4c11ee5ff8b75 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(checkout): enhance checkout process with new steps and optional shipping address 958436416a7f12b29141bdf1fdac51a8d0b83d30 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(cart): implement membership-adjusted pricing for cart items and summary 05db5802e26d31f67416548055fc8cb1ecf46280 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(cart): add membership discount and shipping billing details to cart and checkout 303a9d304c9d477ae84851a211c2926a0206ae31 | 2026-09-02 | Historis impor / versi tidak ditetapkan | feat(cart): implement authentication guard for cart mutations 5236a8ff5e39c3c19f1feee91b8bf2ecfec956e2 | 2026-09-02 | Historis impor / versi tidak ditetapkan | refactor: simplify account layout and navigation structure 6511c55335797a323b0f8cfe94930d65b7c54aac | 2026-09-02 | Historis impor / versi tidak ditetapkan | chore(git): add .gitattributes and update .gitignore 53bf2ebc1a227b9a206b8a13dc5ca1ec4859d608 | 2026-09-02 | Historis impor / versi tidak ditetapkan | chore(git): add .gitattributes and update .gitignore 106119b292b0937900879f64988a1225aa6304fd | 2026-09-02 | Historis impor / versi tidak ditetapkan | chore(git): add .gitattributes and update .gitignore 671d726768eab008b5f48d7a2daa1da0d287e94d | 2026-09-01 | Historis impor / versi tidak ditetapkan | Merge branch 'dev/fatahul' fb8ae5cd35f6e87288c06ac1fbeaaa3ad6462e49 | 2026-09-01 | Historis impor / versi tidak ditetapkan | fix(hr): align performance test fakeStore with regenerated sqlc types 1a2f6019747500e5f9a95f76993b3737380f0b3b | 2026-09-01 | Historis impor / versi tidak ditetapkan | Merge branch 'dev/fatahul' 6a551d99368ca5477bcb285b0c56049b3f973fe1 | 2026-09-01 | Historis impor / versi tidak ditetapkan | fix(hr): wrap nullable decimal scores in Get/Update performance paths 96b5d94210b1a56d29894ed7df38a098249c74b9 | 2026-09-01 | Historis impor / versi tidak ditetapkan | Merge branch 'dev/fatahul' 7217ec7819120fb76c94fbfb806b662d2df68284 | 2026-09-01 | Historis impor / versi tidak ditetapkan | Regenerate sqlc code 2e1a8e89b0ff071542ef32974978e825ba6f301f | 2026-09-01 | Historis impor / versi tidak ditetapkan | Merge pull request #2 from TaruLab/dev/fatahul 2a143e30f328414a3cba9fd161c5e5cdeb3a60e1 | 2026-09-01 | Historis impor / versi tidak ditetapkan | feat(inventory): consolidate stock movements into a single page dbc8b6ec8a73d10214453a19b9cfc2111aa7e93e | 2026-09-01 | Historis impor / versi tidak ditetapkan | feat: update terminology for cashflow and reports, enhance payroll slip printing, and improve supplier debts page layout 709d7d85c81298c605c72b6762f3b7861794f607 | 2026-09-01 | Historis impor / versi tidak ditetapkan | feat(sales): integrate supervisor approval flow, catalog draft tray, and demo hierarchy logins a0f2d2db230a5b0fc5a508cc6e00f7f0fe634276 | 2026-09-01 | Historis impor / versi tidak ditetapkan | feat(sales): add sales hierarchy roles and order approval workflow 01c1b660ad83a32307f7e8d6b2d4464c70cdb736 | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(seed): add sales hierarchy and dev alias users b5c7816086e7dd1cd259ac2ebc36be8596605f07 | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(sales): revamp sales & sales tracking modules (13 points) 63eaed4d992202dd879972f3f3274740a93ac7d4 | 2026-08-31 | Historis impor / versi tidak ditetapkan | fix(ui): eliminate conflicting w-full on AppSelect and AppInput to ensure horizontal inline filterbar 992f11e616bd5ed9a9c72e78512eee2fdea5f46b | 2026-08-31 | Historis impor / versi tidak ditetapkan | style(hr): refine and align filter toolbar inline across HR module pages c6a26d2ba3c6c6098b43598beb87b74bbe70b326 | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(hr): add job_level hierarchy, attendance detail, and employee performance appraisal endpoints 2d73816ee1de9a547fa58a35fd3bbefeb790c2cb | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(hr): add employee CRUD, attendance detail & recap export, and multi-level performance appraisal 788ac5b650b1233070a3c72c4236e0356b09a201 | 2026-08-31 | Historis impor / versi tidak ditetapkan | fix(sales/pos): change discount input and calculation to percentage 2dc802ea5b1136bfbf6e7817ada295b933ff0059 | 2026-08-31 | Historis impor / versi tidak ditetapkan | fix(sales/pos): fix cart total price summation and update discount label d825dcc620b9075ce3f7eb445150862a01cef06d | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(erp): auto-expand sidebar and open category accordion on launcher click fe1d1c9164cab7d46fe6f6a945661ae499ec0ac7 | 2026-08-31 | Historis impor / versi tidak ditetapkan | feat(erp): revamp launcher with modular Odoo-style app grid and seamless icons ceaad69baf861673e65bc2a04b1f433349bdfcd7 | 2026-08-29 | Historis impor / versi tidak ditetapkan | docs(openapi): sync stubs for contract test a470003d921e66fcf1519d91625145d40d26e080 | 2026-08-29 | Historis impor / versi tidak ditetapkan | feat: modern go + wiring stubs a416ae0a9e4923425f30e7b66a95e084b7159316 | 2026-08-28 | Historis impor / versi tidak ditetapkan | docs(contact): point source/devel links to TaruLab org repos 6db2a189a3e94cea2dc1e8a2c856ef2126480f51 | 2026-08-28 | Historis impor / versi tidak ditetapkan | fix(authz): let storefront-admin reach B2B customer + payment surfaces 64bf2025cdaafb01426aa20faba39e3ad61b2f51 | 2026-08-28 | Historis impor / versi tidak ditetapkan | chore: ignore local audit/ working dir 7966c879255c5e7b0c0683e698403fdf79edd267 | 2026-08-28 | Historis impor / versi tidak ditetapkan | fix(sales): allow printing invoice from sales-order modal 9329468b01b85a36eed2a0fc70807463e189af55 | 2026-08-28 | Historis impor / versi tidak ditetapkan | feat(backend): storefront-admin sales access, sales activities endpoint, in-tx inventory movements f83a89a1bdc673731f6daef8c0316ad96b721aea | 2026-08-28 | Historis impor / versi tidak ditetapkan | fix(pos): use /warehouses/options for cashier warehouse list 2aa5f9cafe5c619e8c8fc563de46bd8d315aa52c | 2026-08-28 | Historis impor / versi tidak ditetapkan | fix(erp): handle wrapped orders payload in ConsolidatedPage 881b1cd6108a171fb11334234300aefb070a8312 | 2026-08-28 | Historis impor / versi tidak ditetapkan | docs(b2b): sync changelog to git history (authz-audit + follow-ups) 29001b38506237fca790e514452f30eda922eaad | 2026-08-28 | Historis impor / versi tidak ditetapkan | docs(pos): sync changelog to git history + fix contact email/identity aa29aecd65ad4fec5923036e1d2f6da9b86ace0c | 2026-08-28 | Historis impor / versi tidak ditetapkan | docs(erp): sync changelog to git history + accurate developer contact b5cd6eccd4e8c114e4cc3b9aaf2d2bcb778db913 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(erp): require warehouse for stock in/out and harden inventory pages aa0d3f7dea0dc9f58bf1a0ba0972ffc1e5151646 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(pos): merge Stok into Produk, auto-scope stock to logged-in toko cdf868033e44ec1cc3a3ff5b890c1c01aee994c7 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(auth): return user stores in /auth/me and wire store resolver 0871f302d899a29ce8cc060de98b0d2d0883ce69 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(seed): set application_access='pos' for kasir/owner so reseed keeps POS access 503c0b7697aa270912f90a8360dedc13bed1e743 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(erp): set VITE_API_URL empty for compose same-origin proxy 9876d370bdbfc2a064fba89d49777e558883c11d | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(pos): set VITE_API_URL empty for compose same-origin proxy 65d7c638b16e6b32036bbf9aef61f8c096e8f9f9 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(security): harden containers (cap_drop, no-new-privs, RO+tmpfs frontends/backend) a58a8425451e7556730a08d783196711a2f66104 | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(backend): sync OpenAPI with sales-orders/me/{id} and harden password test vectors 1d6f9705a889673e6ae68da6c07d77c30c1947ae | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(pos): harden nginx cache and split vendor chunks to fix login timeout 82b0f3ccad37a082cfc47e261bd97b1ddf5df03a | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(erp): eliminate circular vendor-http chunk crash and harden nginx cache 3d5ab1068d7500288da48849bc5bdbbeb05f585a | 2026-08-27 | Historis impor / versi tidak ditetapkan | fix(deploy): run erp/pos as root so nginx can write /run/nginx.pid 77d980a352a2c08d671064430d48b6244bdd8841 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): buyer-scoped reads and proxy query handling 577bedff2f390ed6d5105cc215f615319239e330 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(pos): map lowStock quantity correctly c66f2dc27bcc0e431e0a9ba068eb31df9d84f856 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(erp): honest stock-in payload and cashflow summary unwrap ebfecfabd278c9a3ac6f24d0ed28118c985ce6cf | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(security,ux): harden buyer order access and password policy 4ba79b44685289bbf476d37ab501b3a345f28e76 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(db): isolate 000038+000041 to search_path, idempotent galon_code 55dae15c24e076a6ded82042a8a0508a81593e65 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(db): 000038_galon_barcode.sql idempotent (+ atlas hash) ec865b6c7ef80eace660377079a5d347296dd9af | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(ci): cashflows nesting + openapi parity, pricing test 9aa285cc5281a642d4aaf66e7bad8e84d4dd4248 | 2026-08-26 | Historis impor / versi tidak ditetapkan | merge: authz-audit-2026-08-25 — RBAC gates + production audit 1ced357a167147edf5c98a256f871b94bb6b129d | 2026-08-26 | Historis impor / versi tidak ditetapkan | merge: authz-audit-2026-08-25 — frontend production audit + POS fixes d3caee051dc7b5a4e7a86d1c1a89f943eecf7909 | 2026-08-26 | Historis impor / versi tidak ditetapkan | merge: authz-audit-2026-08-25 — frontend production audit + RBAC gates d6aed37ad522efd6fd262d29c353f21dd3dc0eda | 2026-08-26 | Historis impor / versi tidak ditetapkan | merge: authz-audit-2026-08-25 — frontend production audit + checkout P0 8669b018c512bfbecdc53b4ea132a3c1667ea46a | 2026-08-26 | Historis impor / versi tidak ditetapkan | docs(audit): 2026-08-26d frontend production audit + DB/env fixes d5f71f68951b01da58f1dd1db6a689e1046ea554 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(pos): permissions fail-closed, receipt tax, vite proxy, production audit f2c0bd1a395da4e4fd9c3350415bf98d00be4988 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(erp): upload path, nav reports, mock parity, vite chunks, production audit 9cba2211fcaf9bde715e177cd105e53fd15601a0 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): checkout payment/shipping card click, cart auth, production audit 9582b71c0a386c58ae0d5255240fa1455fdb2799 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(system): enforce weak-password policy on admin user edits ccebf75d497195d461b751805b93ed3130cba4ef | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(settings): persist server-first and surface save failures 195387b86cf542035d495472e41b21069ec9986e | 2026-08-26 | Historis impor / versi tidak ditetapkan | chore(docker): run nginx as non-root with writable cache paths; pin action SHAs 92c199871fd94cc8dc9c6f3d897ab5c3208ccfc3 | 2026-08-26 | Historis impor / versi tidak ditetapkan | chore(docker): run runtime stage as non-root appuser; pin action SHAs bff1fbe03b7d8a8f94220918f53473e2e32ea051 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(auth): reject common/low-complexity passwords on change 62fc323082dfc33ce876666a123feadd72512fd5 | 2026-08-26 | Historis impor / versi tidak ditetapkan | docs: document open checkout step3 bug 971a03b5f080d49793a7139f2c081c1551e3acb2 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): force button type on place-order to prevent native navigation e294c00fc2efa9f3e7fe53da6c6afe03f77ae3b5 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): isolate checkout loaders so shipping/payment defaults always set 0ef950d4201197e4386d5ffb42b96a70df6e10de | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(pos): surface customer list load errors instead of silent empty state 6a1fbf51f29533e0e45047be5b551bd999e6058f | 2026-08-26 | Historis impor / versi tidak ditetapkan | feat(erp): PO print document, SO status/detail fixes, AR actions, cashflow accounting 24da5a8f35b7e1a9d2aa2b57fc288ca121db78e6 | 2026-08-26 | Historis impor / versi tidak ditetapkan | feat(finance): cash/bank accounts, COA counterpart, flow classification, payment vouchers 29085af78b1b55a53f5edc7febeddd32adb8f293 | 2026-08-26 | Historis impor / versi tidak ditetapkan | docs: record accounting hardening business rules (2026-08-26) 748ea4745aa91c4e86a139a37bb9a52119cd9547 | 2026-08-26 | Historis impor / versi tidak ditetapkan | docs(audit): record live authorization verification session c46ea3a25e5b883e5100e5356ce9e42ff2df5544 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(pos): accept EffectivePermissions maps from /auth/me 0618b2d78e23a74e8c62ccdc8ae4214c92e6fc21 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(auth): honor materialized application-access axis (live authz audit) e5525298676f6cad51f7a58c0f131d26bd5b24e5 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(pos): honest galon and settings persistence 798381f85bd5fc2b7a1414f9e04b14f49604cf4f | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): stop admin customer edit from wiping master data 9a9130ab272ea56b0731678ac452a822e91076f3 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(erp): customer type enum aligned to backend, permission overrides preserved f96a83b58cb6cf7044c81cb3a7e001b52974c20b | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(api): close CRUD field-level audit findings 7a2eff639dfd4d795018cf485e638327fa1da072 | 2026-08-26 | Historis impor / versi tidak ditetapkan | chore(pos): document stock warehouse_id contract, gate demo logins to dev builds 60e301e61c7e29cc5566e93ca79ff293e12ae106 | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(erp): align MODULES with backend role globs, permission-driven distribution actions 7f2f55da3f5616abdd5d2158bfcd97d24f67833f | 2026-08-26 | Historis impor / versi tidak ditetapkan | fix(b2b): un-brick ecommerce_admin session, scope admin nav to ecomGate'd surfaces bbf60ef9b3555bb0f68d55695ae803838c105844 | 2026-08-25 | Historis impor / versi tidak ditetapkan | audit: RBAC application-scope gates, galon tenant isolation, frontend guard fixes (2026-08-25) 1c923f7c46c8061b874e76ee070becf9144e6f9f | 2026-08-25 | Historis impor / versi tidak ditetapkan | audit: RBAC application-scope gates, galon tenant isolation, frontend guard fixes (2026-08-25) 69d2e347eb29d7b15b1bc7ddbc3c88417a780dc5 | 2026-08-25 | Historis impor / versi tidak ditetapkan | audit: RBAC application-scope gates, galon tenant isolation, frontend guard fixes (2026-08-25) a046251be04b15f9a99d0811e5c51a25edb221fe | 2026-08-25 | Historis impor / versi tidak ditetapkan | audit: RBAC application-scope gates, galon tenant isolation, frontend guard fixes (2026-08-25) 0b8f8c0189969f31d5350ec0c49294d2ee02af9a | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(types): resolve all vue-tsc errors (21 → 0) 6d88b14c068195f8130d211de05ca865219b79d8 | 2026-08-25 | Historis impor / versi tidak ditetapkan | chore: atlas hash update, rollback docs, .gitignore deploy env 94a48e0bd992e57ea67a5d4e232433a49fe93197 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(deploy): Dockerfile healthcheck, migrate/seed scripts, VPS deploy overlay 5bc3a39feaf25cfadf4d65f39c3fd32509bfa707 | 2026-08-25 | Historis impor / versi tidak ditetapkan | chore(env): document map tile provider config in .env.example 398c06314ffa3fe95623f7c6cba83ace2f0262f6 | 2026-08-25 | Historis impor / versi tidak ditetapkan | test(distribution): fakeStore implements FleetLatestLocations 757388fbbababba52fdab6b3be14f58eb8fa7664 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(b2b): sales activity map page deps alignment ebd8c916eabca5d001a7d0539042af21bd6dbeae | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(distribution): fleet layer in map feed b7041d5560b0f24a804e07a1fd095c4656bc1326 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(erp): sales activity map + fleet layer on tracking map 9bfec20693bfdfbd52538bc669ab2a479e250b9e | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(b2b): returns history uses buyer-scoped GET /returns/me 654348e99fc71d8661cad643ede5a1e1f0bdf506 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(sales): GET /returns/me — buyer-scoped returns history 5500b32d1ae29c6a858e303ec5c886a040c1d25e | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(build): track leaflet deps in bun.lock (CI frozen lockfile) 16fadceb5d81ea8d3e4f67f9018dfb28adf4742c | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(erp): OpenStreetMap tracking workspace for distribution ece7423d5755029c0bae3bffffd1d5892c0ccfbc | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(b2b): buyer-scoped delivery tracking on order tracking page 18c42591abc935f5bab0cdcad32ca159feb9cd29 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(distribution): customer isolation on tracking + B2B delivery feed 76724b0f444a0994c418d9b9ac7ced64fd507c2d | 2026-08-25 | Historis impor / versi tidak ditetapkan | chore(db): regenerate sqlc output with v1.31.1 (match CI pin) 5b79df210b44d739525598fe82cc22daa99d4180 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(b2b): derive storefront admin from customer flag, not ERP role 29cd7ce048a4ca85306669ad8f516f9ab6b028e1 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(rbac): enforce application scopes, gate reports, ownership checks e0afebab37caf1bd232de6a3a1224b6dd2e51c33 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(b2b): returns list shows real so_number; proxy uses runtimeConfig 5f6d50f3ff1869ee24872090816b24000c283008 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(erp): management dashboards, PO audit identity, terminology fixes 9a44030b716e52d19e7b5d8d3e578712b66e5b92 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(sales): pass store_id filter to sales-order list query 3b08c1d21eb350a11e957e37d8a6cb3c8cfc8268 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(pos): import storeToRefs in AppSidebar 3d86e88da5d8f0cc6871330b5a9174cbfe7f3b03 | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(b2b): wire vouchers and membership to live API, fix availability 3d75def5592210136d6d9c365f4862dbc084cd3f | 2026-08-25 | Historis impor / versi tidak ditetapkan | feat(erp): expose orphaned modules, sales source classification, DO mocks 1d6d129f1405efd7dcc6f9ff611793c0252c1107 | 2026-08-25 | Historis impor / versi tidak ditetapkan | fix(platform): enforce tenant scoping, NOO/EC/AO source, checkout vouchers 8325ff5fb065b59265685a2f7ce04a6722a2c18d | 2026-08-24 | Historis impor / versi tidak ditetapkan | anu lah 36685aada91ea17bb0e00eb7a7bf689d6de3e9e4 | 2026-08-24 | Historis impor / versi tidak ditetapkan | feat(erp): financial-first rework — branch detail, LHPP, finance hub, consolidated, SO/PO drill-down c1c0d2888d72017dd7a897a737bb19e31c2eae18 | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(pos): permission-aware nav and route guard 95723de10ece2d829906194310dc8c5e4b688268 | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(db): multi-tenant store seed + seedctl 6d3b7a0c28bebdf62c0eddd4abaecaab6e790d7d | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(erp): dashboard mapper emits categoryPerformance the page binds 222d3d871512266bb50391ce904b34b3c2d07a6f | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(reports): real ERP chart series on GET /dashboard/charts 655e6105a14db9afb59e2eeaecd2e427aadd40e8 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(b2b): cookie-aware API proxy replaces dead routeRules proxy 7d2d4965a8ca3b723083e339c969c5d8833a55b7 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(security): sales role can view settings; seed buyer link + demo order 36fd8d4786208b621699d264e68df9c7c80f1145 | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(system): stores management page, permission catalog, role matrix UI 57736e0a13123cf506593ad6eb5ffde0b2bbfb60 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(reports): POS dashboard dates as RFC3339, not raw/label strings 670f59a850db56fbe5fc3fce369efcc399359119 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(pos): dashboard mapper passes dialog fields and backend payment enums 314cd209b4727e04e9466f028215629a4bf008ce | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(reports): POS dashboard sale/item rows carry dialog fields ad2ac2395e15701cd97998188f636e9555d9317c | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(multi-tenant): store scoping foundation, tenant settings, role permission matrix c80cf170ecd830bd1bd9fe539aec7d3ac527d4d8 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(b2b): admin dashboard maps real kpis and analytics 1738a8a9c75e6d967712186b5e40eb85287e4202 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(pos): dashboard reads GET /dashboard/pos c984a74cd091ecf78c151745b840e3e441e26a51 | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(reports): GET /dashboard/pos for the POS home dashboard 4dc96c5360b0fabcdcde8006106c0434d3d46e85 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(pos): laporan page reads real /reports/sales aggregates e259f780b7889c3faeac2ad842f186fdf700ea63 | 2026-08-23 | Historis impor / versi tidak ditetapkan | feat(reports): POS laporan breakdowns on GET /reports/sales 75141d0144deb1425868c223f33a02ef684212b6 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(b2b): map order line sku/name from flat product_code fields da7666b08357b562ef72624e2a91685418bcc8a5 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(security): object-level ownership checks for buyers on /sales-orders/{id} 31742620883989b81bc2ce67f52df37c55015053 | 2026-08-23 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of https://github.com/TaruLab/keluargamart-erp-frontend f921d6c3c5d9f0f5d47565219976ac7687861a93 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(erp): stop fabricating dashboard numbers; PO status honest reject; receipt casing a90a7c7e641377f156366ea8abd76baf6f0cb8f7 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(b2b): buyer invoices on /invoices/me; real POST /returns 53f24a31cd9e516b1d3796f17a171a48d595516a | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(pos): route checkout payment through real POST /pos 144b933120f30eb9ce2be7584530b7c6bc27e6c8 | 2026-08-23 | Historis impor / versi tidak ditetapkan | fix(security): non-credentialed wildcard CORS; fail-closed idem polling 522c64db1dd17bce4ffc9373ff4a4b46fa0a4251 | 2026-08-23 | Historis impor / versi tidak ditetapkan | Fix open redirect: validate route.query.redirect is internal before router.push 992ac2ab08c394067d1ab670ff7425c23f715f0f | 2026-08-23 | Historis impor / versi tidak ditetapkan | Add app launcher menu at / with fullscreen grid, large cards, fixed collapsed sidebar flyout, child icons, and back-to-menu button; route login/guards to launcher 66d71e198786da311b7b996ea5d7c193e0d769c9 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(pos): permission-gated controls, 403-aware toasts b19f9952971619a244e614981cb5c843647d409a | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(erp): consume enriched list fields, gate nav by permission 0e6f68e36b1e03e476633df60f518f4eafaf507f | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(api): joined display names on lists, product total_stock c7ea8cbd02a7f94fb322a2d84525ddc9cd3ca261 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(b2b): checkout free-text address, promotion type+IDR amount 83903b3fef81db6652395b8dcb848d3ed0139d78 | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(reports): map laporan shapes, hide empty sections 6933f38892f1b1c9192adf00a0a4ebf3b14f6bac | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(reports): wire laporan to real aggregates, hide empty 67e08678443faf72037de7a5e40f90efcb6f92f9 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(auth): grant sales role stock view + stock in/out for POS stock page 46cc1bad5647f96ffef71a3cb96ee6a0869f8a11 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(pos): membership update contract + tier badge from real membership data cd627f927dd2093ec9a64906715f35ec8c7567ba | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(sales): register PATCH /sales-orders/{id}/status for ERP transitions 87d5051c37e485eeb82cdb6c59e6a516766f665d | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(erp): align detail modals, status actions, payment + transfer flows with backend 4e5a0ccdcbc187684cc2861dacbee45a4819ef5c | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(erp): allow clearing per-user permission overrides 2f1f1e337907f7c1776e3325b47c06a5ff760c7c | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(db): auto-apply pending migrations on backend boot 903931a24de1ab21be6bf7896c0897e02a0a01f8 | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(b2b): always-on demo quick-login panel; align buyer demo password with seed ab6a311cf57a167178cf558bcc42f5b7b3ae11cc | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(pos): always-on demo quick-login panel on login page 3abd406f01e6ea63213c9d6f5c7ccc00f5e86fd9 | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(pos): send voucher_code/discount_amount on checkout 0027100c2b58811042e9aab8d4337cc102b4b4c6 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(erp): sync mock registry with real API paths 6fea177b9a8228b3a52f69999342cfec0317f34a | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(b2b): checkout warehouse picker, dedicated notes endpoint, featured flag wiring d491146a91fb2d1230e003b731449c54abff2335 | 2026-08-22 | Historis impor / versi tidak ditetapkan | feat(api): warehouse options, order notes, payment proof/partial, POS voucher+discount, product is_featured 58b41865a28a4b363998006135a255b00a52f4ed | 2026-08-22 | Historis impor / versi tidak ditetapkan | docs(api): mark GET /barcodes/lookup public in OpenAPI spec 201042542dc2b910a9997583032da801d9c35f1f | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(pos): surface employee CRUD failures instead of fake success 248afec0efe49458abc6c6ec3bac38a0847b36f4 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(erp): receivables reads envelope data via /invoices/receivables 56a0b7261200be1f916ccdc0a7dc5ab60eaaa083 | 2026-08-22 | Historis impor / versi tidak ditetapkan | fix(b2b): align API wiring with backend contracts 9cc2328dbfe6e4cedd61d1b1e44cb819156b8403 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): restore product card layout with full-width larger image 9f181edb72d8a9ca46de81f9a51245ca78559ccb | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): map real shift records + register missing bell icon 2e20dc03c8a701c124de7e1bd26972df06f722e4 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): map real backend shapes for transactions + returns flows 3684e5c8122ad0a3736447d2d54d86765583ad01 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(sales): returnable paid POS orders + joined return display fields a59bce34d9cf03a8fd74def29de58cd324155397 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): checkout via POST /pos pipeline instead of mock-shaped /sales-orders 53fe485b420833ea06f520eeda450c77035a2fa7 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(sales): default order_date to today when POS clients omit it 8d27bd19bca3e30d0c2e5ec8ae96e60ef469f3eb | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): numeric walk-in customer + full-card product images e002abc8611ab3c04c495696bf042a0528111856 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): walk-in checkout resolves CUS-000 when customer_id=0 ff1f537ab772dbf6fa867899328e2cb3157d0049 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(db): sync queries to schema + rehash atlas 000022-000027 e25c963f6f3f5460a6400053e49e8934bac6a94b | 2026-08-21 | Historis impor / versi tidak ditetapkan | chore(db): sync schema + regenerate sqlc for 000022-000027 7cd72679e57d73cb92482c216b03115ff3957af4 | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix: sweep wiring + security + concurrency (api/db) 04c5478cd264d03d401be4b83f553146612ad09e | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(backend): openapi PUT+DELETE /sales-vouchers/{id} to match POS shims (fix-11 sweep) 19a63bad60ccf303a6bf931f5f0b5d571faf982a | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(backend): sweep wiring — q aliases, order_type, voucher verify, notes/status shims c2e44c146785d59c5b0020a70289cfcdd623803b | 2026-08-21 | Historis impor / versi tidak ditetapkan | fix(pos): cashier 409 storm + 404 wiring — idempotent open, single-flight, 200 null 8a70feebf2fe9364190ec6224d8c3d3f288adf08 | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat(erp): 4 lanes — sales visibility owner, voucher status, NOO/AO dashboard, system RBAC c2696246ce3b1a0342ecf73f906fdee0100ef0e8 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: sweep openapi for voucher routes + 4 ERP lanes (sales visibility, voucher status, NOO/AO dashboard, system RBAC) 76998c99defcee611ec9960e7676c2cfa32e043d | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(erp): add Idempotency-Key for POST/PUT/PATCH (fix 422 on backend idem required) 0c41844e6af463e99c219a42c23ec33e5720b140 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(backend): sweep POS 422 + catalog 400 + idempotency cba62c72d678a616a78d0658650c130800c6e45a | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): dashboard null-safety — optional chain all data traversals 08cce466099ff6140637fb82bee43015c907035b | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): harden dashboard charts + sales-orders sanitization 899df33ccce33a061c8c805a0dcc06cbe993d2e4 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): notifications a11y + shift link - aria-expanded/haspopup, role menu, focus ring, escape, empty state, shift link 28b5a375db940efc67521955d355a3fb13c40e1e | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(backend): cashier 404/422 — current returns 200 null, open falls back to auth user 3e8d77f82badaa6cf4dd2258a508ac1774d8f09d | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): 422 on cashier open + 404 on current 46ea80e97e05e07ef6de24c4d911ef0dcde1db68 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): align cashier shift payloads to backend contract e927799057178ecf90d4905f86e923449f43a472 | 2026-08-20 | Historis impor / versi tidak ditetapkan | seed: sales_vouchers, cashier_shifts, galon_transactions demo rows a73b051f29e7a257563973573a7d59ef4925a8ad | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(b2b): wire dead endpoints to real routes ffb2fcf7dd952367b19b62efefef8b48d357ce7e | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): dialog footer wrap + transaction detail table scroll c345c675f4b9795993243f4390ecbe05bc489783 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(erp): dashboard — revenueTrend key and chart guards unblock sidebar nav 5ea91f65908a9fbe816002a2ac8e15a464ee7897 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): kasir keranjang — stack desktop too (was xl:1280 only) 70599138c1c75c3b1f34f1613f959e1ee86843d6 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): tablet keranjang drawer — keep CartItem stacked until xl 421c2e050c3344d64248eaa38a73e67c3d407d6b | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): desktop keranjang footer — stop collision at 380px aside e46e9371e4f38977912363c86969ab9b75613db5 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): kasir keranjang — anchor break to lg (1024px) not xl (1280px) 186f7ad33fdfcf2c8b327b91e19f04ab5ecb048f | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): kasir keranjang items — prevent collision on narrow aside 45ceb6b1eb2bb5b07be715bbdc17c6444f39dddc | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): aside sticky stacking vs FAB/toast 27f2f269ec5ccdc3b221346f3b8d0079e5de26a8 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(erp): audit — lazy image, tokenize micro-type, scrollbar radius bfa1e69d27aa1ae86a37ce4fc17118c0ef6a8519 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): critique — category recall, hotkeys, barcode/payment guard, reduced-motion 24cd28c84ff2bf808a158ec9e5603f59fbb0e60e | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(pos): audit harden — lazy images, reduced-motion, uploads cache fe0790c24b74a1cb8be42caea014ef49fba6287d | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(b2b): critique harden — tint AA, density, skeleton 3c6147e846de36fbe75e2220846c757689426fe4 | 2026-08-20 | Historis impor / versi tidak ditetapkan | polish(b2b): home harden — discount sign, card overflow, hero lift, kategori tints c172cb9dc0a7beee7808033e8e0453d9b6104797 | 2026-08-20 | Historis impor / versi tidak ditetapkan | chore(erp): sync bun.lock with package.json c3a02a872410ee5e0abb20fc7bd0e312e2658ade | 2026-08-20 | Historis impor / versi tidak ditetapkan | harden(b2b): clamp long product names on quick-order found state 46b39041e214aabc132b7d15adc7ebafba671547 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix(b2b): unify proxy fallback to compose network http://backend:8080 3b466562e0c8ad588b00c23458bf92557b4628de | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: notification bell + dropdown in POS topbar with clickable links ecfc7847effc1a64833045e3164f0c7f6935128c | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: notification bell + dropdown in ERP topbar with clickable links cb59677af6a9afabd55f91a406d518eb1893f021 | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: notification bell + dropdown panel on all 4 frontends 829e78fdc74a9a867db6e3d9528dcf383d430edf | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: wire verifyPayment to POST /payments/{id}/verify, sendNotification to POST /notifications 0f52dac2716e9692955da38f8b2ae090fe3e4ed5 | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: admin backend endpoints — verify payment, send notification, analytics c5bec8146dc15d2038cd1eb2cc152c348d823751 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin product edit — map form to backend ProductInput shape dc17f4b14af35914f89c645fdf2a4bb53db78714 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin/account dashboard — overflow containment on cards and tables 644630c9916f2e658b653fa519a91e64a1197657 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin promotions — wire to backend sales-vouchers API d4b5c73b767e4f0a6ef44ac6c328698cfdb6c6e2 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin brands — wire to backend API, textarea :rows fix 71533d3dd14a1295f774ed081885f5fd240ce043 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin categories — saveCategory sends is_active, textarea :rows fix c5d575d6d4dba8fb3eae88c289732bebf901ce25 | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin filter — forward search + paymentStatus params to backend c16469186e43c426884cd367c56212ea8145c0eb | 2026-08-20 | Historis impor / versi tidak ditetapkan | fix: admin filter — forward search + paymentStatus params, derive payment_status from amounts 10a21d6d65b447310e7eee31aea27b9d73ec8e66 | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: B2B uniformity + impeccable critique + polish 333c4838b4fc9ebf0f2493f891cba78201d9c04e | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: uniformity fixes + wiring + polish 3667f546b62e1e0a1766cf54f6590b67e9dfa36d | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: uniformity fixes + impeccable audit + polish 9e426456bada7e3f743b1404fcdfdc84ae44861a | 2026-08-20 | Historis impor / versi tidak ditetapkan | feat: §20 business rules + frontend wiring fixes + impeccable polish ebac6afe3eae21ce4da20bdf5c4141abfb689a99 | 2026-08-19 | Historis impor / versi tidak ditetapkan | docs(openapi): document /dashboard/charts, /galon/services, /galon/status, /galon/units, /settings endpoints b1d671e3f770304327e48faada2dadc7cb5eca9a | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(migrations): write pure UTF-8 without BOM to 000021_add_buyer_role.sql 571a8dc9f6e2b4bebf55e1355cd19d06c9797742 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(migrations): remove redundant 000019_add_buyer_role.sql file 70942842e0aa79b256ef1d63d88b62a6d9881745 | 2026-08-19 | Historis impor / versi tidak ditetapkan | ci: run atlas migrate hash before validation in docker CI workflow 8c33cee4cd337bfccd2dd9e1026d1c2e596c336f | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(ci,migrations): rename buyer migration to 000021, restore 000001_init_schema, update atlas.sum, and use golang:alpine in Dockerfile 2b74eccd7c53a57550322b55c786b6663c1caf3c | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(dashboard): normalize KPIs and charts responses with resilient fallbacks 0e44d19b86fbdc0953135efc44ab7d501cca078f | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(dashboard): provide /dashboard/charts and structured KPI fields in /dashboard/kpis 33093875fd88e4438c66f608d20c5234f780d454 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(api): align all ERP service paths with Go backend routes (/sales-orders, /purchase-orders, /inventory/*, /cashflows, /sales-tracking/*) 9df9a72ac8e36c1e1a4d2466faca8e32225f0cba | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(auth): introduce dedicated 'buyer' role with distinct permissions and seed 2011b21ff072cab074e01f3bc4803d145fc7995c | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(cors,compose): allow wildcard CORS with CORS_ORIGINS=* and expose backend on host port 3004:8080 71663037034c85fdbe6ffb599624db6929f47082 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(auth): sync ERP login demo accounts with backend seed (Admin@1234) 89409a6cbdae9131166585452031560f5c003345 | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(seed): add all role accounts with Admin@1234 password (sales, warehouse, finance, hr, staff) b7757c6184a95e38f3e846935704ff413d53fd3b | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(galon): add /galon/services, /galon/status, /galon/units, and /settings routes with flexible unmarshaling 5022b864a39bd12f5553f2974237799b59a254ab | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(galon): initialize default pricing, map backend payload format, and enable persistent settings 097675d6c24b88645226d7286e70144f2068e3ae | 2026-08-19 | Historis impor / versi tidak ditetapkan | design: close DESIGN.md drift, fix contrast/a11y, stop shipping fabricated data 26aeeda149dabc6a577477e4b1f810438cedeaef | 2026-08-19 | Historis impor / versi tidak ditetapkan | design: adopt shared KeluargaMart family design system 013fcd62e1ff52290f292f40e7e349d28222d493 | 2026-08-19 | Historis impor / versi tidak ditetapkan | design: adopt shared KeluargaMart family design system 041fba6ac7089b019a0302e5e181fac02961ff63 | 2026-08-19 | Historis impor / versi tidak ditetapkan | ci: update workflow to trigger on main branch (uniform with other repos) a957910da5701945a3bcb583799898a1f33c16e4 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(uploads): extract url from response envelope in useProductImageUpload 3a700e50524d9e7e1106b7103fb3cc21ec17db09 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(uploads): safely unwrap upload image response in products service 53e33d6a2c0bae194a8f0c61c15d04079c604644 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(uploads): grant write permissions to appuser for /data/uploads in Dockerfile and compose 7b002f8e8d77e7ef7fe03bfc4aa35b6789291596 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore(gitignore): unify persistent storage under data/ (covering data/postgres and data/uploads) 1da39075297c1ec2309067e38e8ae64a33a38387 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore(deploy): switch postgres and uploads to local bind mounts (./data/postgres and ./data/uploads) a81697d7746169b1b0078bd866f7f2aff215c895 | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(seed): expand product catalog with 32+ SKUs, multi-unit conversions, warehouses, and vouchers 640fd4b802eafa64e1b2370fcc094c514ff7501b | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(pos): prevent unmapped endpoints from blocking product and galon loading on mount 53f684cbe2fa756c26542bd0774983f5a73cf352 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: add .env.example template bed5237b539a6b2ba91c3a8bc01cdde9e4f425bc | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: add .env.example template 8fd5ab94684d4158d3d9e7c7a282afeedbfa1829 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(deploy): apply sequential migrations in db-seed before data seeds 2e9076fe26bb5cfb557d97c96c7d45bd3b45d1f7 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(auth): read the real error envelope and gate admin on role alone f8947f97ebbbcd4a46d36337b71b5a87c3febe42 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(auth): revoke tokens on logout and use the real role vocabulary 52aef5ede0d17f856896fbb67d76e5a4d0aa4860 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(auth): speak the real backend contract 6f3806a8f07e33696a37df3f621b913729f91674 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: flatten deploy/ into the repo root and keep one env example ff7c9ed6f0b273ebee956e2282e0d370dcbba3df | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: untrack .impeccable state, which .gitignore already excluded 0836a8ca6fe2721702ebc11e7484d9cd627fd7c5 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: drop tracked opencode session state and ignore agent tooling state e1f71d237a39af2e853b3331709b147c11ea4583 | 2026-08-19 | Historis impor / versi tidak ditetapkan | chore: drop tracked playwright-mcp snapshot and ignore agent tooling state faab8b56b7032f799a76e0509cc6b65dd9b23f86 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(uploads): mount public serving as /uploads/{key} dc81b2ea0eb771e05ea4c6992cbdcb9e3713b816 | 2026-08-19 | Historis impor / versi tidak ditetapkan | fix(sales): keep resolved price when unit_price is omitted 2b8a8820732e0e6070ebcd2c13de6ef5a9f5a79e | 2026-08-19 | Historis impor / versi tidak ditetapkan | ci: trigger docker workflow on master branch 49f721430d3f72a9cdd31afdcfa6bcf5661f649d | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(admin): product image upload + uploads proxy + compose moved to backend 17bb9cefafc1d8d392388148df47fedff0333575 | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(products): image upload + real backend rewiring 4f9e16a248f09ed4650ff5d9ace0e88949f11e99 | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(products): image upload + real backend wiring 3d7ef5402b5b7a97b7f767bc5972dc1ab4e43b5c | 2026-08-19 | Historis impor / versi tidak ditetapkan | feat(uploads): image upload endpoint + unified docker-compose 9e14ef169ff20f95bb70de1d9121241bcde2877d | 2026-08-19 | Historis impor / versi tidak ditetapkan | Merge branch 'main' of https://github.com/TaruLab/keluargamart-backend 2e5a7bfc8b50039f3c4d53a68d68251a7e978d43 | 2026-08-19 | Historis impor / versi tidak ditetapkan | security: resolve 27-point audit + commit pending modules/migrations 30dfa1da095877df57f27e57e6d74dd5bc24d6bb | 2026-08-18 | Historis impor / versi tidak ditetapkan | security: resolve 27-point audit + commit pending modules/migrations 70bc35a59eb9e523d8b42825fbdfa845f415a0c5 | 2026-08-18 | Historis impor / versi tidak ditetapkan | feat(membership): STEP 0 DB-backed tier config (bronze 2% / gold 5% / platinum 8%) b532d4b2a6fa5b6e351aa715513390148203227e | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(membership): implement Phase 6 item 3 pricing benefit (bronze 2% / gold 5% / platinum 8%) 63cf4e00e1d7c09b397208e7b67c93553685ed9d | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(galon): remove Beli + Air Isi transaction option from storefront and depot galon hub 2f674471eaf5064ad2de2ca38d941c776b0c8b75 | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(galon): update galon product matcher to match proper backend galon products 1a3eef9385fa0bda9a0153f0369f1e6e2123716e | 2026-08-17 | Historis impor / versi tidak ditetapkan | refactor(galon): remove combined 'Galon + Isi' service, keep isi ulang/beli/pinjam ee65862e39b227665f98dfbbfd2861c623040576 | 2026-08-17 | Historis impor / versi tidak ditetapkan | test(membership): fix tier-history assertion to match DESC ordering 0c7ecea1b5be7c8eb56dec6edbf972b9896e64fa | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(membership): scaffold identity, tiers, and append-only tier history (Phase 6 item 3) 07f74e7165aaae6290f99acd3fa4f747f1239f91 | 2026-08-17 | Historis impor / versi tidak ditetapkan | fix(sales): resolve prices on the caller's transaction to avoid pool deadlock 35359c6198dfab7052d4638abc35b7e0943ad78f | 2026-08-17 | Historis impor / versi tidak ditetapkan | Merge pull request #1 from TaruLab/feat/phase-2-6-backend 586865f644bd0dcc092a6ed63f0b01241ef1be48 | 2026-08-17 | Historis impor / versi tidak ditetapkan | fix(ci): normalize line endings so Atlas checksums match on Linux cebcc6ca8650f46320940dcdd788ebfd14f74ba9 | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat: phases 2-6 backend (integrity, numbering, distribution, tracking, catalog, pricing) 126c21be58425888c46bff2f786128240abd99eb | 2026-08-17 | Historis impor / versi tidak ditetapkan | refactor: complete transactional sqlc migration de27c8672b450ec4594ada9d7a209c3e01a57d31 | 2026-08-17 | Historis impor / versi tidak ditetapkan | refactor: adopt sqlc repositories and atlas migrations 1c3de0a796cf13f1a108c13b9c5bd253212785e1 | 2026-08-17 | Historis impor / versi tidak ditetapkan | fix(header): update popular tag to Galon and lookup Galon d8ee89e61d260ee79925233a77867b0382e01d55 | 2026-08-17 | Historis impor / versi tidak ditetapkan | fix(catalog): enable reactive route query lookup and popular grocery items, fix galon cart add and checkout flow 2e7bbc617df40f1f7d8edb7c42bb0992fd8e25dd | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(ui): refine b2b storefront, depot galon hub, admin suite and mobile navigation c3fd6bb70a41c549de33edd0be38713405987f54 | 2026-08-17 | Historis impor / versi tidak ditetapkan | refactor: move Go backend from backend/ to repository root 28f7c0b8b656d715bbf4f5b827816957d9b5f729 | 2026-08-17 | Historis impor / versi tidak ditetapkan | Update backend image reference in docker-compose 64a7f79406157d98e2b868a0d82fff1cdab2b1e2 | 2026-08-17 | Historis impor / versi tidak ditetapkan | feat(ecommerce): cart checkout, buyer payment, and order history bb2646a4aa7d5d046cd777f20d8843987281a225 | 2026-08-16 | Historis impor / versi tidak ditetapkan | chore: ignore local agent/editor tooling state 7b5efdc49c4e99e865bbb9c1cc0d723c4dd9969d | 2026-08-16 | Historis impor / versi tidak ditetapkan | fix(checkout): single shipping model, draft cart for real-API mode, safer auth redirect 6c60f4cd5d23b934aae49c338660081ae64531a6 | 2026-08-16 | Historis impor / versi tidak ditetapkan | docs: align project guidelines with global opencode AGENTS.md ebbe38b61fbd4c800ca4d6faf1ff6fc2b3c5f44c | 2026-08-15 | Historis impor / versi tidak ditetapkan | feat(demo): multi-account login, users CRUD, settings persistence, CSV export, voucher usage limit, shift close fix 4fe559957cffb83d2c363846e32cdcc3acab0f77 | 2026-08-15 | Historis impor / versi tidak ditetapkan | feat: add cart module (carts, cart_items, CRUD endpoints) 7f7b1264a5cd015784b781b13a4a6618e799ed4d | 2026-08-15 | Historis impor / versi tidak ditetapkan | fix(api): scan DATE columns as text and coerce NULL to empty strings 5bdd2f0a41a84e085cd2c5d35193b8eb75f761f2 | 2026-08-15 | Historis impor / versi tidak ditetapkan | feat(payments): QRIS/kartu payment methods + POS payment ledger a7abd863eba65aa34167540ee515bba963b4d400 | 2026-08-14 | Historis impor / versi tidak ditetapkan | feat(login): restore 1-click buyer autofill button for buyer@keluargamart.local 1009d2a42465f274e69738c146097c4f4d5554ad | 2026-08-14 | Historis impor / versi tidak ditetapkan | feat: add buyer seed account (sales role) 2b0d959be9491932f18271b6fe5f6702dfae149c | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(auth): map live DB 'sales' role to buyer/customer storefront session b763fffabf35966928287c85dc52dec2f8bfeb9a | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(auth): accurately map buyer users to customer role and support login redirect query 2c65f34fed7f7234b56b2d07043fb8dece9a4070 | 2026-08-14 | Historis impor / versi tidak ditetapkan | docs(login): clarify backend seed accounts and buyer account provisioning 70dfbc8187648a1bfa47d6eff9992e3253021f96 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(auth): redirect to /login on logout and add logout button to mobile navigation drawers 0ef585eacdeea7e6aba483a7115089939f7259e0 | 2026-08-14 | Historis impor / versi tidak ditetapkan | refactor(admin): reflow Storefront admin page table into vertical mobile card stacks 303abb4bbf25a447ccd127160e9a381b47f860d6 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(auth): display explicit invalid credentials message instead of raw 401 status a2b5f3bf1ca7ec95db6ffa28c2d550563a3b3564 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(auth): restore localStorage session persistence on login/me and add demo login buttons fc479bd02cda958c369ca30386ee0423ba277184 | 2026-08-14 | Historis impor / versi tidak ditetapkan | polish(pdp): add sticky bottom action bar on mobile viewports (<640px) 2328c44f6e0d0d9ee263fdfb86688c391b2ae956 | 2026-08-14 | Historis impor / versi tidak ditetapkan | docs(critique): update Impeccable critique snapshot with 3.89/4.0 design score (0 P0, 0 P1) 5371c2918113550caf8a017f91153eb8ab003dcb | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(ssr): fix public.apiBaseUrl client resolution and add client mount refresh fallback for home storefront b62bbd1740d49682c1dbdf7e3abac09cc6c08cfe | 2026-08-14 | Historis impor / versi tidak ditetapkan | polish(storefront): execute P1/P2/P3 audit backlog items b67bc95e0b9ab2fcf0b09b708b3b24664d61fd23 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(layout): add pt-6 md:pt-8 top spacing between header and main content in default layout afa2e3f1383b9797840f27e67ec79354816572fa | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(home): pre-fetch all storefront sections on SSR with useAsyncData so sections never flash or disappear 01f87ba900f8fbb7560a679efa548a9f408d5b00 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(home): derive featured, promo, recommended and galon products from live /products API 680b47913aa5b41a469eb08a377349d03cce85d7 | 2026-08-14 | Historis impor / versi tidak ditetapkan | feat(storefront): transform /galon into full Depot Galon hub and add quick category filter chips to catalog 0f788fc4fb640f7160356aca75c8198baefbda13 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(images): add referrerpolicy=no-referrer to prevent hotlink/CORB blocking on external CDNs 923e3c148c03d7025d43dcd4b06e2c647cdf34a7 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(qa): handle broken images with fallback SVG, fix depot-galon route, and add header i18n keys 4f90b5293e8e9842d77bc3dab730943516bfdf97 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: map image field through ProductInput to DB 69e85fd87d873f90111cad3dd700965deffc1d48 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(deploy): run db-seed automatically on docker compose up before backend starts 24571dd30b5c270feaed0eda1357c88da7629c18 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(deploy): mount BACKEND_DIR and auto-discover migrations and seed files 7cf960f4574ccdca522330d34ef4d3b427afc59f | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix(deploy): configure automatic schema migration and seed loading in docker compose 37fcc393d9fa3d609f74579f6ba9258a3344d74b | 2026-08-14 | Historis impor / versi tidak ditetapkan | feat: make GET /api/v1/categories public, populate product images 01636456065cbb26f3ff5ff8a07136dd3152c0e3 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: resolve icon 404 proxy collision and replace placehold.co with zero-network inline SVG 344ffd1ae1231c64e9dc88bfadf1c901accfcc6f | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: use available backend APIs, eliminate 401/404 errors, add product image fallback 861a6d54bca189f97d767c4b022fd4d7ec970bf2 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: product images, galon 404 crash, remove proposed endpoint console noise 3dd9f6ad71de651cb2e4e128064583d087a5cdae | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: resolve all typecheck errors (0 errors) 37575a9a2c83843d73980478408a9ea89ced4702 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: set apiBaseUrl to backend:8080 bfc08e17255f34d0b1af4641bca8410115329611 | 2026-08-14 | Historis impor / versi tidak ditetapkan | Update: Mobile Responsive 350730e39fd4db1c7cf3cce53391b92954e68ecf | 2026-08-14 | Historis impor / versi tidak ditetapkan | Update products.js b6e3ba4f6e1acc357ec80b8c3ca75c351da1da19 | 2026-08-14 | Historis impor / versi tidak ditetapkan | Fix font provider: NUXT_FONTS_PROVIDER=NONE (uppercase) f03d142b102d107db32f9c47be201936313cbd0f | 2026-08-14 | Historis impor / versi tidak ditetapkan | Fix loadAllProducts to use correct response structure fcdfe2bd572e813bfa37501fc05540afae103833 | 2026-08-14 | Historis impor / versi tidak ditetapkan | fix: Add client-side fallback for missing backend endpoints a06f8ed3389bba0e2c788d095954c7c4d7bbb4f9 | 2026-08-13 | Historis impor / versi tidak ditetapkan | Add client-side filtering for products in useCatalog efe98c6495466ab6b2747357e521aca09ba1e162 | 2026-08-13 | Historis impor / versi tidak ditetapkan | Remove Docker Compose and .env 03bbb38e0f305928d9a6f63b397e8452217e36a6 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix: add missing comma after getRecommended in repos.ts (build failure) 5bee1be12a724f439a4681a1e1dd3f8bc7df01c3 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix: getFeatured/getNew/getPromo/getRecommended return [] instead of undefined on 404 af02220b85b944ebd4d114d8d4beb27e1d274a09 | 2026-08-13 | Historis impor / versi tidak ditetapkan | chore: unify compose to host frontend+backend, remove nginx (cloudflared only) 7d1a99687e701865c945d9d2d0dada0aad60ab60 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix: close data() function in HTTP repos (missing brace causing build failure) b45c5a1bdee8b11e6bdb4eb0e40f256ee214297d | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix: handle 404/401 gracefully on PROPOSED endpoints c87e8a14504ebb46ac9e8d6011709ab87b82d372 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix(backend): fix route nesting for products endpoint 3e121671a8091f4dbe71eeba9824e933d885c8d7 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix(backend): fix route nesting for products endpoint 51d3f0b99739dbf5e7ed419c340095afee0c64d6 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix(backend): fix route nesting for products endpoint a4b8f51933f2534a013925f20c5a0d8e1d258d53 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix(backend): fix route collision in products endpoint 0ceb319da5d1794ca70a8623b96732c69d6539f0 | 2026-08-13 | Historis impor / versi tidak ditetapkan | chore(infra): fix nginx config and enable SSR auth 82c0ddf4d43b27ff2982d08de11b8904a0ab101b | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix(backend): allow public access to products catalog 2b0e6399cd69c88aca9b4890a33b2b3abd87537d | 2026-08-13 | Historis impor / versi tidak ditetapkan | feat(galon,retur,shift,dashboard): multi-unit POS, kas, rekonsiliasi, dan laporan market vs galon 7639a4f251de33d257978a0be013f1a75fe5d654 | 2026-08-13 | Historis impor / versi tidak ditetapkan | fix: docker build - bun 1.2 for JSON lockfile, node runner, skip font downloads in CI 3e0992a8aedd4f8e6951fd68b4bd28e3fad42a56 | 2026-08-13 | Historis impor / versi tidak ditetapkan | feat: real API integration, mobile responsive fixes, Docker + GHCR CI/CD 16507ca1736b3f625da64253e0b474fb60050621 | 2026-08-12 | Historis impor / versi tidak ditetapkan | feat: implement membership tiers, voucher system, discount engine, and corporate piutang/receivables 5250380ce45fffae5d05bdb8988ee01540f3aa46 | 2026-08-12 | Historis impor / versi tidak ditetapkan | feat: add membership tiers, voucher system, discount system, and piutang/payments mock data; brand rename to KeluargaMart ef4fb9efdee3066bc7da0579a018193bc79cb73d | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): mount hr employees under /hr/employees 98e4c572493b06125227b5f95242a17f17f72070 | 2026-08-12 | Historis impor / versi tidak ditetapkan | brand: rename to KeluargaMart + apply royal-blue palette 9b639ebbe1c56e0df6e1a3222bb4ccca611bf170 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): opname GET/finalize per spec c12c6ad627d4e22188edc624977ba4c1495c4684 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): share one movement-number series; POS returns spec shape 056f866c67979ac3b26588c27bc8c7e401225098 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): opname create, route create, visit checkin ff73b385adbe745d9660f2b8a23931bf96f992d9 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix: keep session on transient /auth/me failures f68ba918be3edc7d36b94af5176f603b029f039b | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix: session survives reloads on auth-gated routes 7843f8327ab69b860f16309659ef4bf74d4b484d | 2026-08-12 | Historis impor / versi tidak ditetapkan | Initial commit: B2B e-commerce frontend (Nuxt UI, Indonesian locale) 71272d50498b38e2c8c04fe220fc73f96ca7ddb6 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): repair UpdateStock placeholder numbering 5892803b981b2e91112c179e19fe5ae2e5b36aab | 2026-08-12 | Historis impor / versi tidak ditetapkan | Initial commit dfa0dec1c2c4c422c155625518740800f20fda42 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): alias visits count query for filtered/me lists 148309517a34a4114d4761233745771a3ebe6cfe | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): qualify products search cols, guard empty date cast 968837688800b3068845ab618e7f7b046b5e1532 | 2026-08-12 | Historis impor / versi tidak ditetapkan | fix(backend): repair broken endpoints per openapi contract 0d7aec4841a1125abd8a9a6f0d5440092e488721 | 2026-08-12 | Historis impor / versi tidak ditetapkan | ci: smoke-test the image before pushing to GHCR bc1bfefa2b68e3931b116fd503143844ae8f5de8 | 2026-08-12 | Historis impor / versi tidak ditetapkan | compose: pull_policy always so 'up -d' fetches the CI-built image a398d9a148f6dec85869b3e6d2b2b28fddfa606e | 2026-08-12 | Historis impor / versi tidak ditetapkan | feat(pos): adopt real-api UI on master with localStorage demo data layer, rebrand as KeluargaMart (Indodes) light theme 5319c10534b8ce42559c1e5afa12c83c9206cfa8 | 2026-08-11 | Historis impor / versi tidak ditetapkan | ci: restore push flag lost in the file: fix f544e2de48b03d5d376092fb75e7c6c3564cceb9 | 2026-08-11 | Historis impor / versi tidak ditetapkan | ci: build amd64 only (no arm64 servers) aaa4a06c601941b5733faea00cb0ba2c24eb107b | 2026-08-11 | Historis impor / versi tidak ditetapkan | ci: cross-compile in a native build stage so arm64 skips QEMU ed693a7affb014519c076c61221112f4f5f3f276 | 2026-08-11 | Historis impor / versi tidak ditetapkan | ci: point build-push-action at backend/Dockerfile e132d6125310966846a0fc1cc27b95b0e3a5603e | 2026-08-11 | Historis impor / versi tidak ditetapkan | fix(docs): bake openapi.yaml into the image so /docs works in Docker 3fa2b1fe695f5794d58180956acb3b0f93b9d519 | 2026-08-11 | Historis impor / versi tidak ditetapkan | chore(compose): single docker-compose.yml, prod by default 7a5ddf901bb49b3ea07b6dabbf54eb78625cfc78 | 2026-08-11 | Historis impor / versi tidak ditetapkan | ci: add docker image CI, GHCR deploy, seed + gitignore fixes c243c03540f6ca65397cb6c6d1e48b6a45e3ac06 | 2026-08-12 | Historis impor / versi tidak ditetapkan | chore: rename module path to github.com/TaruLab/b-keluargamart/backend c9def78ef2a3918e6c18d8a1fd1600359d7d01dd | 2026-08-12 | Historis impor / versi tidak ditetapkan | feat(docs): serve Scalar API reference at /docs adcdf4a98972c1eb8268ed5697bf4552eef4db5c | 2026-08-11 | Historis impor / versi tidak ditetapkan | fix(catalog): drop non-existent categories.symbol from product list query 054f941669b09917338cc90539a6c83044a75f23 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(deploy): docker compose prod, seed + init, docs; fix login SQL cast + audit IP (Phase 15) 34d0203f216cc18fa3c5abb7231d20194151fca0 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(system): users, roles, activity logs + audit middleware (Phase 14) 75ecf34b486da6c6d138d18bd4377b5e8c4d8446 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(hr, sales-tracking): employees, attendance, leaves, payrolls, performances, visits, activities, routes, locations (Phase 14) 2931010b227f8b169b21bb11e84ab4bfa38f6dbc | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(hardening): security headers, body limit, dashboard KPI cache (Phase 13) 2b329b6252808c6669236e450d5411c42a3e91c9 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(migrations): 000001 schema up/down (Phase 2) a3434bc59f5a9cf5ec29a84f50bf24e8fb19ab21 | 2026-08-11 | Historis impor / versi tidak ditetapkan | test(parity): cross-module workflow parity tests vs business-rules (Phase 12) f75e31c7d8e68f061cd5370b93c10f7837dd3a4b | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(reports): dashboard KPIs + CSV exports (receivables, debts, cashflow) (Phase 11) 34ab015353dea8c2f5b5c0af401bb74ed5683f4a | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(finance): invoices, payments, receivables, cashflows (Phase 10) 605dbd08529e8a4fb6256d2d55a494edb7837a63 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(purchasing): purchase orders, goods receipts, supplier debt, vouchers (Phase 9) 37eae56f952ca8beb10bece7ff646fc61f8fde2c | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(sales): sales orders + POS pipeline + reservations (Phase 8) 58d7e3e77810bb72c94a80be4a1b7b4b6dfb8ac3 | 2026-08-11 | Historis impor / versi tidak ditetapkan | feat(inventory): stocks, movements, stock-in/out, opname, transfer (Phase 7) d09c957aede604a699160edb4d1e02286ea757a4 | 2026-08-10 | Historis impor / versi tidak ditetapkan | feat(catalog|partners|warehouses): master data CRUD + atomic codes + RBAC (Phase 6) 10dcc7599427a3244a4057a4d68269fda1b6f139 | 2026-08-10 | Historis impor / versi tidak ditetapkan | feat(auth): opaque bearer tokens + RBAC (Phase 5) 0ef59f4a09ccf60c58dd5f4547b9cf5eb7076998 | 2026-08-10 | Historis impor / versi tidak ditetapkan | feat: Go backend foundation + OpenAPI contract e70da533836f04a21afd838cfd4f7d992f83da2c | 2026-08-10 | Historis impor / versi tidak ditetapkan | Phase 1-2: ERP audit and design docs bee03a111ec7e65b8ad153af12906c38e33f95e2 | 2026-08-10 | Historis impor / versi tidak ditetapkan | fix(pos): constrain cart width, make category bar collapsible, update store info to KeluargaMart Medan 05a32c1749985816d42b2bbf44543afa2a0a134a | 2026-08-10 | Historis impor / versi tidak ditetapkan | feat(auth): redesign login with sales intelligence layout, fix missing icons, add ui perks 3b677092588a8c35aecdb3ad74134d199b4bdf67 | 2026-08-10 | Historis impor / versi tidak ditetapkan | chore: initial commit pointofsales POS app