Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

migrate: fl_pi_llm with encrypted chats and sync

Aperta
#1,773 1 commento 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
dart, rust, sqlite
Ambito
backend, database

Direzione di ricerca

Start with monitor/src/agent_mode/mod.rs and the app's Llm.init and FlPiLlm.start call sites. Read the fl_pi_llm migration details and check tests that construct AgentHost or initialize chats with a directory. Add key forwarding for those paths and verify existing chats encrypt on first open while missing keys fail safely; update any stored httpReq tool settings if applicable.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement lib

fl_pi_llm now encrypts chat files and adds sync between devices (lollipopkit/fl_pi_llm#22). What bumping packages/fl_pi_llm past it takes here:

App (Dart)
  • Llm.init reads the chat key from the keychain itself (ChatKey, item llm.chatKey) and passes it to FlPiLlm.start. Nothing to change for the app path.
  • Tests that call AgentHost/Llm.init with a directory have no keychain: forward a key (Uint8List, 32 bytes) to Llm.init(key: ...), as directory and credentials are. Direct FlPiLlm.start calls need key: (null keeps files in clear).
  • Existing Agent chats (plain SQLite under agent/chats/) are encrypted in place the first time each opens. ChatKey refuses to make a new key while encrypted chats exist and the stored one is missing, so a lost keychain item fails loudly instead of orphaning chats.
Monitor (Rust host)
  • fl_pi_llm::host::Config gains key: Option<fl_pi_llm::db::Key>: set it in PiConfig (monitor/src/agent_mode/mod.rs). None keeps chats in clear; with a key, existing ones are encrypted on first open.
  • fl_pi_llm's rusqlite is now in_gecko, and its build.rs compiles SQLite3 Multiple Ciphers for the whole build, with libsqlite3-sys's bundled options plus unlock notify. sqlx 0.9 (sqlite) links against it; checked with a crate using both.
Tools
  • The fetch tool was renamed httpReq -> http_request earlier (fl_pi_llm#7). A disabledTools/permittedTools entry stored as httpReq no longer applies: migrate it if a released build stored one.
Optional
  • Chats.exportChat/importChat (FlPiLlm.exportSession/importSession) carry a chat to another device, merged by entry uid. Usable if Agent chats should ever join the backup.
Lingua principale
Dart
Stelle
8.9k
Fork
573
Merge medio
2h 24m
PR unite (30g)
136

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di lollipopkit/flutter_server_box

Tutte le issue di lollipopkit/flutter_server_box

Issue simili

Altre issue su Dart

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.