Vai al contenuto

Impostazioni da fare e note di progetto

Due cose diverse, tenute separate di proposito:

  • Configurazione (config/griglia.php, env) — la decide lo sviluppatore che installa il package: percorsi, rotte, modelli, integrazioni. Letta una volta per richiesta, per cambiarla serve un deploy/config:cache, non si tocca mai dall'interfaccia.
  • Impostazioni (spatie/laravel-settings, /settings) — le decide l'utente a runtime, stanno nel database, si cambiano dall'interfaccia con effetto immediato. Tre gruppi: agent (come lavora l'agente), optimization (risparmio di token), app (comportamento della board).

Quello che esiste oggi è generato dal codice: vedi File di configurazione e Impostazioni. Questa pagina è quello che non c'è ancora — l'elenco delle cose da fare, con la strada da percorrere per ognuna.

Schema di ogni voce: nome · tipo · default · cosa fa · priorità (P1 alta, P2 media, P3 bassa) · note di implementazione.

Configurazioni — future (con la strada da fare)

# Chiave Tipo / default A cosa serve e perché ci sta Prio Implementazione
C1 admin_gate / canManageGriglia() string|null chi può modificare impostazioni globali, contesto, temi, skill (rimedio di sicurezza #1) P1 middleware/controllo in SettingsPage, ContextPage, installazione temi; nascondere i link; test; README
C2 mode_lock bool, false (GRIGLIA_MODE_LOCK) vietare che l'interfaccia scavalchi app.mode (per esempio in produzione) P1 Mode::current() ignora l'impostazione quando è bloccata; nascondere la select; test
C3 storage_path (cartella base di skills_file, agent_status_file, cache dell'export del contesto) percorso un posto solo per i file a runtime del package P3 ricavare da lì i due percorsi esistenti, tenendo gli override
C4 default di stats.price_list array prezzi di default per modello, così /stats mostra i costi da subito P3 precaricare cost_per_m_* dalla config quando le impostazioni sono vuote
C5 locale string|null forzare la lingua del package indipendentemente dall'applicazione P3 setLocale nel service provider quando è valorizzato
C6 plan.provider / plan.model string|null quale provider/modello AI costruisce i piani (oggi: il default dell'SDK) P2 passarli a PlanBuilder::prompt(provider:, model:); override da impostazione (vedi S3)
C7 transcription.provider / model string|null provider per la dettatura (oggi: ai.default_for_transcription) P2 passarli a Transcription::generate()
C8 theme_packs_dir / allow_theme_upload percorso / bool dove stanno i temi zip; disattivare del tutto gli upload sulle installazioni irrobustite P2 ThemeStore legge la cartella; nascondere l'upload quando è disattivato
C9 push.allowed_hosts array elenco degli endpoint Web Push ammessi (rimedio di sicurezza #3) P1 validare in PushSubscriptionController::store
C10 rate_limits (transcribe/test/push) array di stringhe throttle: tarare per installazione gli endpoint costosi P2 applicarli in routes/web.php
C11 context.targets array, ['CLAUDE.md','AGENTS.md'] quali file di istruzioni scrive la sincronizzazione (oggi solo nello script sull'host) P3 esporlo con griglia:context export --target; documentarlo
C12 agent_status.stale_minutes int, 15 soglia di «dato vecchio» in /agents P3 da costante a config

Impostazioni — future (con la strada da fare)

# Gruppo.chiave Tipo / default A cosa serve e perché ci sta Prio Implementazione
S1 app.ai_plan_provider / app.ai_plan_model select/text scegliere il modello che costruisce i piani (costo/qualità) P2 campi + migrazione + Plan::tasks() che li passa
S2 app.speech_provider / app.speech_model select/text provider/modello per la trascrizione P2 campi + TranscribeController
S3 agent.max_parallel int, 2 tetto per la modalità multitasking (quanti task aperti insieme) P2 stampata nella riga delle impostazioni; regola per l'agente
S4 agent.working_hours fascia oraria l'agente non dovrebbe iniziare task nuovi fuori dalla finestra P3 stampata da check; regola per l'agente
S5 agent.auto_pause_on_usage int %, 0 mettere in pausa i piani quando l'uso settimanale dell'agente (/agents) supera N% P2 gancio su AgentStatusplan_paused; toast/notifica
S6 app.notify_on_take bool, false notifica quando l'agente prende un task (finora l'utente ha chiesto solo chiusura/domanda) P3 Notify::taken() + notifica TodoTaken
S7 app.digest_time + app.daily_digest ora/bool il riepilogo serale lo manda l'applicazione (non l'agente): campanella/push/mail P2 comando schedulato griglia:digest
S8 app.history_retention_days int, 0 ripulire i task completati e archiviati vecchi (privacy/dimensione) P3 estendere griglia:auto-archive
S9 app.default_plan_length int, 3–12 suggerimento per PlanBuilder (numero di task) P3 parametro del prompt
S10 app.stats_default_period int giorni periodo di default di /stats P3 StatsPage::mount
S11 app.language select lingua dell'interfaccia per installazione (it/en) P3 middleware setLocale
S12 optimization.check_output_language select lingua dell'output di griglia:check (oggi inglese) P3 file di lingua per il comando

Fuori perimetro di proposito: impostazioni per singolo utente (le settings di spatie sono globali; servirebbe un altro archivio) e segreti nelle impostazioni (le chiavi API restano nel .env).

Griglia v0.92.0