Skip to content

Conversation

@own-boldsbrain
Copy link

No description provided.

…and replace with minimal stub

backend(solar-monitoring): add MonitoringSubscription model and export index
…letons): add solar monitoring module + admin view-config; register module; fix imports & skeleton indexes; format docs

- backend: add solar-monitoring module (index + service + models import fixes) and register it in medusa-config
- backend: add admin view-configuration route for "solar-projects" and accompanying zod validators for solar project metadata
- backend/docs: normalize CATALOG_ENRICHMENT_GUIDE code fences to tsx for consistency
- service: minor refactor in SolarMonitoringModuleService (import path, formatting, update methods to not return DB update result, improve maintenance date parsing)
- storefront: fix many import paths to discovery/* modules and discovery product components
- storefront/common: add component index files for skeleton-order-confirmed and skeleton-related-products and update skeleton imports to use absolute module paths
- storefront/products: update solar-integration import path to configuration module
…amed declarations; storefront(purchase/order): fix billing import path; storefront(lib/solar): add solar calculator data client
…ics, lib/http, lib/cart, error-boundary): add Solar Calculator UI, Select component & analytics; small fixes; backend(docs): add LLAMA_VISION_PERFORMANCE_ANALYSIS.md

- Add Solar Calculator page and comprehensive SolarCalculatorForm component (UI, layout, inputs, results, financing & recommendations)
- Add reusable Select UI component (Radix + lucide + utility styles)
- Add analytics events module for centralized event tracking (trackEvent, trackProductView, trackCartEvent, trackSearch)
- Export default ErrorBoundaryResilient for convenience
- Re-export CartResilientLayer for compatibility from resilient-layer
- Remove stray "use server" directive from resilient HTTP client
- Add LLAMA_VISION_PERFORMANCE_ANALYSIS.md (performance analysis / optimization notes)
…xport path

storefront(lib/monitoring, modules/analytics): add monitoring data client + types; fix minor formatting in analytics events
…with realtime WebSocket updates; remove server-only directive from resilient-layer
… page (integrates SolarMonitoringDashboard) and temporarily comment out GradientDefs; backend(output/image-analysis-optimized/cache, docs): add cached image analysis JSON + cache_index.json and tweak LLAMA_VISION_PERFORMANCE_ANALYSIS.md formatting/summary
…ge with subscription listing, initial monitoring data fetch, and empty-state CTA
…add cached image-analysis JSON + cache_index, add solar index workflows and optimization guide; storefront(public): add yello logomark SVGs; update sku metadata timestamp
…sing analyzeSolarFleetWorkflow

- new route at src/api/admin/solar/fleet-analysis/route.ts
- accepts query params: sales_channel_id, category, min_capacity_kwp, status
- returns fleet_analysis result and a performance note (Index Module v2.10.2, ~75% faster)
…dmin/solar): add cached image-analysis outputs; use Index Module in kit matcher; normalize admin solar orders response; storefront(lib/cart): update resilient http import

- backend/output/image-analysis-optimized: add cached artifacts (PROCESSING_REPORT_OPTIMIZED.md, processing_summary_optimized.json, per-image metadata and cache JSONs) and update cache_index.json
- backend/src/modules/solar/services/kit-matcher.ts: switch product query to query.index (Index Module, faster) and include variant prices, inventory fields and variant.line_items.order.id for stock/popularity ranking
- backend/src/api/admin/solar/orders/route.ts: tidy formatting, cast/extract orders into a variable and return orders + count
- storefront/src/lib/cart/resilient-layer-class.ts: update import to use "@/lib/http/resilient-client"
… Fleet page and SolarFleetDashboard (Index Module)

- Add server-side SolarFleetPage that fetches fleet data via getSolarFleetAnalysis (uses Index Module optimized query).
- Add client SolarFleetDashboard component to display performance metrics, summary cards, products table and Index Module info (shows query time, items analyzed, capacity, stock, revenue).
- ui(styles/gradients.css): replace generic gradient vars with YSH brand gradients, add .ysh-gradient-defs, .ysh-stroke-gradient and background gradient variants (.ysh-bg-gradient, -horizontal, -diagonal) and default angle/color stops.
…low, POST /store/solar-quotes route, and Index Module docs; storefront(app, lib/http): enable GradientDefs in RootLayout and remove server-only import from resilient client; packages/ui: fix GradientDefs export path; storefront/packages/ui: remove deprecated Badge, Button, Card and YelloSolarButton components; docs: minor formatting tweaks to WORKFLOW_OPTIMIZATION_GUIDE
…(products table, metrics) and tidy server fetch

backend(workflows/solar, api/store, docs): formatting/indentation cleanup and minor schema/zod formatting
…ator

- Add scripts/agentflow_catalog_orchestrator.py implementing a multi-agent pipeline:
  Planner, Vision, Enrichment, Validator and Search agents + CatalogOrchestrator.
- Integrates with ollama for multimodal/chat calls (with fallback model selector).
- PVLib loading and fuzzy matching for inverter/panel normalization and validation.
- CLI batch processing (category, max, output, background), per-product JSON output and summary.
- Includes error handling, verbose timing/logging and a stubbed incremental web search.
…and normalize indentation (no functional changes)
…ok name arg and tidy formatting (no functional changes)
…rmalize indentation in route.ts (no functional changes)
… SolarFeasibilityChecker component to run feasibility validation and display results
…nclusive promotions & free shipping)

- Add CreateSolarPromotionInput and create-solar-promotion workflow that builds promotions using is_tax_inclusive to ensure discounts are applied after taxes.
- Add create-solar-free-shipping workflow to create conditional free-shipping promotions for solar projects.
- Use core createPromotionsWorkflow and createCampaignsWorkflow steps and return WorkflowResponse with promotion/campaign details.

storefront(ui): remove direct Badge, Button and Card exports from public index

- Rely on consolidated exports from ./components to avoid duplicate/inline exports in the package public surface.
… input

backend(api/admin/solar/promotions): add POST route to create tax-inclusive solar promotions
storefront(ui): remove obsolete Button.test.tsx
…cs, and agentflow output

- storefront(packages/ui): add theme.css and gradients.css; expose "styles" in package.json files field
- backend/docs: add TAX_INCLUSIVE_PROMOTIONS.md and comprehensive IMPLEMENTATION_SUMMARY_Q1_2025.md
- backend/output: add generated agentflow result 112369_agentflow.json
…add agentflow result for SKU 135720

- storefront/packages/ui/package.json: point main/types to src, remove dist from files, and simplify build script to use `tsc --noEmit` (no bundling/output).
- backend/output/agentflow-results/135720_agentflow.json: add full agentflow output JSON for SKU 135720 (vision, enrichment, validation, search results).
own-boldsbrain and others added 25 commits October 17, 2025 13:39
…nd REVIEW_SUMMARY.md; update .obsidian/workspace.json lastOpenFiles (refresh/trim)
- Created 7 modular components: core/, pipelines/, tests/, analysis/, docs/, data/, config/
- Moved 46+ files from root to organized modules
- Consolidated 16 docs into 3 categories (guides/architecture/reports)
- Created comprehensive README.md (16.6 KB)
- Backup: products-inventory-backup-20251017-134630
- Complete checklist of all 6 reorganization phases
- Final metrics: 46+ files organized into 7 modules
- 25 directories created, documentation consolidated
- All guarantees verified: backup, git history, reversibility
- Ready for production
- Commit: 3045ce3 validated successfully
- Create detailed 12-domain mapping (Catalog, Pricing, Quotes, Approvals, etc)
- Define JTBD, inputs/outputs, outcomes and KPIs per domain
- Propose new folder structure: src/domains/ with DDD layers
- Document 6-phase migration plan with success criteria
- Add performance targets and SLIs/SLOs
- Include risk mitigation strategies
- Map current modules to target architecture

Phase 0 (Inventory) complete - ready for Phase 1 (Domain Base)
- Merge detailed plan from BACKEND_RESTRUCTURE_PLAN.md
- Add visual structure with emojis and status badges
- Expand JTBD tables with inputs/outputs/outcomes/KPIs
- Detail 6-phase migration with activities and criteria
- Add comprehensive performance section (DB, cache, API, async)
- Include SLIs/SLOs table per domain with specific targets
- Document Grafana dashboards and alerts
- Add risks, mitigations, and immediate next steps
- Create executive summary with cross-references

Phase 0 complete - REESTRUTURACAO_360.md is now single source of truth
- Generate agent templates for 5 remaining distributors (Solfácil, Fotus, Odex, Edeltec, Dynamis)
- 25 new agent files created from Neosolar reference implementation
- Generic import pipeline for all 7 distributors: import-generic-distributor-to-db.ts
- Comprehensive Phase 3 status reports and documentation
- All agents ready for credential-based testing
- Infrastructure: 15/15 Docker services operational, PostgreSQL seeded with 7 distributors
- Create languages.ts with i18n message definitions
- Add language support to base MCP server class
- Update all 7 distributor servers with multilingual logging
- Create apply-multilingual-support.ts script for batch updates
- Add MULTILINGUAL_SUPPORT.md documentation
- Support currency and date formatting per language
- All log messages now translatable (Portuguese and English)
- Created extract-neosolar-final.ts: working browser automation script
- Extracts 20 products from Neosolar B2B portal (1400 available)
- Includes login detection, session reuse, and lazy loading
- Exports to JSON/CSV with auto-categorization
- Added supporting scripts for debugging and production attempts
- Comprehensive extraction report with technical discoveries
- Execution time: 6.85s for 20 products
- Portal structure mapped: React SPA with Material-UI components
Scripts added:
- extract-neosolar-all-products.ts: Multi-iteration scroll loading (100 iterations)
- extract-neosolar-pagination.ts: Pagination strategy with API analysis
- extract-neosolar-api.ts: Direct API access attempt
- extract-neosolar-aggressive-scroll.ts: Maximum scroll iterations (200)
- debug-neosolar-structure.ts: Deep portal structure analysis

Findings:
- Portal uses React + Material-UI with IntersectionObserver lazy loading
- Authentication successful with provided credentials
- 20 products consistently extracted (appears to be portal-wide maximum)
- No obvious pagination controls or additional data pages found
- API endpoint discovered but returns 404 when accessed directly
- Prices unavailable (return 0) in public portal access

Key Insight:
- May be a demo/sample catalog rather than full 1400 product inventory
- Credentials may have restricted access
- Recommend contacting Neosolar for:
  1. Full product catalog access
  2. API documentation for B2B integration
  3. Confirmation if 20 is intentional limit

Documentation added:
- NEOSOLAR_EXTRACTION_FINAL_REPORT.md with complete analysis and next steps
- Technical specifications of portal architecture
- Recommendations for further investigation
Summary of investigation:
- 20 products successfully extracted and categorized
- 5 different extraction strategies tested
- Portal analysis: React + Material-UI with IntersectionObserver
- Consistent 20-product limit across all approaches
- API endpoint found but inaccessible directly

Key findings:
- May be demo/sample catalog (20 products appear intentional)
- Credentials authenticate successfully
- No pricing data available in public portal
- No pagination controls visible
- Recommends contacting Neosolar for full catalog access

Next steps:
1. Contact Neosolar support for full API access
2. Test alternative URLs and parameters
3. Extract from other distributors while waiting
4. Implement database import pipeline
Includes:
- Complete session summary (90 minutes of work)
- All scripts created and tested (7 total)
- Technical findings and analysis
- 5 extraction strategies evaluated
- Hypotheses about 20-product limit
- Recommendations for next steps
- Git commits tracking
- Contact information for follow-up
- Success metrics and KPIs
- Detailed learnings from investigation

Key Result:
- 20 products successfully extracted
- Portal structure fully analyzed (React + MUI)
- Multiple strategies tested and documented
- Ready for database import when approved
- Awaiting Neosolar response for full catalog access
- Created extract-all-distributors.ts (parallel extraction from 7 distributors)
- Successfully extracted 81 products (Edeltec: 79, Neosolar: 1, Odex: 1)
- Corrected B2B URLs for Solfácil and Fotus
- Created debug-login-portals.ts for portal inspection
- Generated 3 comprehensive reports (extraction, URLs, executive summary)

Results:
- 3/7 distributors working (42.9% success rate)
- 133.34s total duration
- Edeltec champion with 79 products (97.5% of total)

Pending:
- Solfácil and Fotus: Login automation requires debugging
- Fortlev and Dynamis: Missing correct B2B URLs
- Neosolar: Requires support contact for full catalog access
BREAKTHROUGH: Fortlev now functional! 🎉

Results:
- ✅ Edeltec: 79 products (champion)
- ✅ Fortlev: 3 products (NEW - fortlevsolar.app/login discovered)
- ✅ Neosolar: 1 product (limited access)
- ✅ Odex: 1 product (partial)
- ❌ Solfácil: SSO Keycloak authentication pending
- ❌ Fotus: Login form not detected
- ❌ Dynamis: Login form not detected

Metrics:
- Success rate: 57.1% (4/7 distributors)
- Total products: 84
- Duration: 164.22s (~2.7 minutes)
- URLs corrected: 6/7 (85.7%)

Next steps:
- Deep scraping Fortlev and Odex categories
- Implement SSO authentication for Solfácil
- Debug Fotus and Dynamis login flows
- Database import of 84 products
- Database schema with 50+ fields, indexes, views, triggers
- TypeScript validators with Zod schemas per category
- Widget helpers for database queries and formatting
- Import script with batch processing and validation
- Complete implementation guide

468/1138 products imported successfully (41% with valid data)
Scripts:
- run-rds-migration.js: Execute SQL migrations on RDS via tunnel
- import-catalog-to-rds.js: Import catalog with production schema
- check-rds-schema.js: Validate RDS table structure

Documentation:
- AWS_DEPLOYMENT_GUIDE.md: Docker build + ECS deployment steps
- AWS_RDS_CONNECTION_SETUP.md: SSH tunnel + connection docs
- CATALOG_CDN_INTEGRATION_READY.md: Executive summary

Status:
✅ Migration executed (14 indexes, 5 views, 3 functions)
✅ Catalog imported (574/1138 products, R$ 2.8M)
⏳ Docker/ECS deployment pending (manual steps)
Implements the backend infrastructure for custom product bundles and technical sheets, following the architectural blueprint.

- Creates a `TechnicalSheet` module with a data model, service, and API endpoints to manage technical sheet URLs and associate them with products.
- Creates a `Bundle` module with `Bundle` and `BundleItem` data models, a service, and data links to the core `Product` module.
- Implements a transactional `createBundleWorkflow` to orchestrate the creation of bundle products.
- Exposes the bundle creation and listing functionality through the Admin API at `/admin/bundles`.
- Standardizes module imports and resolves critical bugs identified during code review.
- Implements the Admin UI for managing product bundles, including a new page for creating and listing bundles with component quantities.
- Adds a widget to the product details page in the Admin UI for managing technical sheets.
- Integrates "Technical Sheets" and "Bundle Components" tabs into the storefront product details page.
- Creates the necessary storefront API endpoints to support these features.
- Fixes critical bugs in the backend and UI identified during code review.
Overhauls the main README file to provide a comprehensive, enterprise-grade guide for developers. The new structure includes:
- A clear executive summary (TL;DR).
- Mermaid diagrams for architecture, business workflows, agent communication, and dataflows.
- A detailed table of MCP contracts and consumption maps.
- Streamlined, verifiable setup and installation instructions.
- A consolidated list of useful scripts for development and CI.
- Clear guidelines for testing, quality, observability, and deployment.
- An updated roadmap and FAQ section.

This change aligns the documentation with the current state of the repository and significantly improves the onboarding experience.
Overhauls the main README file to provide a comprehensive, enterprise-grade guide for developers. The new structure includes:
- A clear executive summary (TL;DR).
- Mermaid diagrams for architecture, business workflows, agent communication, and dataflows.
- A detailed table of MCP contracts and consumption maps.
- Streamlined, verifiable setup and installation instructions.
- A consolidated list of useful scripts for development and CI.
- Clear guidelines for testing, quality, observability, and deployment.
- An updated roadmap and FAQ section.

This change aligns the documentation with the current state of the repository and significantly improves the onboarding experience.
Copilot AI review requested due to automatic review settings October 25, 2025 05:28
@vercel
Copy link

vercel bot commented Oct 25, 2025

@google-labs-jules[bot] is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds comprehensive technical documentation for the YSH B2B platform, focusing on bundling technical sheet modules. The changes include:

  • Added deployment automation scripts (PowerShell) for AWS infrastructure with custom domain support
  • Created extensive documentation for deployment, setup, and feature mapping
  • Added new configuration files for ECS services and Docker setup
  • Provided detailed mapping between frontend components and backend APIs aligned with customer journeys

Reviewed Changes

Copilot reviewed 67 out of 7647 changed files in this pull request and generated no comments.

Show a summary per file
File Description
aws/ecs-services-config.json ECS service configuration for backend and storefront with auto-scaling policies
aws/deploy-with-domain.ps1 PowerShell deployment automation script with AWS SSO and domain setup
aws/cloudformation-with-domain.yml CloudFormation template for AWS infrastructure with custom domain integration
aws/cloudformation-infrastructure.yml Infrastructure CloudFormation template optimized for performance
aws/cloudformation-free-tier.yml Free-tier optimized CloudFormation template with detailed resource configuration
aws/backend-task-definition.json ECS task definition for backend service with Medusa.js configuration
aws/backend-migrations-*.json Task definitions for database migrations and seeding
aws/aws-outputs.json AWS resource outputs for infrastructure
aws/SYNTAX_FIX_SUMMARY.md Documentation of PowerShell syntax fixes applied
aws/README.md Index and navigation guide for AWS deployment documentation
aws/POST_DEPLOYMENT_README.md Post-deployment automation scripts documentation
aws/DEPLOYMENT_SUMMARY.md Summary of deployment options, costs, and next steps
aws/DEPLOYMENT_GUIDE_DOMAIN.md Complete step-by-step deployment guide with custom domain
aws/*.ps1 PowerShell scripts for ECS deployment, database setup, monitoring, and environment configuration
STOREFRONT_BACKEND_JTBD_MAPPING.md Comprehensive mapping of storefront features to backend modules by customer class
SETUP_DOCKER_GUIDE.md Docker Desktop installation and setup guide
README.md Updated project README with architecture diagrams and setup instructions
.yarnrc.yml Yarn configuration file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gitguardian
Copy link

gitguardian bot commented Oct 25, 2025

⚠️ GitGuardian has uncovered 22 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
- - Generic Password aefb291 backend/mcp-servers/.env.example View secret
- - PostgreSQL Credentials 2156710 backend/AWS_RDS_CONNECTION_SETUP.md View secret
- - Username Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Password 0e63478 backend/data/products-inventory/data-pipeline/infrastructure/grafana/provisioning/datasources/datasources.yml View secret
- - Redis Server Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Password 8fce2fd docker-compose.full-stack.yml View secret
- - Generic Password 2271463 backend/data/project-helios/haas/tests/test_auth.py View secret
- - Generic CLI Secret 3d548d7 backend/data/products-inventory/data-pipeline/workflows/airflow/docker-compose.yml View secret
- - Company Email Password bf94cf7 backend/NEOSOLAR_EXTRACTION_SUMMARY.md View secret
- - Redis Server Password c5afabf backend/data/project-helios/haas/docker-compose.alt-ports.yml View secret
- - Company Email Password aefb291 backend/mcp-servers/.env.example View secret
- - Generic Password 0e63478 backend/data/products-inventory/data-pipeline/infrastructure/grafana/provisioning/datasources/datasources.yml View secret
- - Generic Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Password 2156710 backend/scripts/check-rds-schema.js View secret
- - Generic Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Database Assignment bc9ee25 backend/scripts/query-catalog-stats.py View secret
- - Generic Password aefb291 backend/mcp-servers/.env.example View secret
- - Username Password 562e861 aws/deploy-with-domain.ps1 View secret
- - Redis Server Password 0e63478 backend/data/products-inventory/data-pipeline/docker-compose.yml View secret
- - Generic Password 6735fbd .env.multicloud View secret
- - SMTP credentials 3d548d7 backend/data/products-inventory/data-pipeline/workflows/airflow/README.md View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

Fixes a Mermaid syntax error in the "Mapa de Consumo MCP pelos Agentes" diagram within the `README.md` file. The previous syntax used special characters in edge labels, causing a rendering failure.

The labels have been simplified to be compliant with the Mermaid parser, ensuring the diagram now renders correctly in compliant Markdown viewers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant