- Add CachedOrder holdReasonCode/holdNote and ON_HOLD fulfillment status
- Supplier UI: modal for hold reasons; vendor dashboard shows hold details
- Sync to Shopify: native fulfillmentOrderHold (GraphQL) plus JUNO_ON_HOLD tag
and juno.supplier_hold metafield; release holds when clearing
- Preserve pending supplier fulfillment on webhook cache updates
- Docker volume for gmail-reply-logos; settings note for API scopes
Made-with: Cursor
Introduce per-store chat branding (name, tagline, color, font, logo), open customization on enable, and separate Save vs INJECT actions so theme sync is explicitly vendor-triggered while preserving safe disable behavior.
Made-with: Cursor
- Filter stopwords from retrieval term matching so generic words do not
score unrelated KB chunks.
- For product-availability questions with no product or KB hits, return
a deterministic cannot-confirm reply (skip LLM).
- Tighten system prompt: no invented inventory, menus, or URLs; lower
temperature.
Made-with: Cursor
Shopify storefronts embed the chat widget cross-origin; Firefox blocks
unless the response allows framing. Set Content-Security-Policy with
frame-ancestors * for /storefront-chat/widget routes.
Made-with: Cursor
Replace ScriptTag/App Proxy storefront injection with Theme API asset injection, add theme helper utilities, and polish the iframe chat panel UI/contrast. Also clean up legacy injector routes and add onboarding guidance for required theme scopes.
Made-with: Cursor
Serve widget injector JS via Shopify App Proxy and point ScriptTag src to /apps/juno-chat to avoid ngrok/ORB/CSP script load failures.
Made-with: Cursor
Update app metadata and service worker icon references to use the PWA icon set, and add required public icon assets so Chrome can offer install.
Made-with: Cursor
Make supplier-side Shopify sync update tracking on existing fulfillments when fulfillment orders are closed, and make EC2 deploy extraction deletion-safe to prevent stale files from breaking builds.
Made-with: Cursor
Make supplier tracking/status updates the single source of truth, show them as readonly in vendor views, and sync fulfillment to Shopify from the backend with status normalization and fallback handling.
Made-with: Cursor
Deploy by zipping the repository, unpacking it on EC2, and running docker compose up --build --force-recreate with env from EC2_ENV to reduce pipeline complexity.
Restructure the EC2 deployment workflow to match the requested template style while preserving JUNOHUB image/env handling and force-recreate deployment behavior.
Use github.sha-based image tags in the deployment workflow and compose file so each pipeline run deploys a fresh app image instead of reusing mutable latest.