Activity
My coding activity across 2 repositories. 415 commits tracked.
Commits
415 totalfix: Fallback to raw_data for image_url in SQL product tool
fix: Always compact large tool results in JIT context
chore: Reorganize repository structure
feat: JIT Context Optimization for StorefrontAgent (#14)
fix: Product cards not displaying on second query in same session
perf: Replace MutationObserver with history API for SPA navigation detection
fix: Product card persistence after page refresh
fix: Restore product cards from localStorage on page refresh
debug: Add comprehensive logging to product extraction function
fix: Clarify prompt to always call discover_products_semantic for new product searches
fix: Add widget HMAC authentication headers to iframe API client
feat: Remove Channels tab from merchant dashboard
fix: Add missing useWhatsAppAutomation hook
fix: Update WhatsApp routes to use react-router imports
feat: Add circuit breaker for WhatsApp feature
fix: Remove business_management scope from WhatsApp OAuth
fix: Open WhatsApp OAuth in new window instead of iframe
fix: Remove STATE_PREFIX export after OAuth database migration
fix: Use get_async_session for OAuth state management
fix: Use database for OAuth state instead of Redis
fix: Correct WhatsApp OAuth endpoint URL to match backend
feat: Implement WhatsApp Business API Phase 3
fix: Remove broken migration 026, use corrected UUID types
fix: WhatsApp Phase 2 code review fixes
feat: Add WhatsApp Business API Phase 2 - OAuth, Phone Verification, Analytics
fix: Address code review issues for WhatsApp integration
feat: Add WhatsApp Business API integration (Phase 1)
fix: Add asyncio.wait_for timeouts to checkpoint operations
fix: Extract products only from current turn, not previous turns
fix: Stop product_gallery from showing on non-product queries
debug: Add SSE logging to diagnose product grid clearing issue
fix: Product grid UI bugs - stale grid, duplication, page context
docs: Update AAMS dashboard URL and add Playwright usage instructions
fix: Replace hardcoded staging URLs with dynamic frontend variable
fix: Remove debug console.log statements from widget
fix: Close chat window when switching to minimized mode
fix: Safari state management with timestamp-based transition guard
fix: Complete remaining 5-week plan items
fix: Simplify widget state acknowledgment to prevent desync
fix: Comprehensive state management overhaul for widget open/close
fix: Add widget-bridge state synchronization via acknowledgment
fix: Prevent desktop Safari from being detected as mobile
docs: Add staging test store URL and password to CLAUDE.md
fix: Safari compatibility - prevent header element collapse
fix: Add Safari 13-14 flexbox gap fallbacks for header elements
fix: Add Safari 13-14 browser compatibility
fix: Add transition guard to prevent widget state desync on rapid clicking
feat: Week 5 widget modernization - tokens, dark mode, accessibility, performance
feat(widget): Complete modernization - remove unused tokens.css, standardize TOKENS usage
fix(widget): Add missing checkoutPanel token to design-tokens
fix(widget): Add variant validation to handleBuyNow function
feat(widget): Week 4 improvements - bug fix, accessibility, architecture & bundle optimization
feat(widget): Complete Week 3 design system consolidation & testing
feat(widget): Week 3 accessibility, performance & design system improvements
feat(widget): Complete Week 2 UI modernization with CSS class migration
fix: Restore displayMode to docked when opening from minimized state
docs: Add comprehensive UI refactoring plan and best practices
fix: Preserve image_url in product webhook updates
feat: Add on_sale_only filter to discover_products_semantic
fix: Prevent widget layout crush on reopen in iframe mode
feat: UI modernization + cart fix for agentic widget
fix: Sync product title and description to Qdrant on webhook updates
fix: Eliminate cart.js 404 spam and false isMobile in iframe context
fix: Stop cart.js 404 spam in iframe and fix isMobile false positive
feat: Convert widget to Rufus-style docked side panel with 4 iframe sizing modes
feat: Forward page context to agent and add OpenAI EU base URL support
fix: Make widget clickable by replacing pointer-events:none with dynamic iframe resizing
fix: Keep staging frontend always running to prevent widget 503s
fix: Add X-Shop-Domain header to widget API client and harden prompt config import
fix: Increase staging frontend memory to 512MB for stability
fix: Add widget files to public folder and add debugging logs to brand config
feat: Add iframe-based persistent widget architecture (SIG-72, SIG-73)
feat: Add product comparison mode and quick actions bar
feat: Add Rufus-style docked sidebar, page context detection, and proactive engagement
fix: Remove sslmode from connection string to fix SSL config conflict
fix: Add SSL config for Supabase PostgreSQL connection in shop registration
feat: Add Mistral LLM provider support for lower latency
fix: Add timeout protection and logging to identify connection hang
chore: Add logging for OpenAI model diagnosis
chore: Add logging for LLM call timing diagnosis
fix: Add asyncio.timeout protection around LLM streaming loop
docs: Add Shopify theme extension deploy instructions and fix Qdrant addresses
infra: Harden Qdrant production infrastructure
fix: Update Qdrant staging config to match production for 6PN connectivity
fix: Ensure tool_progress SSE events display in widget UI
chore: Add debug logging for tool_progress SSE events
fix: Update theme extension with latest widget build (tool_progress support)
fix: Use flattened tool_progress fields from SSE chunks
feat: Add tool_progress streaming support to frontend widget
fix: Enable StorefrontAgent (v4) on staging via AGENT_VERSION env var
fix: Use dispatch_custom_event for tool progress streaming
fix: Add null-safe handling for get_stream_writer in all tools
feat: Add custom streaming events with AI sales personality
Fix Bloomers date range to Jan 2025 - Jan 2026
Update CV and homepage - no longer at Bloomers
Fix scheduled deploys not refreshing activity commits
Add live demo link to Sigma AI page
Enable StorefrontAgent (v4) in production (#13)
fix: Fix all ruff linting errors in backend (#12)
fix: Simplify production smoke tests to only check critical endpoints (#11)
Staging (#10)
fix: Enable Qdrant Flycast auto-start on staging
feat: Add LangSmith native evaluators and improve agent tools
feat: Add 100-query LangSmith evaluation dataset and scripts
feat: Add LangSmith evaluation skill with full tracing
Add daily scheduled rebuild for activity page
docs: Add git commit guidelines - no watermarks
fix: Prevent duplicate priorities for featured products
feat: Add get_featured_products tool for merchant's hero products
fix: Yield text before products for proper streaming UX
fix: Generate meaningful fallback responses for product galleries
fix: Auto-refresh cart panel UI after remove/update operations
Add dedicated pages for DiMedi and ORY Berlin apps
Add DiMedi and ORY Berlin to apps page
chore: Clean up repository and update documentation
chore: Remove unused test artifacts and evaluation files
feat: Secure order lookup with triple verification via Shopify Admin API
feat: Add UX improvements - avatar gallery, color presets, language selection, skills toggles
feat: Add language and skill suggestions to auto-generate agent
feat: Add enabled_skills support across frontend and backend
feat: Add AI skills toggles for assistant capabilities
feat: Add language selection to AI assistant configuration
feat: Add avatar gallery and color presets to widget design studio
Revert to API for showcase data
Use static JSON for showcase data
Add llm.txt for LLM crawlers
Update GEO-optimized LLM content on homepage
Add showcase section to geo page
Remove emojis and special characters from GEO page
Fix GEO Optimizer polling to use correct API endpoints
Add interactive GEO Optimizer tool to apps section
Add GEO Optimizer page with navigation
Fix blog post title capitalization for consistency
Enlarge navbar menu and update email to hello@umerkhan.eu
Add Google Search Console verification meta tag
fix: Theme toggle now works on first click with event delegation
feat: Redesign website with consistent side-label layout and Three.js particles
fix: Pass GITHUB_TOKEN as build argument for Fly.io deployment
Redesign website with modern minimal UI and add activity page
fix: Resolve correct shop_id after app reinstall
fix: Resolve app loading issue on fresh install
fix: Prevent Fly.io internal port 8080 from leaking into URLs
fix: Add data-astro-reload to prevent View Transitions port bug
feat: Add /apps page with app listing, update navbar
feat: Add Sigma AI to navbar
fix: Use absolute URLs for sigma-ai page links
Merge article-page-integration: Add Sigma AI pages
feat: Add Sigma AI landing page, privacy policy, and terms of service
fix: Hide internal Linear URL from merchants
fix: Ensure agent includes actual ticket URL in responses
docs: Add detailed installation and app embed troubleshooting
chore: Update documentation tool description for merchant context
security: Prevent code/data type exposure to merchants
fix: Prevent hallucination and improve conversation memory
Fix: Prevent generic greetings on brand-specific queries
Add prompt guidance for show-all, catalog overview, and long conversations
fix: Clear shown_products state on empty search results
fix: Prevent Dawn theme CSS from hiding widget container
Fix sessions/analytics APIs and add dashboard metrics
feat: Add collections webhooks for real-time sync
fix: Pass BACKEND_API_URL explicitly to npm build process
fix: Expose BACKEND_API_URL to client bundle at build time
fix: Use correct field name 'body' for Article in Shopify GraphQL
feat: Add read_content scope for Shopify Pages API
fix: Remove invalid query argument from Shopify Pages GraphQL
fix: ShopCredentialManager to fetch access token from Supabase Vault
feat: Add Auto-Generate prompt configuration with LangGraph agent
feat: Professional agent responses with horizontal product scroll
fix: Cart synchronization with Shopify theme cart
feat: Redesign checkout panel with variant selectors and fix double-bubble
feat: Redesign Agentic widget to match OpenAI Shopping Demo
fix: SQL parameter mismatch in widget design PATCH endpoint
feat: Add Agentic widget with widget type selector in Design Studio
feat: Integrate theme settings into widget frontend
feat: Add Widget Design Studio for customizable chat widget themes
fix: SQL tools now return JSON-serializable product data for product cards
feat: add full variant data to product search responses
feat: add graceful cart operations with ordinal references and button sync
fix: restore entity_id extraction for payload
fix: centralize Qdrant point ID generation to prevent duplicates
fix: use Shopify category taxonomy instead of productType for filtering
fix: use full GID for Qdrant point ID to enable proper upserts
fix: remove invalid 'close' SSE event type causing pydantic validation error
feat: add comprehensive Qdrant payload filtering for brand, price, stock, and tags
Enhance merchant prompt and session persistence
fix: per-turn tool counter, remove end_on, strengthen cart prompt
feat: add StorefrontAgent v4, widget-dev, ingestion fixes
feat: add StorefrontAgent v4 - single agent architecture
fix: ensure semantic search for price queries + add logging
fix: use semantic search for price queries
fix: correct tool name in ProductReaderAgent prompts
fix: remove typing chunk that widget doesn't handle
fix: resolve chat widget 422 errors with session ID compatibility
fix: enable Shopify managed installation for token exchange
fix: add Polaris AppProvider for SSR context
fix: replace RouteErrorBoundary with SimpleErrorBoundary for SSR compatibility
fix: add /health endpoint to fix 503 errors
feat: add comprehensive error boundary system
fix: skip authenticate.admin() for embedded apps with session tokens
feat: migrate to file-based routing with flatRoutes
fix: remove duplicate AppProvider from root.tsx
fix: use route() instead of layout() for proper path handling
fix: prevent login form rendering for embedded apps
fix: properly handle embedded auth in login route
fix: remove auth/login route blocking embedded app
fix: resolve auth/login 500 error by restoring login routes
feat: enable data ingestion route with all dependencies
fix: resolve 500 error by disabling unstable_newEmbeddedAuthStrategy
fix: disable analytics route until backend API is ready
fix: register routes in routes.ts and add analytics page
fix: restore missing app routes accidentally removed in Fly.io migration
feat: migrate to Fly.io deployment with PostgreSQL
feat: add ChatWidgetAgent integration example for merchant profiles
fix: add start-dev.sh and enhance CORS for Cloudflare tunnels
chore: add Shopify app configuration and setup instructions
feat: complete Phase 5 UI and comprehensive documentation
fix: resolve test failures in merchant config test suite
docs: finalize Phase 5 guide and update status to 75% complete
test: add comprehensive test suites for Phase 6
docs: update implementation status - Phase 4 complete (60%)
feat: implement Phase 4 - Prompt Configuration API
fix: migration bug and add async database pool
docs: update implementation status - Phase 3 complete (45% done)
feat: add ChatWidgetAgent integration example for merchant profiles
feat: create SalesAgentComposer with merchant customization support
docs: add implementation status tracker for merchant prompts feature
feat: implement MerchantConfigService with Redis caching and validation
feat: add database migration and ORM models for merchant prompt customization
feat: implement local SQL LLM with comprehensive testing
feat: fix product prices in Qdrant + LangChain SQL Agent analysis
fix: implement proper message trimming using middleware
feat: implement message trimming to prevent token overflow
refactor: remove MCP layer, use direct Qdrant for semantic search
fix: MCP client connection issues and add SQL fallback
Implement Phase 3: Advanced Features - Subagents and Long-Term Memory
Implement Phase 2: Deep Agents Core Migration
Phase 1 COMPLETE: Deep Agents POC - All tests PASSED
Add comprehensive Deep Agents migration documentation
Pre-Deep Agents migration checkpoint - hierarchical multi-agent architecture
Update graphs.py and langgraph.json with new orchestrator naming
Archive legacy agents and rename master_orchestrator_v3 to orchestrator
Update MetafieldReaderAgent prompt to prioritize product discovery tools
Add product discovery tools for MetafieldReaderAgent fuzzy→exact identifier conversion
Add load_dotenv() to llm_config.py to automatically load environment variables
Replace hardcoded ChatOpenAI with get_llm() in all agents - full Ollama support
Replace hardcoded ChatOpenAI with centralized get_llm() supporting Ollama
Add centralized LLM configuration supporting Ollama, OpenAI, and Anthropic
Update product read tools to use new price column
Fix checkpointer pattern following LangChain Academy best practices
CRITICAL FIX: Restore checkpointers for conversation memory
Add comprehensive conversation memory documentation
Add startup script for LangGraph dev with PostgreSQL persistence
Fix LangGraph dev compatibility while preserving conversation memory
CRITICAL FIX: Restore conversation memory by enabling checkpointers
Fix PostgreSQL connection issues by disabling SSL for local database
Enforce mandatory tool usage in reader agents
Integrate ReadSupervisor into MasterOrchestratorV3
Add safe state access for LangGraph Studio compatibility
Fix message content handling in MasterOrchestratorV3 and ReadSupervisor
Add comprehensive test suite for MasterOrchestratorV3
Fix checkpointer initialization for LangGraph API compatibility
Fix checkpointer initialization order in MasterOrchestratorV3
Fix relative imports in graphs.py for LangGraph Studio compatibility
Configure new multi-agent system for LangGraph Studio
Phase 3: MetafieldReaderAgent with 45 tools and dynamic selection
Phase 2: ReadSupervisor + ProductReaderAgent with dynamic tool selection
Phase 1: Foundation - MasterOrchestrator V3 with LLM routing and Pydantic validation
Add comprehensive multi-tenant architecture to implementation plan
Add comprehensive multi-agent implementation plan
Add LibrarianAgent with 45 specialized metafield tools
Refactor LibrarianAgent tools into modular structure
Add LibrarianAgent Phase 2: Complete Qdrant tools implementation
Add LibrarianAgent Phase 1: Database migration and SQL tools
Fix KeyError user_query - use local variable and remove from state dict
Fix TypedDict to use total=False for LangGraph Studio compatibility
Fix orchestrator to properly invoke ProductAgent V2 as subgraph
Fix AttributeError list object has no attribute lower
Handle multiple message formats in orchestrator (Studio dict/object/string)
Fix product_agent_node to properly handle compressed_instruction fallbacks
Fix Master Orchestrator to accept message-based input from LangGraph Studio
Add Master Orchestrator documentation and quick API test
Fix LangGraph API checkpointer error - remove custom MemorySaver
Implement Master Orchestrator with supervisor pattern for multi-agent routing
Fix token overflow and context length errors in ProductAgent V2
Implement ProductAgent V2 with LangGraph architecture
Update .gitignore to prevent environment files from being committed
Add comprehensive modularization plan for bulk_vector_sync.py
Add Tier 5 documentation and base sync module
Add Tier 5 entities: product_reviews and analytics_events
Clean up documentation: archive outdated files
Complete Phase 4: All 17 Shopify entities synced to Qdrant
🚀 Phase 3 Complete: Tier 2 Entity Ingestion - 8,212 vectors at 70/sec
🎉 Phase 2 Complete: Multi-Tenant Vector Architecture with 89 vectors/sec
🚀 Advanced vector architecture with enhanced weighted embeddings
🔧 Enhanced order & customer tracking with comprehensive business data
🎉 Production-ready ingestion system - 95% coverage achieved
🚀 Complete modular ingestion system implementation
Remove AI agent logic, preserve Shopify data ingestion workflow
🚀 Major Implementation: Complete Data Infrastructure & Ingestion Pipeline (Phase 1-4)
docs: Clarify database-first architecture for product reads
fix: Handle nested MCP response structure and correct get_product parameter
feat: Phase 4 Ticket 4.3 - Shopify MCP Product Agent
feat: Phase 4 Ticket 4.2 - Blog Content Ingestion Service
fix: Resolve MCP session management - Full working integration! 🎉
feat: Implement MCP protocol initialization and SSE support
fix: Add SSE support to MCP client Accept header
feat: Complete Phase 4 Ticket 4.1 - Shopify MCP Client Wrapper
feat: Complete Phase 3 Ticket 3.4 - LangGraph SEO Nodes
feat: Complete Phase 3 Ticket 3.3 - GSC-Powered SEO Agents
feat: Complete Phase 3 Ticket 3.2 - SEO Data Ingestion Pipeline
feat: Complete Phase 3 Ticket 3.1 - GSC MCP Server Setup
feat: Complete Phase 2 Ticket 2.6 - Verification & Advanced Features
feat: Complete Phase 2 Ticket 2.5 - Conditional Edge Implementation
feat: Phase 2 Ticket 2.4 - Complete with MetafieldsDetailAgent
feat: Phase 2 Ticket 2.4 - Add MetafieldSchemaAgent placeholder
feat: Phase 2 Ticket 2.4 - Convert BulkHandlers to BulkOperationsAgent
feat: Phase 2 Ticket 2.4 - Convert SEOAnalysisHandler to SEOOptimizationAgent
feat: Phase 2 Ticket 2.4 - Convert InventoryHandler to InventoryCheckAgent
feat: Phase 2 Ticket 2.4 - Convert DataStatusHandler to DataSyncAgent
feat: Phase 2 Ticket 2.4 - Convert AnalyticsHandlers to AnalyticsQueryAgent
feat: Phase 2 Ticket 2.4 - Convert CollectionListHandler to CollectionListAgent
feat: Phase 2 Ticket 2.4 - Convert MetafieldsHandler to MetafieldsListAgent
feat: Phase 2 Ticket 2.4 - Convert ProductSearchHandler to ProductSearchAgent
feat: Phase 2 Ticket 2.4 - Convert ProductListHandler to ProductListAgent
feat: Complete Phase 2 Ticket 2.4 - Convert ShopAnalysisHandler to real agent
fix: LangGraph agent integration bugs - intent classification and agent execution
feat: Complete Phase 2 Ticket 2.3 - Agent Node Migration
feat: Complete Phase 2 Ticket 2.2 - State Schema Validation & Utilities
feat: Complete Phase 2 Ticket 2.1 - LangGraph Infrastructure Setup
feat: Phase 1 Ticket 1.5 - Repository pattern implementation
feat: Phase 1 Ticket 1.4 - InfluxDB metrics collection
feat: Phase 1 Ticket 1.3 - Redis caching layer with multi-tier strategy
feat: Phase 1 Ticket 1.2 - Qdrant vector database setup
feat: Phase 1 - Supabase PostgreSQL setup and infrastructure
fix: Initialize MCP registry and async product creation
feat: Add auto-sync on startup + Qdrant vector embeddings
docs: Add comprehensive implementation summary
feat: Integrate 6 new MCP tools for enhanced shop intelligence
feat: Add user-controlled intelligent data ingestion system
feat: Add automatic shop data ingestion on startup
fix: Add environment loading to chat CLI and verify OpenAI integration
feat: Add Phase 1 & 2 - Multi-LLM support and chat interface
refactor(batch-7): Add connectors, utils, scripts + docs (BATCH 7)
refactor(config): Create Settings system + wire into moderator (BATCH 6)
refactor(verifier): Split into façade + 4 verb modules (BATCH 5)
fix(verifier): Fix 7 failing verifier test cases - pre-work for Batch 5
fix(tests): Resolve 3 failing integration tests - memory access issues
refactor(seo): Split seo_agent.py into façade + 8 verb modules (BATCH 4)
refactor(orchestration): Split orchestrator.py into thin facade + modules (BATCH 3)
refactor(agent_base): Split agent_base.py into modular package (BATCH 2)
refactor(memory): Split memory.py into modular package (BATCH 1)
fix(memory): rename PromptVersion.metadata → prompt_metadata
Merge pull request #6 from umerkhan95/article-page-integration
Fix: Add missing pubDate field to store items
Merge branch 'article-page-integration'
Update blog post tags with more comprehensive categories
Merge pull request #5 from umerkhan95/article-page-integration
Add new blog post: Transformer vs. Diffusion Models
Merge pull request #3 from umerkhan95/article-page-integration
style: reduce blog post image size to 200px width
Merge pull request #2 from umerkhan95/article-page-integration
docs: update README with new features and simplify instructions
Merge pull request #1 from umerkhan95/article-page-integration
feat: replace sidebar with devtoolbar, add theme switching
Auto-updated on every deploy.
View GitHub Profile