Lewati ke konten utama

Channel

Channel menambahkan ruang publik/privat dan pesan langsung ke Libre WebUI, dengan thread, reaction, pin, unread state, attachment, dan jawaban @model di atas chat durable terenkripsi.

Tipe dan keanggotaan​

TipeYang melihatYang bergabung
publicSemuaMandiri
privateHanya anggotaDiundang owner
dmDua orangOtomatis

Akses hanya ditentukan keanggotaan: semua read, write, download, dan event memeriksanya; outsider menerima 404 tanpa mengungkap keberadaan. Administrator global tidak dapat membaca isi.

Owner dapat rename, archive, invite, remove, moderate, dan delete. Owner hanya keluar dengan menghapus channel. DM dideduplikasi per pasangan.

Timeline​

Timeline durable terurut dengan cursor keyset created_at dan ID.

  • Post idempoten berdasarkan ID client.
  • Tombstone deletion membersihkan isi tetapi mempertahankan posisi.
  • Editing hanya oleh author dengan editedAt.
  • Thread satu level.
  • Reaction unik per pasangan pengguna dan emoji.
  • Pin dikelola anggota.

Nama, deskripsi, dan pesan dienkripsi.

Belum dibaca​

Setiap keanggotaan memiliki cursor monotonik. Server menghitung per channel; pesan sendiri tidak dianggap belum dibaca. POST /api/channels/:channelId/read hanya bergerak maju.

Waktu nyata​

Perubahan masuk ke channel:<id> dan SSE GET /api/channels/:channelId/events. Keanggotaan diperiksa sebelum setiap pengiriman. SQL adalah sumber kebenaran; event terlewat dipulihkan dengan membaca ulang.

Attachment​

POST /api/channels/:channelId/attachments membuat claim sekali pakai selama 15 menit. Byte dimiliki uploader; setiap download memeriksa keanggotaan.

Jawaban @model​

Jawaban langsung muncul pending dan diselesaikan durable job hanya sebagai anggota yang memanggil: akses, credentials, dan routing miliknya. Keanggotaan diperiksa sebelum generation; error terlihat.

Sebuah sebutan juga menjangkau anggota yang disebut lewat email jika mereka menyalakan Sebutan di kanal di Pengaturan → Notifikasi dan administrator telah menyiapkan server email keluar (lihat Notifikasi).

Context maksimum 30 pesan.

Alat chat kini terhubung: saat anggota yang menyebut lolos gerbang fitur alat dan memiliki katalog yang tidak kosong, jawabannya menjalankan loop alat multi-ronde yang sama seperti giliran chat, terhadap server alat dan alat bawaan milik anggota itu sendiri. Sebuah channel tidak mengikat persona, sehingga tidak ada pengikatan alat persona yang mempersempit katalog.

Tidak ada yang mengawasi sebuah sebutan sebagaimana seseorang mengawasi chat, sehingga panggilan alat berefek samping langsung ditolak kecuali anggota itu sudah memegang persetujuan tetap untuknya. Jawabannya menyebutkan hal itu, dan model diberi tahu untuk menjalankannya dari chat sebagai gantinya. Alat hanya baca berjalan tanpa bertanya, persis seperti di chat. Persetujuan tetap dibatasi per channel: keputusan "izinkan untuk chat ini" tidak pernah terbawa ke sebuah channel, dan persetujuan per-channel tidak pernah bocor ke channel lain atau ke chat. Karena hanya pekerjaan hanya-baca yang dapat berjalan tanpa pengawasan, tugas sebutan yang dicoba ulang aman untuk diulang.

Jawabannya membawa ringkasan terbatas dari panggilan yang dibuatnya (maksimal 12, dengan argumen dan pratinjau hasil yang dipotong), ditampilkan sebagai pengungkapan "Alat dipakai" di bawah pesan. Pengambilan knowledge dan pencarian web masih belum terhubung ke sebutan channel.

Batas​

50 channel per pengguna, 200 anggota, 50.000 pesan, 8.000 karakter, 5 × 10 MB attachment, 200 reaction.

Keterbatasan​

Tidak ada presence/typing, ekspor channel terpisah, atau pengaturan notifikasi per channel selain keluar.