Claude Code v2.1.88: Hook System và Flicker-Free Rendering
Breakdown chi tiết những thay đổi quan trọng trong Claude Code v2.1.88 — từ PermissionDenied hook đến CLAUDE_CODE_NO_FLICKER, và cách tận dụng chúng trong workflow hàng ngày.
Claude Code 2.1.88 — Nhỏ Nhưng Có Võ
Phiên bản 2.1.88 của Claude Code không có headline feature hoành tráng, nhưng nếu bạn dùng nó hàng ngày như tôi, hai thay đổi trong release này sẽ cải thiện workflow đáng kể. Hãy đào sâu vào từng cái.
CLAUDE_CODE_NO_FLICKER=1 — Cuối Cùng Alt-Screen Ngon
Nếu bạn đã từng dùng Claude Code trong terminal và thấy màn hình giật/nhấp nháy khi nó render output dài, đây là fix bạn đang chờ. Biến môi trường mới CLAUDE_CODE_NO_FLICKER=1 bật chế độ flicker-free alt-screen rendering với virtualized scrollback.
Cách bật:
# Thêm vào ~/.zshrc hoặc ~/.bashrc
export CLAUDE_CODE_NO_FLICKER=1
# Hoặc chạy trực tiếp cho một session
CLAUDE_CODE_NO_FLICKER=1 claude
Về mặt kỹ thuật, thay vì redraw toàn bộ alt-screen mỗi khi có update, nó chỉ update phần thay đổi. Kết quả là terminal feel mượt hơn rõ rệt, đặc biệt khi Claude đang stream output dài hoặc bạn scroll ngược lên xem history. Đây là opt-in vì có thể không tương thích với một số terminal emulator cũ — nếu dùng iTerm2, Ghostty, hay Kitty thì bật ngay đi.
PermissionDenied Hook — Automation Level Up
Đây là feature tôi thấy thú vị hơn. Claude Code giờ có hook PermissionDenied — nó fires khi Claude ở auto mode cố chạy một action nhưng bị từ chối do permission settings của bạn.
Tại sao quan trọng? Trước đây, khi Claude bị block, nó chỉ dừng lại và hỏi bạn. Giờ bạn có thể đăng ký một hook để handle tình huống đó — ví dụ: log lại action bị từ chối, gửi notification, hoặc fallback sang một path khác.
// .claude/hooks.js
module.exports = {
PermissionDenied: async ({ action, reason, context }) => {
// Log để audit
console.error(`[BLOCKED] ${action.type}: ${reason}`);
// Gửi alert nếu cần
if (action.type === "bash" && action.command.includes("rm -rf")) {
await sendSlackAlert({
text: `Claude cố xóa files: ${action.command}`,
channel: "#dev-alerts",
});
}
// Return false để không làm gì thêm
// Return { retry: true } để thử lại với context khác
return false;
},
};
Đây là bước tiến quan trọng cho những ai dùng Claude Code trong CI/CD pipeline hoặc automated workflows — bạn có observability đúng nghĩa thay vì chỉ biết "nó bị stuck ở đâu đó".
Tại Sao Điều Này Quan Trọng Với AI Coding Tools
ATProto và các decentralized protocol đang nổi lên với một luận điểm rõ ràng: infrastructure quan trọng quá để để một công ty kiểm soát hoàn toàn. Tư duy tương tự đang ảnh hưởng đến AI coding tools — hook system trong Claude Code là ví dụ điển hình.
Thay vì một black box "AI làm gì thì làm", hook system cho phép developer:
- Audit trail: Biết chính xác Claude đã làm gì và bị block ở đâu
- Policy enforcement: Đảm bảo AI không vi phạm security rules của team
- Custom fallbacks: Xây logic riêng khi AI gặp edge case
- Integration points: Kết nối với external systems (Slack, PagerDuty, JIRA)
Upgrade Ngay
npm update -g @anthropic-ai/claude-code
# hoặc
claude --version # kiểm tra version hiện tại
v2.1.88 là incremental release nhưng hai feature này đủ để justify việc update ngay hôm nay, đặc biệt nếu bạn đang build automation workflows với Claude Code. Flicker-free rendering là quality of life improvement, còn PermissionDenied hook là foundation cho những workflow phức tạp hơn.
Bonus: Kết Hợp với Galaxy.ai cho Workflow Mạnh Hơn
Nếu bạn đang dùng Claude Code để code và cần một AI workspace để brainstorm, research, hay manage knowledge base song song — thử Galaxy.ai. Tôi dùng nó như một "second brain" bên cạnh Claude Code: Claude Code lo phần implementation, Galaxy.ai lo phần planning và documentation.
Admin
Galaxy.ai
AI workspace for developers — all AI tools in one place. Supercharge your workflow.
Comments (0)
Sign in to comment
No comments yet. Be the first to comment!