← Về trang chủ
Nhật ký thay đổi
Tất cả thay đổi đáng chú ý của Synkao, sắp xếp theo phiên bản.
v0.6.1
2026-05-11Điểm nổi bật
- ◈ Merchize webhook now correctly refreshes order cost on tracking updates
#Sửa lỗi
- Merchize fulfillment webhook: order cost is now synced when tracking arrives (previously stayed at $0.00 even after the order completed)
v0.6.0
2026-05-10Điểm nổi bật
- ◈ Base Cost Flow v2 — fulfillment-level cost tracking with webhook + manual sync
- ◈ Webhook auto-close order on tracking events with forced cost re-sync
- ◈ Merchize GetOrder v2 on documented order-detail endpoint
+Thêm mới
- Manual cost sync endpoint per fulfillment provider with 10s-debounce sync button
- "Awaiting cost from Merchize" hint shown until provider returns final cost
- Timeline events: cost_synced_from_provider, pushed_to_provider, push_failed, transitioned_to_producing
- Webhook auto-closes order and force re-syncs cost on tracking updates
- Virtual "Unassigned" column for orphan design tasks with toast warning
~Thay đổi
- Push order now records fulfillment reference; cost arrives later via webhook or manual sync
- Fulfill button label is now provider-aware on order detail
- Merchize GetOrder switched to documented order-detail endpoint
#Sửa lỗi
- Hardened cost-sync, push-failure recovery, and IDOR checks on fulfillment endpoints
- BulkAssign N+1 eliminated; auto-assigns first column on workspace switch
-Loại bỏ
- Per-item variant_cost / base_cost columns (cost now tracked at fulfillment level)
v0.5.2
2026-04-29Điểm nổi bật
- ◈ Dashboard surfaces live order counts and design backlog stats
- ◈ snake_case field naming remediation across wire types (phases 0-3)
+Thêm mới
- Home dashboard fetches live order status breakdown and design backlog summary with skeleton states
#Sửa lỗi
- snake_case field corrections across 14 wire types (B1-B11) with CI guards to prevent regression
v0.5.1
2026-04-28Điểm nổi bật
- ◈ snake_case field naming unified end-to-end (BE + FE)
- ◈ Merchize address validation gate prevents silent push failures
- ◈ Hub members can now manage sales-hub resources
~Thay đổi
- snake_case unification across DTOs, API responses, and FE consumers (phases 1-7)
- Order status auto-transitions pending → designing on first design upload
- Docs reorganized into project/architecture/standards/journals subfolders
#Sửa lỗi
- Hub members (non-owners) can manage sales orders, fulfill units, and FUPs within their hub
- Merchize address validation returns HTTP 422 pre-push when required fields missing
- Merchize shipping JSON keys corrected (full_name, postcode) with 3-tier phone fallback
v0.5.0
2026-04-23Điểm nổi bật
- ◈ Multi-provider fulfillment architecture with Merchize integration
- ◈ Hub design presets with quick-add to FUP
- ◈ Explicit variant resolution with attribute matching
+Thêm mới
- Multi-provider fulfillment adapter layer — Merchize integration, catalog sync, webhook receiver
- Hub design presets with quick-add to FUP and design position autocomplete
- DesignPositionGrid shared component with grid layout and upload/view modes
- Cost price tracking with batch update and Merchize metadata in order detail
- Fulfillment sync status tracking per order
- Share/copy-link button in task detail drawer
- Auto-transition order status to refunded on ecom refund webhook
~Thay đổi
- OrderItemCard refactored to 2-column layout with ecom/fulfillment zones
- FupCard compact horizontal design with FU combobox selector
- Design mapping collapsed from 3-layer to single-layer FUP position key
- ExternalData removed from domain model — consolidated into DTO response builder
#Sửa lỗi
- HMAC empty secret bypass in webhook verification
- Cascade soft-delete of fulfillment unit clears order references
- Variant SKU resolution from catalog ExternalData for Merchize provider
- Infinite useEffect loop in ManualVariantConfig component
!Bảo mật
- HMAC webhook verification hardened against empty secret bypass
- Webhook URL builder utility with input validation
v0.4.0
2026-04-09Điểm nổi bật
- ◈ Shopify integration — OAuth connect, order sync, GDPR webhooks
- ◈ Task timeline with sales order event tracking
- ◈ Upload progress bars with image preview generation
+Thêm mới
- Shopify OAuth connect flow — redirect-based authorization with Redis state management
- Shopify Custom App token input for direct API key connection
- Shopify order sync via REST Admin API with pagination support
- Shopify GDPR webhooks (customer data request, erasure) and app uninstall handler
- Task timeline section — event tracking with sales order attribution in task detail drawer
- Upload progress bars for task reference files and order design uploads
- Preview image generation with presign/confirm flow for task attachments
- Sync Orders button available for all store platforms, not just WooCommerce
- Dynamic badges and tooltips for navigation menu items
~Thay đổi
- Task card badges use compact time format with color coding on kanban board
- Design image grid shows createdAt datetime strip with synced tooltip format
- StoreName fallback in CSV export to match API response structure
#Sửa lỗi
- Shopify webhook registration uses correct app client secret
- Normalize shop_domain https prefix; return 400 on initiate errors
- Use hubSlug from route params for OAuth return_url instead of window.location
- Guard undefined file in upload loops for TypeScript strict mode
- Timeline component display for sales order events with correct user attribution
- Days badge uses Math.round to match date-fns rounding behavior
!Bảo mật
- Database encryption for Shopify access tokens (migration 000010)
- HMAC webhook verification for all Shopify webhook endpoints
v0.3.1
2026-03-31Điểm nổi bật
- ◈ Fix split order logic and sub-order delete
- ◈ Cost column in sales CSV export
+Thêm mới
- Cost column in sales CSV export for margin tracking
- Show latest design file upload time on task card
~Thay đổi
- Rename design status not_required → awaiting_task for clarity
#Sửa lỗi
- Split order logic — correct sub-order creation and delete handling
- Delete group button added; cap add-group action to item count
v0.3.0
2026-03-31Điểm nổi bật
- ◈ Split order with flat parent-child hierarchy
- ◈ WooCommerce webhook reconciliation scheduler
- ◈ Order stats in store list table
- ◈ Docker dev stack with hot-reload
+Thêm mới
- Split order — divide a single order into sub-orders with flat parent-child hierarchy; sub-orders are internal-only and link back to root WC order via parent_external_id
- WC webhook reconciliation background scheduler to auto-repair webhook registrations
- Order stats column on store list table for at-a-glance order health per store
- Hub list items use Link component to support copy link and open-in-new-tab
- Docker dev stack (docker-compose.dev) with api, web, and minio-init services
#Sửa lỗi
- Sub-orders inherit store info and expose parent_external_id from root order
- DB migration schema prefix and search_path in DB URL for PostgreSQL compatibility
- deleteAttachment API path corrected to include /design prefix
- Split child order store link uses parent externalId for correct WC URL
- Navigate to orders list after split order completes instead of staying on dialog
- Query key omits includeInactive param when undefined to prevent cache invalidation issues
v0.2.0
2026-03-26Điểm nổi bật
- ◈ Fulfill unit selector with 2-state card UI
- ◈ Payment and shipping fields in order summary
+Thêm mới
- Redesign FulfillUnitSelector to 2-state card UI (card in detail, bare select in list)
- Change order notes section title to customer notes
#Sửa lỗi
- Include payment_method_title, transaction_id, shipping_method_title in order response
- Surface UpdateFromInput errors in sync job instead of swallowing
- Display shipping method title in order summary card
v0.1.1
2026-03-25#Sửa lỗi
- Use raw WooCommerce payment_method slug without enum mapping
- Block closing order when WC status is in terminal failure state
v0.1.0
2026-03-24 Initial ReleaseĐiểm nổi bật
- ◈ Multi-hub workspace for design & sales teams
- ◈ WooCommerce order sync via HMAC webhooks
- ◈ Kanban board with drag-and-drop
- ◈ Docker deployment ready
+Thêm mới
- Multi-hub authentication with JWT access/refresh tokens
- Design Hub — Kanban board with drag-and-drop, task assignment, file attachments
- Sales Hub — Order management with virtual scroll, status filters, timeline events
- WooCommerce integration — auto-sync orders via HMAC-verified webhooks
- CSV import & export for orders, costs, and tracking data
- Store management with API integration
- Global task board with date filter
- Owner account setup flow
- Docker and docker-compose configuration
!Bảo mật
- Refresh token stored in HttpOnly cookie, access token in memory
- CSRF protection via SameSite cookie attribute
- HMAC-verified webhooks for WooCommerce sync