FAQ

Czym jest repartee?

repartee to terminalowy klient IRC napisany w Rust, inspirowany irssi i zbudowany jako port kokoirc (TypeScript/OpenTUI/Bun) do Rust/ratatui/tokio.

Dlaczego Rust?

  • Wydajność: ~24MB samowystarczalna binarka (zawierająca wbudowany SQLite, Hunspell oraz frontend webowy Leptos WASM), natychmiastowe uruchomienie, minimalne zużycie pamięci
  • Bezpieczeństwo: Bezpieczeństwo pamięci bez garbage collectora
  • Współbieżność: Asynchroniczne środowisko tokio wydajnie obsługuje wiele połączeń
  • Niezawodność: System typów Rusta wyłapuje błędy w czasie kompilacji
  • Dystrybucja: Pojedyncza statyczna binarka, bez zależności uruchomieniowych

Jak repartee porównuje się z kokoirc?

Cechakokoircrepartee
JęzykTypeScriptRust
Framework TUIOpenTUI/Reactratatui
Środowisko uruchomienioweBunNatywna binarka
Rozmiar binarki~68MB~24MB (z wbudowanym web UI WASM)
SkryptowanieTypeScriptLua 5.4
Format konfiguracjiTOMLTOML (ten sam format)
Format motywówKompatybilny z irssiKompatybilny z irssi (ten sam)

Formaty konfiguracji i motywów są kompatybilne -- możesz skopiować konfigurację kokoirc do repartee z minimalnymi zmianami.

Jak migrować z kokoirc?

  1. Skopiuj ~/.kokoirc/config.toml do ~/.repartee/config.toml
  2. Skopiuj ~/.kokoirc/.env do ~/.repartee/.env
  3. Skopiuj ~/.kokoirc/themes/ do ~/.repartee/themes/
  4. Skrypty muszą zostać przepisane z TypeScript na Lua

Jak migrować z irssi?

repartee używa ciągów formatujących kompatybilnych z irssi, więc wiedza o motywach przekłada się bezpośrednio. Główne różnice:

  • Konfiguracja jest w TOML zamiast własnego formatu irssi (lub edytowana interaktywnie przez /wizard / /config albo /set)
  • Skrypty są w Lua zamiast Perl
  • Większość /poleceń działa tak samo

Czy repartee obsługuje DCC?

Tak -- repartee obsługuje DCC CHAT z pełną kompatybilnością irssi/erssi:

  • Aktywne i pasywne (reverse) połączenia DCC CHAT
  • Konwencja bufora =nick -- czaty DCC pojawiają się jako =Alice na liście buforów
  • Automatyczne wykrywanie IP z gniazda IRC, z ręcznym nadpisaniem przez /set dcc.own_ip
  • Maski automatycznej akceptacji, timeout, śledzenie nicków, DCC REJECT
  • Polecenia z autouzupełnianiem: /dcc chat, /dcc close, /dcc list, /dcc reject
  • Zdarzenia skryptowe: dcc.chat.request, dcc.chat.connected, dcc.chat.message, dcc.chat.closed

Czy repartee ładuje historię czatu?

Tak. Po otwarciu kanału, query lub bufora DCC, ostatnie 20 wiadomości (konfigurowalne przez display.backlog_lines) jest ładowanych z lokalnej bazy danych logów SQLite. Ponadto na serwerach i bouncerach obsługujących draft/chathistory, repartee automatycznie pobiera historię z serwera po dołączeniu do kanału (a starsze wiadomości można pobrać na żądanie przez /chathistory).

Gdzie są przechowywane logi?

~/.repartee/logs/messages.db -- baza danych SQLite z opcjonalnym szyfrowaniem AES-256-GCM.

Czy mogę używać wielu sieci IRC i bouncerów?

Tak. Dodaj wiele sekcji [servers.*] do konfiguracji lub użyj /wizard, aby skonfigurować je interaktywnie. Każda sieć otrzymuje własne połączenie i zestaw buforów kanałowych.

Jeśli korzystasz z bouncera takiego jak Soju lub Lurker, ustaw bouncer_control = true na pojedynczym połączeniu sterującym, a repartee automatycznie wykryje wszystkie sieci nadrzędne przez soju.im/bouncer-networks, utworzy połączenia potomne z poświadczeniami username/netid, zsynchronizuje znaczniki przeczytania między urządzeniami (draft/read-marker) oraz pozwoli przeszukiwać logi na serwerze (/bsearch) i zarządzać sieciami (/bouncer).

Czy repartee obsługuje IRCv3?

Tak -- repartee negocjuje ponad 30 możliwości IRCv3 oraz rozszerzeń bouncerów przy połączeniu:

  • Rdzeń i tożsamość: server-time, echo-message, labeled-response, away-notify, account-notify, chghost, setname, cap-notify, multi-prefix, extended-join, userhost-in-names, no-implicit-names, invite-notify
  • Historia i wiadomości: batch, message-tags, draft/chathistory, draft/event-playback, draft/multiline, draft/read-marker, draft/message-redaction, draft/channel-context, +typing, +draft/reply, +draft/react
  • Obecność, konta i metadane: monitor, extended-monitor, draft/account-registration, draft/metadata-2, draft/extended-isupport, draft/webpush
  • Rozszerzenia bouncerów: soju.im/bouncer-networks, soju.im/bouncer-networks-notify, soju.im/search, soju.im/client-cert
  • SASL: ECDSA-NIST256P-CHALLENGE, SCRAM-SHA-512, SCRAM-SHA-256, SCRAM-SHA-1, EXTERNAL (certyfikat TLS klienta), OAUTHBEARER, PLAIN (automatyczny wybór od najsilniejszego)
  • WHOX i Extban: automatyczne wykrywanie WHOX do śledzenia kont/hostów oraz bany $a:account ze skrótem /ban -a

Zobacz Referencję IRCv3, aby poznać pełną macierz specyfikacji.

Jak utrzymać repartee działające w tle?

Użyj /detach (lub naciśnij Ctrl+\ / Ctrl+Z), aby odłączyć się od terminala. repartee kontynuuje działanie -- połączenia IRC pozostają aktywne, wiadomości są logowane, a skrypty działają dalej.

Podłącz się ponownie za pomocą repartee a z dowolnego terminala. Możesz też uruchomić bezgłówkowo za pomocą repartee -d i podłączyć się później.

Zobacz Sesje i odłączanie, aby poznać pełny poradnik.

Czy mogę zamknąć terminal i połączyć się później?

Tak. Gdy zamkniesz okno terminala, repartee przechwytuje SIGHUP i automatycznie się odłącza. Sesja pozostaje uruchomiona i możesz się ponownie podłączyć za pomocą repartee a.

Działa to również przy rozłączeniach SSH -- uruchom repartee -d na zdalnym serwerze, rozłącz SSH, połącz się ponownie później i repartee a przywróci Twoją sesję.

Co robi /cycle?

/cycle opuszcza i natychmiast ponownie dołącza do kanału. Przydatne do odświeżenia listy nicków, ponownego wyzwolenia auto-op lub wyczyszczenia przestarzałego stanu kanału. Klucze kanału są zachowywane. Alias: /rejoin.

Czy mogę uruchamiać polecenia powłoki bez odłączania?

Tak! Użyj /shell, aby otworzyć wbudowany terminal wewnątrz Repartee. Otrzymujesz pełną powłokę z PTY (zsh, bash, vim, htop) w oddzielnym buforze. Naciśnij Ctrl+], aby przejść z powrotem do wejścia IRC, lub kliknij inny bufor na pasku bocznym. Wpisz exit w powłoce, aby ją zamknąć. Możesz otworzyć wiele powłok -- pojawiają się w grupie "Shell" na pasku bocznym.

Powłoka działa również w interfejsie webowym -- każda sesja webowa otrzymuje własny niezależny PTY dopasowany do rozmiaru okna przeglądarki. Powłoka webowa używa renderera WebGL2 beamterm z czcionką FiraCode Nerd Font, zaznaczaniem tekstu myszą, zmianą rozmiaru czcionki Ctrl+/- oraz wklejaniem ze schowka.

Jak zgłaszać błędy?

Otwórz zgłoszenie na GitHub lub odwiedź repart.ee.