Claude Code
Claude Code là coding agent mình dùng mỗi ngày, kể cả trên chính site này: nó nộp bản nháp blog qua MCP server riêng của beru.io.vn.

Claude Code là coding agent mình dùng mỗi ngày, kể cả trên chính site này: nó nộp bản nháp blog qua MCP server riêng của beru.io.vn. Các bài trong mục này bám theo từng bản phát hành mới. Mình cài đúng phiên bản, chạy tính năng trên một repo thật hoặc trên sandbox đang nộp bài cho blog, rồi ghi lại chuyện gì thực sự xảy ra, kể cả những chỗ hỏng hoặc bị chặn giữa chừng. Chủ đề gồm luật phân quyền và auto mode, plugin và trình validate, hook, quản lý MCP server, skill, và các lỗi thoái lui giữa các phiên bản. Bài nào cũng ghi rõ phiên bản mình đã thử. Claude Code thay đổi rất nhanh, nên hãy xem ngày và phiên bản trước khi áp dụng cách sửa vào máy của bạn.
Tiếng Việt
9 bài, mới nhất trước
Claude Code 2.1.257 đưa Fable 5.1 lên làm mặc định — sandbox nộp bài này lại đang ôm một bản Claude Code từ tháng 2Ngày 1/9/2026, Claude Code 2.1.257 đặt Fable 5.1 (1M context, $10/$50 mỗi triệu token) làm model mặc định. Tôi kiểm claude --version ngay trên sandbox nộp bài viết này, lần theo symlink, và phát hiện một bản Claude Code npm khác nằm im từ tháng 2, lệch hơn 200 version — cùng vài ví dụ trong docs chính thức của Anthropic đã lạc hậu so với chính model nó vừa ra mắt.
Quản lý MCP server tập trung: Claude Code thêm managedMcpServers, tôi tự dựng server thật để kiểm chứng bản vá đi kèmBa bản vá Claude Code đầu tháng 9/2026 đổi cách quản lý MCP server tập trung: managedMcpServers chỉ HTTP/SSE cho tổ chức, lỗi MCP server SDK-provided mất ở lượt đầu, đổi ngữ nghĩa allowedMcpServers/deniedMcpServers. Tôi tự dựng MCP server thật để kiểm chứng, và bị chính rule Containment Escape của Claude Code chặn khi thử lồng phiên con — ngay trên sandbox đang nộp bài này qua MCP server OAuth của beru.io.vn.
Claude Code 2.1.261 thêm /skill-doctor: tôi tìm ra skill thừa trong Claude Code đang chạy chính bài viết nàyClaude Code 2.1.261 (4/9/2026) thêm lệnh /skill-doctor để đo skill cài mà không dùng. Tôi chạy lệnh này ngay trên sandbox đang nộp bài viết này qua MCP server của beru.io.vn: 89 skill thừa, ~8.285 token mỗi lượt, từ các plugin small-business/sales/marketing/finance không liên quan gì tới việc viết blog. Đối chiếu với /context lại lộ ra một khoảng lệch — 11 skill built-in mà chính /skill-doctor bỏ sót khỏi báo cáo của mình — và một file skillOverrides có sẵn trên máy nhưng nhắm nhầm nhóm skill.
Phân quyền Claude Code: dấu ngoặc trong đường dẫn từng khiến thư mục "chỉ đọc" ghi đượcĐầu tháng 9/2026, Claude Code vá bốn lỗi cú pháp permission rule: dấu ngoặc trong path bị coi không hợp lệ khiến thư mục "chỉ đọc" ghi được, pattern gãy làm crash tính năng edit, rule có chữ thừa sau ngoặc đóng không khớp gì mà không báo lỗi. Tôi trích nguyên văn CHANGELOG.md gốc rồi tự dựng lại từng rule lỗi bằng claude doctor trên sandbox 2.1.263 đang nộp bài này, và bắt được một trang tổng hợp đã gộp nhầm bản vá này với một lỗ hổng symlink khác.
Lỗ hổng symlink Claude Code lần hai: 2.1.265 vá bằng backslash, claude plugin validate vẫn im lặng y hệt bản cũClaude Code 2.1.265 (8/9/2026) vá thêm một lỗ hổng symlink containment trong plugin, lần này qua backslash. Tôi tự cài song song bản trước và sau bản vá bằng npm, dựng plugin test có symlink thật, chạy claude plugin validate và claude plugin install trên cả ba code path — kết quả JSON giống hệt nhau ở mọi phép thử, cho thấy bản vá nằm ở một lớp tôi không chạm tới được trong sandbox này: thời điểm session thật đọc nội dung symlink.
Claude Code lỗi 400 suốt ba bản vá: ANTHROPIC_BASE_URL, WebFetch treo vô hạn và cổng OAuth hết chỗClaude Code 2.1.265 (8/9/2026) đổi hạ tầng gateway và kéo theo hai regression: một regex trong schema Artifact tool khiến mọi request qua ANTHROPIC_BASE_URL trả lỗi 400, tồn tại suốt ba bản trước khi 2.1.268 (10/9/2026) vá xong; cùng lúc WebFetch từng có thể treo vô hạn, MCP OAuth có thể hết cổng redirect. Tôi kiểm tra trực tiếp trên chính sandbox 2.1.268 đang chạy Claude Code để nộp bài này qua MCP server OAuth của beru.io.vn, đối chiếu với changelog và tài liệu chính thức.
Kiểm thử plugin Claude Code bằng claude plugin eval: tôi dựng thật, chạy thật, và bị chặn giữa chừngClaude Code 2.1.269 (11/9/2026) thêm claude plugin eval: chạy plugin thật trên model thật, so WITH/W-OUT một no-plugin baseline, và tính Δ. Tôi dựng một plugin thật enforce quy tắc 3800-từ của chính blog này, xác nhận claude --version, claude plugin validate và eval init --bare chạy tốt trên sandbox 2.1.269 — nhưng khi chạy suite thật, bị chính auto-mode classifier của Claude Code chặn lại vì spawn một claude -p con bị xếp vào nhóm Create Unsafe Agents.
Auto mode AI agent: Claude Code review bằng classifier, Managed Agents vừa thêm 'auto' đánh giá từng lệnh ở serverClaude Code duyệt hành động agent bằng một model classifier chạy ngay trong phiên; Managed Agents vừa thêm hôm 10/9/2026 một permission policy cũng tên "auto" nhưng đánh giá ở tầng server, trả về evaluated_permission kèm reason_code. Tôi chạy claude auto-mode defaults ngay trong sandbox đang nộp bài này để lấy nguyên bộ luật của classifier, đọc tài liệu chính thức về policy mới, và so sánh hai cơ chế cùng tên nhưng vận hành khác nhau hoàn toàn.
Claude Code vá lỗ hổng symlink trong plugin. Trình validate của nó vẫn cho qua sạchClaude Code 2.1.257 vá lỗi plugin đọc file ngoài thư mục qua symlink. Tôi dựng lại trò đó trên 2.1.258: khoảng trống không nằm ở loại component mà ở hình dạng symlink — thư mục là symlink thì validator cảnh báo đủ cả bốn loại, còn file symlink nằm trong commands/ hay agents/ thì im lặng hoàn toàn. Với plugin có manifest đầy đủ, claude plugin validate trả về ✔ Validation passed sạch bong.
Bài tiếng Anh
Claude Code Shipped --restricted Mode. Here's What It Actually Locks Down on My CMS RepoClaude Code's new --restricted flag (v2.1.248, Aug 27 2026) strips a coding agent to file-scoped tools, ignores settings files, and refuses bypassPermissions outright. I checked the mechanics against the docs, tested it against a scratch repo shaped like this blog's self-hosted Next.js + Prisma CMS, hit an auto-mode classifier block nesting a session, and worked out what it fixes versus dontAsk mode and the OAuth-scoped MCP server that already gates this blog's submission pipeline.
Claude Code Shipped Model-Switch Hooks. Here's What They Actually Send When You Block OneClaude Code 2.1.251 shipped PreModelSwitch and PostModelSwitch hook events on August 28, 2026. I wired both into a real settings.json, ran them against a live session in the sandbox that files this blog's drafts, blocked a mid-session model switch, and confirmed it stuck -- then compared the real hook payload against Anthropic's own docs.