CodePanel — Có gì mới

Dành cho PO của EXO Studio · Bản cập nhật mới nhất: 24/07/2026

Roadmap hoàn tất · CP-101 → CP-502

Từ “chat ra lệnh” thành một hệ điều hành công việc có kiểm soát

Đợt nâng cấp này nối liền toàn bộ vòng đời một yêu cầu: PO chọn phạm vi được phép làm, trả lời quyết định ngay trong chat, theo dõi từng bước và bằng chứng, xử lý việc cần duyệt trong Work Inbox, rồi đo được chỗ nào đang gây tốn lượt hoặc tốn chi phí.

54commit đã đưa lên main
5 lớpRequest → Analytics
1 luồnggiao việc, chạy, duyệt, đo lường
PO nhận được gì ngay hôm nay?

1. Request có phạm vi, trạng thái và điểm duyệt rõ ràng CP-101 → CP-126

Execution contract ngay lúc tạo

PO chọn mức quyền trước khi AI bắt đầu; Dry-run vẫn là lựa chọn riêng cho việc chỉ cần plan.

Chặn vượt phạm vi

Nếu tác vụ cần quyền cao hơn, panel dừng và hiện scope violation thay vì tự quyết mù.

Task state machine

Request đi qua các trạng thái có kiểm soát: đang chạy, cần trả lời, chờ duyệt, hoàn tất hoặc lỗi.

Review gọn hơn

Có action duyệt, yêu cầu sửa, archive hàng loạt; tiêu đề và phạm vi được tự chuẩn hóa.

Form tạo Request mới với các lựa chọn phạm vi AI được phép thực hiện
Phạm vi thực thi được chọn trước khi tạo Request — rõ quyền, rõ kỳ vọng.

2. Quyết định có cấu trúc, Skill có hợp đồng đầu vào CP-201 → CP-246

Các câu hỏi cần PO không còn bị chôn trong một đoạn chat dài. Panel render đúng loại dữ liệu: chọn một phương án, nhập giá trị, nhập bí mật không lưu vào transcript, hoặc để AI chọn theo khuyến nghị. Sau khi PO trả lời, notification mở thẳng đúng quyết định.

Các thẻ quyết định có cấu trúc trong CodePanel
Decision card: phương án, khuyến nghị, secret input và trạng thái đã gửi.

Skill V2 — nhất quán từ preflight đến health metric NỀN TẢNG

Skill có manifest/schema chung, compiler trung tính và input đúng kiểu. Preflight mặc định chỉ đọc để phát hiện thiếu dữ liệu trước khi action. Health metric ghi nhận thành công, lỗi, số lần cần hỏi lại và engine đã dùng.

Những workflow quan trọng đã được chuyển sang chuẩn này: tạo app mới, cài SDK, build, submit store, audit checklist và gắn quảng cáo.

3. Workflow chạy theo DAG, có checkpoint và bằng chứng CP-301 → CP-343

Mỗi công việc lớn được chia thành các bước phụ thuộc nhau. Runner lưu checkpoint sau từng bước, tự khôi phục khi server restart và chỉ invalidate các bước bị ảnh hưởng khi input đổi. Worker layer có retry transport, tự handoff khi rate limit và gợi ý Claude/Codex theo health.

Workflow stepper hiển thị bước hoàn thành, bước lỗi, input, proof và nút retry
Stepper cho biết bước nào xong, bước nào lỗi, proof gì đã có và retry đúng bước.
Artifact theo từng bước

APK, screenshot, receipt và file bàn giao nằm đúng bước đã tạo ra chúng.

Changed files có nguồn gốc

PO thấy bước nào sửa file nào, thay vì chỉ nhận một kết luận “đã xong”.

Timeline cô đọng của một Request với thao tác, proof và quyết định PO
Timeline cô đọng: kết quả, file đổi, thao tác hệ thống, proof và external effect.

4. Work Inbox trở thành hàng đợi điều hành CP-401 → CP-423

Sidebar ưu tiên việc cần PO thay vì trộn với lịch sử session. Có thể nhóm theo Project hoặc Status, lọc việc quá hạn SLA, chọn nhiều Request để duyệt/archive và hoàn tác. Khối ⚡ Đang chạy vẫn ghim toàn bộ job live cho admin; project được xếp theo session/job mới nhất.

Sidebar CodePanel với session đang chạy và Work Inbox theo project
Sidebar mới: job live ở trên, Work Inbox theo project ở dưới, không còn session lịch sử gây nhiễu.

Chat ngắn hơn nhưng vẫn đủ bằng chứng CẢI THIỆN

Timeline dài được cô đọng, phase heartbeat nói đúng AI đang đọc, sửa, build hay QA. Sau một kết quả, PO có shortcut cho các follow-up phổ biến thay vì phải gõ lại từ đầu.

5. Đo ma sát workflow và chất lượng skill × engine CP-501 → CP-502

Dashboard mới trả lời hai câu hỏi trước đây chỉ có thể đoán: Request đang tốn thời gian ở đâu, và skill nào chạy tốt hơn trên engine nào. Dữ liệu lấy từ state/decision/usage đã persist, không cần quét transcript.

Dashboard Workflow friction và Skill scorecard
Friction dashboard + Skill scorecard: lượt/Request, latency, correction, cost và cảnh báo.
✓ Đã áp dụng: mã nguồn roadmap đã lên nhánh main. Mở lại panel.xuongapp.com để dùng; nếu còn cache cũ, tải lại bằng Ctrl/Cmd + Shift + R.
Tóm tắt đêm 24/07/2026 — routine tự động

Lịch sử cập nhật trước 24/07/2026

Tóm tắt đêm 18/07/2026 — routine tự động
Cần anh Thông quyết
Tóm tắt đêm 13/07/2026 — routine tự động

Cập nhật đêm 13/07/2026

Build TestFlight qua nhiều lượt nhắn — bớt bị chặn quyền, đỡ phải nhắn lại nhiều lần SỬA LỖI

Với các yêu cầu build/up TestFlight cần trao đổi qua lại (PO nhắn tiếp để chỉnh sửa hoặc xác nhận), càng về sau trong cuộc trò chuyện Claude càng dễ quên chỉ dẫn ban đầu là phải build qua đúng quy trình có sẵn — tự chạy lệnh build/upload tay thay vì qua quy trình đó sẽ bị hệ thống máy chặn quyền truy cập, và Claude báo "đã xong" dù chưa thực sự lên TestFlight.

Đã sửa: mỗi lượt PO nhắn tiếp cho một yêu cầu build iOS, hệ thống tự nhắc lại chỉ dẫn quy trình đúng — Claude không còn "quên" giữa chừng.

Trước đâyTừ hôm nay
Nhắn tiếp nhiều lượt cho 1 yêu cầu build TestFlight → có lúc Claude tự chạy tay, bị chặn quyền, báo xong sai — PO phải nhắn lại nhiều lần mới ra kết quả thật. Mỗi lượt nhắn tiếp đều được nhắc đúng quy trình build — giảm hẳn tình trạng báo xong sai / phải nhắn lại.
Cần anh Thông quyết
Tóm tắt đêm 12/07/2026 — routine tự động
Cần anh Thông quyết
Tóm tắt đêm 10/07/2026 — routine tự động

Cập nhật đêm 10/07/2026

Gắn AdMob — hỏi ID thiếu 1 lần, không hỏi rải rác SỬA LỖI

Khi PO nhờ Claude "gắn ID quảng cáo đã có sẵn" vào app (không qua form riêng), nếu thiếu vài ID thì trước đây Claude có thể hỏi từng cái một, mỗi câu một lượt chat — có ca phải qua lại tới 6 lượt mới xong.

Đã sửa: Claude giờ gom hết các mục còn thiếu lại và hỏi PO trong một tin nhắn duy nhất.

Trước đâyTừ hôm nay
Thiếu 3 ID → Claude hỏi 3 lượt riêng, PO phải trả lời qua lại nhiều lần. Thiếu bao nhiêu ID, Claude liệt kê hết và hỏi 1 lượt duy nhất.
Tóm tắt đêm 06/07/2026 — routine tự động

Cập nhật đêm 06/07/2026

Màn Home — tổng quan cá nhân hoá khi đăng nhập MỚI

Thay vì màn trống, PO đăng nhập vào thấy ngay:

Trước đâyTừ hôm nay
Đăng nhập vào màn trống, phải tự mở từng tab Analytics / PO Tasks để xem số. Landing ngay trang Home với task counts + KPI đang chạy thật từ BigQuery.

Analytics: Retention + Screen Funnel + Top Screens MỚI

Tab Analytics bổ sung 3 phần mới:

KPI tổng quan giờ chia theo 3 nhóm Tiền / Người dùng / Chất lượng — dễ quét mắt hơn. Lọc theo nhiều country và version một lúc; version cũ gộp thành nhóm "khác" để không làm rối biểu đồ.

Chia sẻ file/plan qua link không cần đăng nhập MỚI

Khi đang xem file trong project (markdown, ảnh, html, text), bấm nút Share để lấy link public. Ai có link đọc được ngay — không cần tài khoản CodePanel.

Trước đâyTừ hôm nay
Muốn cho external reviewer xem plan/báo cáo phải copy-paste ra ngoài. Bấm Share → gửi link → xem thẳng trên browser, kể cả mobile.

KPI payroll chính xác + deadline gốc được bảo vệ CẢI THIỆN

Hệ thống task PO giờ ghi lại đúng thời điểm task đạt từng mốc quan trọng:

Nếu deadline bị dời, hệ thống tự lưu lại deadline gốc — chống tình trạng dời hạn để "ăn" KPI đúng hạn.

Cập nhật đêm 05/07/2026

Auto-QA chụp ảnh + tap — hoạt động với app iOS/Android thật MỚI

Trước đây nút Auto-QA chỉ duyệt được giao diện web (dùng DOM và selector). Từ hôm nay, khi preview đang chạy app iOS hoặc Android, Auto-QA tự chuyển chế độ:

Trước đâyTừ hôm nay
Auto-QA chỉ chạy được với web; bấm Auto-QA khi đang xem app iOS/Android thì prompt không phù hợp. Auto-QA tự nhận biết loại preview (web / iOS / Android), dùng đúng phương pháp — chụp ảnh + tap cho app, DOM cho web.

Dock preview tự bật khi test bắt đầu CẢI THIỆN

Khi PO đang ở tab Request và Claude hoặc Auto-QA bắt đầu điều khiển app trong simulator, cửa sổ xem màn hình (dock) tự động mở ra — PO thấy ngay app đang được test mà không cần bấm thủ công.

Nếu PO chủ động đóng dock trong lúc test đang chạy, hệ thống sẽ không tự mở lại (tôn trọng lựa chọn).

Trước đâyTừ hôm nay
Claude test app mà PO không biết đang có ảnh — phải tự nhớ bấm "Xem preview" để mở dock. Dock tự mở khi test bắt đầu; PO thấy màn hình app ngay, có thể theo dõi từng bước Claude tự tap.

Tự trả lời Export Compliance — không còn màn hỏi trên App Store Connect MỚI

Trước đây mỗi lần upload build TestFlight, App Store Connect hỏi "App có dùng mã hoá (encryption) không?" — phải vào web Apple bấm "No" thủ công cho từng build.

Từ hôm nay, khi panel phát hiện build mới được xử lý xong mà chưa trả lời câu hỏi này, hệ thống tự khai "Không dùng mã hoá đặc biệt" — màn hỏi biến mất, build sẵn sàng phân phối ngay.

Lưu ý: tự trả lời "No" phù hợp với hầu hết app dùng HTTPS thông thường (không nhúng thêm crypto riêng). Nếu app của anh dùng thuật toán mã hoá tự viết hoặc thư viện crypto nặng, hãy báo để tắt tính năng này cho project đó.
Trước đâyTừ hôm nay
Upload xong → phải vào App Store Connect → tìm build → bấm "Manage" → trả lời "No" → Save (mỗi build một lần). Upload xong → panel tự trả lời → build sẵn sàng phân phối, PO không cần làm thêm bước nào.

Test nhiều app iOS song song — không đè nhau CẢI THIỆN

Trước đây chỉ một project được dùng iOS Simulator tại một thời điểm. Từ hôm nay, nhiều project có thể chạy preview/Auto-QA iOS cùng lúc, mỗi project một máy ảo riêng.

Giới hạn mặc định là 2 simulator song song (do RAM ~2 GB/máy). Admin có thể điều chỉnh trong config nếu cần thêm.

Trước đâyTừ hôm nay
Project A đang test → Project B phải chờ, không thể bật preview iOS. Project A và B chạy preview iOS đồng thời, mỗi project simulator riêng.
Tóm tắt đêm 04/07/2026 — routine tự động

Cập nhật đêm 04/07/2026

Lọc analytics theo app version MỚI

Tab Analytics có thêm dropdown Version (chọn nhiều) bên cạnh dropdown Quốc gia. Chọn một hoặc vài version để xem riêng:

Danh sách version tự động lấy từ dữ liệu thực tế trong khoảng thời gian đang xem, xếp theo lượt dùng nhiều nhất lên đầu. Không chọn gì = xem tất cả (hành vi cũ).

Trước đâyTừ hôm nay
Analytics gộp chung mọi version, không biết version nào kéo số lên hay xuống. Chọn "3.5" để xem riêng bản mới; so sánh thủ công với "3.4" bằng cách đổi dropdown.

Admin chọn model Claude cho toàn bộ job MỚI

Vào Settings → 🤖 Claude: chọn model (ví dụ Sonnet 4.6, Opus 4.8…) sẽ được áp dụng cho mọi job headless chạy sau đó — không cần sửa config tay.

Proof Card (thẻ "Đã sửa gì") và bảng token usage giờ hiển thị thêm chi phí quy đổi ra VND (dựa trên tỷ giá cấu hình). PO thấy ngay mỗi job tốn bao nhiêu tiền.

Trước đâyTừ hôm nay
Model mặc định cố định, muốn đổi phải SSH vào server sửa config. Admin chọn model qua UI; chi phí hiện bằng VND để dễ theo dõi ngân sách.

Hết dup tin nhắn + nút mở file từ chat SỬA LỖI / CẢI THIỆN

Hết dup: khi mở lại phiên làm việc cũ, các tin nhắn của Claude không còn bị hiện hai lần (lỗi xảy ra khi SSE replay backlog sau khi load history).

Nút mở file: khi Claude nhắc đến đường dẫn file trong khung chat (ví dụ /generated/myapp/icon.png), xuất hiện nút ↗ nhỏ bên cạnh — bấm là mở thẳng file đó trong tab Files, không cần tìm tay.

Tóm tắt đêm 03/07/2026 — routine tự động

Cập nhật đêm 03/07/2026

Hết lỗi job thất bại sau khi restart panel SỬA LỖI

Khi panel được khởi động lại (cập nhật hoặc treo), các issue đang có Claude xử lý dở bị đánh dấu "bị ngắt" và được xếp lại hàng để chạy tiếp. Tuy nhiên phiên Claude cũ vẫn để lại file session trên đĩa — lần chạy mới dùng cùng mã phiên cũ nên bị Claude từ chối với lỗi "Session ID already in use", job thất bại ngay từ đầu mà không làm được gì.

Đã sửa: mỗi lần spawn Claude cho một issue giờ luôn tạo mã phiên mới, tránh hoàn toàn xung đột này.

Trước đâyTừ hôm nay
Restart panel → issue đang dở bị fail ngay, PO phải bấm "Xử lý" lại thủ công (đôi khi fail nhiều lần liên tiếp). Restart panel → issue đang dở tự chạy tiếp bình thường, không cần thao tác thêm.

Ghi nhận: hôm nay có 4 job codepanel bị lỗi này (issue #ab3874 × 2 lần, #2ee729 × 2 lần) và 3 job duet-ios.

Claude xử lý file lớn không bị cắt giữa chừng CẢI THIỆN

Trước đây mỗi lượt trả lời của Claude bị giới hạn 32.000 token output. Với file dài như Translations.swift (14 ngôn ngữ), Localizable.strings nhiều ngôn ngữ, hoặc file cấu hình lớn — Claude thường bị dừng đột ngột giữa chừng với lỗi "exceeded the 32000 output token maximum", job fail và phải làm lại.

Đã nâng giới hạn lên 64.000 token/lượt — đây là mức tối đa của model đang dùng. Với file cực lớn Claude vẫn sẽ chia thành nhiều lượt, nhưng giảm hẳn tỷ lệ bị cắt.

Trước đâyTừ hôm nay
File dài > 32 K token output → job fail, PO phải nhờ lại và dặn "chia nhỏ ra". Ngưỡng gấp đôi (64 K); với đa số tác vụ viết file lớn sẽ hoàn thành trong 1–2 lượt.
Tóm tắt 30 giây — 03/07/2026

Cập nhật 03/07/2026

Bộ kỹ năng AI theo quy trình — ClaudeKit MỚI

Trong khu skill có thêm nhóm nút mới giúp giao việc lớn cho AI một cách bài bản, thay vì chỉ nhắn chat tự do:

Có thêm tab Plans để theo dõi tiến độ kế hoạch theo phase.

Trước đâyTừ hôm nay
Nhờ AI làm việc lớn phải mô tả dài dòng, AI dễ làm lệch hoặc bỏ bước. Chọn đúng nút skill, AI đi theo quy trình chuẩn (kế hoạch → làm → kiểm) cho kết quả gọn và tin cậy hơn.
Lưu ý: skill "Làm trọn gói" và "Fix lỗi" sẽ sửa nhiều file trong project — nên chạy khi nhánh git đang sạch; luôn có nút Hủy thay đổi để quay lại nếu chưa ưng.

Mở panel là vào thẳng danh sách phiên — bấm để mở lại cuộc trò chuyện MỚI

Mở web ra hiện ngay danh sách các phiên làm việc gần đây làm màn hình chính. Bấm vào một phiên là mở lại đúng cuộc trò chuyện với Claude — đọc lại và nhắn tiếp luôn, chứ không chỉ xem lịch sử tĩnh.

Trước đâyTừ hôm nay
Mở panel vào màn chung, phải bấm qua vài bước mới thấy phiên cũ; bấm vào chỉ xem được nội dung, muốn tiếp thì phải mở lại thủ công. Vào là thấy ngay danh sách phiên; bấm một cái là tiếp tục trò chuyện ngay tại chỗ.

Claude hỏi xác nhận trước khi động vào việc CẢI THIỆN

Khi PO nhờ sửa lỗi / thêm tính năng, Claude giờ đọc nhanh để hiểu, nói ngắn gọn hiểu gì + định làm gì, rồi hỏi PO đồng ý mới bắt tay. Không tự ý commit/push hay đụng sang project khác.

Trước đâyTừ hôm nay
Nhờ một câu là Claude lao vào làm luôn theo cách nó đoán — đôi khi lệch ý. Claude xác nhận hướng làm trước, PO gật rồi mới chạy — ít làm sai, an tâm hơn.

Duyệt AI không cần đọc code — thẻ "Đã sửa gì" MỚI

Mỗi request làm xong hiện một thẻ tóm tắt để PO duyệt nhanh mà không cần hiểu code:

Trạng thái cũng rõ ràng hơn: ❓ Cần bạn trả lời (Claude dừng hỏi thay vì đoán bừa) và 🔍 Chờ bạn duyệt (đã xong + có bằng chứng).

✓ An tâm: nếu Claude báo xong mà không có bằng chứng, hệ thống KHÔNG hiện "chờ duyệt" — tránh tin nhầm là đã hoàn thành.

Panel mở project nhanh hơn CẢI THIỆN

Danh sách project và thông tin git giờ tải nhanh hơn rõ rệt (nhất là khi có nhiều project). PO không phải làm gì — chỉ là mượt hơn.

Tóm tắt 30 giây — 02/07/2026

Cập nhật 02/07/2026

Nhập lệnh bằng giọng nói — nút mic trong chat MỚI

Thanh chat trong panel có thêm nút 🎤. Bấm vào là panel bắt đầu nhận giọng nói tiếng Việt — nói xong bấm ⏹ dừng, text tự điền vào ô chat, gửi bình thường. Nếu đã gõ dở thì giọng nói được nối tiếp vào, không ghi đè.

Trước đâyTừ hôm nay
Muốn ra lệnh thì phải gõ tay hoặc dùng mic bàn phím iOS (copy–paste thêm bước). Bấm 🎤 trong panel, nói một câu, gửi ngay — không cần chạm bàn phím.

Lưu ý: trình duyệt sẽ hỏi cấp quyền micro lần đầu. Tính năng này cần kết nối internet (Web Speech API). Một số trình duyệt WebView không hỗ trợ — trong trường hợp đó nút tự ẩn và PO vẫn dùng mic bàn phím iOS bình thường.

Ra lệnh tay-rảnh qua Siri Shortcut / CarPlay MỚI

Panel giờ có endpoint nhận lệnh từ Siri Shortcut — PO tạo shortcut một lần trên iPhone, sau đó chỉ cần nói "Hey Siri, giao cho Claude…" là lệnh được đẩy thẳng vào phiên Claude đang làm việc. Kết quả Siri đọc lại ngắn gọn xác nhận.

Dùng được khi: đang lái xe qua CarPlay, tay không rảnh, muốn xem tiến độ hoặc giao việc nhỏ cho Claude mà không cần mở điện thoại.

Để thiết lập: anh tạo Siri Shortcut "Get Contents of URL" trỏ tới https://panel.xuongapp.com/api/voice với Bearer token — liên hệ để được hướng dẫn cụ thể.

Cập nhật 01/07/2026

Báo lỗi upload iOS thông minh hơn CẢI THIỆN

Khi Apple từ chối upload vì version đã được duyệt trước (lỗi 90062 / 90186), panel giờ hiển thị rõ nguyên nhân và hướng dẫn trực tiếp: "Tăng Version (VD: 1.2 → 1.3) rồi bấm Build & Up TestFlight lại". Không còn phải mò trong log dài.

Trước đâyTừ hôm nay
Upload thất bại, panel báo chung chung "không nhận diện được pattern lỗi — mở log đầy đủ để check tay." Panel hiển thị thẳng: "Apple từ chối: version 1.2 đã approve — phải tăng CFBundleShortVersionString lên cao hơn." kèm hướng dẫn fix.
Cần anh Thông quyết

Cập nhật 30/06/2026

Tóm tắt 30 giây — 30/06/2026 Bản này thêm 3 tính năng PO dùng trực tiếp: tải file build (IPA/AAB/APK) ngay trong panel, form nhập ID quảng cáo/SDK một lần, và lấy content từ Google Drive / kéo–thả file thẳng vào chat. Kèm theo 9 cải thiện ngầm giúp build & submit chạy mượt, ít báo lỗi sai hơn. Không cần làm gì để cập nhật — mở lại panel là có.

Tính năng mới PO sẽ dùng (30/06)

1. Tải file build về máy ngay trong panel MỚI

Sau khi app build xong, tab Status hiện nút tải thẳng file cài đặt: IPA (iOS), AAB / APK (Android). Bấm là tải về máy PO, kèm dung lượng file.

Trước đây: PO phải nhắn "xuất apk" trong chat rồi đợi, nhiều lúc không thấy file đâu. Giờ có nút bấm trực tiếp.

2. Form nhập ID quảng cáo / SDK một lần MỚI

Trong khu skill có nút mới 🔑 Nhập ID SDK (1 lần). PO điền sẵn các ID có trong tay — AdMob (App ID, Banner, Interstitial, Rewarded, Native, App Open), Facebook, TikTok, Adjust, AppMetrica — field nào chưa có thì bỏ trống. Bấm gửi là Claude gắn hết trong một lượt.

Trước đây: Claude hỏi từng ID một, có app phải qua lại 5–6 lần mới đủ. Giờ điền một form là xong.

Lưu ý: file cấu hình GoogleService-Info.plist / google-services.json thì PO kéo–thả vào khung 📎 dưới khung chat, không dán nội dung file vào ô.

3. Lấy content từ Google Drive + kéo–thả file MỚI

Hai cách đưa ảnh/video/asset vào app:

Trước đây: tải content từ Drive hay bị treo, và PO không dùng Mac thì không gửi file vào được. Giờ làm thẳng trên panel, không cần Mac.

Cải thiện ngầm 30/06 — chạy mượt & chính xác hơn

Những thứ này chạy tự động, PO không phải thao tác gì — chỉ là kết quả tin cậy hơn:

Vấn đề trước đâyGiờ đã sửa
Bấm gửi nhầm nhiều lần → tạo nhiều job trùng, tốn thời gian. Gửi trùng trong vài giây được gộp lại, chỉ chạy 1 lần.
Submit TestFlight/App Store đôi khi báo "stopped" dù thực ra đã upload xong. Báo hoàn tất ngay khi upload thành công, không chờ Apple xử lý xong nên không còn báo dừng sai.
Rớt mạng giữa chừng bị gắn nhãn nhầm "Build fail" → tưởng app lỗi. Phân biệt rõ lỗi mạng với lỗi build thật, báo đúng nguyên nhân.
Kiểm tra Checklist (AdMob/SDK) đôi khi đọc nhầm tài liệu cũ → kết luận sai. Luôn đọc code & cấu hình thật của app, tài liệu cũ không còn làm sai lệch kết quả.
Test trên simulator có lúc chạy lan man rất lâu, chụp quá nhiều ảnh. Giới hạn gọn lại, dừng sớm khi gặp lỗi lặp — nhanh và rẻ hơn.
Sau khi sửa cấu hình project iOS phải nhắc "chạy xcodegen" thủ công. Tự chạy bước này trước khi build, PO không cần nhắc.
Push code lên GitLab thỉnh thoảng kẹt vì xung đột phiên bản. Tự đồng bộ trước khi push, ít kẹt hơn; nếu vẫn vướng thì báo rõ thay vì làm bừa.
Project/app mới tạo đôi khi không hiện ra cho đúng người. Project mới tự xuất hiện đúng tài khoản vừa tạo.
Log job phình dung lượng vì nhét cả ảnh dạng mã hoá. Tự lược bỏ phần ảnh nặng trong log → nhẹ và mở nhanh hơn.
✓ Không cần cập nhật thủ công: mở lại panel.xuongapp.com là dùng được ngay. Nếu trình duyệt còn cache bản cũ, bấm tải lại trang (Ctrl/Cmd + Shift + R).

Xem lại hướng dẫn đầy đủ: 📘 Hướng dẫn sử dụng CodePanel.