To update the prebuilt executable you can run
./mycart update
Changelog
thanks @nikescar !!
New Features
- 0804e84 feat(admin): add KRW to currency dropdown
- 21ee40e feat(admin): add Korean language support
- f811ac0 feat(admin): add Number Formatting UI section
- 61aabd4 feat(admin): add PortOne TypeScript types and validation
- a345cad feat(admin): add PortOne settings component
- f8c1921 feat(admin): add PortOne translations
- 747dd8e feat(admin): add SymbolDisplaySettings TypeScript interface
- 49bee93 feat(admin): add TruncationSettings UI component
- fed95a6 feat(admin): add currency configuration and formatting
- e17e87c feat(admin): add currency name translations (en/ko/zh)
- 6379617 feat(admin): add debug toggle and currency multi-select UI for PortOne
- 3b3734f feat(admin): add number formatting to currency functions
- 2d533c3 feat(admin): add payment settings store
- 1dfa7e5 feat(admin): add symbol display UI controls
- 4b83417 feat(admin): add symbol mode to formatCurrency functions
- 8d54b9f feat(admin): apply symbol display to cart and product views
- 924ce3b feat(admin): integrate PortOne into payment settings page
- 6a19194 feat(admin): integrate truncation settings into payment page
- f2ef646 feat(admin): load payment settings on mount
- 4dca47a feat(admin): move quantity field after variants section
- a4a874b feat(admin): use formatCurrency in carts list
- 06f25a1 feat(backend): add NumberFormatSettings to Payment model
- 8a4ead7 feat(backend): add SymbolDisplaySettings type and validation
- 91201bb feat(backend): add symbol_display JSON serialization
- 8a86155 feat(backend): add truncation types to Payment settings
- f7b7f2a feat(backend): expose payment settings to storefront
- 9999fa3 feat(cart): add validation error handling and modal
- ca34f79 feat(cart): add variant-required and price validation
- e8eceaa feat(cart): add yellow highlighting for validation errors
- 1fd7a3b feat(cart): send unit_price in cart creation for validation
- 31cd128 feat(csv): add brief, images, attributes to import
- 77e9f6c feat(csv): implement B3 variant format import
- 3aa3316 feat(csv): update export with new column format
- ff9200b feat(docker): add multi-stage Dockerfile for source builds
- 3ce845e feat(docker): add nginx-proxy with acme-companion for automatic SSL
- 12819eb feat(frontend): add Japanese translations for JPY currency
- abbac02 feat(frontend): add truncation TypeScript types
- c8be012 feat(frontend): implement currency truncation formatting logic
- 64395d7 feat(frontend): update currency unit patterns
- 1a636b0 feat(handlers): add PortOne payment verification endpoint
- c12eab2 feat(handlers): add PortOne public config endpoint
- ca520f7 feat(handlers): add PortOne webhook endpoint
- d478bb9 feat(handlers): integrate cart validation in CreateCart and Payment
- b3d6663 feat(handlers): register Portone in settings registry
- ef1d44f feat(i18n): add cart validation error messages
- 50961bf feat(i18n): add slug placeholder and error translations
- 6d2ac1f feat(models): add Portone payment gateway settings
- 11c3b41 feat(models): add cart validation result structs
- 099567d feat(portone): add debug_enabled and supported_currencies fields
- 3485f5d feat(portone): expose debug_enabled flag in config endpoint
- b6b3ada feat(portone): filter provider by supported currencies
- b408128 feat(products): add auto slug generation on name blur
- 5a68fe9 feat(queries): add Portone to settings and payment methods
- 24e65cb feat(queries): add cart validation function
- bcc6c7d feat(site): add Korean language support
- 7d16830 feat(site): add PortOne translations and payment util
- ffb5e76 feat(site): add conditional debug logging and currency formatting
- 9d3e366 feat(site): add currency configuration with KRW support
- a422351 feat(site): add currency formatting utility
- 97fc965 feat(site): add locale-aware currency formatting utility
- 5956a4c feat(site): install PortOne browser SDK and add types
- 30188a2 feat(site): integrate PortOne payment in cart page
- e0e3c2d feat(site): use formatCurrency in cart display
- fca747a feat(site): use formatCurrency in payment success page
- f0b14e3 feat(storefront): add SymbolDisplaySettings TypeScript interface
- 4d83217 feat(storefront): add currency name translations (en/ko/zh)
- cfddd07 feat(storefront): add number formatting support
- d925a98 feat(storefront): add symbol mode to ProductCard component
- b14e547 feat(storefront): add symbol mode to cart page
- 6f7404c feat(storefront): add symbol mode to formatCurrency functions
- 62d9839 feat(storefront): add symbol mode to product detail page
- 6ede640 feat(storefront): update ProductCard to use truncation formatting
- 8fdfe5e feat(utils): add slug generator with API and fallback
- 70de277 feat: add 12 VitePress plugins for enhanced documentation
- 62324f5 feat: add KRW currency option and Korean PortOne translation
- 1f461a1 feat: add Korean i18n with VitePress native localization
- 8b0ee4a feat: add Solidebase documentation configuration
- 91d60d9 feat: add Swagger API documentation with GitHub Pages deployment
- a99f2af feat: add automated testing and quick start guide
- b636560 feat: add development Docker setup for testing PortOne
- a586ff3 feat: add index.html for Solidbase theme entry point
- 74f03f7 feat: add product variant support to cart and order system
- 54548b1 feat: allow E2E tests to fail without blocking deployment
- 467fc03 feat: enhance product variant support in cart and UI
- fda2d27 feat: implement product variants with full inventory management
- bd559ad feat: let Patchright manage server lifecycle with graceful shutdown
- bc13b8c feat: replace Solidbase with VitePress for documentation
- d9de049 feat: show PortOne payment only for KRW currency
- 678c08e ✨ feat(security): harden auth, payments, Docker, and CI
Bug fixes
- 96e12fc Revert "fix(admin): add stable sort to prevent duplicate keys in pagination"
- 77aaed4 Revert "fix(frontend): clear products array before loading to prevent duplicate keys"
- a239b50 Revert "fix(frontend): prevent race condition in loadProducts"
- a2e318a Revert "fix(frontend): use immutable array updates to prevent duplicate keys"
- 8fcaee6 Revert "fix(pagination): add ORDER BY clause for deterministic product listing"
- 074b213 Revert "fix(pagination): use index as key to prevent duplicate -1 values"
- 078f996 fix(admin): UI improvements for Payment Settings
- ce2f206 fix(admin): add complete Korean translations for all admin pages
- be5cc4f fix(admin): add missing Korean translations for product form
- 39858af fix(admin): add missing translations for payment settings page
- ede02ed fix(admin): add stable sort to prevent duplicate keys in pagination
- 7ce103d fix(admin): resolve input unfocus bug in product variants
- 663c01e fix(admin): show truncation settings only for selected currency
- 48e59b4 fix(backend): add nil check in validateTruncation
- 46f9270 fix(build): resolve npm install and build errors for Vite 7/Svelte 5
- e938195 fix(cache): add version-based cache invalidation for storefront settings
- fc5f30a fix(cache): use localStorage for cross-tab version sharing
- f253f05 fix(cart): add quantity field to ListProducts query for validation
- 801930d fix(cart): add set() method to cartStore for validation updates
- 0f24489 fix(cart): show validation modal and add quantity field
- 618c2e2 fix(csv): load full product data for variant export
- 6e1e7cc fix(db): change metadata default from '{}' to '[]'
- 45c0bcc fix(docker): update image registry to ghcr.io
- 9090408 fix(docker): use latest golang:alpine for Go 1.26.1+ support
- a407ab1 fix(frontend): clear products array before loading to prevent duplicate keys
- 2b60452 fix(frontend): prevent race condition in loadProducts
- e4939fd fix(frontend): use immutable array updates to prevent duplicate keys
- 2d723e5 fix(frontend): use native locale for KRW/JPY currency units
- e42f064 fix(i18n): correct parameter syntax in importSuccess message
- 10e0302 fix(overlay): add Svelte 5 snippet support for children content
- c7d135b fix(pagination): add ORDER BY clause for deterministic product listing
- 29569ef fix(pagination): use index as key to prevent duplicate -1 values
- 7d15c89 fix(pagination): use unique keys for leading and trailing ellipses
- 9666d96 fix(portone): add cart create endpoint and fix payment request parameters
- b45ddb8 fix(portone): change payMethod back to EASY_PAY to match channel config
- 69c6b9d fix(portone): remove COEP header and add CSP for iframe compatibility
- 4b0bf03 fix: add NPM_CONFIG_LEGACY_PEER_DEPS for Solidebase build
- 5abecc5 fix: add missing test IDs and improve E2E cart test reliability
- 1caadb5 fix: bundle vitepress-plugin-* packages for SSR to fix docs:build
- c20526f fix: correct import path for formatCurrency utility
- 2024aeb fix: correct logging API calls and route ordering for PortOne
- 3b5f7eb fix: correct types in payment validation functions
- eaeb815 fix: exclude AGENTS.md from Solidbase documentation build
- 5f43edc fix: exclude docs directory from Solidbase theme build
- 7336be2 fix: generate Swagger documentation before building Go binary
- 7d77e42 fix: increase SMTP username and password character limit from 20 to 100
- 980831f fix: install patchright and use correct test command in CI
- 7bdbff6 fix: open API and E2E links in new tab
- ed13737 fix: reload cart from localStorage on page mount
- 1e73c68 fix: remove error masking from CI workflow and fix playwright import
- ac26917 fix: repair broken docs site links (readme.html 404, API links, dead pages)
- 5145731 fix: repair broken image links and add missing Korean translations
- 77f2385 fix: replace fiber-swagger with static serving for Fiber v3 compatibility
- 3c82c94 fix: resolve VitePress doc build failures in Korean readme and copy-readme plugin
- 9c32dcd fix: revert to correct patchright/test import
- 5e1972c fix: use official GitHub Pages deployment action
- e02898a fix: use raw GitHub URLs for images in readme
- 92fd835 🐛 fix(release): pass --provenance=true to docker buildx
Build process updates
- 124b2d8 🔧 build(deps): bump actions/checkout from 4 to 7
- 3b0e799 🔧 build(deps): bump actions/checkout from 5 to 7
- ad36499 🔧 build(deps): bump actions/configure-pages from 5 to 6
- 4238cff 🔧 build(deps): bump actions/deploy-pages from 4 to 5
- be92fe4 🔧 build(deps): bump actions/setup-go from 6 to 7
- 5227e52 🔧 build(deps): bump actions/setup-go from 6 to 7
- a3ded91 🔧 build(deps): bump actions/setup-node from 4 to 7
- be5851a 🔧 build(deps): bump actions/upload-pages-artifact from 3 to 5
- a3bf449 🔧 build(deps): bump github/codeql-action from 4.37.4 to 4.37.7
- 63e5fff 🔧 build(deps): bump github/codeql-action from 4.37.7 to 4.37.9
Other work
- 2928adf Add ACME/HTTPS implementation design spec
- 5e39cda Fix portone migration: add Goose directives
- c14fca6 Revert "test(pagination): add comprehensive pagination consistency tests"
- d596c49 chore(admin): placeholder for admin price display updates
- 57c49cc chore. gitignore update.
- 0868ef7 chore. remove unnecessary parts.
- 97d00f1 chore. removing dev files.
- 5fc9dbc chore. update website index page.
- c5bdc5b chore: move development files to tmp and update gitignore
- 2f81712 chore: remove CLAUDE.md from version control
- f18c433 chore: remove VitePress cache from git tracking
- c5bbc2d chore: remove completed plan and spec documents
- a6eb8aa chore: remove debug console.log statements
- fe6c5fe chore: remove tmp files from version control
- 80a8fec chore: remove unnecessary documentation files
- 3afd258 chore: remove unused Solidbase theme test script
- 876cd7e debug: add comprehensive console logging for duplicate key investigation
- 55aca9f debug: add verification markers to confirm new code is running
- 8ffaa8a docs(csv): update format guide to reflect new CSV structure
- 20d1e3f docs(readme): add environment variables documentation for docker-compose
- be86c6c docs: add OpenBSD native modules setup and --legacy-peer-deps guide
- 4c12250 docs: add PortOne migration notes
- f96564e docs: add PortOne payment gateway documentation
- 5d0e1e2 docs: add auto slug generation feature design spec
- 16f8036 docs: add cart price validation and inventory UI spec
- 0afe742 docs: add cart validation implementation plan
- fb190f4 docs: add cart validation system design spec
- 4766f5d docs: add complexity refactoring design spec
- 71ab521 docs: add complexity refactoring implementation plan
- 6912844 docs: add comprehensive PortOne implementation summary
- 411f5f7 docs: add comprehensive testing readiness guide
- 2209928 docs: add currency symbol display implementation plan
- 99a67fe docs: add currency symbol display mode design spec
- 26910fb docs: add currency truncation implementation plan
- 463afbb docs: add currency unit truncation design spec
- 0889019 docs: add decimal precision settings design spec
- c3f3025 docs: add implementation plan for auto slug generation
- 694770a docs: add manual test checklist for PortOne enhancements
- 2780d67 docs: consolidate documentation and update build artifacts
- 273bdf4 docs: simplify CLAUDE.md to reference AGENTS.md
- 66a7e8a docs: update swagger-setup.md with Fiber v3 compatibility notes
- 6a8176e refactor(admin): combine mode and unit into single dropdown
- fbaeb32 refactor(admin): extract helper from openEdit to reduce complexity
- 72f374f refactor(admin): extract helpers from handleSubmit
- be4838b refactor(admin): improve Payment Settings UI
- 81649eb refactor(cart): reduce checkOut complexity by extracting helper functions
- cbde097 refactor(csv): remove old variant parsing code
- 4aaad28 refactor(csvimport): reduce cyclomatic complexity by extracting helper methods
- 21965bc refactor(products): extract helpers from AddProductWithVariants
- 5099374 refactor(products): extract helpers from loadProductOptions
- 5fb5f70 refactor(test): extract helpers from CSV ImportExport test
- d80edbd refactor(test): extract helpers from ProductWithVariants test
- 2cabbf8 refactor: move build-time dependencies to devDependencies
- ca46aa3 refactor: reduce code complexity below 15 threshold
- a22f210 refactor: reduce cyclomatic complexity in payment handlers
- b870a21 refactor: reorganize documentation structure for unified GitHub Pages deployment
- 841c506 test(csv): add comprehensive test files for import/export
- a7cff27 test(csv): update integration test for new CSV header format
- 4839a8c test(e2e): add cart validation browser tests
- 16bed54 test(pagination): add comprehensive pagination consistency tests
- 5a180ad test(queries): add cart validation unit tests
- 50f746e 👷 ci(release): run GoReleaser only on version tags
- 151304b 📝 docs(design): add PortOne payment gateway integration spec
- 6a7d4f7 🔧 chore(deps): update Go and frontend dependencies
Full Changelog: v0.2.9...v0.2.10
Warning
If you are updating, it is essential to do the following - back up the ./site folder if you have made changes to it (you can rename it). A new folder with updated files will be created.