Anthropic âm thầm gỡ tính năng Claude Code người dùng đang dựa vào

Công nghệ13 tháng 11, 2026·5 phút đọc

Phiên bản Claude Code 2.1.323 đã loại bỏ cấu hình subagentStatusLine mà không có cảnh báo, không có giải pháp thay thế và không có hướng dẫn chuyển đổi. Người dùng mất khả năng theo dõi theo thời gian thực về ngữ cảnh, chi phí, mô hình và mức suy luật của từng tác tử phụ đang chạy.

Anthropic âm thầm gỡ tính năng Claude Code người dùng đang dựa vào

Anthropic vừa gây tranh cãi trong cộng đồng lập trình viên khi bản phát hành Claude Code 2.1.323 lặng lẽ gỡ bỏ cấu hình subagentStatusLine, một tính năng mà không ít người dùng đã xây dựng hệ thống quan sát thời gian thực của riêng họ dựa trên đó. Điều đáng nói là việc gỡ bỏ diễn ra không có cảnh báo khởi động, không có giải pháp thay thế và không có lộ trình chuyển đổi.

Dòng trạng thái tác tử phụ trước khi bị gỡ bỏDòng trạng thái tác tử phụ trước khi bị gỡ bỏ

Chuyện gì đã xảy ra

Theo ghi chú phát hành (changelog) của 2.1.323, Anthropic cho biết đã "loại bỏ cấu hình subagentStatusLine: các dòng tác tử phụ luôn dùng giao diện mặc định, và các tệp cấu hình còn giữ khóa này vẫn nạp như cũ". Lược đồ cấu hình (schema) giờ mô tả khóa này là "Deprecated: không còn tác dụng. Các dòng tác tử phụ luôn dùng giao diện mặc định."

Vấn đề nằm ở chỗ: không có bất kỳ cảnh báo nào khi khởi động. Một lệnh (command) đã được cấu hình chỉ đơn giản là ngừng chạy, và người dùng chỉ phát hiện ra khi bảng tác tử của họ trống trơn. Phiên bản 2.1.322 vẫn thực thi lệnh này, còn 2.1.323 thì không bao giờ gọi tới nữa.

Vì sao điều này gây thiệt hại

subagentStatusLine từng là nơi duy nhất trong Claude Code cho phép người dùng nhìn thấy, với từng tác tử phụ đang chạy, ngay trong một dòng:

  • mức sử dụng ngữ cảnh (context) thực tế so với cửa sổ ngữ cảnh riêng của nó
  • số tiền đã tiêu tới thời điểm đó (token và đô-la)
  • mô hình đang dùng và mức suy luật (reasoning effort)
  • trạng thái, thời gian chạy và tình trạng prompt-cache

Thiếu đi dòng này, một phiên làm việc chạy nhiều tác tử nền gần như "bay mù". Giao diện mặc định không cho biết tác tử nào đang đốt ngữ cảnh, tác tử nào sắp chạm giới hạn cửa sổ, tác tử nào bị chuyển sang mô hình đắt tiền, hay tác tử nào đang âm thầm trả tiền lại cho một cache đã hết hạn.

Dòng trạng thái cũ từng hiển thị dữ liệu dày đặc như sau:

○ ▱▱▱▱▱▱▱ 8% 82.6K/1.0M Σ$2.06/2.9M/28.5K/40 │flights:foreman│opus·▰▰ medium│running 5m:40s│1 error│💾5m✓4m:54s 98%

Sau khi lên 2.1.323, cùng dòng đó chỉ còn: flights:foreman Running grep.

Trái với chính định hướng gần đây của Anthropic

Đáng chú ý là changelog vẫn liên tục đầu tư vào cấu hình này cho tới sát thời điểm gỡ bỏ, với các dòng như "Bổ sung reasoning effort vào payload subagentStatusLine để dòng tác tử tùy chỉnh có thể hiển thị mô hình và mức suy luật", "Bổ sung agentType vào payload subagentStatusLine để script phân biệt được các loại tác tử phụ tùy chỉnh" và "Sửa lỗi ${CLAUDE_PLUGIN_ROOT} không được thay thế trong lệnh subagentStatusLine do plugin cung cấp".

Nhiều người đã xây dựng trên chính những bổ sung đó. Tài liệu chính thức hiện vẫn giới thiệu cấu hình này như đang hoạt động.

Cơ chế mod không thay thế được

Các vị trí ui.render trong 2.1.323 gồm AskUserQuestion, UserMessage, AssistantMessage, ToolUse, ToolResult, ToolGroup, ToolProgress, CommandOutput, Spinner, TurnDuration, InfoNotice, SessionMode, PromptHint, AbovePrompt, Pane và Placed. Không vị trí nào là dòng của bảng tác tử, nên không mod nào có thể vẽ lại những gì cấu hình này từng vẽ.

Một người dùng khác cho biết đã thử đặt màu trong frontmatter của tác tử trên 2.1.323 nhưng không tới được các dòng trong bảng tác tử. Cách duy nhất thực sự hiệu quả là ghim phiên bản 2.1.322 kèm biến DISABLE_AUTOUPDATER=1, đổi lại là từ bỏ mọi bản sửa lỗi về sau.

Yêu cầu từ cộng đồng

Những người mở vấn đề đưa ra ba đề nghị:

  • Khôi phục subagentStatusLine trong bản phát hành kế tiếp, giữ nguyên payload như 2.1.322 (bao gồm effort, agentType, contextWindowSize và tokenCount).
  • Nếu bảng tác tử mặc định đang được thiết kế lại, hãy phát hành giải pháp thay thế trước khi gỡ bỏ hook cũ — cụ thể là vị trí ui.render cho từng dòng của bảng tác tử, với props mang cùng payload.
  • Không gỡ bỏ một bề mặt cấu hình đã được ghi trong tài liệu mà thiếu một bản phát hành deprecation có cảnh báo lúc khởi động và một dòng changelog giải thích lý do.

Lỗi này được báo cáo trên cả Linux và macOS, ở giao diện dòng lệnh (terminal UI).

Góc nhìn

Sự cố này là lời nhắc rằng với các công cụ lập trình hỗ trợ AI, phần mở rộng tùy chỉnh không chỉ là tiện ích mà có thể là hạ tầng quan sát thực sự của đội ngũ. Khi một cấu hình như subagentStatusLine bị gỡ mà không có cảnh báo, các script theo dõi chi phí và ngữ cảnh của đội sẽ hỏng âm thầm, đúng lúc người ta cần chúng nhất.

Với lập trình viên Việt Nam đang dùng Claude Code trong các quy trình nhiều tác tử, bài học thực tế là nên ghim phiên bản công cụ trong môi trường làm việc chung thay vì để tự động cập nhật, đồng thời ghi lại các cấu hình đang phụ thuộc để sớm phát hiện thay đổi phá vỡ. Về phía nhà cung cấp, việc duy trì một quy trình deprecation minh bạch là cách giữ niềm tin của những người đã đầu tư công sức xây dựng trên nền tảng của mình.

Nguồn: github.com · Quy trình biên tập

Chia sẻ:FacebookX