Channel
Channel thêm phòng public/private và DM vào Libre WebUI, với thread, reaction, pin, unread state, attachment và trả lời @model trên chat durable được mã hóa.
Loại và thành viên
| Loại | Ai xem | Ai tham gia |
|---|---|---|
public | Mọi người | Tự tham gia |
private | Chỉ thành viên | Owner mời |
dm | Hai người | Tự động |
Access chỉ do membership quyết định: mọi read, write, download và event đều kiểm tra; outsider nhận 404 mà không lộ tồn tại. Global administrator không đọc được content.
Owner có thể rename, archive, invite, remove, moderate và delete. Owner chỉ rời bằng cách xóa channel. DM được deduplicate theo cặp.
Timeline
Timeline durable có thứ tự với cursor keyset created_at và ID.
- Post idempotent theo client ID.
- Tombstone deletion xóa content nhưng giữ vị trí.
- Editing chỉ author, có
editedAt. - Thread một level.
- Reaction unique theo cặp user/emoji.
- Pin do member quản lý.
Tên, mô tả và message được mã hóa.
Chưa đọc
Mỗi membership có cursor monotonic. Server đếm theo channel; message của mình không unread. POST /api/channels/:channelId/read chỉ tiến lên.
Real time
Thay đổi vào channel:<id> và SSE GET /api/channels/:channelId/events. Membership được kiểm tra trước mỗi delivery. SQL là nguồn sự thật; event bỏ lỡ được recover bằng read lại.
Attachment
POST /api/channels/:channelId/attachments tạo claim một lần trong 15 phút. Byte thuộc uploader; mỗi download kiểm tra membership.
Trả lời @model
Trả lời xuất hiện pending ngay và được durable job hoàn tất chỉ dưới danh nghĩa member gọi: access, credentials và routing của họ. Membership được kiểm tra trước generation; error hiển thị.
Một lượt nhắc cũng đến được người được nhắc qua email khi họ bật Lượt nhắc trong kênh dưới Settings → Thông báo và administrator đã thiết lập máy chủ gửi thư (xem Thông báo).
Context tối đa 30 message.
Công cụ chat đã được nối vào: khi member đã nhắc vượt qua feature gate của công cụ và có danh mục công cụ không rỗng, trả lời chạy cùng vòng lặp công cụ nhiều round như một lượt chat, dùng đúng máy chủ công cụ và builtin mà member đó nhìn thấy. Channel không gắn persona nào, nên không có ràng buộc máy chủ công cụ theo persona nào thu hẹp danh mục.
Không ai theo dõi một lượt nhắc theo cách người ta theo dõi một chat, nên một lệnh gọi công cụ có tác dụng phụ bị từ chối thẳng trừ khi member đó đã có phê duyệt thường trực cho công cụ đó. Trả lời nói rõ điều này và model được báo nên chạy công cụ đó từ một chat thay vì ở đây. Công cụ chỉ đọc chạy bình thường không cần hỏi, y như trong chat. Phê duyệt thường trực theo phạm vi từng channel: một quyết định "allow cho chat này" không bao giờ mang sang channel, và một phê duyệt theo channel không rò sang channel khác hay sang chat. Vì chỉ công việc chỉ đọc mới chạy không giám sát được, một job lượt nhắc bị retry vẫn an toàn để lặp lại.
Trả lời mang theo bản tóm tắt giới hạn các lệnh gọi đã thực hiện (tối đa 12, tham số và preview kết quả bị cắt bớt), hiện dưới dạng khối gấp "Tools used" bên dưới tin nhắn. Truy xuất knowledge và web search vẫn chưa được nối vào lượt nhắc trong channel.
Giới hạn
50 channel/user, 200 member, 50.000 message, 8.000 ký tự, 5 × 10 MB attachment, 200 reaction.
Hạn chế
Không có presence/typing, xuất channel riêng hay cài đặt notification theo channel ngoài rời channel.