Skip to Content
ChangelogUnreleasedUnreleased · Documentation & Infrastructure

Unreleased · Documentation & Infrastructure

Các thay đổi dưới đây chưa được gán phiên bản hoặc ngày phát hành.

Added

  • Hợp Nhất Cổng Thông Tin & Trợ Giúp Công Khai (Unified Public Web Container):

    • Hợp nhất Marketing, Docs & Blog vào 1 container (apps/public_web): Hợp nhất trang giới thiệu thương hiệu (/), Trung tâm Trợ giúp khách hàng (/docs), Cẩm nang/Bản tin (/blog) và Changelog (/changelog, /releases) vào một ứng dụng Next.js 16 + Nextra 4 duy nhất chạy trên domain chính thức https://www.gigee.vn.
    • Kiến trúc Route Groups độc lập: Sử dụng app/(marketing) và app/(docs) để phân tách hoàn toàn theme và bố cục, bảo đảm trang Marketing và Blog hiển thị sạch sẽ mà không bị Nextra sidebar can thiệp, trong khi các trang Docs giữ trọn vẹn sức mạnh của Nextra theme.
    • Docker Standalone & Tối ưu hóa: Đóng gói multi-stage Dockerfile với healthcheck tự động /api/health, biên mục tìm kiếm toàn văn Pagefind lúc build và hỗ trợ biến môi trường NEXT_PUBLIC_SITE_URL / NEXT_PUBLIC_WORKSPACE_URL.
  • Phân tách Tài liệu Kỹ thuật Nội bộ & Chuẩn hóa Trung tâm Trợ giúp (GIGEE Help Center):

    • Cô lập Tài liệu Kỹ thuật sang dev/docs/: Di chuyển toàn bộ tài liệu kiến trúc hệ thống, DDL SQL, RLS policies, trigger IAM, API contracts và product requirements vào thư mục nội bộ dev/docs/ (chuẩn Docs-as-Code cho Kỹ sư và AI Agent), loại bỏ 100% khỏi Docker build artifact của public web để đảm bảo an toàn bảo mật.
    • Chuẩn hóa Public Help Center (apps/public_docs/content/docs/): Tinh gọn toàn bộ nội dung công khai chỉ chứa các bài viết Hướng dẫn Sử dụng (User Guides) thân thiện với khách hàng, cập nhật lại cấu trúc điều hướng và bộ máy tìm kiếm Pagefind.
    • Hướng dẫn Sử dụng Biểu đồ Gantt Timeline (job-gantt-chart.md): Biên soạn bài viết hướng dẫn chi tiết về 4 độ phân giải thời gian (Giờ/Ngày/Tuần/Tháng), 3 chế độ gom nhóm (Thư mục/Trạng thái/Worker), thao tác kéo thả dời lịch, co giãn thời hạn và công việc định kỳ lặp lại (Recurrence).
    • Contextual Documentation Engine:
      • Xây dựng script scripts/generate-context-catalog.mjs tự động quét MDX frontmatter context_topics để sinh file catalog JSON tĩnh và TypeScript type definition cho các ứng dụng client.
      • Xây dựng Smart Redirect route /docs/context?key=... tự động điều hướng 302 đến đúng anchor tài liệu.
      • Xây dựng API route /api/context-help?key=... hỗ trợ CORS và cache tĩnh.
    • In-App Contextual Help trên Hire Workspace:
      • Xây dựng bộ component ContextHelpButton, ContextHelpSheet (Slide-over drawer chuẩn UI) và hook useContextHelp.
      • Tích hợp nút trợ giúp trực tiếp trên thanh công cụ Quản lý công việc (JobListPage) và thanh điều khiển Biểu đồ Gantt (JobGanttView).
      • Bổ sung bộ kiểm thử tự động 100% pass cho hệ thống contextual help.
    • Mở rộng Contextual Help Cho Các Trụ Cột Vận Hành Cốt Lõi:
      • Quản lý Địa điểm & Tọa độ GPS (location.list, location.picker_modal): Tích hợp nút trợ giúp ngữ cảnh tại LocationListPage và hướng dẫn bộ chọn địa điểm thông minh trong Job Form.
      • Quản trị Kho hàng & Chuỗi Cung ứng (stock.warehouse_list, stock.transaction_history): Tích hợp nút trợ giúp ngữ cảnh động tại StockListPage theo tab hoạt động (Danh mục tài sản vs. Lệnh kho & Lịch sử giao dịch).
      • Đối soát & Thanh toán Bảng lương (payroll.settlement_table, payroll.custom_items): Tích hợp nút trợ giúp ngữ cảnh tại PayrollLedgerPage hướng dẫn quyết toán lương ca làm thực tế và cấu hình phụ cấp/khấu trừ.
      • Cổng Tra cứu & Xác thực Chứng thư Số (photo.anti_fraud.audit): Tích hợp nút trợ giúp ngữ cảnh tại PublicVerificationPage hướng dẫn thẩm định mã băm SHA-256 niêm phong và phát hiện ảnh giả mạo.
      • Hoàn thiện Trợ giúp Ngữ cảnh theo Domain cho toàn bộ 15 Tabs trong Folder Explorer:
        • Bao phủ đầy đủ 15 tabs (overview, jobs, sourcing, monitoring, payroll, members, locations, stock, issues, contacts, promotions, sales, configuration, formx, metadata) với 23 topics ngữ cảnh được biên mục tự động.
        • Chuyển tab động: Nút trợ giúp trên thanh PageHeader của thư mục lập tức chuyển đổi ngữ cảnh tức thì tương ứng với tab được chọn.
      • Nút Trợ Giúp Toàn Cầu (Universal Help Button) & Help Center Quick Hub:
        • Bổ sung nút trợ giúp (?) trên Topbar cố định và chân Sidebar của ứng dụng Hire Workspace.
        • Tự động phân giải route đang mở sang tài liệu tương ứng (resolveContextKeyFromPath).
      • Nâng Cấp Điều Hướng Trợ Giúp Trong Bảng (Interactive In-Drawer Navigation) & Khắc Phục Liên Kết:
        • Chuyển đổi topic trực tiếp trong ngăn kéo trợ giúp: Khi người dùng bấm vào một tài liệu trong danh sách “Tài liệu liên quan” hoặc “Cẩm nang hướng dẫn theo chức năng”, ngăn kéo lập tức hiển thị nội dung tài liệu đó mà không cần tải lại trang hay rời khỏi Workspace.
        • Bổ sung nút ”← Quay lại” (History Stack) cho phép điều hướng ngược lại các chủ đề đã xem trước đó.
        • Chuẩn hóa toàn bộ liên kết mở ngoài thành thẻ neo HTML (<a>) với thuộc tính target="_blank" và rel="noopener noreferrer", chống chặn popup và tương thích hoàn toàn với chuột phải / chuột giữa.
      • Tìm Kiếm Toàn Văn Help Docs Trực Tiếp Trong Ngăn Kéo (In-Drawer Live Docs Search):
        • Xây dựng công cụ phân tích và chỉ mục hóa tài liệu scripts/generate-docs-index.mjs bao phủ toàn bộ 21 cẩm nang người dùng (apps/public_web/content/docs/user/*.md) với 87+ chuyên mục con.
        • Xây dựng API GET /api/docs/search?q=... với thuật toán chuẩn hóa tiếng Việt không dấu (normalizeVietnamese), tính điểm liên quan (relevance score) và trích xuất ngữ cảnh xung quanh từ khóa (snippet extractor).
        • Tích hợp thanh tìm kiếm cố định (Sticky Search Input) ngay trên đầu ngăn kéo ContextHelpSheet tại Hire Workspace kèm debounce 200ms.
        • Hiển thị danh sách kết quả trực quan gồm tên tài liệu, tiêu đề chuyên mục, đoạn trích dẫn và liên kết sâu (deep link) mở đúng anchor trên Help Center.
      • Tự động liên kết Command Palette (⌘K): Tất cả 23 topics ngữ cảnh được tự động index vào thanh tìm kiếm nhanh toàn ứng dụng mà không cần cấu hình thủ công.
  • Tái Cấu Trúc Toàn Diện Design System v4.0.0 Chuẩn Hóa Theo Logo Mới (Signal Flow Gradient):

    • Bảng Màu Nhận Diện Chuẩn Hóa: Trích xuất dải gradient 3 điểm neo từ logo chữ G (Cyan #11C7E8 → Signal Blue #1265F4 → Deep Indigo #15139B).
    • Loại Bỏ Hoàn Toàn Signal Orange & Mint Teal: Thay thế màu cam #FF6B00 và mint #006B5F/#0A6C65 bằng Signal Blue (#1265F4) cho toàn bộ nút hành động CTA, số tiền và trạng thái kích hoạt nhằm đạt sự thống nhất thương hiệu 100%.
    • Cập Nhật Toàn Bộ Tài Liệu Kỹ Thuật (apps/public_docs/content/docs/technical/design-system/): Viết lại đầy đủ 5 tài liệu quy chuẩn gồm: Tổng quan Design System, Bảng mã màu & Tokens WCAG 2.2, Công thái học ngoài trời, Ánh xạ nền tảng (Web, Zalo, Flutter) và Hướng dẫn UI Components.
    • Cập Nhật Token Web Dashboard (index.css, palettes.ts): Cập nhật CSS variables cho scheme mặc định blue sang #1265F4 và thêm các biến --brand-gradient, --brand-deep, --brand-cyan.
    • Cập Nhật Zalo Mini App (app.scss, tailwind.config.js, logo.tsx): Chuyển đổi --zmp-theme-color sang #1265F4, loại bỏ token mint, đồng bộ brand.action sang Signal Blue và thay thế component Logo bằng SVG vector gradient.
    • Dọn Dẹp Logo Cũ: Xóa bỏ các file bitmap/placeholder cũ (logo.png, logo.svg placeholder của Docs Site), cập nhật logo chính thức và bổ sung tài liệu định vị thương hiệu brand-vision.md.
  • Đồng bộ Toàn diện Hệ thống Tài liệu Tính năng Bán hàng (POS Sales Documentation):

    • User Guide: Khởi tạo bài viết sales-pos.md hướng dẫn toàn bộ quy trình thiết lập POS trên Web Dashboard, hướng dẫn tạo đơn và 2 phương thức xác thực số điện thoại khách hàng (Quét Zalo QR 1-chạm & Gửi mã OTP SMS/ZNS) trên Zalo Mini App.
    • Technical Spec: Khởi tạo đặc tả kỹ thuật sales-pos/index.md với sơ đồ Sequence Realtime, DTO Contracts, cấu trúc Clean Architecture và danh sách Edge Functions / RLS Policies.
  • Đồng bộ Toàn diện Tài liệu Kỹ thuật & Hướng dẫn Sử dụng (apps/public_docs):

    • Phân hệ Biểu mẫu Động FormX (apps/public_docs/content/docs/technical/features/formx/, docs/user/formx.md): Bổ sung đầy đủ tài liệu kiến trúc kỹ thuật (Sequence Diagram, Clean Architecture, DTOs, DDL tables formx_forms/formx_fields/formx_submissions, RPC create_formx_task_submission) và hướng dẫn sử dụng chi tiết (tạo form, cấu hình trường, điền trên Zalo Mini App, nghiệm thu và xử lý needs_revision).
    • Phân hệ Đánh giá & Kiểm duyệt Uy tín (apps/public_docs/content/docs/technical/features/rating-review/, docs/user/rating-review.md): Bổ sung tài liệu đặc tả hệ thống đánh giá 2 chiều (Worker/Hirer), Trigger tự động tính điểm Trust Score trg_recalculate_profile_rating, RLS bảo mật và màn hình Review Moderation cho Super Admin.
    • Phân hệ Quản lý Sự cố Thực địa (apps/public_docs/content/docs/technical/features/issue-incident/, docs/user/issue-incident.md): Bổ sung tài liệu quản lý sự cố theo Folder/Workspace, RPC nguyên tử create_issue_atomic, luồng xử lý và cập nhật tiến độ.
    • Nâng cấp Toàn bộ Tài liệu Kỹ thuật & Hướng dẫn Hiện có:
      • field-execution-monitoring: Cập nhật giám sát Live Monitor trên Web, duyệt/từ chối theo từng nhiệm vụ (review_task_proof), quy trình nộp lại needs_revision và khóa chống sửa đè sau khi duyệt.
      • job-sourcing: Cập nhật quy trình xuất bản việc làm nguyên tử (publish_job_atomic), Task Contracts v2 đa nhiệm vụ (task_key), đóng băng điều khoản lương ca làm.
      • payroll-settlement: Cập nhật cấu hình mục lương tùy biến theo Workspace (payroll_custom_items), kiểm thực tài khoản ngân hàng và giao diện tra cứu thu nhập / biểu đồ trên Zalo Mini App.
      • system-configuration: Cập nhật Configuration Schema Registry và giao diện Visual Form / Raw JSON editor theo từng tính năng.
      • auto-validator: Cập nhật quy trình kiểm tra đa nhiệm vụ và nguyên tắc bảo toàn đánh giá con người.
      • overview.md: Cập nhật danh mục tổng thể 14 phân hệ hướng dẫn người dùng.
  • Chuẩn phát triển tính năng & Task mở rộng: Bổ sung tài liệu kỹ thuật canonical cho developer, quy định contract-first design, Clean Architecture, Supabase/RLS/Storage, Task Contract v2, offline/idempotency, testing, observability và rollout gates cho các tính năng mới hoặc mở rộng.

  • System Architecture & Supabase Backend (Rating & Review): Thêm kiến trúc Đánh giá & Phản hồi 2-chiều (execution_reviews) cho từng ca làm việc nghiệm thu (job_execution_records.status = 'approved').

    • Thêm Migration 20260904000000_execution_reviews_schema.sql khởi tạo bảng execution_reviews, RLS Policies, Trigger trg_recalculate_profile_rating tự động cập nhật worker_profiles.rating & hirer_profiles.reliability_score, và RPC submit_execution_review.
    • Khởi tạo Feature Slice độc lập review/ chuẩn Clean Architecture cho cả Web Dashboard (apps/hire_workspace/src/features/review) và Zalo Mini App (apps/worker_zalo/src/features/review).
    • Web Dashboard: Tích hợp WorkerRatingModal tự động bật sau khi PM bấm nghiệm thu ca làm việc tại ExecutionDetailPage.tsx, cùng bộ UseCase & Repository unit tests (reviewBoundary.test.ts).
    • Zalo Mini App: Tích hợp HirerRatingSheet và ReviewService để Worker gửi phản hồi cho Hirer.
    • Cập nhật tài liệu kiến trúc và user flows trên cổng tài liệu chính thức.
  • Hợp Nhất Single Source of Truth Cho GIGEE Design System & Brand Identity (apps/public_docs/, apps/hire_workspace/, dev/):

    • Chuẩn hóa toàn diện trên apps/public_docs: Thiết lập trung tâm tài liệu Design System chính thức tại apps/public_docs/content/docs/technical/design-system/, giải quyết tình trạng phân mảnh với các khu vực tài liệu legacy.
    • Bổ sung Option Nhận diện “GIGEE Signal Mint”: Nghiên cứu và bổ sung biến thể thương hiệu Xanh Mint (Deep Indigo #4037A6 + Mint Teal #006B5F / #0A6C65 + Solar Accent #FF6B00) dựa trên cơ sở quang học thị giác bước sóng ~500–520nm giúp chống mỏi mắt và mang lại cảm giác tươi mới.
    • Kiến trúc 2 tầng độc lập & Ma trận Tương phản WCAG 2.2: Giữ nguyên tắc tách biệt tuyệt đối giữa màu Thương hiệu và màu Trạng thái nghiệp vụ (Emerald = Đạt, Amber = Cảnh báo, Rose = Từ chối, Sky = Đang thực hiện). Bổ sung tài liệu công thái học thị giác thực địa ngoài trời và bản đồ ánh xạ Token sang Flutter, Zalo Mini App, Web Dashboard và Docusaurus.
  • System Configuration / Master Data Feature (apps/hire_workspace/src/features/system_configuration/, apps/worker_zalo/, supabase/, apps/public_docs/):

    • Chuyển đổi toàn diện sang kiến trúc System Master Data Granular Entity (UUID-based Referencing): mỗi giá trị cấu hình/kỹ năng/danh mục là một bản ghi độc lập có id (UUID PK), cho phép các bảng khác (Worker Profiles, Jobs, Forms, Workspaces) liên kết trực tiếp qua Foreign Key / UUID mà không bị trùng lặp chuỗi dữ liệu.
    • Tái cấu trúc giao diện sang Sub-sidebar Studio Layout (2 cột Supabase Studio style): phân nhóm Type master data bên trái (worker_skill, workspace_category, workspace_tag, custom) và bảng quản lý bản ghi chi tiết bên phải với tính năng Click-to-copy UUID, hỗ trợ chỉnh sửa metadata (mã màu, nhóm ngành) và xuất JSON đối chiếu.
    • Tích hợp kiểm soát phân quyền hiển thị Sidebar: nhóm menu SUPER ADMIN chỉ hiển thị với tài khoản Super Admin thực sự.
    • Thiết lập cơ chế bảo mật RLS Dual-verification (public.is_super_admin() OR public.is_super_admin_db(auth.uid())) ngăn ngừa lỗi chặn ghi RLS.
    • Refactor cột worker_profiles.skills và toàn bộ luồng Auth/Onboarding/Edit Profile/Profile Page trong Zalo Mini App truy vấn và liên kết động theo UUIDs từ system_configurations.
    • Cập nhật đầy đủ Clean Architecture, pgTAP tests, Feature README và tài liệu kỹ thuật/HDSD tại apps/public_docs/.
  • Location Architecture & Safe Lifecycle Implementation (apps/public_docs/content/docs/technical/features/location-geo/location-architecture.md, supabase/, apps/hire_workspace/, apps/worker_mobile/):

    • Hoàn thiện tài liệu đặc tả kiến trúc phân hệ Location (Ground-truth Master Data vs. Tenant/Project Overlays).
    • Cài đặt RPC safe_delete_location trên PostgreSQL (supabase/migrations/20260829000100_locations_func_safe_delete_location.sql) hỗ trợ Owner Safe Purge (xóa sạch Master Record cho Creator / Workspace Owner nếu chưa có ràng buộc sử dụng) và Graceful Unsubscribe (tự động chuyển thành hủy liên kết an toàn khi đã có lịch sử công việc).
    • Bổ sung bộ kiểm thử pgTAP supabase/tests/locations/031_safe_delete_location_test.sql bao phủ 100% các kịch bản xóa độc quyền và hủy liên kết dùng chung.
    • Tối ưu hóa UI/UX Web Dashboard:
      • Tái cấu trúc LocationFormModal thành quy trình 2 bước trực quan (2-Step Guided Wizard): Hỗ trợ cơ chế Smart Step Initialization (tự động bỏ qua Bước 1 tìm kiếm để mở thẳng Bước 2 khi có initialName/initialAdmin từ caller như JobFormModal, trong khi vẫn giữ nguyên Bước 1 tra cứu khi mở từ trang danh mục LocationListPage).
      • Xây dựng component dùng chung LocationPickerField (apps/hire_workspace/src/features/location/presentation/components/LocationPickerField.tsx): Đóng gói toàn bộ luồng tìm kiếm LocationSelect, tự động phân loại chọn điểm có sẵn vs mở modal đăng ký điểm Global / tạo mới Master, và hiển thị Full Location Details Card với đầy đủ thông tin thực địa (Tên, Mã Store, Phân loại, Địa chỉ chuẩn hóa, Tọa độ GPS, Thư viện ảnh thực địa, Map preview, nút Đổi điểm).
      • Tích hợp LocationPickerField vào JobFormModal, loại bỏ hơn 100 dòng code phân mảnh.
      • Bổ sung unit test LocationPickerField.test.tsx (100% test pass).
      • Nâng cấp nút Xóa trên LocationTable cho phép Workspace Manager thực hiện thao tác xóa/hủy liên kết an toàn kèm hộp thoại xác nhận rõ ràng.
      • Cập nhật Clean Architecture: locationBoundary.ts, LocationServerDataSource.ts, LocationRemoteDataSource.ts, ILocationRepository.ts, LocationRepository.ts, DeleteLocationUseCase.ts, useLocationHooks.ts.
    • Đồng bộ LocationRemoteDataSource.safeDelete trên Flutter apps/worker_mobile.
  • Bổ sung tùy chọn hỗ trợ local Supabase (--local / local) cho script vps/setup_custom_zalo.sh giúp tự động đăng ký Custom Provider custom:zalo trên môi trường phát triển local (http://127.0.0.1:54321).

  • Bộ Nhận Diện Màu Sắc & 3 Color Schemes Tùy Chọn (apps/hire_workspace):

    • Phát triển và tài liệu hóa bộ nhận diện màu sắc 2 tầng trong design-system.md dựa trên phân tích sâu thị trường B2B Gig Economy / BTL Marketing / Field Workforce và đối tượng khách hàng (Agency, FMCG Retail, Executive & Finance).
    • Cấu hình CSS Variables cho 3 Color Schemes ([data-scheme="indigo"] - Electric Indigo & Cobalt Trust mặc định, [data-scheme="emerald"] - Emerald Precision & Forest Growth, [data-scheme="amber"] - Titan Slate & Cyber Amber) tương thích hoàn toàn với Tailwind CSS v4 @theme inline ở cả chế độ Sáng (Light) và Tối (Dark).
    • Nâng cấp ThemeContext hỗ trợ chuyển đổi scheme màu linh hoạt, lưu trữ và đồng bộ hóa qua localStorage (gigee_theme_scheme).
    • Nâng cấp giao diện tab “Giao diện” (/users/:id/appearance) trong UserDetailPage với bộ chọn Theme Mode, lưới 3 Thẻ Scheme màu trực quan kèm Swatches và Live Interactive Preview thời gian thực.
  • GIGEE Web Dashboard Design System & Documentation (apps/hire_workspace):

    • Chuẩn hóa cấu hình components.json và hệ thống Design Tokens trên nền Tailwind CSS v4 & Shadcn UI.
    • Cài đặt và tích hợp các primitives mới: sidebar, breadcrumb, command, chart, collapsible, accordion, resizable, scroll-area, toggle-group, calendar, slider.
    • Xây dựng bộ pattern components chuẩn nghiệp vụ B2B: StatusBadge, EmptyState, PageHeader.
    • Biên soạn bộ tài liệu thiết kế và hướng dẫn sử dụng chuyên nghiệp:
      • apps/hire_workspace/docs/design-system.md: Quy chuẩn Tokens, Bảng màu nghiệp vụ, Typography.
      • apps/hire_workspace/docs/component-guide.md: Cẩm nang sử dụng components và mã mẫu.
      • apps/hire_workspace/docs/patterns-and-recipes.md: 4 Layout Patterns chuẩn trong B2B Enterprise.
      • apps/hire_workspace/CLAUDE.md: Playbook phát triển và quy tắc thiết kế Web Dashboard.

Security

  • Bảo Mật & Cách Ly Ranh Giới Tổ Chức Cho Thông Báo Thực Thi Ca Làm (Execution Notification Boundary Isolation):
    • Cập nhật trigger handle_execution_submission_notification bổ sung cơ chế kiểm soát ủy quyền nghiêm ngặt: chỉ gửi thông báo tiến độ ca làm cho các Follower là thành viên có quyền trong cùng Workspace / Folder của ca làm đó.
    • Ngăn chặn triệt để rò rỉ dữ liệu cạnh tranh giữa các doanh nghiệp đối thủ khi một bên follow thợ tự do.
    • Cập nhật tài liệu thiết kế IAM tại apps/public_docs/content/docs/technical/platform/iam.md.

Changed

  • Chuẩn Hóa Thuật Ngữ Tiếng Việt (“Người làm” & “Người thuê”):

    • Chuẩn hóa toàn diện ngôn ngữ hiển thị trên giao diện người dùng và tài liệu: Thay thế các từ ngữ “Thợ / Worker” thành “Người làm”, và “Hirer / Nhà tuyển dụng / Chủ ca / Quản lý” thành “Người thuê”.
    • Đảm bảo tính nhất quán trên Web Dashboard, Zalo Mini App, bộ lọc vai trò, hồ sơ công khai, đánh giá và tài liệu kỹ thuật/HDSD.
  • Cập nhật tài liệu kiến trúc đăng nhập Zalo Mini App tại apps/worker_zalo/src/features/auth/README.md bao gồm luồng xác thực Zalo Access Token, cơ chế fallback SĐT và modal nhắc nhở PhoneReminderModal.

  • Added Next standalone Docker deployment, Coolify health checks, and build/runtime environment conventions for self-hosted VPS deployments.

VPS tooling

  • Consolidated Supabase VPS operations around numbered steps and shared deployment, configuration transfer, SSH, and lifecycle helpers; existing entrypoints remain compatible.

  • Fixed upstream asset paths, local expansion of remote health checks, bounded startup waits, function dependency uploads, and conflicting host Nginx setup. Added staged transfers and checksum-verified transactional restore.

  • Guaranteed explicit validation and upload of supabase/functions/_shared whenever deploying a single Edge Function or all functions via deploy-functions.sh.

  • Version-controlled reviewed VPS scripts/configuration through an explicit allowlist while retaining ignored secrets, backups and runtime data. No production deployment or version upgrade is included.

Fixed

  • Public Web Docker deployment: Sửa đường dẫn standalone server và static assets, cài dependencies theo lockfile, tạo đầy đủ Pagefind index trong image và dùng URL workspace https://ws.gigee.vn lúc build.

  • Hỗ Trợ Toàn Diện Biến Môi Trường Supabase Edge Functions Trong Môi Trường Dev & VPS Docker:

    • Cập nhật supabase/functions/_shared/supabase.ts hỗ trợ ưu tiên giải quyết biến môi trường qua danh sách fallback (SUPABASE_PUBLIC_URL / SUPABASE_URL / PUBLIC_URL / PUBLIC_SUPABASE_URL cho URL, SUPABASE_SECRET_KEY / SUPABASE_SERVICE_ROLE_KEY / SECRET_KEY / SERVICE_ROLE_KEY cho Secret key, SUPABASE_PUBLISHABLE_KEY / SUPABASE_ANON_KEY / PUBLISHABLE_KEY / ANON_KEY cho Anon key).
    • Bổ sung helper getZaloAppSecret() và getZaloAppId() trong supabase/functions/_shared/zalo.ts với thứ tự ưu tiên (GOTRUE_EXTERNAL_CUSTOM_ZALO_SECRET / ZALO_APP_SECRET / ZALO_SECRET_KEY và GOTRUE_EXTERNAL_CUSTOM_ZALO_CLIENT_ID / ZALO_APP_ID / ZALO_CLIENT_ID).
    • Đồng bộ và loại bỏ các lệnh đọc biến môi trường đơn lẻ gây lỗi trong process-photo, zalo-oauth-proxy, auth-zalo-exchange, verify-consumer-phone, zalo-location-exchange, send-zalo-sms-hook.
    • Khắc phục triệt để lỗi Supabase CLI từ chối định nghĩa tiền tố SUPABASE_* trong local dev mà vẫn tương thích hoàn toàn với cấu hình Docker Compose trên VPS.
  • Sửa Lỗi Giải Mã Vị Trí Zalo Mini App ([Warning] Zalo location response did not contain valid coordinates) (Zalo Mini App & Edge Functions):

    • Đồng bộ chuẩn Zalo Open API v2.0: Chuyển đổi endpoint giải mã vị trí người dùng sang https://graph.zalo.me/v2.0/me/info với headers chuẩn code, access_token và secret_key trong decodeZaloLocation.
    • Hỗ trợ đầy đủ CORS và cấu hình bí mật trên VPS: Cập nhật zalo-location-exchange xử lý CORS OPTIONS preflight, đồng thời hỗ trợ linh hoạt cả GOTRUE_EXTERNAL_CUSTOM_ZALO_SECRET và ZALO_APP_SECRET.
    • Truy xuất đồng thời accessToken từ Zalo Client: Cập nhật device_location_datasource.ts tự động lấy getAccessToken() song song với getLocation({}) và gửi kèm sang Edge Function, đảm bảo giải mã tọa độ thành công trên phiên bản deploy.
  • IAM & Privilege Escalation Prevention (supabase/, apps/hire_workspace/src/features/membership/, apps/public_docs/):

    • Triển khai cơ chế bảo mật đa lớp (Defense-in-Depth) chống leo thang đặc quyền (Privilege Escalation):
      • Database Level Trigger (trg_prevent_membership_privilege_escalation): Chặn người dùng tự nâng vai trò của chính mình (profile_id = auth.uid()) trừ khi là Workspace Owner/Super Admin; đồng thời chặn gán vai trò có tập quyền vượt quá quyền hạn hiện có của người gán (TargetRole.Permissions ⊆ Actor.Permissions).
      • Web Dashboard UI Safeguards (MembersTab.tsx, FolderMemberListSubTab.tsx): Tự động vô hiệu hóa dropdown chọn vai trò đối với chính tài khoản đang đăng nhập kèm tooltip giải thích lý do an ninh.
      • Route Handlers Boundary (src/app/api/memberships/route.ts): Bắt lỗi Postgres 42501 và trả về thông điệp từ chối thao tác rõ ràng cho client.
  • Complete ACL ➔ IAM Migration across Codebase (apps/hire_workspace/, apps/public_docs/, legacy documentation, .agents/rules/):

    • Chuyển đổi và xóa bỏ 100% thuật ngữ ACL / Acl / acl sang IAM / Iam / iam (Identity and Access Management) trên toàn bộ hệ thống:
      • Di chuyển module src/core/acl/ ➔ src/core/iam/ (IamService.ts, IamContext.tsx, useIam.ts).
      • Đổi tên Component AclButton.tsx ➔ IamButton.tsx và helper kiểm thử aclRender.tsx ➔ iamRender.tsx.
      • Đổi tên Hook useFolderAcl.ts ➔ useFolderIam.ts.
      • Cập nhật toàn bộ các trang và components trong Web Dashboard sang useIam() và <IamButton>.
      • Chuẩn hóa tài liệu kỹ thuật, hướng dẫn người dùng tại apps/public_docs/content/docs/technical/features/workspace-iam/, apps/public_docs/content/docs/user/workspace-iam.md và .agents/rules/global_rules.md.
  • Photo Anti-Fraud & Cryptographic Evidence Engine:

    • Tạo bảng hạt nhân photo_evidences (Append-Only Evidence Ledger) lưu trữ SHA-256 hash của ảnh gốc, ảnh đã đóng dấu, mã tra cứu SQID/QR, True Server Timestamp, GPS, kết quả kiểm định AI Moiré/Glare và chữ ký số HMAC.
    • Xây dựng Supabase Edge Function process-photo xử lý đóng dấu tập trung phía Server dùng chung cho Flutter Mobile, React Web Dashboard và Zalo Mini App.
    • Tự động sinh mã QR Code chứa đường dẫn xác thực trực tiếp ({PUBLIC_WEB_URL}/verify?code={SQID}) và gắn trực tiếp lên watermark banner của ảnh, giúp đối soát / quét mã truy cập nhanh Chứng Thư Số mà không cần gõ lại mã code.
    • Biên soạn tài liệu thiết kế kỹ thuật chi tiết tại apps/public_docs/content/docs/technical/features/photo-anti-fraud/evidence-system.md.