Repository navigation
Conversation
Merge pull request #1 from RateBox/dev
…essing - Added Redis Stream service for message queue management - Created listing processor to handle Shopee product data - Implemented background worker to consume validation requests - Set up data flow: Extension → Redis Stream → Strapi → Listings - Fixed TypeScript compilation issues and package dependencies - Configured proper Status enum values for Strapi listings - Successfully creates Listing records without creating Reviews The system now processes Shopee data from the browser extension through Redis Streams and creates Listing records in Strapi with product metadata stored for reference. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…nt template for home\n- Add pricing & company pages\n- Strapi: platform identifier cleanup, productId extract unify\n- chore(lint-staged): add root config for Windows
… Rename custom Locale -> AppLocale to avoid i18n conflict\n- Adjust service logic and creation defaults\n\ndocs(guides): add UI Architecture & Coding Conventions\n\nchore: rebuild admin and restart dev
- Rename apps/ui to apps/web for Vercel template consistency - Update all config files: package.json, turbo.json, .eslintrc.js, .vscode/settings.json - Update documentation: README, COLLABORATION.md, Development-Setup.md - Update Git config: CODEOWNERS, .github/workflows, .github/labeler.yml - Integrate ListingHub template as main homepage - Copy ListingHub source files to apps/web/src/app/[locale] - Fix layout conflicts and restore ListingHub template display - Add react-icons dependency for ListingHub components - Test web app running successfully on port 3000
- Copy all images from ListingHub template to public/img directory - Fix image loading issue where all images were only 1328 bytes placeholders - Images now display correctly on frontend - Remove unused test JS files 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Remove quotes from file paths to let ESLint handle escaping - Fix issue where files with brackets like [locale] were not found - Add check for empty file list to prevent errors 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update hero section to use home-6 style with simple search bar - Replace FormOne with simple search input and magnifying glass button - Keep Explore Popular Categories buttons below search - Change CategoryOne to CategoryTwo from home-2 for carousel layout - Keep brand logos section from original home-1 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update package.json dev script to force port 3000 - Ensures consistent development environment 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Reduce padding and margins for better vertical positioning - Content now positioned closer to top of viewport 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fixed xRange syntax for node-redis library (not ioredis) - Worker can now read messages from Redis stream - Successfully processes extension data and creates listings - Changed from xReadGroup to simpler xRange polling approach 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…Vietnam - Add locale parameter to findOrCreateCategory function - Pass locale when creating new categories - Ensure categories are created with Vietnamese locale for shopee.vn - Fix issue where categories were defaulting to English locale 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add Category relation mapping using category.id - UsageCount already mapped from product.soldCount - Add logging for Category and UsageCount values - Note: Extension currently sends soldCount=0, needs investigation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add soldCount parsing in content-script.js from "Đã bán" element - Support multiple selectors as Shopee often changes class names - Parse formats like "71", "1.2k", "1,2k" correctly - Pass soldCount to background.js for API submission - Map to UsageCount field in Strapi 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Extension improvements: - Use text-based search for "Đã bán" instead of hardcoded classes - Three strategies: text search, regex pattern, fallback to classes - More resilient to Shopee HTML structure changes Strapi improvements: - Use PlatformLocale from Platform table directly - No hardcoded locale logic - Platform controls listing locale 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Extension improvements: - Parse actual product description from "Mô tả sản phẩm" section - Two strategies: find by section title or longest pre-wrap div - Add description to product data object - Use real description instead of product title Backend improvements: - Remove duplicate Category field in listing data - Use actual description from extension 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Use .e8lZp3 and .QN2lPu classes from actual Shopee HTML - Parse all p tags and join with newlines - Three strategies: exact class, heading search, text fallback - More reliable description extraction 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Upload hình vào thư mục Items trong Strapi - Ngăn tạo listing tiếng Anh trùng, chỉ tạo bản tiếng Việt - Sửa mapping field Media thay vì Images - Thêm kiểm tra strapi instance trước khi upload hình - Extension v1.0.48: giữ nguyên extractors đã hoạt động 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Sửa redisWorker.ts để đọc đúng cấu trúc data từ extension - Extension gửi data dạng item.product.field, không phải nested thêm - Fix mapping: stock, images array, và likedCount (FavoriteCount) - Đảm bảo parse đúng kiểu dữ liệu số với parseInt() 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Sửa cấu trúc data gửi cho Strapi upload service - Tách riêng fileInfo và file object - Thêm path: null để Strapi nhận diện dùng buffer 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Strapi upload service yêu cầu file path thực, không chấp nhận buffer trực tiếp - Ghi buffer ra file tạm trong temp folder - Upload từ file path, sau đó xóa file tạm - Import fs, path, os modules để xử lý file 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Sửa upload hình dùng temp file thay vì buffer trực tiếp - Fix TypeScript error với Media field trong log - Images được extract và upload đúng cách từ Shopee 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Khai báo tempFilePath bên ngoài try block - Kiểm tra tempFilePath trước khi cleanup trong catch - Continue với hình tiếp theo nếu upload thất bại 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
- Sửa logic upload để không skip khi listing đã có hình cũ - Thêm smart filename với ListingID để tránh trùng lặp - Lọc hình overlay/badge không phải product (vn-11134004, vn-11134258, 32-char hex) - Giảm ngưỡng kích thước tối thiểu xuống 5KB - Cải thiện extension để lấy đủ hình từ các blocks sản phẩm - Thêm deduplication trong cả extension và Strapi 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Media Organizer: API quản lý và tổ chức media library - Item Validator: Service validate dữ liệu sản phẩm - Title Normalizer: Service chuẩn hóa tiêu đề sản phẩm - Cleanup Duplicate Media: Service dọn dẹp media trùng lặp - Business components cho Strapi - Docker monitoring scripts cho PostgreSQL và Redis - UI cải tiến cho web app (items page, navbar) - Cập nhật content types và generated types - Cải thiện listing processor và upload images 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Loại bỏ tất cả fallback values giả (title, description) - Thêm validation nghiêm ngặt trước khi tạo listing - Cải thiện extension để lấy title từ nhiều selectors - Sửa lỗi URL format shopee/vn thành shopee.vn - Thêm CRITICAL RULES vào CLAUDE.md về không hardcode data
- Sửa lỗi tạo duplicate items bằng cách dùng $startsWith filter thay vì exact match - Thêm logic extract brand từ title khi extension chưa crawl được field brand - Sửa lỗi title hiển thị hoa thường lộn xộn (ĐIệN ThoạI) bằng cách bỏ auto-capitalize - Cải thiện matching logic cho items với suffix timestamps 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
added 24 commits
October 14, 2026 20:13
…ops, /merchants trust profiles, URL lookup API & DB hardening (#18)
…ws submission API & RPC, /watchlist price alerts, JSON-LD & purge 56 dead template routes (#19)
…rid Lookup/Quarantine API (Closes #12)
…/cs i18n, cross-category links & purge 63 dead template components (#20)
…I v1 (/stats, /compare) & automated core tests (#21)
…base Auth & localize auth/system pages (#22)
…atchlist Alert API (/api/v1/rate/watchlist) & price_alerts migration (#23)
… 5-category normalizer (#25)
…10 spec groups (#31)
… locale form slugs (#33)
…subscriber alert overwrite
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
DOS describe: could not startYour Code Review quota or credits do not allow this command. Check your quota or credits before trying again. No model call was made. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
eview_risk_score, 5-criteria JReviews submission, and per-user voting (
ate.review_votes).
Closes #35