@loicngr/kobo 2.1.21 → 2.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +22 -4
- package/CHANGELOG.md +5 -0
- package/CONFIGURATION.md +23 -2
- package/dist/server/services/agent/engines/claude-code/engine.js +5 -2
- package/dist/server/services/agent/engines/codex/engine.js +3 -0
- package/dist/server/services/agent/orchestrator.js +1 -0
- package/dist/server/services/agent/turn-liveness.js +1 -1
- package/dist/server/services/settings-service.js +30 -0
- package/docs/deployment-vps.md +25 -10
- package/docs/getting-started.md +11 -0
- package/package.json +1 -1
- package/scripts/kobo-update +19 -11
- package/src/client/dist/pwa/assets/{ActivityFeed-DiUxnmGJ.js → ActivityFeed-2wu6qXx1.js} +1 -1
- package/src/client/dist/pwa/assets/{AutoLoopFinalReviewSettings-f4VDR5dd.js → AutoLoopFinalReviewSettings-CwnNUWCh.js} +1 -1
- package/src/client/dist/pwa/assets/{ChangelogPage-dEWpjTlp.js → ChangelogPage-D9ke0TYz.js} +1 -1
- package/src/client/dist/pwa/assets/{ComparisonPanel-Bwbqgvr4.js → ComparisonPanel-ytDu1L7a.js} +1 -1
- package/src/client/dist/pwa/assets/{CreatePage-CCCCAhrx.js → CreatePage-YQ_jGilf.js} +1 -1
- package/src/client/dist/pwa/assets/{DashboardPage-3byhBITf.js → DashboardPage-C-PyArla.js} +1 -1
- package/src/client/dist/pwa/assets/{DiffViewer-Bj_NTfCF.js → DiffViewer-CPobwSwm.js} +3 -3
- package/src/client/dist/pwa/assets/{DocumentsPanel-xyLDV3T1.js → DocumentsPanel-BjZGNI-p.js} +1 -1
- package/src/client/dist/pwa/assets/{DrawerToggleButton-pwBSstQP.js → DrawerToggleButton-Dtd6fhYu.js} +1 -1
- package/src/client/dist/pwa/assets/{GitPanel-DvIdrkVw.js → GitPanel-BHJ3lpJZ.js} +3 -3
- package/src/client/dist/pwa/assets/{HealthPage-BSwhZQRo.js → HealthPage-Lv_IdF1l.js} +1 -1
- package/src/client/dist/pwa/assets/{MainLayout-DZJ9BvZw.js → MainLayout-DYumlWcP.js} +2 -2
- package/src/client/dist/pwa/assets/{MemoryPanel-ChR032zP.js → MemoryPanel-DS2F3x-S.js} +1 -1
- package/src/client/dist/pwa/assets/{MemoryProposalList-BRKSoS4K.js → MemoryProposalList-D_KDS3uX.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnDropdown-o3QH0Bb8.js → QBtnDropdown-XkBxmJO9.js} +1 -1
- package/src/client/dist/pwa/assets/{QExpansionItem-BhFHiyq9.js → QExpansionItem-B5vbHxJ2.js} +1 -1
- package/src/client/dist/pwa/assets/{QScrollArea-BsNY6slB.js → QScrollArea-BE_fAg20.js} +1 -1
- package/src/client/dist/pwa/assets/{QSelect-bEq3g_io.js → QSelect-BjZk4-r8.js} +1 -1
- package/src/client/dist/pwa/assets/{QTooltip-xYZ6KNu2.js → QTooltip-Dhn6VXWR.js} +1 -1
- package/src/client/dist/pwa/assets/{SchedulePanel-DIFv_FTY.js → SchedulePanel-BDhIt9pX.js} +1 -1
- package/src/client/dist/pwa/assets/{SearchPage-BqTBIt5E.js → SearchPage-CJrtIenZ.js} +1 -1
- package/src/client/dist/pwa/assets/SettingsPage-BSwN45zt.js +9 -0
- package/src/client/dist/pwa/assets/{SettingsPage-BRvUAZ5r.css → SettingsPage-CNIpxG-U.css} +1 -1
- package/src/client/dist/pwa/assets/{SplitWorkspacePage-D6r2pl5g.js → SplitWorkspacePage-BV62otQw.js} +1 -1
- package/src/client/dist/pwa/assets/{TerminalPanel-CladK9Vv.js → TerminalPanel-TQUHtZ-q.js} +1 -1
- package/src/client/dist/pwa/assets/{ToolCallItem-CdzEME4w.js → ToolCallItem-DxdYefuz.js} +1 -1
- package/src/client/dist/pwa/assets/{TouchPan-B4gQPwGN.js → TouchPan-CtwfZgkX.js} +1 -1
- package/src/client/dist/pwa/assets/{TourReplayButton-B0j6AZwU.js → TourReplayButton-DEC_Yt6E.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-CeVhoidC.js → WorkspaceAttentionLabels-BehGsWhI.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspacePage-w2bF8wTd.css → WorkspacePage-Bk-WWOYM.css} +1 -1
- package/src/client/dist/pwa/assets/{WorkspacePage-CK5XCuG_.js → WorkspacePage-CQz6QL5L.js} +3 -3
- package/src/client/dist/pwa/assets/{browser-B8tNScg1.js → browser-B3bGJv7H.js} +1 -1
- package/src/client/dist/pwa/assets/{build-path-tree-kmVAcvs_.js → build-path-tree-Bwwe_8vU.js} +1 -1
- package/src/client/dist/pwa/assets/{custom-sounds-CJwd-8TL.js → custom-sounds-1Rb1a5LA.js} +1 -1
- package/src/client/dist/pwa/assets/{de-BaO6kbdO.js → de-bfOiFUu1.js} +1 -1
- package/src/client/dist/pwa/assets/{editor.api-CgbPVW9s.js → editor.api-D2PTZoSF.js} +1 -1
- package/src/client/dist/pwa/assets/{efforts-y7Wf_Rgd.js → efforts-JkWc_mU5.js} +1 -1
- package/src/client/dist/pwa/assets/{es-DTvSsbD0.js → es-C5Sk8pec.js} +1 -1
- package/src/client/dist/pwa/assets/{expand-template-BFbbjj7X.js → expand-template-C-aGZz7k.js} +1 -1
- package/src/client/dist/pwa/assets/{format-BETfc4z9.js → format-BbXB3nKS.js} +1 -1
- package/src/client/dist/pwa/assets/{formatters-C22K9vlC.js → formatters-Bu3lC0Jk.js} +1 -1
- package/src/client/dist/pwa/assets/{fr-BH7V66Yz.js → fr-BNVJp67K.js} +1 -1
- package/src/client/dist/pwa/assets/{freemarker2-DiRVvp9O.js → freemarker2-qq6O820q.js} +1 -1
- package/src/client/dist/pwa/assets/{handlebars-BLYRroSQ.js → handlebars-nXATCa7t.js} +1 -1
- package/src/client/dist/pwa/assets/{html-DAW2vteY.js → html-ZSNyTQeY.js} +1 -1
- package/src/client/dist/pwa/assets/i18n-B_b02gtS.js +1 -0
- package/src/client/dist/pwa/assets/{index-CbyHfF8I.js → index-BZKHE14f.js} +3 -3
- package/src/client/dist/pwa/assets/{it-DZGbkkoy.js → it-B9g24VRZ.js} +1 -1
- package/src/client/dist/pwa/assets/{javascript-Bb5J8n0k.js → javascript-B3Elzrc0.js} +1 -1
- package/src/client/dist/pwa/assets/{liquid-Dqx3adnJ.js → liquid-CrMGh9mA.js} +1 -1
- package/src/client/dist/pwa/assets/{mdx-D_7igLV3.js → mdx-C6nxSGQ5.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco-contributions-C-0CbrAy.js → monaco-contributions-WtuTHJJ8.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco.contribution-c6JPBEZI.js → monaco.contribution--KeSH1BU.js} +2 -2
- package/src/client/dist/pwa/assets/{network-auth-BE4qbvWm.js → network-auth-DknPaiQS.js} +1 -1
- package/src/client/dist/pwa/assets/{notify-theme-BVFBBGrJ.js → notify-theme-DTaB0RsK.js} +1 -1
- package/src/client/dist/pwa/assets/{project-color-CHOR2jB5.js → project-color-bm_jpHka.js} +1 -1
- package/src/client/dist/pwa/assets/{python-Dqubw1F5.js → python-CQI_FwfK.js} +1 -1
- package/src/client/dist/pwa/assets/{razor-BQphc9Kt.js → razor-BT2wh4_7.js} +1 -1
- package/src/client/dist/pwa/assets/{typescript-Dep00l0X.js → typescript-D3ibItMf.js} +1 -1
- package/src/client/dist/pwa/assets/{use-search-index-status-CQHHvHwM.js → use-search-index-status-BnFR-_2l.js} +1 -1
- package/src/client/dist/pwa/assets/{use-tours-IVbXTmz2.js → use-tours-CsPhvrxf.js} +2 -2
- package/src/client/dist/pwa/assets/{use-worktree-restore-B3s5xDGR.js → use-worktree-restore-B5s0BuHk.js} +1 -1
- package/src/client/dist/pwa/assets/{workspace-templates-CyuTpztP.js → workspace-templates-GLO1mBlj.js} +1 -1
- package/src/client/dist/pwa/assets/{xml-BMS2dvaF.js → xml-EIEQlO3Y.js} +1 -1
- package/src/client/dist/pwa/assets/{yaml-CYw92aic.js → yaml-CJdHLr6G.js} +1 -1
- package/src/client/dist/pwa/index.html +1 -1
- package/src/client/dist/pwa/sw.js +1 -1
- package/src/client/dist/pwa/assets/SettingsPage-BLD0xWFB.js +0 -9
- package/src/client/dist/pwa/assets/i18n-DnuTmw3O.js +0 -1
|
@@ -8,7 +8,7 @@ KOBO_WORKSPACE_ID — id Kōbō del workspace (stabile dopo rinomina)
|
|
|
8
8
|
KOBO_WORKSPACE_NAME — nome visualizzato del workspace
|
|
9
9
|
KOBO_FORGE — forge risolta: github / gitlab / none
|
|
10
10
|
KOBO_PR_NUMBER — numero della PR/MR sulla forge risolta (vuoto se nessuna aperta)`,"settings.changeSourceBranchScript.placeholder":`#!/usr/bin/env bash
|
|
11
|
-
# il tuo script — usa $KOBO_NEW_BASE / $KOBO_OLD_BASE / $KOBO_WORKING_BRANCH …`,"settings.changeSourceBranchScript.resetDefault":`Ripristina il predefinito Kōbō`,"settings.changeSourceBranchScript.replaceConfirmTitle":`Ripristinare lo script?`,"settings.changeSourceBranchScript.replaceConfirm":`Le tue modifiche verranno sostituite dallo script predefinito di Kōbō. Continuare?`,"settings.cleanupScriptHint":`Script di shell eseguito nel worktree dopo ogni sessione dell'agente. In modalità auto-loop viene eseguito solo quando tutte le attività sono completate. Lascia vuoto per disattivare.`,"settings.cleanupScriptPlaceholder":`es. eliminare file temporanei, fermare container…`,"settings.cleanupScriptMode":`Quando eseguire`,"settings.cleanupScriptMode.idle":`Dopo ogni sessione — anche se restano attività`,"settings.cleanupScriptMode.noTasks":`Solo quando non resta nessuna attività Kōbō`,"settings.cleanupScriptOnlyOnChanges":`Eseguire solo se file sono stati modificati, aggiunti o eliminati`,"settings.cleanupScriptMode.inherit":`Eredita l'impostazione globale`,"settings.taskPromptTemplate":`Prompt di attività`,"settings.taskPromptTemplatePlaceholder":`Prompt inserito automaticamente nella descrizione dell'attività…`,"settings.taskPromptTemplateHint":`Iniettato automaticamente nella descrizione dell'attività nella pagina di creazione quando questo progetto è selezionato. Se non viene modificato, viene sostituito al cambio di progetto; appena lo modifichi, il tuo testo viene mantenuto.`,"settings.setupScriptPlaceholder":`npm install`,"settings.setupScriptHint":`Eseguito con bash nel worktree dopo la creazione, prima dell'avvio dell'agente. Nessun shebang necessario. In caso di errore, il workspace viene impostato su errore. Timeout: 5 minuti.`,"settings.e2e.title":`Test E2E`,"settings.e2e.framework":`Framework`,"settings.e2e.frameworkNone":`Nessuno`,"settings.e2e.frameworkOther":`Altro`,"settings.e2e.skill":`Skill (opzionale)`,"settings.e2e.skillPlaceholder":`es. cypress-tester`,"settings.e2e.prompt":`Linee guida personalizzate (opzionale)`,"settings.e2e.promptPlaceholder":`es. usare il pattern page-object, mirare a data-testid`,"settings.e2e.helpText":`Quando configurato, l'agente di grooming auto-loop inserisce sotto-task E2E per funzionalità UI.`,"settings.finalization.title":`Finalizzazione dell'auto-loop`,"settings.finalization.helpText":`Opzionale: un prompt che l'agente esegue come ultima iterazione dell'auto-loop. Tipicamente usato per controlli di qualità finali (lint, typecheck, test). La fase di grooming creerà un task con prefisso [FINAL] che userà questo prompt.`,"settings.finalization.prompt":`Prompt di finalizzazione`,"settings.finalization.promptPlaceholder":`es. Esegui npm run lint e npm test, poi marca questo task come fatto.`,"settings.editorCommand":`Comando editor`,"settings.editorCommandPlaceholder":`code, phpstorm, subl, vim...`,"settings.editorCommandHint":`Comando per aprire il worktree nel proprio editor. Il percorso del worktree viene passato come argomento.`,"settings.fileManagerCommand":`Comando file manager`,"settings.fileManagerCommandPlaceholder":`xdg-open, open, nautilus, dolphin, explorer...`,"settings.fileManagerCommandHint":`Comando per aprire il worktree nel proprio file manager. Il percorso del worktree viene passato come argomento. Lascia vuoto per nascondere il pulsante.`,"settings.terminalCommand":`Comando del terminale`,"settings.terminalCommandHint":`Comando per avviare il terminale nel worktree. Segnaposto {path} opzionale per la directory.`,"settings.terminalCommandPlaceholder":`kitty · alacritty · gnome-terminal --working-directory={path}`,"settings.mcpSelection":`Selezione MCP Claude`,"settings.mcpAutoSelect":`Auto (primo MCP attivo corrispondente)`,"settings.notionMcp":`Chiave MCP Notion`,"settings.sentryMcp":`Chiave MCP Sentry`,"settings.mcpSelectionHint":`Le voci attive vengono lette da ~/.claude.json. Lascia Auto per usare il comportamento predefinito.`,"settings.configuredProjects":`Progetti configurati`,"settings.noProjects":`Nessun progetto configurato`,"settings.addProject":`Aggiungi progetto`,"settings.copyFrom":`Copia impostazioni da`,"settings.copyFromPlaceholder":`(nessuno — parti dai valori predefiniti)`,"settings.copyFromHint":`Copia tutte le impostazioni tranne path, nome e branch sorgente.`,"settings.copyFromConfirmTitle":`Sovrascrivere i valori attuali?`,"settings.copyFromConfirm":`Sovrascriverà i valori del modulo con le impostazioni di "{project}". Continuare?`,"settings.newProject":`Nuovo progetto`,"settings.editProject":`Modifica progetto`,"help.title":`Aiuto`,"help.tours":`Tour guidati`,"help.steps":`{n} passaggio | {n} passaggi`,"help.markAllSeen":`Segna tutti come visti`,"help.markAllSeenHint":`Segna i tour attuali come visti senza avviarli.`,"help.resetAll":`Reimposta tutti i tour`,"help.resetAllHint":`Avvia ora il tour iniziale; ogni schermata ripeterà il proprio alla prossima apertura.`,"help.status.unseen":`non visto`,"help.status.partial":`in parte`,"help.status.seen":`visto`,"help.replayThis":`Ripeti il tour di questa schermata`,"tours.next":`Avanti`,"tours.prev":`Indietro`,"tours.done":`Fine`,"tours.exitConfirm":`Uscire dal tour guidato? Non ripartirà da solo; puoi ripeterlo in qualsiasi momento dal menu Aiuto.`,"tours.home.title":`Orientarsi`,"tours.home.list.title":`Workspace`,"tours.home.list.description":`Ogni missione vive qui con il suo stato. I badge segnalano una CI fallita, una review che chiede modifiche o una PR pronta al merge. Trascina il bordo interno di un pannello laterale con il mouse o il dito per ridimensionarlo. I pulsanti in alto vanno su più righe quando lo spazio è limitato.`,"tours.home.create.title":`Creare un workspace`,"tours.home.create.description":`Un workspace è un worktree Git, un branch e una sessione di agente per un compito.`,"tours.home.search.title":`Ricerca`,"tours.home.search.description":`Filtra l'elenco per nome. L'icona di ricerca in alto apre la ricerca full-text nelle conversazioni degli agenti.`,"tours.home.dashboard.title":`Cruscotto`,"tours.home.dashboard.description":`Una tabella con tutti i workspace attivi: stato, attenzione, PR, diff, attività e affidabilità dei motori.`,"tours.home.health.title":`Stato e changelog`,"tours.home.health.description":`Controlla database, runtime e agenti attivi. Il pulsante accanto elenca cosa è cambiato in ogni versione.`,"tours.home.settings.title":`Impostazioni`,"tours.home.settings.description":`Motori, integrazioni, automazione, worktree e progetti. Ora crea il tuo primo workspace.`,"tours.create.title":`Creare un workspace`,"tours.create.project.title":`Progetto e branch`,"tours.create.project.description":`Scegli il progetto e il branch da cui parte il worktree.`,"tours.create.mission.title":`Missione`,"tours.create.mission.description":`Descrivi il compito, o importalo da una pagina Notion o da una issue Sentry.`,"tours.create.template.title":`Template`,"tours.create.template.description":`Applica un preset salvato, o salva questo modulo come preset. «Duplica» su una scheda workspace apre questo modulo precompilato.`,"tours.create.engine.title":`Motore e modello`,"tours.create.engine.description":`Claude Code o Codex, il modello, lo sforzo di ragionamento e cosa l'agente può fare senza chiedere.`,"tours.create.brainstorm.title":`Brainstorm su un altro modello`,"tours.create.brainstorm.description":`Esegui la prima sessione di brainstorming su un altro modello, poi torna a quello principale per le iterazioni.`,"tours.create.autoloop.title":`Auto-loop`,"tours.create.autoloop.description":`L’agente completa le attività e le verifiche finali. Una review finale indipendente facoltativa si ripete dopo le correzioni finché non restano finding; se il lavoro non avanza, il ciclo si sospende.`,"tours.create.finalReview.title":`Configurare la review finale`,"tours.create.finalReview.description":`Scegli in anticipo motore, modello, impegno di ragionamento e istruzioni del reviewer. La review usa una sessione separata in sola lettura; l’agente originale corregge i finding e la review si ripete finché non ne resta nessuno.`,"tours.workspace.finalReview.title":`Review finale e correzioni`,"tours.workspace.finalReview.description":`Configura qui il reviewer finale facoltativo prima dell’avvio. Dopo le attività e le verifiche finali, una sessione separata esamina il lavoro. I finding tornano alla sessione originale per le correzioni automatiche e una nuova review. Chiudere Kōbō conserva il ciclo.`,"tours.workspace.reviewReturn.title":`Ritorno dalla review`,"tours.workspace.reviewReturn.description":`Il riepilogo torna alla sessione originale anche dopo il riavvio di Kōbō. Se la consegna è incerta, controlla quella conversazione prima di Riprovare; Annulla abbandona il ritorno. Le review manuali attendono istruzioni prima di correggere; auto-loop corregge automaticamente.`,"tours.create.comparison.title":`Confrontare due motori`,"tours.create.comparison.description":`Crea due workspace gemelli sullo stesso compito e confronta commit, compiti e attività.`,"tours.workspace.sessions.title":`Sessioni del workspace`,"tours.workspace.sessions.description":`Premi il titolo per scegliere, creare o rinominare una sessione, oppure copiarne l’identificativo.`,"tours.workspace.actions.title":`Azioni del workspace`,"tours.workspace.actions.description":`Il menu ⋯ raccoglie la vista affiancata, la palette dei comandi, il pannello laterale e la visita guidata.`,"tours.workspace.title":`Dentro un workspace`,"tours.workspace.chat.title":`Conversazione`,"tours.workspace.chat.description":`L'output dell'agente, in diretta: messaggi, chiamate agli strumenti, domande ed errori.`,"tours.workspace.input.title":`Parlare con l'agente`,"tours.workspace.input.description":`Invia un messaggio, usa gli slash command, detta a voce o allega file.`,"tours.workspace.selectors.title":`Impostazioni di sessione`,"tours.workspace.selectors.description":`Apri Configura per regolare modello, ragionamento, autorizzazioni e auto-loop. Qui è indicato anche il motore attuale.`,"tours.workspace.status.title":`Stato`,"tours.workspace.status.description":`Lo stato della sessione corrente; fermala qui quando serve.`,"tours.workspace.git.title":`Git`,"tours.workspace.git.description":`Commit, diff, push, rebase e la PR di questo branch.`,"tours.workspace.tasks.title":`Attività`,"tours.workspace.tasks.description":`Cosa l'agente prevede di fare, e i criteri di accettazione che deve rispettare.`,"tours.workspace.timeline.title":`Cronologia`,"tours.workspace.timeline.description":`Ogni sessione di questo workspace; aprine una precedente per rileggerla.`,"tours.workspace.subagents.title":`Sub-agenti`,"tours.workspace.subagents.description":`Segui i sub-agenti avviati dall'agente, con il loro progresso in tempo reale.`,"tours.workspace.documents.title":`Documenti`,"tours.workspace.documents.description":`Piani e file scritti dall'agente, consultabili senza lasciare la chat.`,"tours.workspace.schedule.title":`Pianificazione`,"tours.workspace.schedule.description":`Wake-up e cron che riavviano l'agente più tardi.`,"tours.workspace.memory.title":`Memoria del workspace`,"tours.workspace.memory.description":`Consulta la memoria inviata alla conversazione selezionata, le proposte in attesa e le operazioni del workspace. Cancellarla non modifica la cronologia del provider.`,"tours.workspace.handoff.title":`Continua con un contesto nuovo`,"tours.workspace.handoff.description":`Conversazione lunga? Avvia qui una nuova sessione o usa «Cambia LLM». Il lavoro corrente si interrompe immediatamente e la nuova sessione riprende automaticamente nello stesso workspace. Il riepilogo del passaggio di consegne è facoltativo: disattivalo se il LLM attuale ha esaurito la quota. Avanzamento, rapporto e collegamento alla sessione precedente appaiono sotto questo pulsante.`,"tours.workspace.terminal.title":`Terminale`,"tours.workspace.terminal.description":`Una shell dentro il worktree, senza lasciare Kōbō.`,"tours.gitPr.title":`Pull request`,"tours.gitPr.panel.title":`Stato della PR`,"tours.gitPr.panel.description":`Risultato della CI, decisione della review e reviewer, aggiornati ogni 30 secondi.`,"tours.gitPr.actions.title":`Azioni Git`,"tours.gitPr.actions.description":`Push, pull, rebase o cambio del branch di base. Durante un conflitto, un pulsante lascia che l'agente lo risolva.`,"tours.gitPr.attention.title":`Badge di attenzione`,"tours.gitPr.attention.description":`La scheda mostra una CI fallita, modifiche richieste o una PR pronta al merge.`,"tours.settings.title":`Impostazioni`,"tours.settings.engines.title":`Motori e modelli`,"tours.settings.engines.description":`Modelli, permessi predefiniti e limiti dei tentativi automatici.`,"tours.settings.integrations.title":`Integrazioni`,"tours.settings.integrations.description":`Connessioni Notion e Sentry e credenziali Bitbucket. GitHub e GitLab usano la sessione CLI locale.`,"tours.settings.automation.title":`Automazione`,"tours.settings.automation.description":`Script di setup e cleanup, lifecycle hook, template di prompt, template di workspace e skill.`,"tours.settings.worktrees.title":`Worktrees`,"tours.settings.memory.title":`Memoria`,"tours.settings.memory.description":`Scegli il comportamento manuale, automatico o ibrido, quindi esplora, controlla o svuota i dati esatti degli ambiti. Le operazioni sulla memoria sono immediate; la modalità si applica salvando le impostazioni.`,"tours.settings.worktrees.description":`Dove vivono i worktree, per quanto tempo conservare quelli già uniti, e la pulizia automatica.`,"tours.settings.projects.title":`Progetti`,"tours.settings.projects.description":`I progetti registrati e le loro impostazioni specifiche per progetto.`,"tours.settings.misc.title":`Generale, voce, notifiche, esportazione`,"tours.settings.misc.description":`Lingua, accesso alla rete, dettatura, suoni e notifiche del browser, e un export completo delle tue impostazioni.`,"tours.dashboard.title":`Cruscotto`,"tours.dashboard.overview.title":`Panoramica`,"tours.dashboard.overview.description":`Tutti i workspace attivi in una tabella; clicca su una riga per aprirla.`,"tours.dashboard.reliability.title":`Affidabilità dei motori`,"tours.dashboard.reliability.description":`Sessioni, errori e durate per motore e modello.`,"tours.health.title":`Stato`,"tours.health.checks.title":`Controlli`,"tours.health.checks.description":`Ambiente, database, runtime, workspace e sessioni.`,"tours.health.active.title":`Stato attivo`,"tours.health.active.description":`I back-off di quota, i wake-up in attesa e gli auto-loop in corso in questo momento.`,"tours.search.title":`Ricerca`,"tours.search.input.title":`Query`,"tours.search.input.description":`Corrisponde ai nomi dei workspace e alle conversazioni degli agenti.`,"tours.search.archived.title":`Archiviati`,"tours.search.archived.description":`Includi i workspace archiviati nei risultati.`,"tours.changelog.title":`Novità`,"tours.changelog.list.title":`Versioni`,"tours.changelog.list.description":`Cosa è cambiato in ogni versione, la più recente per prima.`,"settings.projectGroup.identity":`Identità`,"settings.projectGroup.defaults":`Valori predefiniti`,"settings.projectGroup.prompts":`Prompt`,"settings.projectGroup.scripts":`Script`,"settings.projectPath":`Percorso del progetto`,"settings.projectPathPlaceholder":`/percorso/del/progetto`,"settings.displayName":`Nome visualizzato`,"settings.displayNamePlaceholder":`Il mio progetto`,"settings.defaultSourceBranch":`Branch sorgente predefinito`,"settings.defaultModel.project":`Modello predefinito`,"settings.skipPermissions.project":`Salta le richieste di permesso`,"settings.prPromptTemplate.project":`Template del prompt PR`,"settings.prPromptPlaceholder.project":`Istruzioni specifiche del progetto per la creazione di PR...`,"settings.reviewPromptTemplate.project":`Template del prompt di revisione`,"settings.ciFixPromptTemplate.project":`Template del prompt «Ripara CI»`,"settings.gitConventions.project":`Convenzioni Git (per progetto)`,"settings.gitConventionsEmpty":`Lascia vuoto per usare le convenzioni globali.`,"settings.notionStatus":`Stato ticket Notion`,"settings.notionStatusProperty":`Nome della proprietà`,"settings.notionStatusPropertyPlaceholder":`État, Status...`,"settings.notionInProgressStatus":`Valore da impostare`,"settings.notionInProgressStatusPlaceholder":`In corso, In progress...`,"settings.notionStatusHint":`Quando un workspace viene creato con un ticket Notion, la proprietà specificata viene impostata a questo valore. Entrambi i campi sono obbligatori. Lasciare vuoto per disattivare.`,"settings.notionAssignee":`Assegnazione Notion`,"settings.notionAssigneeHint":`Quando un workspace viene creato con un ticket Notion, l'utente autenticato sull'MCP Notion viene aggiunto a questa proprietà People — solo se non ha già un assegnatario. Lasciare vuoto per disattivare.`,"settings.notionAssigneeProperty":`Nome della proprietà`,"settings.notionAssigneePropertyPlaceholder":`Sviluppatori, Assignees...`,"settings.notionUserId":`Il tuo UUID Notion`,"settings.notionUserIdPlaceholder":`135d872b-594c-8126-9604-00024ad6e5b5`,"settings.notionUserIdHint":`Seleziona il tuo account nella lista. Notion rifiuta l'assegnazione di bot nelle proprietà People — questo campo è obbligatorio per attivare l'auto-assegnazione.`,"settings.notionUsersRefresh":`Aggiorna`,"settings.notionUsersLoading":`Caricamento utenti Notion…`,"settings.notionUsersLoadFailed":`Impossibile caricare la lista: {error}`,"settings.notionUsersManualFallback":`Lista non disponibile — incolla il tuo UUID Notion manualmente.`,"settings.devServer":`Server di sviluppo`,"settings.devServerStart":`Script di avvio`,"settings.devServerStartPlaceholder":`npm run dev`,"settings.devServerStop":`Script di arresto`,"settings.devServerStopPlaceholder":`Opzionale — il processo verrà terminato automaticamente se vuoto`,"settings.selectProject":`Seleziona un progetto o aggiungine uno nuovo`,"settings.projectPathRequired":`Il percorso del progetto è obbligatorio.`,"settings.useGlobal":`Usa globale`,"settings.saved":`Impostazioni globali salvate.`,"settings.unsavedChanges":`Modifiche non salvate`,"settings.nav.general":`Generale`,"settings.nav.agents":`Agenti`,"settings.nav.skills":`Skills`,"settings.nav.prompts":`Prompt`,"settings.nav.scripts":`Script`,"settings.nav.workspaceTemplates":`Template di workspace`,"workspaceTemplates.title":`Template di workspace`,"workspaceTemplates.hint":`Preimpostazioni salvate del modulo di creazione. Scegline una nella pagina di creazione; per modificarla, caricala lì, regola e salvala di nuovo con lo stesso nome.`,"workspaceTemplates.empty":`Nessun template per ora. Compila il modulo di creazione e usa «Salva come template».`,"workspaceTemplates.anyProject":`Qualsiasi progetto`,"workspaceTemplates.rename":`Rinomina`,"workspaceTemplates.renameTitle":`Rinomina il template`,"workspaceTemplates.deleteConfirm":`Eliminare il template «{name}»?`,"workspaceTemplates.deleted":`Template «{name}» eliminato`,"settings.nav.notion":`Notion`,"settings.nav.forge":`Forge`,"settings.bitbucketCommunity":`Bitbucket Community`,"settings.bitbucketCommunityHint":`Le credenziali restano locali e sono usate solo da bkt.`,"settings.bitbucketUsername":`E-mail Atlassian`,"settings.bitbucketToken":`Token API Bitbucket`,"settings.nav.sentry":`Sentry`,"settings.nav.voice":`Voce`,"settings.nav.notifications":`Notifiche`,"settings.nav.worktrees":`Worktrees`,"settings.nav.export":`Esporta`,"settings.help.general":`Lingua, accesso alla rete e i valori predefiniti ereditati da ogni progetto.`,"settings.help.agents":`Modelli e permessi predefiniti, e limiti dei tentativi automatici.`,"settings.help.skills":`Quali suite di skill l'agente è invitato a usare.`,"settings.help.prompts":`Istruzioni dopo l’apertura di una PR/MR, per revisioni del codice, correzioni CI e finalizzazione.`,"settings.help.scripts":`Script di setup, pulizia e cambio del branch sorgente, più gli hook del ciclo di vita.`,"settings.help.notion":`Importa una pagina Notion come fonte di verità di un workspace.`,"settings.help.sentry":`Crea un workspace da una issue Sentry.`,"settings.help.forge":`Credenziali Bitbucket. GitHub e GitLab usano la CLI gh/glab autenticata; scegli la forge per progetto.`,"settings.help.voice":`Dettatura e push-to-talk.`,"settings.help.notifications":`Suoni, notifiche del browser e promemoria delle domande senza risposta.`,"settings.help.worktrees":`Dove vengono creati i worktree, conservazione ed eliminazione automatica.`,"settings.help.projects":`Progetti registrati e le loro impostazioni specifiche per progetto.`,"settings.help.templates":`Template di prompt espansi nella casella di input della chat.`,"settings.help.workspaceTemplates":`Preset salvati del modulo di creazione.`,"settings.help.export":`Esporta e importa tutte le impostazioni come JSON.`,"settings.openNav":`Apri la navigazione`,"settings.saveError":`Errore durante il salvataggio delle impostazioni.`,"settings.projectSaved":`Progetto salvato.`,"settings.projectSaveError":`Errore durante il salvataggio del progetto.`,"settings.projectDeleted":`Progetto eliminato.`,"settings.deleteProjectConfirmTitle":`Eliminare il progetto?`,"settings.deleteProjectConfirmMessage":`Rimuovere «{name}» dai tuoi progetti? Questo elimina solo le impostazioni Kōbō — il codice e i worktree restano intatti.`,"settings.projectDeleteError":`Errore durante l'eliminazione del progetto.`,"templates.title":`Template`,"templates.newTemplate":`Nuovo template`,"templates.editTemplate":`Modifica template`,"templates.deleteTemplate":`Elimina template`,"templates.deleteConfirm":`Eliminare il template '/{slug}'?`,"templates.deleteConfirmMessage":`Questa azione non può essere annullata.`,"templates.slug":`Slug`,"templates.slugHint":`Minuscole, cifre, trattini. Max 64 caratteri.`,"templates.slugInvalid":`Lo slug può contenere solo minuscole, cifre e trattini`,"templates.slugDuplicate":`Un template con questo slug esiste già`,"templates.description":`Descrizione`,"templates.descriptionHint":`Etichetta breve mostrata nel dropdown.`,"templates.descriptionRequired":`La descrizione è obbligatoria`,"templates.contentRequired":`Il contenuto è obbligatorio`,"templates.content":`Contenuto`,"templates.contentHint":`Contenuto del template. Usa {variable_name} per le sostituzioni.`,"templates.availableVars":`Variabili disponibili`,"templates.filePath":`File: {path}`,"templates.empty":`Nessun template ancora.`,"templates.createFailed":`Creazione del template fallita`,"templates.updateFailed":`Aggiornamento del template fallito`,"templates.deleteFailed":`Eliminazione del template fallita`,"templates.save":`Salva`,"templates.create":`Crea`,"templates.reloadDefaults":`Ricarica i template predefiniti`,"templates.reloadDefaultsHint":`Aggiunge solo i template predefiniti mancanti. I template esistenti (modificati o meno) non vengono mai sovrascritti.`,"templates.reloadDefaultsConfirmMessage":`Questa azione aggiungerà alla lista i template predefiniti mancanti. I template esistenti — comprese le tue personalizzazioni — non saranno toccati. Se vuoi ripristinare un template predefinito che hai modificato, eliminalo prima e rilancia questa azione.`,"templates.reloadDefaultsSuccess":`{added} aggiunto/i, {kept} mantenuto/i`,"templates.reloadDefaultsFailed":`Ricarica dei template predefiniti fallita`,"templates.resetToDefault":`Ripristina predefinito`,"templates.resetConfirmTitle":`Ripristinare il template al predefinito?`,"templates.resetConfirmMessage":`Sovrascrive le tue modifiche locali a /{slug} con il predefinito. Non annullabile.`,"templates.resetSuccess":`Template /{slug} ripristinato al predefinito`,"templates.resetFailed":`Ripristino del template non riuscito`,"chatInput.dropdownSkills":`Skill Claude`,"chatInput.dropdownKobo":`Comandi Kōbō`,"chatInput.dropdownTemplates":`Template`,"documents.title":`Documenti`,"documents.empty":`Nessun documento trovato`,"documents.refresh":`Aggiorna`,"documents.back":`Indietro`,"documents.loadFailed":`Caricamento del documento fallito`,"git.title":`Git`,"git.outputDialogTitle":`Git ha segnalato un errore`,"git.statsFailed":`Impossibile leggere lo stato git`,"git.section.repository":`Repository`,"git.section.changes":`Modifiche`,"git.section.pullRequest":`Pull request`,"git.section.actions":`Azioni`,"git.actions.more":`Altre`,"git.localOnly":`solo locale`,"git.pushed":`pushed`,"git.unpushed":`{count} non pushati`,"git.commits":`{count} commit | {count} commit`,"git.commits.loading":`Caricamento commit…`,"git.commits.empty":`Nessun commit su questo branch`,"git.commits.pushed":`Pushato`,"git.commits.unpushed":`Non pushato`,"git.commits.clickToAppend":`clicca per aggiungere SHA alla chat`,"git.commits.diffThisCommit":`Diff di questo commit (vs parent)`,"git.compareCommits":`Confronta commit…`,"git.files":`{count} file | {count} file`,"git.staged":`{count} staged`,"git.modified":`{count} modificati`,"git.untracked":`{count} non tracciati`,"git.workingTreeEmpty":`Nessuna modifica non committata`,"git.fileStaged":`In stage`,"git.fileModified":`Modificato`,"git.fileUntracked":`Non tracciato`,"git.push":`Push`,"git.forcePush":`Force push`,"git.forcePushToggle":`Force push (--force-with-lease)`,"git.pushRejectedHistory":`Push rifiutato: i branch locale e remoto hanno cronologie diverse. Dopo un rebase di commit pubblicati, usate Force push con conferma. Altrimenti recuperate e integrate le modifiche remote prima di riprovare.`,"git.pushRejectedLease":`Force push rifiutato: il branch remoto è cambiato dopo l’ultimo fetch. Recuperate e controllate queste modifiche prima di riprovare.`,"git.pushFailed":`Impossibile inviare il branch. Aprite i dettagli per conoscere la causa.`,"git.pushBlockedByOperation":`Prima completa o annulla l'operazione {operation} in corso`,"git.pushUpToDate":`Niente da inviare: il branch è già aggiornato su origin`,"git.forcePushHint":`Più sicuro di --force: il push viene rifiutato se il remoto ha commit che non hai visto. Da usare dopo un rebase o amend di commit già pushati.`,"git.branchForcePushed":`Branch force-pushed`,"git.pull":`Pull`,"git.pullNoUpstream":`Nessun upstream per questo branch — fai push prima per abilitare Pull.`,"git.sync":`Sync`,"git.createPrNoRemote":`Push del branch prima`,"git.viewRequest":`Visualizza {request}`,"git.createRequest":`Crea {request}`,"git.changeRequestBase":`Cambia il branch base della {request}`,"git.forgeCliMissing":`{cli} non è installato — installalo per usare le funzioni {request}`,"git.forgeNotAuthenticated":`Non autenticato — esegui {cli} auth login`,"settings.forge":`Forge`,"settings.forge.auto":`Rilevamento automatico`,"settings.forge.github":`GitHub`,"settings.forge.gitlab":`GitLab`,"settings.forge.bitbucketCommunity":`Bitbucket Community (bkt)`,"settings.forge.none":`Nessuna`,"git.pullConfirmTitle":`Pull della branch?`,"git.pullConfirmMessage":`Pull {branch} dal remoto (solo fast-forward).`,"git.branchPulled":`Branch aggiornata`,"git.pullFailed":`Pull fallito`,"git.renameBranch":`Rinomina branch`,"git.renameBranchPrompt":"Rinomina `{branch}` in:","git.renameBranchSuccess":"Branch rinominato in `{branch}`","git.renameBranchFailed":`Rinomina branch fallita`,"git.renameBranchExists":"Il branch `{branch}` esiste già localmente o su origin","git.diff":`Diff`,"git.diffReview":`Diff`,"git.diffReviewTooltip":`Apre il visualizzatore diff in modalità Review — commenti inline + invio batch all'agente`,"pr.baseChanged":`Base della PR cambiata: {oldBase} → {newBase}`,"pr.openPr":`Apri PR`,"pr.openWorkspace":`Apri il workspace`,"pr.dismiss":`Chiudi`,"git.rebase":`Rebase`,"git.rebaseConfirmTitle":`Rebase del branch?`,"git.rebaseConfirmMessage":`Rebase su {branch}. Potrebbero verificarsi conflitti.`,"git.rebaseSuccess":`Rebase completato`,"git.rebaseFailed":`Rebase fallito`,"git.merge":`Merge`,"git.fetch":`Fetch`,"git.fetchSuccess":`Repository aggiornato`,"git.fetchFailed":`Fetch non riuscito: {error}`,"git.mergeConfirmTitle":`Fondere il branch?`,"git.mergeConfirmMessage":`Fonde {branch} in questo branch. Possibili conflitti.`,"git.mergeSuccess":`Merge completato`,"git.mergeFailed":`Merge fallito`,"git.commitFailed":`Commit fallito`,"git.commitChanges":`Esegui commit delle modifiche`,"git.commitDialogTitle":`Esegui commit delle modifiche non salvate`,"git.commitDialogDescription":`Inserisci il tuo messaggio o chiedi all’agente di esaminare e creare il commit.`,"git.commitMessage":`Messaggio di commit`,"git.commitManual":`Esegui commit`,"git.commitWithAgent":`Chiedi all’agente`,"git.commitAgentSuccess":`Richiesta di commit inviata all’agente`,"git.discardFailed":`Scarto fallito`,"git.conflictTitleMerge":`Conflitti di merge rilevati`,"git.conflictTitleRebase":`Conflitti di rebase rilevati`,"git.operationPausedTitle":`Operazione Git da continuare`,"git.operationPausedSubtitle":`Nessun file è in conflitto. Git attende solo che tu continui l’operazione.`,"git.conflictSubtitle":`{count} file con conflitti. Scegli come continuare.`,"git.conflictAbortConfirmTitle":`Annullare la risoluzione del conflitto?`,"git.conflictAbortConfirmMessage":`Tutto ciò che hai risolto in questo {op} viene scartato e il worktree torna allo stato precedente. È irreversibile.`,"git.conflictAbort":`Annulla`,"git.conflictContinue":`Continua`,"git.conflictContinued":`Operazione Git continuata`,"git.conflictResolveWithAgent":`Chiedi all'agente di risolvere`,"git.conflictAborted":`Operazione annullata`,"git.conflictHandoffSuccess":`L'agente sta risolvendo i conflitti`,"git.dirtyTitleRebase":`Modifiche non committate bloccano il rebase`,"git.dirtyTitleMerge":`Modifiche non committate bloccano il merge`,"git.dirtyTitlePull":`Modifiche non committate bloccano il pull`,"git.dirtySubtitle":`{modified} modificato/i, {staged} in stage, {untracked} non tracciato/i. Scegli come procedere.`,"git.dirtyStash":`Stash e riprova`,"git.dirtyCommit":`Commit prima`,"git.dirtyCommitPlaceholder":`Messaggio di commit`,"git.dirtyCommitConfirm":`Commit e riprova`,"git.dirtyDiscard":`Scarta le modifiche`,"git.dirtyDiscardConfirmTitle":`Scartare tutte le modifiche non committate?`,"git.dirtyDiscardConfirmMessage":`Le modifiche tracciate andranno perse (git reset --hard). I file non tracciati vengono mantenuti. Azione irreversibile.`,"git.pushConfirmTitle":`Push del branch?`,"git.pushConfirmMessage":`Push di {branch} al remoto.`,"git.pushConfirmMessagePrefix":`Push del branch`,"git.pushConfirmMessageSuffix":`al remoto.`,"git.changePrBaseTitle":`Cambiare branch base`,"git.changePrBaseMessage":`Inserire il nuovo branch destinazione per la {request}.`,"git.changePrBaseSuccess":`Branch base della {request} aggiornato`,"git.changePrBaseFailed":`Impossibile cambiare il branch base della {request}`,"git.mergeRequest":`Unisci {request}`,"git.mergeRequestConfirmTitle":`Unire {request}?`,"git.mergeRequestConfirmMessage":`Questa azione unisce la {request} aperta nel suo branch di destinazione.`,"git.mergeRequestSuccess":`{request} unita`,"git.mergeRequestFailed":`Impossibile unire {request}`,"git.deleteRemoteBranch":`Elimina branch remoto`,"git.deleteRemoteBranchTitle":`Eliminare il branch remoto?`,"git.deleteRemoteBranchMessage":`La richiesta è stata unita. Eliminare il branch remoto {branch}?`,"git.deleteRemoteBranchSuccess":`Branch remoto {branch} eliminato`,"git.deleteRemoteBranchFailed":`Impossibile eliminare il branch remoto`,"git.changeSourceBranch":`Cambia il branch di origine`,"git.changeSourceBranchTitle":`Cambia il branch di origine`,"git.changeSourceBranchMessage":`Scegli il nuovo branch di origine. Il branch di lavoro verrà ricostruito sopra di esso.`,"git.changeSourceBranchDone":`Branch di origine cambiato in {branch}`,"git.changeSourceBranchAligned":`Branch di origine cambiato in {branch} (il branch non aveva commit propri)`,"git.changeSourceBranchTooMany":`Il branch ha troppi commit propri ({n}) — esegui il rebase manualmente`,"git.changeSourceBranchDirty":`Esegui commit o stash delle modifiche prima di cambiare il branch di origine`,"git.changeSourceBranchAgentRunning":`Ferma l'agente prima di cambiare il branch di origine`,"git.changeSourceBranchErrorTitle":`Cambio branch di origine fallito`,"git.changeSourceBranchErrorOngoing":`Un'operazione {op} è ancora in corso sul worktree. Annullala per tornare a uno stato pulito.`,"git.changeSourceBranchErrorAbort":`Annulla l'operazione`,"git.changeSourceBranchLoading":`Cambio del branch di origine…`,"git.changeSourceForcePushTitle":`Eseguire il force-push del branch riscritto?`,"git.changeSourceForcePushMessage":`La cronologia del branch è stata riscritta. Eseguire il push al remoto con --force-with-lease?`,"git.changeSourceForcePushDone":`Force-push del branch eseguito`,"git.openEditor":`Apri nell'editor`,"git.openEditorFailed":`Impossibile aprire l'editor`,"git.branchPushed":`Branch pushato`,"git.pushFirst":`Il branch non è sul remoto. Fai Push prima.`,"git.unpushedCommits":`I commit locali non sono pushati. Fai Push prima.`,"git.from":`da`,"git.aheadBehindTooltip":`{ahead} commits avanti, {behind} indietro rispetto a {source}`,"git.divergence.title":`Divergenza del branch`,"git.divergence.subtitle":`vs {source}`,"git.divergence.ahead":`↑ {count} avanti`,"git.divergence.behind":`↓ {count} indietro`,"git.divergence.empty.ahead":`Nessun commit avanti.`,"git.divergence.empty.behind":`Nessun commit indietro.`,"git.divergence.close":`Chiudi`,"git.divergence.loading":`Caricamento commit…`,"git.divergence.failed":`Impossibile caricare la divergenza`,"git.divergence.retry":`Riprova`,"git.prCreated":`{request} #{n} creata`,"git.pr.author":`Autore`,"git.pr.reviewers":`Revisori`,"git.pr.assignees":`Assegnati`,"git.pr.labels":`Etichette`,"git.pr.changesRequestedBadge":`Modifiche richieste`,"git.pr.approvedBadge":`Approvata`,"git.pr.ci.passed":`CI OK`,"git.pr.ci.failed":`CI fallita`,"git.pr.ci.pending":`CI in corso`,"git.pr.ci.failedCount":`{n} falliti`,"git.pr.ci.pendingCount":`{n} in corso`,"git.pr.ci.passedCount":`{n} OK`,"git.pr.ci.skippedCount":`{n} saltati`,"git.pr.ci.showPassed":`Mostra {n} job riusciti`,"git.pr.ci.hidePassed":`Nascondi i job riusciti`,"toast.prChangesRequested":`Sono state richieste modifiche per la PR #{n}`,"toast.prApproved":`La PR #{n} è stata approvata`,"toast.prReadyToMerge":`La PR #{n} è pronta per il merge`,"toast.prCiFailed":`La CI della PR #{n} non è riuscita`,"toast.prCiRecovered":`La CI della PR #{n} è stata ripristinata`,"toast.prMergeConflict":`La PR #{n} ha conflitti di merge`,"toast.prMerged":`La PR #{n} è stata unita`,"devServer.title":`Server di sviluppo`,"devServer.noWorkspace":`Nessun workspace selezionato`,"devServer.notConfigured":`Non configurato —`,"devServer.goToSettings":`Impostazioni`,"devServer.logs":`Log`,"devServer.running":`In esecuzione`,"devServer.starting":`Avvio in corso`,"devServer.stopping":`Arresto in corso`,"devServer.error":`Errore`,"devServer.stopped":`Arrestato`,"devServer.unknown":`Sconosciuto`,"devServer.containers":`{count} container | {count} container`,"devServer.logDialog.title":`Log del server di sviluppo`,"devServer.logDialog.empty":`Nessun log disponibile`,"notion.title":`Notion`,"tasks.title":`Attività`,"notion.addTask":`Aggiungi task`,"notion.noUrl":`Nessun URL Notion`,"notion.subtasks":`{done}/{total} sottotask`,"notion.noTasks":`Nessun task`,"notion.newTask":`Nuovo task... (Invio per aggiungere, Esc per annullare)`,"acceptance.title":`Criteri di accettazione`,"acceptance.addCriterion":`Aggiungi criterio`,"acceptance.newCriterion":`Nuovo criterio... (Invio per aggiungere, Esc per annullare)`,"acceptance.empty":`Nessun criterio di accettazione`,"tasks.askProgress":`Chiedere all'agente di verificare il progresso`,"agentTodos.title":`Todo dell'agente`,"agentTodos.empty":`Nessun todo dell'agente`,"subagents.title":`Sub-agenti`,"subagents.empty":`Nessuna attività dei sub-agenti ancora`,"subagents.tools":`{count} strumenti`,"subagents.running":`In esecuzione: `,"subagents.status.running":`In esecuzione`,"subagents.status.done":`Completato`,"subagents.status.failed":`Non riuscito`,"subagents.status.stopped":`Interrotto`,"subagents.ambient":`Monitoraggio in background`,"subagents.ambientTooltip":`Monitoraggio in background (es. Monitor): non conteggiato come attività dell'agente`,"subagents.stop":`Arresta questo sub-agente`,"subagents.stopAll":`Arresta tutti`,"subagents.stopFailed":`Impossibile arrestare il sub-agente: {error}`,"subagents.activity":`Attività del sotto-agente`,"subagents.noActivity":`Nessuna attività del provider visibile al momento`,"chat.subagentActivity":`Attività del sottoagente`,"chat.openSubagentActivity":`Apri questo sottoagente nel pannello laterale`,"stats.resetsAt":`Reset {value}`,"stats.usageBucket":`Bucket utilizzo {n}`,"quotaFooter.lastUpdated":`Ultimo aggiornamento: {time}`,"quotaFooter.empty":`Caricamento…`,"quotaFooter.popover.title":`Utilizzo Claude Code`,"quotaFooter.popover.refreshNow":`Aggiorna`,"quotaFooter.popover.resetsIn":`Reset alle {value}`,"quotaFooter.popover.unauthenticated":`Auth richiesta`,"quotaFooter.popover.unauthenticatedHint":`Esegui "claude" una volta per autenticarti.`,"quotaFooter.popover.error":`Errore`,"quotaFooter.bucket.fiveHour":`5 ore`,"quotaFooter.bucket.sevenDay":`7 giorni`,"agent.error.spawn_failed":`Impossibile avviare l'agente`,"agent.error.parse_error":`Impossibile analizzare un messaggio dell'agente`,"agent.error.rate_limit":`Limite di frequenza raggiunto`,"agent.error.resume_failed":`Sessione non trovata — avvio di una nuova sessione`,"agent.error.other":`Errore dell'agente`,"quotaBackoff.banner.title":`Ripresa automatica alle {time}`,"quotaBackoff.banner.transientTitle":`Ripresa automatica dopo l’interruzione alle {time}`,"quotaBackoff.resumeNow":`Riprendi ora`,"quotaBackoff.banner.tooltip":`Quota Claude esaurita. L'auto-loop riprenderà automaticamente quando la quota si reimposta alle {resets_at}.`,"quotaBackoff.banner.cancel":`Annulla ripresa`,"quotaBackoff.cancelled":`Ripresa automatica annullata — puoi riprendere manualmente in qualsiasi momento`,"rateLimitType.fiveHour":`Sessione 5h`,"rateLimitType.sevenDay":`Settimanale`,"tooltip.addTask":`Aggiungi task`,"tooltip.removeTask":`Rimuovi task`,"tooltip.addCriterion":`Aggiungi criterio`,"tooltip.removeCriterion":`Rimuovi criterio`,"tooltip.startDevServer":`Avvia server di sviluppo`,"tooltip.stopDevServer":`Arresta server di sviluppo`,"tooltip.closeDiffViewer":`Chiudi diff`,"tooltip.refreshLogs":`Aggiorna log`,"tooltip.closeDialog":`Chiudi`,"tooltip.refreshGitStats":`Aggiorna statistiche Git`,"tooltip.removeImage":`Rimuovi immagine`,"tooltip.sendMessage":`Invia messaggio`,"tools.title":`Strumenti`,"tools.runSetupScript":`Rieseguire script di setup`,"tools.runSetupScriptTooltip":`Eseguire lo script di setup del progetto nel worktree`,"tools.runSetupScriptConfirm":`Rieseguire lo script di setup in questo workspace? Gli artefatti esistenti potrebbero essere sovrascritti.`,"tools.runSetupScriptBusy":`Impossibile rieseguire il setup mentre l'agent sta lavorando.`,"tools.noSetupScript":`Nessun script di setup configurato —`,"tools.setupScriptSuccess":`Script di setup completato con successo.`,"tools.setupScriptFailed":`Script di setup fallito.`,"tools.openNotion":`Apri in Notion`,"tools.openSentry":`Apri in Sentry`,"tools.review":`Revisiona modifiche`,"tools.reviewTooltip":`Chiedi all'agente di rivedere le modifiche di questo branch`,"tools.reviewBusy":`Agente occupato — attendi che sia libero`,"tools.fixCi":`Ripara CI`,"tools.fixCiTooltip":`Chiedi all'agente di diagnosticare e correggere i job di CI in errore`,"tools.fixCiLaunched":`Azione «Ripara CI» inviata all'agente`,"tools.fixCiFailed":`Impossibile avviare l'azione «Ripara CI»`,"tools.openFileManager":`Apri nel file manager`,"tools.openFileManagerTooltip":`Apri la cartella del worktree nel tuo file manager configurato`,"tools.openFileManagerFailed":`Impossibile aprire il file manager`,"tools.openTerminal":`Apri nel terminale`,"tools.openTerminalTooltip":`Apri il worktree nel terminale configurato`,"tools.openTerminalFailed":`Impossibile aprire il terminale`,"review.title":`Avvia revisione`,"review.subtitle":`Chiedi all'agente di rivedere le modifiche e dare un feedback.`,"review.additionalInstructions":`Istruzioni aggiuntive (opzionale)`,"review.additionalInstructionsPlaceholder":`Aggiungi istruzioni specifiche per la revisione…`,"review.newSession":`Nuova sessione`,"review.newSessionHint":`Avvia una nuova sessione invece di continuare quella attuale.`,"review.newSessionRequired":`Impostazioni diverse o il ritorno automatico richiedono una nuova sessione.`,"review.returnToSession":`Torna alla sessione attuale dopo la review`,"review.returnToSessionHint":`Riprende questa sessione con il riepilogo finale del reviewer. Se disattivato, la conversazione continua nella sessione di review.`,"review.readOnlyForced":`Una review che torna a questa sessione viene eseguita in sola lettura (Plan): non può modificare file né porre domande.`,"review.returnUnavailable":`La sessione attuale deve essere stata avviata per poter essere ripresa.`,"review.start":`Avvia revisione`,"review.cancel":`Annulla`,"review.launched":`Revisione avviata`,"review.failed":`Impossibile avviare la revisione`,"diff.title":`Diff`,"diff.side":`Affiancato`,"diff.inline":`In linea`,"diff.hideUnchanged":`Nascondi codice invariato`,"diff.showUnchanged":`Mostra codice invariato`,"diff.showUntracked":`Mostra file non tracciati`,"diff.hideUntracked":`Nascondi file non tracciati`,"diff.rollbackToRemote":`Ripristina alla versione remota`,"diff.rollbackConfirm":`Ripristinare {path} alla sua versione remota (origin)? Le modifiche locali a questo file andranno perse.`,"diff.rollbackConfirmOk":`Ripristina`,"diff.rollbackDone":`File ripristinato alla versione remota`,"diff.rollbackDoneRemote":`File ripristinato alla versione remota`,"diff.rollbackDoneHead":`Modifiche locali annullate (file ripristinato all'ultimo commit)`,"diff.rollbackDoneDeleted":`File non tracciato eliminato`,"diff.deleteUntracked":`Elimina file non tracciato`,"diff.deleteUntrackedConfirm":`Eliminare definitivamente {path}? Questo file non è tracciato da git — il suo contenuto andrà perso.`,"diff.deleteUntrackedConfirmOk":`Elimina`,"diff.rollbackFailed":`Rollback fallito`,"diff.rollbackFailedDetail":`Rollback non riuscito: {error}`,"diff.modeInspect":`Modifica`,"diff.modeReview":`Review`,"diff.addComment":`Aggiungi commento`,"diff.replyComment":`Rispondi`,"diff.editComment":`Modifica`,"diff.deleteComment":`Elimina`,"diff.deleteCommentConfirm":`Eliminare questo commento?`,"diff.commentPlaceholder":`Scrivi un commento di revisione… (Markdown supportato)`,"diff.reviewDraft":`Bozza di revisione`,"diff.reviewEmpty":`Nessun commento — passa sopra una riga del diff e clicca + per aggiungerne uno.`,"diff.reviewGlobalPlaceholder":`Messaggio generale di revisione (opzionale)`,"diff.submitReview":`Invia revisione ({n})`,"diff.reviewPending":`Una revisione è già in fase di invio.`,"diff.reviewEmptySubmission":`La revisione è vuota.`,"diff.reviewNotAccepted":`Il messaggio non è stato accettato. La revisione è stata conservata.`,"diff.reviewSubmitted":`Revisione inviata all'agente`,"diff.reviewSubmitFailed":`Invio della revisione fallito: {error}`,"diff.scopeBranch":`Branch`,"diff.scopeUnpushed":`Non pushato`,"diff.noChanges":`Nessuna modifica`,"diff.searchFiles":`Cerca file…`,"diff.noFileMatch":`Nessun file corrispondente`,"diff.selectFile":`Seleziona un file per visualizzare il diff`,"diff.fileLoadFailed":`Impossibile caricare questo diff`,"diff.fileLoadFailedHint":`Il file su disco è intatto — è fallito solo il caricamento del diff.`,"diff.fileListLoadFailed":`Impossibile caricare l’elenco dei file`,"diff.fileListLoadFailedHint":`È una richiesta fallita, non un branch senza modifiche.`,"diff.addToChat":`Aggiungi alla chat`,"diff.compareTitle":`Confronta commit`,"diff.compareFrom":`Da`,"diff.compareTo":`A`,"diff.compareSubmit":`Confronta`,"diff.compareSourceBase":`{branch} (base del branch)`,"diff.commitsReadOnly":`sola lettura`,"diffViewer.save":`Salva`,"diffViewer.savedAt":`Salvato`,"diffViewer.saveFailed":`Salvataggio non riuscito`,"diffViewer.saveFailedDetail":`Salvataggio non riuscito: {error}`,"diffViewer.unsavedChanges.title":`Modifiche non salvate`,"diffViewer.unsavedChanges.message":`Hai modifiche non salvate. Cosa vuoi fare?`,"diffViewer.unsavedChanges.save":`Salva`,"diffViewer.unsavedChanges.cancel":`Annulla`,"diffViewer.conflict.title":`File modificato su disco`,"diffViewer.conflict.message":`Il file è stato modificato fuori da Kōbō da quando lo hai aperto.`,"diffViewer.conflict.reload":`Ricarica (scarta locali)`,"diffViewer.conflict.keep":`Mantieni le mie`,"diffViewer.conflict.overwrite":`Sovrascrivi comunque`,"diffViewer.conflict.overwriteHint":`Sostituisce il file sul disco con la tua versione. L’altra modifica va persa.`,"diffViewer.conflict.keepHint":`Mantiene le tue modifiche nell’editor e adotta la nuova firma del disco, così il prossimo salvataggio funziona.`,"diffViewer.saveBlocked":`L’agente è in esecuzione — fermalo per salvare le tue modifiche.`,"diffViewer.unsavedBanner":`Modifiche non salvate. Ferma l’agente per salvarle.`,"diffViewer.closeConfirm.title":`Modifiche non salvate`,"diffViewer.closeConfirm.message":`Questo file contiene modifiche mai salvate. Chiudere il visualizzatore di diff le scarta.`,"diffViewer.closeConfirm.discard":`Chiudi senza salvare`,"diffViewer.criteriaRail":`Checklist di revisione`,"diffViewer.criteriaRailShow":`Mostra la checklist di revisione`,"diffViewer.criteriaRailHide":`Nascondi la checklist di revisione`,"diffViewer.fileTreeShow":`Mostra l’albero dei file`,"diffViewer.fileTreeHide":`Nascondi l’albero dei file`,"diffViewer.closeConfirm.saveAndClose":`Salva e chiudi`,"diffViewer.agentRunning":`L’agente è in esecuzione — fermalo per modificare`,"diffViewer.fileDeleted":`File eliminato`,"notification.agentFinished":`{name} — Agente terminato`,"notification.agentQuestion":`{name} — L'agente sta facendo una domanda`,"notification.awaitingReminder":`{name} - ti sta ancora aspettando ({minutes} min)`,"notification.agentPermissionRequest":`{name} — L'agente richiede un permesso`,"notification.autoLoopCompleted":`{name} — Auto-loop completato`,"notification.autoLoopWaitingForSlot":`{name} - L'auto-loop attende uno slot agente libero ({running}/{limit} in corso)`,"notification.autoLoopStalled":`{name} — Auto-loop bloccato (nessun progresso)`,"notification.autoLoopError":`{name} — Auto-loop fermato per errore`,"notification.autoLoopAwaitingClarification":`{name} — Auto-loop in pausa, in attesa del tuo chiarimento`,"notification.autoLoopPermissionOverridden":`{name} — Auto-loop ha forzato la modalità plan a bypass`,"notification.agentError":`{name} — Errore agente`,"contextMenu.rename":`Rinomina`,"contextMenu.editDescription":`Modifica descrizione`,"contextMenu.copyPath":`Copia percorso worktree`,"contextMenu.copyWorkspaceId":`Copia ID del workspace`,"contextMenu.openEditor":`Apri nell'editor`,"contextMenu.openFileManager":`Apri nel file manager`,"contextMenu.unarchiveDisabledPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"workspaceList.unarchiveBlockedPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"contextMenu.purgeWorktree":`Libera spazio su disco (elimina worktree)`,"contextMenu.purgeWorktreeTooltip":`Elimina il worktree dal disco per recuperare spazio — la cronologia di chat e sessioni viene conservata. Archivia automaticamente il workspace.`,"contextMenu.purgeWorktreeDialogTitle":`Liberare spazio su disco?`,"contextMenu.purgeWorktreeDialogMessage":`La cartella worktree di «{name}» verrà eliminata dal disco. La cronologia di chat e sessioni viene conservata. Il workspace verrà archiviato automaticamente. Nella versione attuale non è possibile annullare.`,"contextMenu.purgeWorktreeDialogConfirm":`Elimina il worktree`,"contextMenu.purgeWorktreeSuccess":`Worktree eliminato — spazio su disco recuperato.`,"settings.autoPurgeOnPrMerged":`Elimina worktree al merge della PR`,"settings.autoPurgeOnPrMergedHint":`Se abilitato, il worktree viene eliminato dal disco non appena la PR viene mergiata (oltre all'archiviazione automatica). La cronologia delle chat viene conservata.`,"settings.autoLoopMaxRetries":`Numero massimo di tentativi automatici`,"settings.awaitingUserReminder":`Promemoria di domanda senza risposta`,"settings.awaitingUserReminderHint":`Minuti in cui un workspace può attendere la tua risposta prima che Kōbō te lo ricordi, poi a ogni intervallo successivo. 0 disattiva.`,"settings.localeLoadFailed":`Impossibile caricare questa lingua; resta attiva quella corrente.`,"settings.autoLoopMaxRetriesHint":`Mette in pausa la missione dopo questo numero di errori temporanei del motore o del server. Le quote attendono il ripristino senza consumare questo limite.`,"settings.retentionTitle":`Conservazione della cronologia delle conversazioni (disattivata di default)`,"settings.retentionWarning":`Attivare questa opzione elimina definitivamente dal database la cronologia delle conversazioni degli agenti, a partire da tutto ciò che è già più vecchio della finestra. Gli eventi eliminati non sono recuperabili.`,"settings.retentionHint":`Viene eseguita una volta all'avvio del server. Workspace, attività, sessioni, branch e worktree non vengono mai toccati — solo l'output registrato degli agenti.`,"settings.retentionDaysLabel":`Elimina gli eventi più vecchi di (giorni)`,"settings.retentionDaysHint":`0 — il valore predefinito — conserva tutti gli eventi per sempre. Indica un valore per attivare la conservazione.`,"settings.retentionKeepLabel":`Eventi sempre conservati per workspace`,"settings.retentionKeepHint":`Gli eventi più recenti di ogni workspace sopravvivono a prescindere dalla loro età, così un workspace vecchio ma ancora aperto mantiene una cronologia leggibile. Consigliato: 5000.`,"settings.retentionDisabledHint":`Conservazione disattivata: non verrà mai eliminato nulla.`,"settings.retentionConfirmTitle":`Eliminare definitivamente la cronologia delle conversazioni?`,"settings.retentionConfirmMessage":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, {count} dei {total} eventi degli agenti registrati — compreso tutto ciò che è già più vecchio. L'operazione è irreversibile. Continuare?`,"settings.retentionConfirmMessageUnknown":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, tutti gli eventi degli agenti più vecchi — compreso tutto ciò che è già accumulato. Non è stato possibile calcolare il volume esatto. L'operazione è irreversibile. Continuare?`,"settings.purgeDocsTitle":`Come funziona la pulizia — ripristino e permessi`,"settings.purgeDocsRestoreTitle":`Ripristinare un worktree eliminato (rilevamento automatico)`,"settings.purgeDocsRestoreIntro":`Un workspace eliminato conserva la cronologia chat e i metadati della PR, ma la cartella worktree non c'è più. Ricreala manualmente con uno di questi comandi — Kōbō rileva la riapparizione della cartella entro 30 secondi e riattiva automaticamente il workspace (rimuove dall'archivio + cancella il flag di eliminazione):`,"settings.purgeDocsRestoreCommands":`# GitHub (con CLI gh):
|
|
11
|
+
# il tuo script — usa $KOBO_NEW_BASE / $KOBO_OLD_BASE / $KOBO_WORKING_BRANCH …`,"settings.changeSourceBranchScript.resetDefault":`Ripristina il predefinito Kōbō`,"settings.changeSourceBranchScript.replaceConfirmTitle":`Ripristinare lo script?`,"settings.changeSourceBranchScript.replaceConfirm":`Le tue modifiche verranno sostituite dallo script predefinito di Kōbō. Continuare?`,"settings.cleanupScriptHint":`Script di shell eseguito nel worktree dopo ogni sessione dell'agente. In modalità auto-loop viene eseguito solo quando tutte le attività sono completate. Lascia vuoto per disattivare.`,"settings.cleanupScriptPlaceholder":`es. eliminare file temporanei, fermare container…`,"settings.cleanupScriptMode":`Quando eseguire`,"settings.cleanupScriptMode.idle":`Dopo ogni sessione — anche se restano attività`,"settings.cleanupScriptMode.noTasks":`Solo quando non resta nessuna attività Kōbō`,"settings.cleanupScriptOnlyOnChanges":`Eseguire solo se file sono stati modificati, aggiunti o eliminati`,"settings.cleanupScriptMode.inherit":`Eredita l'impostazione globale`,"settings.taskPromptTemplate":`Prompt di attività`,"settings.taskPromptTemplatePlaceholder":`Prompt inserito automaticamente nella descrizione dell'attività…`,"settings.taskPromptTemplateHint":`Iniettato automaticamente nella descrizione dell'attività nella pagina di creazione quando questo progetto è selezionato. Se non viene modificato, viene sostituito al cambio di progetto; appena lo modifichi, il tuo testo viene mantenuto.`,"settings.setupScriptPlaceholder":`npm install`,"settings.setupScriptHint":`Eseguito con bash nel worktree dopo la creazione, prima dell'avvio dell'agente. Nessun shebang necessario. In caso di errore, il workspace viene impostato su errore. Timeout: 5 minuti.`,"settings.e2e.title":`Test E2E`,"settings.e2e.framework":`Framework`,"settings.e2e.frameworkNone":`Nessuno`,"settings.e2e.frameworkOther":`Altro`,"settings.e2e.skill":`Skill (opzionale)`,"settings.e2e.skillPlaceholder":`es. cypress-tester`,"settings.e2e.prompt":`Linee guida personalizzate (opzionale)`,"settings.e2e.promptPlaceholder":`es. usare il pattern page-object, mirare a data-testid`,"settings.e2e.helpText":`Quando configurato, l'agente di grooming auto-loop inserisce sotto-task E2E per funzionalità UI.`,"settings.finalization.title":`Finalizzazione dell'auto-loop`,"settings.finalization.helpText":`Opzionale: un prompt che l'agente esegue come ultima iterazione dell'auto-loop. Tipicamente usato per controlli di qualità finali (lint, typecheck, test). La fase di grooming creerà un task con prefisso [FINAL] che userà questo prompt.`,"settings.finalization.prompt":`Prompt di finalizzazione`,"settings.finalization.promptPlaceholder":`es. Esegui npm run lint e npm test, poi marca questo task come fatto.`,"settings.editorCommand":`Comando editor`,"settings.editorCommandPlaceholder":`code, phpstorm, subl, vim...`,"settings.editorCommandHint":`Comando per aprire il worktree nel proprio editor. Il percorso del worktree viene passato come argomento.`,"settings.fileManagerCommand":`Comando file manager`,"settings.fileManagerCommandPlaceholder":`xdg-open, open, nautilus, dolphin, explorer...`,"settings.fileManagerCommandHint":`Comando per aprire il worktree nel proprio file manager. Il percorso del worktree viene passato come argomento. Lascia vuoto per nascondere il pulsante.`,"settings.terminalCommand":`Comando del terminale`,"settings.terminalCommandHint":`Comando per avviare il terminale nel worktree. Segnaposto {path} opzionale per la directory.`,"settings.terminalCommandPlaceholder":`kitty · alacritty · gnome-terminal --working-directory={path}`,"settings.mcpSelection":`Selezione MCP Claude`,"settings.mcpAutoSelect":`Auto (primo MCP attivo corrispondente)`,"settings.notionMcp":`Chiave MCP Notion`,"settings.sentryMcp":`Chiave MCP Sentry`,"settings.mcpSelectionHint":`Le voci attive vengono lette da ~/.claude.json. Lascia Auto per usare il comportamento predefinito.`,"settings.configuredProjects":`Progetti configurati`,"settings.noProjects":`Nessun progetto configurato`,"settings.addProject":`Aggiungi progetto`,"settings.copyFrom":`Copia impostazioni da`,"settings.copyFromPlaceholder":`(nessuno — parti dai valori predefiniti)`,"settings.copyFromHint":`Copia tutte le impostazioni tranne path, nome e branch sorgente.`,"settings.copyFromConfirmTitle":`Sovrascrivere i valori attuali?`,"settings.copyFromConfirm":`Sovrascriverà i valori del modulo con le impostazioni di "{project}". Continuare?`,"settings.newProject":`Nuovo progetto`,"settings.editProject":`Modifica progetto`,"help.title":`Aiuto`,"help.tours":`Tour guidati`,"help.steps":`{n} passaggio | {n} passaggi`,"help.markAllSeen":`Segna tutti come visti`,"help.markAllSeenHint":`Segna i tour attuali come visti senza avviarli.`,"help.resetAll":`Reimposta tutti i tour`,"help.resetAllHint":`Avvia ora il tour iniziale; ogni schermata ripeterà il proprio alla prossima apertura.`,"help.status.unseen":`non visto`,"help.status.partial":`in parte`,"help.status.seen":`visto`,"help.replayThis":`Ripeti il tour di questa schermata`,"tours.next":`Avanti`,"tours.prev":`Indietro`,"tours.done":`Fine`,"tours.exitConfirm":`Uscire dal tour guidato? Non ripartirà da solo; puoi ripeterlo in qualsiasi momento dal menu Aiuto.`,"tours.home.title":`Orientarsi`,"tours.home.list.title":`Workspace`,"tours.home.list.description":`Ogni missione vive qui con il suo stato. I badge segnalano una CI fallita, una review che chiede modifiche o una PR pronta al merge. Trascina il bordo interno di un pannello laterale con il mouse o il dito per ridimensionarlo. I pulsanti in alto vanno su più righe quando lo spazio è limitato.`,"tours.home.create.title":`Creare un workspace`,"tours.home.create.description":`Un workspace è un worktree Git, un branch e una sessione di agente per un compito.`,"tours.home.search.title":`Ricerca`,"tours.home.search.description":`Filtra l'elenco per nome. L'icona di ricerca in alto apre la ricerca full-text nelle conversazioni degli agenti.`,"tours.home.dashboard.title":`Cruscotto`,"tours.home.dashboard.description":`Una tabella con tutti i workspace attivi: stato, attenzione, PR, diff, attività e affidabilità dei motori.`,"tours.home.health.title":`Stato e changelog`,"tours.home.health.description":`Controlla database, runtime e agenti attivi. Il pulsante accanto elenca cosa è cambiato in ogni versione.`,"tours.home.settings.title":`Impostazioni`,"tours.home.settings.description":`Motori, integrazioni, automazione, worktree e progetti. Ora crea il tuo primo workspace.`,"tours.create.title":`Creare un workspace`,"tours.create.project.title":`Progetto e branch`,"tours.create.project.description":`Scegli il progetto e il branch da cui parte il worktree.`,"tours.create.mission.title":`Missione`,"tours.create.mission.description":`Descrivi il compito, o importalo da una pagina Notion o da una issue Sentry.`,"tours.create.template.title":`Template`,"tours.create.template.description":`Applica un preset salvato, o salva questo modulo come preset. «Duplica» su una scheda workspace apre questo modulo precompilato.`,"tours.create.engine.title":`Motore e modello`,"tours.create.engine.description":`Claude Code o Codex, il modello, lo sforzo di ragionamento e cosa l'agente può fare senza chiedere.`,"tours.create.brainstorm.title":`Brainstorm su un altro modello`,"tours.create.brainstorm.description":`Esegui la prima sessione di brainstorming su un altro modello, poi torna a quello principale per le iterazioni.`,"tours.create.autoloop.title":`Auto-loop`,"tours.create.autoloop.description":`L’agente completa le attività e le verifiche finali. Una review finale indipendente facoltativa si ripete dopo le correzioni finché non restano finding; se il lavoro non avanza, il ciclo si sospende.`,"tours.create.finalReview.title":`Configurare la review finale`,"tours.create.finalReview.description":`Scegli in anticipo motore, modello, impegno di ragionamento e istruzioni del reviewer. La review usa una sessione separata in sola lettura; l’agente originale corregge i finding e la review si ripete finché non ne resta nessuno.`,"tours.workspace.finalReview.title":`Review finale e correzioni`,"tours.workspace.finalReview.description":`Configura qui il reviewer finale facoltativo prima dell’avvio. Dopo le attività e le verifiche finali, una sessione separata esamina il lavoro. I finding tornano alla sessione originale per le correzioni automatiche e una nuova review. Chiudere Kōbō conserva il ciclo.`,"tours.workspace.reviewReturn.title":`Ritorno dalla review`,"tours.workspace.reviewReturn.description":`Il riepilogo torna alla sessione originale anche dopo il riavvio di Kōbō. Se la consegna è incerta, controlla quella conversazione prima di Riprovare; Annulla abbandona il ritorno. Le review manuali attendono istruzioni prima di correggere; auto-loop corregge automaticamente.`,"tours.create.comparison.title":`Confrontare due motori`,"tours.create.comparison.description":`Crea due workspace gemelli sullo stesso compito e confronta commit, compiti e attività.`,"tours.workspace.sessions.title":`Sessioni del workspace`,"tours.workspace.sessions.description":`Premi il titolo per scegliere, creare o rinominare una sessione, oppure copiarne l’identificativo.`,"tours.workspace.actions.title":`Azioni del workspace`,"tours.workspace.actions.description":`Il menu ⋯ raccoglie la vista affiancata, la palette dei comandi, il pannello laterale e la visita guidata.`,"tours.workspace.title":`Dentro un workspace`,"tours.workspace.chat.title":`Conversazione`,"tours.workspace.chat.description":`L'output dell'agente, in diretta: messaggi, chiamate agli strumenti, domande ed errori.`,"tours.workspace.input.title":`Parlare con l'agente`,"tours.workspace.input.description":`Invia un messaggio, usa gli slash command, detta a voce o allega file.`,"tours.workspace.selectors.title":`Impostazioni di sessione`,"tours.workspace.selectors.description":`Apri Configura per regolare modello, ragionamento, autorizzazioni e auto-loop. Qui è indicato anche il motore attuale.`,"tours.workspace.status.title":`Stato`,"tours.workspace.status.description":`Lo stato della sessione corrente; fermala qui quando serve.`,"tours.workspace.git.title":`Git`,"tours.workspace.git.description":`Commit, diff, push, rebase e la PR di questo branch.`,"tours.workspace.tasks.title":`Attività`,"tours.workspace.tasks.description":`Cosa l'agente prevede di fare, e i criteri di accettazione che deve rispettare.`,"tours.workspace.timeline.title":`Cronologia`,"tours.workspace.timeline.description":`Ogni sessione di questo workspace; aprine una precedente per rileggerla.`,"tours.workspace.subagents.title":`Sub-agenti`,"tours.workspace.subagents.description":`Segui i sub-agenti avviati dall'agente, con il loro progresso in tempo reale.`,"tours.workspace.documents.title":`Documenti`,"tours.workspace.documents.description":`Piani e file scritti dall'agente, consultabili senza lasciare la chat.`,"tours.workspace.schedule.title":`Pianificazione`,"tours.workspace.schedule.description":`Wake-up e cron che riavviano l'agente più tardi.`,"tours.workspace.memory.title":`Memoria del workspace`,"tours.workspace.memory.description":`Consulta la memoria inviata alla conversazione selezionata, le proposte in attesa e le operazioni del workspace. Cancellarla non modifica la cronologia del provider.`,"tours.workspace.handoff.title":`Continua con un contesto nuovo`,"tours.workspace.handoff.description":`Conversazione lunga? Avvia qui una nuova sessione o usa «Cambia LLM». Il lavoro corrente si interrompe immediatamente e la nuova sessione riprende automaticamente nello stesso workspace. Il riepilogo del passaggio di consegne è facoltativo: disattivalo se il LLM attuale ha esaurito la quota. Avanzamento, rapporto e collegamento alla sessione precedente appaiono sotto questo pulsante.`,"tours.workspace.terminal.title":`Terminale`,"tours.workspace.terminal.description":`Una shell dentro il worktree, senza lasciare Kōbō.`,"tours.gitPr.title":`Pull request`,"tours.gitPr.panel.title":`Stato della PR`,"tours.gitPr.panel.description":`Risultato della CI, decisione della review e reviewer, aggiornati ogni 30 secondi.`,"tours.gitPr.actions.title":`Azioni Git`,"tours.gitPr.actions.description":`Push, pull, rebase o cambio del branch di base. Durante un conflitto, un pulsante lascia che l'agente lo risolva.`,"tours.gitPr.attention.title":`Badge di attenzione`,"tours.gitPr.attention.description":`La scheda mostra una CI fallita, modifiche richieste o una PR pronta al merge.`,"tours.settings.title":`Impostazioni`,"tours.settings.engines.title":`Motori e modelli`,"tours.settings.engines.description":`Modelli, permessi predefiniti e limiti dei tentativi automatici.`,"tours.settings.integrations.title":`Integrazioni`,"tours.settings.integrations.description":`Connessioni Notion e Sentry e credenziali Bitbucket. GitHub e GitLab usano la sessione CLI locale.`,"tours.settings.automation.title":`Automazione`,"tours.settings.automation.description":`Script di setup e cleanup, lifecycle hook, template di prompt, template di workspace e skill.`,"tours.settings.worktrees.title":`Worktrees`,"tours.settings.memory.title":`Memoria`,"tours.settings.memory.description":`Scegli il comportamento manuale, automatico o ibrido, quindi esplora, controlla o svuota i dati esatti degli ambiti. Le operazioni sulla memoria sono immediate; la modalità si applica salvando le impostazioni.`,"tours.settings.worktrees.description":`Dove vivono i worktree, per quanto tempo conservare quelli già uniti, e la pulizia automatica.`,"tours.settings.projects.title":`Progetti`,"tours.settings.projects.description":`I progetti registrati e le loro impostazioni specifiche per progetto.`,"tours.settings.misc.title":`Generale, voce, notifiche, esportazione`,"tours.settings.misc.description":`Lingua, accesso alla rete, dettatura, suoni e notifiche del browser, e un export completo delle tue impostazioni.`,"tours.dashboard.title":`Cruscotto`,"tours.dashboard.overview.title":`Panoramica`,"tours.dashboard.overview.description":`Tutti i workspace attivi in una tabella; clicca su una riga per aprirla.`,"tours.dashboard.reliability.title":`Affidabilità dei motori`,"tours.dashboard.reliability.description":`Sessioni, errori e durate per motore e modello.`,"tours.health.title":`Stato`,"tours.health.checks.title":`Controlli`,"tours.health.checks.description":`Ambiente, database, runtime, workspace e sessioni.`,"tours.health.active.title":`Stato attivo`,"tours.health.active.description":`I back-off di quota, i wake-up in attesa e gli auto-loop in corso in questo momento.`,"tours.search.title":`Ricerca`,"tours.search.input.title":`Query`,"tours.search.input.description":`Corrisponde ai nomi dei workspace e alle conversazioni degli agenti.`,"tours.search.archived.title":`Archiviati`,"tours.search.archived.description":`Includi i workspace archiviati nei risultati.`,"tours.changelog.title":`Novità`,"tours.changelog.list.title":`Versioni`,"tours.changelog.list.description":`Cosa è cambiato in ogni versione, la più recente per prima.`,"settings.projectGroup.identity":`Identità`,"settings.projectGroup.defaults":`Valori predefiniti`,"settings.projectGroup.prompts":`Prompt`,"settings.projectGroup.scripts":`Script`,"settings.projectPath":`Percorso del progetto`,"settings.projectPathPlaceholder":`/percorso/del/progetto`,"settings.displayName":`Nome visualizzato`,"settings.displayNamePlaceholder":`Il mio progetto`,"settings.defaultSourceBranch":`Branch sorgente predefinito`,"settings.defaultModel.project":`Modello predefinito`,"settings.skipPermissions.project":`Salta le richieste di permesso`,"settings.prPromptTemplate.project":`Template del prompt PR`,"settings.prPromptPlaceholder.project":`Istruzioni specifiche del progetto per la creazione di PR...`,"settings.reviewPromptTemplate.project":`Template del prompt di revisione`,"settings.ciFixPromptTemplate.project":`Template del prompt «Ripara CI»`,"settings.gitConventions.project":`Convenzioni Git (per progetto)`,"settings.gitConventionsEmpty":`Lascia vuoto per usare le convenzioni globali.`,"settings.notionStatus":`Stato ticket Notion`,"settings.notionStatusProperty":`Nome della proprietà`,"settings.notionStatusPropertyPlaceholder":`État, Status...`,"settings.notionInProgressStatus":`Valore da impostare`,"settings.notionInProgressStatusPlaceholder":`In corso, In progress...`,"settings.notionStatusHint":`Quando un workspace viene creato con un ticket Notion, la proprietà specificata viene impostata a questo valore. Entrambi i campi sono obbligatori. Lasciare vuoto per disattivare.`,"settings.notionAssignee":`Assegnazione Notion`,"settings.notionAssigneeHint":`Quando un workspace viene creato con un ticket Notion, l'utente autenticato sull'MCP Notion viene aggiunto a questa proprietà People — solo se non ha già un assegnatario. Lasciare vuoto per disattivare.`,"settings.notionAssigneeProperty":`Nome della proprietà`,"settings.notionAssigneePropertyPlaceholder":`Sviluppatori, Assignees...`,"settings.notionUserId":`Il tuo UUID Notion`,"settings.notionUserIdPlaceholder":`135d872b-594c-8126-9604-00024ad6e5b5`,"settings.notionUserIdHint":`Seleziona il tuo account nella lista. Notion rifiuta l'assegnazione di bot nelle proprietà People — questo campo è obbligatorio per attivare l'auto-assegnazione.`,"settings.notionUsersRefresh":`Aggiorna`,"settings.notionUsersLoading":`Caricamento utenti Notion…`,"settings.notionUsersLoadFailed":`Impossibile caricare la lista: {error}`,"settings.notionUsersManualFallback":`Lista non disponibile — incolla il tuo UUID Notion manualmente.`,"settings.devServer":`Server di sviluppo`,"settings.devServerStart":`Script di avvio`,"settings.devServerStartPlaceholder":`npm run dev`,"settings.devServerStop":`Script di arresto`,"settings.devServerStopPlaceholder":`Opzionale — il processo verrà terminato automaticamente se vuoto`,"settings.selectProject":`Seleziona un progetto o aggiungine uno nuovo`,"settings.projectPathRequired":`Il percorso del progetto è obbligatorio.`,"settings.useGlobal":`Usa globale`,"settings.saved":`Impostazioni globali salvate.`,"settings.unsavedChanges":`Modifiche non salvate`,"settings.nav.general":`Generale`,"settings.nav.agents":`Agenti`,"settings.nav.skills":`Skills`,"settings.nav.prompts":`Prompt`,"settings.nav.scripts":`Script`,"settings.nav.workspaceTemplates":`Template di workspace`,"workspaceTemplates.title":`Template di workspace`,"workspaceTemplates.hint":`Preimpostazioni salvate del modulo di creazione. Scegline una nella pagina di creazione; per modificarla, caricala lì, regola e salvala di nuovo con lo stesso nome.`,"workspaceTemplates.empty":`Nessun template per ora. Compila il modulo di creazione e usa «Salva come template».`,"workspaceTemplates.anyProject":`Qualsiasi progetto`,"workspaceTemplates.rename":`Rinomina`,"workspaceTemplates.renameTitle":`Rinomina il template`,"workspaceTemplates.deleteConfirm":`Eliminare il template «{name}»?`,"workspaceTemplates.deleted":`Template «{name}» eliminato`,"settings.nav.notion":`Notion`,"settings.nav.forge":`Forge`,"settings.bitbucketCommunity":`Bitbucket Community`,"settings.bitbucketCommunityHint":`Le credenziali restano locali e sono usate solo da bkt.`,"settings.bitbucketUsername":`E-mail Atlassian`,"settings.bitbucketToken":`Token API Bitbucket`,"settings.nav.sentry":`Sentry`,"settings.nav.voice":`Voce`,"settings.nav.notifications":`Notifiche`,"settings.nav.worktrees":`Worktrees`,"settings.nav.export":`Esporta`,"settings.help.general":`Lingua, accesso alla rete e i valori predefiniti ereditati da ogni progetto.`,"settings.help.agents":`Modelli e permessi predefiniti, e limiti dei tentativi automatici.`,"settings.help.skills":`Quali suite di skill l'agente è invitato a usare.`,"settings.help.prompts":`Istruzioni dopo l’apertura di una PR/MR, per revisioni del codice, correzioni CI e finalizzazione.`,"settings.help.scripts":`Script di setup, pulizia e cambio del branch sorgente, più gli hook del ciclo di vita.`,"settings.help.notion":`Importa una pagina Notion come fonte di verità di un workspace.`,"settings.help.sentry":`Crea un workspace da una issue Sentry.`,"settings.help.forge":`Credenziali Bitbucket. GitHub e GitLab usano la CLI gh/glab autenticata; scegli la forge per progetto.`,"settings.help.voice":`Dettatura e push-to-talk.`,"settings.help.notifications":`Suoni, notifiche del browser e promemoria delle domande senza risposta.`,"settings.help.worktrees":`Dove vengono creati i worktree, conservazione ed eliminazione automatica.`,"settings.help.projects":`Progetti registrati e le loro impostazioni specifiche per progetto.`,"settings.help.templates":`Template di prompt espansi nella casella di input della chat.`,"settings.help.workspaceTemplates":`Preset salvati del modulo di creazione.`,"settings.help.export":`Esporta e importa tutte le impostazioni come JSON.`,"settings.openNav":`Apri la navigazione`,"settings.saveError":`Errore durante il salvataggio delle impostazioni.`,"settings.projectSaved":`Progetto salvato.`,"settings.projectSaveError":`Errore durante il salvataggio del progetto.`,"settings.projectDeleted":`Progetto eliminato.`,"settings.deleteProjectConfirmTitle":`Eliminare il progetto?`,"settings.deleteProjectConfirmMessage":`Rimuovere «{name}» dai tuoi progetti? Questo elimina solo le impostazioni Kōbō — il codice e i worktree restano intatti.`,"settings.projectDeleteError":`Errore durante l'eliminazione del progetto.`,"templates.title":`Template`,"templates.newTemplate":`Nuovo template`,"templates.editTemplate":`Modifica template`,"templates.deleteTemplate":`Elimina template`,"templates.deleteConfirm":`Eliminare il template '/{slug}'?`,"templates.deleteConfirmMessage":`Questa azione non può essere annullata.`,"templates.slug":`Slug`,"templates.slugHint":`Minuscole, cifre, trattini. Max 64 caratteri.`,"templates.slugInvalid":`Lo slug può contenere solo minuscole, cifre e trattini`,"templates.slugDuplicate":`Un template con questo slug esiste già`,"templates.description":`Descrizione`,"templates.descriptionHint":`Etichetta breve mostrata nel dropdown.`,"templates.descriptionRequired":`La descrizione è obbligatoria`,"templates.contentRequired":`Il contenuto è obbligatorio`,"templates.content":`Contenuto`,"templates.contentHint":`Contenuto del template. Usa {variable_name} per le sostituzioni.`,"templates.availableVars":`Variabili disponibili`,"templates.filePath":`File: {path}`,"templates.empty":`Nessun template ancora.`,"templates.createFailed":`Creazione del template fallita`,"templates.updateFailed":`Aggiornamento del template fallito`,"templates.deleteFailed":`Eliminazione del template fallita`,"templates.save":`Salva`,"templates.create":`Crea`,"templates.reloadDefaults":`Ricarica i template predefiniti`,"templates.reloadDefaultsHint":`Aggiunge solo i template predefiniti mancanti. I template esistenti (modificati o meno) non vengono mai sovrascritti.`,"templates.reloadDefaultsConfirmMessage":`Questa azione aggiungerà alla lista i template predefiniti mancanti. I template esistenti — comprese le tue personalizzazioni — non saranno toccati. Se vuoi ripristinare un template predefinito che hai modificato, eliminalo prima e rilancia questa azione.`,"templates.reloadDefaultsSuccess":`{added} aggiunto/i, {kept} mantenuto/i`,"templates.reloadDefaultsFailed":`Ricarica dei template predefiniti fallita`,"templates.resetToDefault":`Ripristina predefinito`,"templates.resetConfirmTitle":`Ripristinare il template al predefinito?`,"templates.resetConfirmMessage":`Sovrascrive le tue modifiche locali a /{slug} con il predefinito. Non annullabile.`,"templates.resetSuccess":`Template /{slug} ripristinato al predefinito`,"templates.resetFailed":`Ripristino del template non riuscito`,"chatInput.dropdownSkills":`Skill Claude`,"chatInput.dropdownKobo":`Comandi Kōbō`,"chatInput.dropdownTemplates":`Template`,"documents.title":`Documenti`,"documents.empty":`Nessun documento trovato`,"documents.refresh":`Aggiorna`,"documents.back":`Indietro`,"documents.loadFailed":`Caricamento del documento fallito`,"git.title":`Git`,"git.outputDialogTitle":`Git ha segnalato un errore`,"git.statsFailed":`Impossibile leggere lo stato git`,"git.section.repository":`Repository`,"git.section.changes":`Modifiche`,"git.section.pullRequest":`Pull request`,"git.section.actions":`Azioni`,"git.actions.more":`Altre`,"git.localOnly":`solo locale`,"git.pushed":`pushed`,"git.unpushed":`{count} non pushati`,"git.commits":`{count} commit | {count} commit`,"git.commits.loading":`Caricamento commit…`,"git.commits.empty":`Nessun commit su questo branch`,"git.commits.pushed":`Pushato`,"git.commits.unpushed":`Non pushato`,"git.commits.clickToAppend":`clicca per aggiungere SHA alla chat`,"git.commits.diffThisCommit":`Diff di questo commit (vs parent)`,"git.compareCommits":`Confronta commit…`,"git.files":`{count} file | {count} file`,"git.staged":`{count} staged`,"git.modified":`{count} modificati`,"git.untracked":`{count} non tracciati`,"git.workingTreeEmpty":`Nessuna modifica non committata`,"git.fileStaged":`In stage`,"git.fileModified":`Modificato`,"git.fileUntracked":`Non tracciato`,"git.push":`Push`,"git.forcePush":`Force push`,"git.forcePushToggle":`Force push (--force-with-lease)`,"git.pushRejectedHistory":`Push rifiutato: i branch locale e remoto hanno cronologie diverse. Dopo un rebase di commit pubblicati, usate Force push con conferma. Altrimenti recuperate e integrate le modifiche remote prima di riprovare.`,"git.pushRejectedLease":`Force push rifiutato: il branch remoto è cambiato dopo l’ultimo fetch. Recuperate e controllate queste modifiche prima di riprovare.`,"git.pushFailed":`Impossibile inviare il branch. Aprite i dettagli per conoscere la causa.`,"git.pushBlockedByOperation":`Prima completa o annulla l'operazione {operation} in corso`,"git.pushUpToDate":`Niente da inviare: il branch è già aggiornato su origin`,"git.forcePushHint":`Più sicuro di --force: il push viene rifiutato se il remoto ha commit che non hai visto. Da usare dopo un rebase o amend di commit già pushati.`,"git.branchForcePushed":`Branch force-pushed`,"git.pull":`Pull`,"git.pullNoUpstream":`Nessun upstream per questo branch — fai push prima per abilitare Pull.`,"git.sync":`Sync`,"git.createPrNoRemote":`Push del branch prima`,"git.viewRequest":`Visualizza {request}`,"git.createRequest":`Crea {request}`,"git.changeRequestBase":`Cambia il branch base della {request}`,"git.forgeCliMissing":`{cli} non è installato — installalo per usare le funzioni {request}`,"git.forgeNotAuthenticated":`Non autenticato — esegui {cli} auth login`,"settings.forge":`Forge`,"settings.forge.auto":`Rilevamento automatico`,"settings.forge.github":`GitHub`,"settings.forge.gitlab":`GitLab`,"settings.forge.bitbucketCommunity":`Bitbucket Community (bkt)`,"settings.forge.none":`Nessuna`,"git.pullConfirmTitle":`Pull della branch?`,"git.pullConfirmMessage":`Pull {branch} dal remoto (solo fast-forward).`,"git.branchPulled":`Branch aggiornata`,"git.pullFailed":`Pull fallito`,"git.renameBranch":`Rinomina branch`,"git.renameBranchPrompt":"Rinomina `{branch}` in:","git.renameBranchSuccess":"Branch rinominato in `{branch}`","git.renameBranchFailed":`Rinomina branch fallita`,"git.renameBranchExists":"Il branch `{branch}` esiste già localmente o su origin","git.diff":`Diff`,"git.diffReview":`Diff`,"git.diffReviewTooltip":`Apre il visualizzatore diff in modalità Review — commenti inline + invio batch all'agente`,"pr.baseChanged":`Base della PR cambiata: {oldBase} → {newBase}`,"pr.openPr":`Apri PR`,"pr.openWorkspace":`Apri il workspace`,"pr.dismiss":`Chiudi`,"git.rebase":`Rebase`,"git.rebaseConfirmTitle":`Rebase del branch?`,"git.rebaseConfirmMessage":`Rebase su {branch}. Potrebbero verificarsi conflitti.`,"git.rebaseSuccess":`Rebase completato`,"git.rebaseFailed":`Rebase fallito`,"git.merge":`Merge`,"git.fetch":`Fetch`,"git.fetchSuccess":`Repository aggiornato`,"git.fetchFailed":`Fetch non riuscito: {error}`,"git.mergeConfirmTitle":`Fondere il branch?`,"git.mergeConfirmMessage":`Fonde {branch} in questo branch. Possibili conflitti.`,"git.mergeSuccess":`Merge completato`,"git.mergeFailed":`Merge fallito`,"git.commitFailed":`Commit fallito`,"git.commitChanges":`Esegui commit delle modifiche`,"git.commitDialogTitle":`Esegui commit delle modifiche non salvate`,"git.commitDialogDescription":`Inserisci il tuo messaggio o chiedi all’agente di esaminare e creare il commit.`,"git.commitMessage":`Messaggio di commit`,"git.commitManual":`Esegui commit`,"git.commitWithAgent":`Chiedi all’agente`,"git.commitAgentSuccess":`Richiesta di commit inviata all’agente`,"git.discardFailed":`Scarto fallito`,"git.conflictTitleMerge":`Conflitti di merge rilevati`,"git.conflictTitleRebase":`Conflitti di rebase rilevati`,"git.operationPausedTitle":`Operazione Git da continuare`,"git.operationPausedSubtitle":`Nessun file è in conflitto. Git attende solo che tu continui l’operazione.`,"git.conflictSubtitle":`{count} file con conflitti. Scegli come continuare.`,"git.conflictAbortConfirmTitle":`Annullare la risoluzione del conflitto?`,"git.conflictAbortConfirmMessage":`Tutto ciò che hai risolto in questo {op} viene scartato e il worktree torna allo stato precedente. È irreversibile.`,"git.conflictAbort":`Annulla`,"git.conflictContinue":`Continua`,"git.conflictContinued":`Operazione Git continuata`,"git.conflictResolveWithAgent":`Chiedi all'agente di risolvere`,"git.conflictAborted":`Operazione annullata`,"git.conflictHandoffSuccess":`L'agente sta risolvendo i conflitti`,"git.dirtyTitleRebase":`Modifiche non committate bloccano il rebase`,"git.dirtyTitleMerge":`Modifiche non committate bloccano il merge`,"git.dirtyTitlePull":`Modifiche non committate bloccano il pull`,"git.dirtySubtitle":`{modified} modificato/i, {staged} in stage, {untracked} non tracciato/i. Scegli come procedere.`,"git.dirtyStash":`Stash e riprova`,"git.dirtyCommit":`Commit prima`,"git.dirtyCommitPlaceholder":`Messaggio di commit`,"git.dirtyCommitConfirm":`Commit e riprova`,"git.dirtyDiscard":`Scarta le modifiche`,"git.dirtyDiscardConfirmTitle":`Scartare tutte le modifiche non committate?`,"git.dirtyDiscardConfirmMessage":`Le modifiche tracciate andranno perse (git reset --hard). I file non tracciati vengono mantenuti. Azione irreversibile.`,"git.pushConfirmTitle":`Push del branch?`,"git.pushConfirmMessage":`Push di {branch} al remoto.`,"git.pushConfirmMessagePrefix":`Push del branch`,"git.pushConfirmMessageSuffix":`al remoto.`,"git.changePrBaseTitle":`Cambiare branch base`,"git.changePrBaseMessage":`Inserire il nuovo branch destinazione per la {request}.`,"git.changePrBaseSuccess":`Branch base della {request} aggiornato`,"git.changePrBaseFailed":`Impossibile cambiare il branch base della {request}`,"git.mergeRequest":`Unisci {request}`,"git.mergeRequestConfirmTitle":`Unire {request}?`,"git.mergeRequestConfirmMessage":`Questa azione unisce la {request} aperta nel suo branch di destinazione.`,"git.mergeRequestSuccess":`{request} unita`,"git.mergeRequestFailed":`Impossibile unire {request}`,"git.deleteRemoteBranch":`Elimina branch remoto`,"git.deleteRemoteBranchTitle":`Eliminare il branch remoto?`,"git.deleteRemoteBranchMessage":`La richiesta è stata unita. Eliminare il branch remoto {branch}?`,"git.deleteRemoteBranchSuccess":`Branch remoto {branch} eliminato`,"git.deleteRemoteBranchFailed":`Impossibile eliminare il branch remoto`,"git.changeSourceBranch":`Cambia il branch di origine`,"git.changeSourceBranchTitle":`Cambia il branch di origine`,"git.changeSourceBranchMessage":`Scegli il nuovo branch di origine. Il branch di lavoro verrà ricostruito sopra di esso.`,"git.changeSourceBranchDone":`Branch di origine cambiato in {branch}`,"git.changeSourceBranchAligned":`Branch di origine cambiato in {branch} (il branch non aveva commit propri)`,"git.changeSourceBranchTooMany":`Il branch ha troppi commit propri ({n}) — esegui il rebase manualmente`,"git.changeSourceBranchDirty":`Esegui commit o stash delle modifiche prima di cambiare il branch di origine`,"git.changeSourceBranchAgentRunning":`Ferma l'agente prima di cambiare il branch di origine`,"git.changeSourceBranchErrorTitle":`Cambio branch di origine fallito`,"git.changeSourceBranchErrorOngoing":`Un'operazione {op} è ancora in corso sul worktree. Annullala per tornare a uno stato pulito.`,"git.changeSourceBranchErrorAbort":`Annulla l'operazione`,"git.changeSourceBranchLoading":`Cambio del branch di origine…`,"git.changeSourceForcePushTitle":`Eseguire il force-push del branch riscritto?`,"git.changeSourceForcePushMessage":`La cronologia del branch è stata riscritta. Eseguire il push al remoto con --force-with-lease?`,"git.changeSourceForcePushDone":`Force-push del branch eseguito`,"git.openEditor":`Apri nell'editor`,"git.openEditorFailed":`Impossibile aprire l'editor`,"git.branchPushed":`Branch pushato`,"git.pushFirst":`Il branch non è sul remoto. Fai Push prima.`,"git.unpushedCommits":`I commit locali non sono pushati. Fai Push prima.`,"git.from":`da`,"git.aheadBehindTooltip":`{ahead} commits avanti, {behind} indietro rispetto a {source}`,"git.divergence.title":`Divergenza del branch`,"git.divergence.subtitle":`vs {source}`,"git.divergence.ahead":`↑ {count} avanti`,"git.divergence.behind":`↓ {count} indietro`,"git.divergence.empty.ahead":`Nessun commit avanti.`,"git.divergence.empty.behind":`Nessun commit indietro.`,"git.divergence.close":`Chiudi`,"git.divergence.loading":`Caricamento commit…`,"git.divergence.failed":`Impossibile caricare la divergenza`,"git.divergence.retry":`Riprova`,"git.prCreated":`{request} #{n} creata`,"git.pr.author":`Autore`,"git.pr.reviewers":`Revisori`,"git.pr.assignees":`Assegnati`,"git.pr.labels":`Etichette`,"git.pr.changesRequestedBadge":`Modifiche richieste`,"git.pr.approvedBadge":`Approvata`,"git.pr.ci.passed":`CI OK`,"git.pr.ci.failed":`CI fallita`,"git.pr.ci.pending":`CI in corso`,"git.pr.ci.failedCount":`{n} falliti`,"git.pr.ci.pendingCount":`{n} in corso`,"git.pr.ci.passedCount":`{n} OK`,"git.pr.ci.skippedCount":`{n} saltati`,"git.pr.ci.showPassed":`Mostra {n} job riusciti`,"git.pr.ci.hidePassed":`Nascondi i job riusciti`,"toast.prChangesRequested":`Sono state richieste modifiche per la PR #{n}`,"toast.prApproved":`La PR #{n} è stata approvata`,"toast.prReadyToMerge":`La PR #{n} è pronta per il merge`,"toast.prCiFailed":`La CI della PR #{n} non è riuscita`,"toast.prCiRecovered":`La CI della PR #{n} è stata ripristinata`,"toast.prMergeConflict":`La PR #{n} ha conflitti di merge`,"toast.prMerged":`La PR #{n} è stata unita`,"devServer.title":`Server di sviluppo`,"devServer.noWorkspace":`Nessun workspace selezionato`,"devServer.notConfigured":`Non configurato —`,"devServer.goToSettings":`Impostazioni`,"devServer.logs":`Log`,"devServer.running":`In esecuzione`,"devServer.starting":`Avvio in corso`,"devServer.stopping":`Arresto in corso`,"devServer.error":`Errore`,"devServer.stopped":`Arrestato`,"devServer.unknown":`Sconosciuto`,"devServer.containers":`{count} container | {count} container`,"devServer.logDialog.title":`Log del server di sviluppo`,"devServer.logDialog.empty":`Nessun log disponibile`,"notion.title":`Notion`,"tasks.title":`Attività`,"notion.addTask":`Aggiungi task`,"notion.noUrl":`Nessun URL Notion`,"notion.subtasks":`{done}/{total} sottotask`,"notion.noTasks":`Nessun task`,"notion.newTask":`Nuovo task... (Invio per aggiungere, Esc per annullare)`,"acceptance.title":`Criteri di accettazione`,"acceptance.addCriterion":`Aggiungi criterio`,"acceptance.newCriterion":`Nuovo criterio... (Invio per aggiungere, Esc per annullare)`,"acceptance.empty":`Nessun criterio di accettazione`,"tasks.askProgress":`Chiedere all'agente di verificare il progresso`,"agentTodos.title":`Todo dell'agente`,"agentTodos.empty":`Nessun todo dell'agente`,"subagents.title":`Sub-agenti`,"subagents.empty":`Nessuna attività dei sub-agenti ancora`,"subagents.tools":`{count} strumenti`,"subagents.running":`In esecuzione: `,"subagents.status.running":`In esecuzione`,"subagents.status.done":`Completato`,"subagents.status.failed":`Non riuscito`,"subagents.status.stopped":`Interrotto`,"subagents.ambient":`Monitoraggio in background`,"subagents.ambientTooltip":`Monitoraggio in background (es. Monitor): non conteggiato come attività dell'agente`,"subagents.stop":`Arresta questo sub-agente`,"subagents.stopAll":`Arresta tutti`,"subagents.stopFailed":`Impossibile arrestare il sub-agente: {error}`,"subagents.activity":`Attività del sotto-agente`,"subagents.noActivity":`Nessuna attività del provider visibile al momento`,"chat.subagentActivity":`Attività del sottoagente`,"chat.openSubagentActivity":`Apri questo sottoagente nel pannello laterale`,"stats.resetsAt":`Reset {value}`,"stats.usageBucket":`Bucket utilizzo {n}`,"quotaFooter.lastUpdated":`Ultimo aggiornamento: {time}`,"quotaFooter.empty":`Caricamento…`,"quotaFooter.popover.title":`Utilizzo Claude Code`,"quotaFooter.popover.refreshNow":`Aggiorna`,"quotaFooter.popover.resetsIn":`Reset alle {value}`,"quotaFooter.popover.unauthenticated":`Auth richiesta`,"quotaFooter.popover.unauthenticatedHint":`Esegui "claude" una volta per autenticarti.`,"quotaFooter.popover.error":`Errore`,"quotaFooter.bucket.fiveHour":`5 ore`,"quotaFooter.bucket.sevenDay":`7 giorni`,"agent.error.spawn_failed":`Impossibile avviare l'agente`,"agent.error.parse_error":`Impossibile analizzare un messaggio dell'agente`,"agent.error.rate_limit":`Limite di frequenza raggiunto`,"agent.error.resume_failed":`Sessione non trovata — avvio di una nuova sessione`,"agent.error.other":`Errore dell'agente`,"quotaBackoff.banner.title":`Ripresa automatica alle {time}`,"quotaBackoff.banner.transientTitle":`Ripresa automatica dopo l’interruzione alle {time}`,"quotaBackoff.resumeNow":`Riprendi ora`,"quotaBackoff.banner.tooltip":`Quota Claude esaurita. L'auto-loop riprenderà automaticamente quando la quota si reimposta alle {resets_at}.`,"quotaBackoff.banner.cancel":`Annulla ripresa`,"quotaBackoff.cancelled":`Ripresa automatica annullata — puoi riprendere manualmente in qualsiasi momento`,"rateLimitType.fiveHour":`Sessione 5h`,"rateLimitType.sevenDay":`Settimanale`,"tooltip.addTask":`Aggiungi task`,"tooltip.removeTask":`Rimuovi task`,"tooltip.addCriterion":`Aggiungi criterio`,"tooltip.removeCriterion":`Rimuovi criterio`,"tooltip.startDevServer":`Avvia server di sviluppo`,"tooltip.stopDevServer":`Arresta server di sviluppo`,"tooltip.closeDiffViewer":`Chiudi diff`,"tooltip.refreshLogs":`Aggiorna log`,"tooltip.closeDialog":`Chiudi`,"tooltip.refreshGitStats":`Aggiorna statistiche Git`,"tooltip.removeImage":`Rimuovi immagine`,"tooltip.sendMessage":`Invia messaggio`,"tools.title":`Strumenti`,"tools.runSetupScript":`Rieseguire script di setup`,"tools.runSetupScriptTooltip":`Eseguire lo script di setup del progetto nel worktree`,"tools.runSetupScriptConfirm":`Rieseguire lo script di setup in questo workspace? Gli artefatti esistenti potrebbero essere sovrascritti.`,"tools.runSetupScriptBusy":`Impossibile rieseguire il setup mentre l'agent sta lavorando.`,"tools.noSetupScript":`Nessun script di setup configurato —`,"tools.setupScriptSuccess":`Script di setup completato con successo.`,"tools.setupScriptFailed":`Script di setup fallito.`,"tools.openNotion":`Apri in Notion`,"tools.openSentry":`Apri in Sentry`,"tools.review":`Revisiona modifiche`,"tools.reviewTooltip":`Chiedi all'agente di rivedere le modifiche di questo branch`,"tools.reviewBusy":`Agente occupato — attendi che sia libero`,"tools.fixCi":`Ripara CI`,"tools.fixCiTooltip":`Chiedi all'agente di diagnosticare e correggere i job di CI in errore`,"tools.fixCiLaunched":`Azione «Ripara CI» inviata all'agente`,"tools.fixCiFailed":`Impossibile avviare l'azione «Ripara CI»`,"tools.openFileManager":`Apri nel file manager`,"tools.openFileManagerTooltip":`Apri la cartella del worktree nel tuo file manager configurato`,"tools.openFileManagerFailed":`Impossibile aprire il file manager`,"tools.openTerminal":`Apri nel terminale`,"tools.openTerminalTooltip":`Apri il worktree nel terminale configurato`,"tools.openTerminalFailed":`Impossibile aprire il terminale`,"review.title":`Avvia revisione`,"review.subtitle":`Chiedi all'agente di rivedere le modifiche e dare un feedback.`,"review.additionalInstructions":`Istruzioni aggiuntive (opzionale)`,"review.additionalInstructionsPlaceholder":`Aggiungi istruzioni specifiche per la revisione…`,"review.newSession":`Nuova sessione`,"review.newSessionHint":`Avvia una nuova sessione invece di continuare quella attuale.`,"review.newSessionRequired":`Impostazioni diverse o il ritorno automatico richiedono una nuova sessione.`,"review.returnToSession":`Torna alla sessione attuale dopo la review`,"review.returnToSessionHint":`Riprende questa sessione con il riepilogo finale del reviewer. Se disattivato, la conversazione continua nella sessione di review.`,"review.readOnlyForced":`Una review che torna a questa sessione viene eseguita in sola lettura (Plan): non può modificare file né porre domande.`,"review.returnUnavailable":`La sessione attuale deve essere stata avviata per poter essere ripresa.`,"review.start":`Avvia revisione`,"review.cancel":`Annulla`,"review.launched":`Revisione avviata`,"review.failed":`Impossibile avviare la revisione`,"diff.title":`Diff`,"diff.side":`Affiancato`,"diff.inline":`In linea`,"diff.hideUnchanged":`Nascondi codice invariato`,"diff.showUnchanged":`Mostra codice invariato`,"diff.showUntracked":`Mostra file non tracciati`,"diff.hideUntracked":`Nascondi file non tracciati`,"diff.rollbackToRemote":`Ripristina alla versione remota`,"diff.rollbackConfirm":`Ripristinare {path} alla sua versione remota (origin)? Le modifiche locali a questo file andranno perse.`,"diff.rollbackConfirmOk":`Ripristina`,"diff.rollbackDone":`File ripristinato alla versione remota`,"diff.rollbackDoneRemote":`File ripristinato alla versione remota`,"diff.rollbackDoneHead":`Modifiche locali annullate (file ripristinato all'ultimo commit)`,"diff.rollbackDoneDeleted":`File non tracciato eliminato`,"diff.deleteUntracked":`Elimina file non tracciato`,"diff.deleteUntrackedConfirm":`Eliminare definitivamente {path}? Questo file non è tracciato da git — il suo contenuto andrà perso.`,"diff.deleteUntrackedConfirmOk":`Elimina`,"diff.rollbackFailed":`Rollback fallito`,"diff.rollbackFailedDetail":`Rollback non riuscito: {error}`,"diff.modeInspect":`Modifica`,"diff.modeReview":`Review`,"diff.addComment":`Aggiungi commento`,"diff.replyComment":`Rispondi`,"diff.editComment":`Modifica`,"diff.deleteComment":`Elimina`,"diff.deleteCommentConfirm":`Eliminare questo commento?`,"diff.commentPlaceholder":`Scrivi un commento di revisione… (Markdown supportato)`,"diff.reviewDraft":`Bozza di revisione`,"diff.reviewEmpty":`Nessun commento — passa sopra una riga del diff e clicca + per aggiungerne uno.`,"diff.reviewGlobalPlaceholder":`Messaggio generale di revisione (opzionale)`,"diff.submitReview":`Invia revisione ({n})`,"diff.reviewPending":`Una revisione è già in fase di invio.`,"diff.reviewEmptySubmission":`La revisione è vuota.`,"diff.reviewNotAccepted":`Il messaggio non è stato accettato. La revisione è stata conservata.`,"diff.reviewSubmitted":`Revisione inviata all'agente`,"diff.reviewSubmitFailed":`Invio della revisione fallito: {error}`,"diff.scopeBranch":`Branch`,"diff.scopeUnpushed":`Non pushato`,"diff.noChanges":`Nessuna modifica`,"diff.searchFiles":`Cerca file…`,"diff.noFileMatch":`Nessun file corrispondente`,"diff.selectFile":`Seleziona un file per visualizzare il diff`,"diff.fileLoadFailed":`Impossibile caricare questo diff`,"diff.fileLoadFailedHint":`Il file su disco è intatto — è fallito solo il caricamento del diff.`,"diff.fileListLoadFailed":`Impossibile caricare l’elenco dei file`,"diff.fileListLoadFailedHint":`È una richiesta fallita, non un branch senza modifiche.`,"diff.addToChat":`Aggiungi alla chat`,"diff.compareTitle":`Confronta commit`,"diff.compareFrom":`Da`,"diff.compareTo":`A`,"diff.compareSubmit":`Confronta`,"diff.compareSourceBase":`{branch} (base del branch)`,"diff.commitsReadOnly":`sola lettura`,"diffViewer.save":`Salva`,"diffViewer.savedAt":`Salvato`,"diffViewer.saveFailed":`Salvataggio non riuscito`,"diffViewer.saveFailedDetail":`Salvataggio non riuscito: {error}`,"diffViewer.unsavedChanges.title":`Modifiche non salvate`,"diffViewer.unsavedChanges.message":`Hai modifiche non salvate. Cosa vuoi fare?`,"diffViewer.unsavedChanges.save":`Salva`,"diffViewer.unsavedChanges.cancel":`Annulla`,"diffViewer.conflict.title":`File modificato su disco`,"diffViewer.conflict.message":`Il file è stato modificato fuori da Kōbō da quando lo hai aperto.`,"diffViewer.conflict.reload":`Ricarica (scarta locali)`,"diffViewer.conflict.keep":`Mantieni le mie`,"diffViewer.conflict.overwrite":`Sovrascrivi comunque`,"diffViewer.conflict.overwriteHint":`Sostituisce il file sul disco con la tua versione. L’altra modifica va persa.`,"diffViewer.conflict.keepHint":`Mantiene le tue modifiche nell’editor e adotta la nuova firma del disco, così il prossimo salvataggio funziona.`,"diffViewer.saveBlocked":`L’agente è in esecuzione — fermalo per salvare le tue modifiche.`,"diffViewer.unsavedBanner":`Modifiche non salvate. Ferma l’agente per salvarle.`,"diffViewer.closeConfirm.title":`Modifiche non salvate`,"diffViewer.closeConfirm.message":`Questo file contiene modifiche mai salvate. Chiudere il visualizzatore di diff le scarta.`,"diffViewer.closeConfirm.discard":`Chiudi senza salvare`,"diffViewer.criteriaRail":`Checklist di revisione`,"diffViewer.criteriaRailShow":`Mostra la checklist di revisione`,"diffViewer.criteriaRailHide":`Nascondi la checklist di revisione`,"diffViewer.fileTreeShow":`Mostra l’albero dei file`,"diffViewer.fileTreeHide":`Nascondi l’albero dei file`,"diffViewer.closeConfirm.saveAndClose":`Salva e chiudi`,"diffViewer.agentRunning":`L’agente è in esecuzione — fermalo per modificare`,"diffViewer.fileDeleted":`File eliminato`,"notification.agentFinished":`{name} — Agente terminato`,"notification.agentQuestion":`{name} — L'agente sta facendo una domanda`,"notification.awaitingReminder":`{name} - ti sta ancora aspettando ({minutes} min)`,"notification.agentPermissionRequest":`{name} — L'agente richiede un permesso`,"notification.autoLoopCompleted":`{name} — Auto-loop completato`,"notification.autoLoopWaitingForSlot":`{name} - L'auto-loop attende uno slot agente libero ({running}/{limit} in corso)`,"notification.autoLoopStalled":`{name} — Auto-loop bloccato (nessun progresso)`,"notification.autoLoopError":`{name} — Auto-loop fermato per errore`,"notification.autoLoopAwaitingClarification":`{name} — Auto-loop in pausa, in attesa del tuo chiarimento`,"notification.autoLoopPermissionOverridden":`{name} — Auto-loop ha forzato la modalità plan a bypass`,"notification.agentError":`{name} — Errore agente`,"contextMenu.rename":`Rinomina`,"contextMenu.editDescription":`Modifica descrizione`,"contextMenu.copyPath":`Copia percorso worktree`,"contextMenu.copyWorkspaceId":`Copia ID del workspace`,"contextMenu.openEditor":`Apri nell'editor`,"contextMenu.openFileManager":`Apri nel file manager`,"contextMenu.unarchiveDisabledPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"workspaceList.unarchiveBlockedPurged":`Ripristina prima il worktree con Ripristina worktree oppure ricrealo manualmente. Kōbō rileva automaticamente i worktree corrispondenti.`,"contextMenu.purgeWorktree":`Libera spazio su disco (elimina worktree)`,"contextMenu.purgeWorktreeTooltip":`Elimina il worktree dal disco per recuperare spazio — la cronologia di chat e sessioni viene conservata. Archivia automaticamente il workspace.`,"contextMenu.purgeWorktreeDialogTitle":`Liberare spazio su disco?`,"contextMenu.purgeWorktreeDialogMessage":`La cartella worktree di «{name}» verrà eliminata dal disco. La cronologia di chat e sessioni viene conservata. Il workspace verrà archiviato automaticamente. Nella versione attuale non è possibile annullare.`,"contextMenu.purgeWorktreeDialogConfirm":`Elimina il worktree`,"contextMenu.purgeWorktreeSuccess":`Worktree eliminato — spazio su disco recuperato.`,"settings.autoPurgeOnPrMerged":`Elimina worktree al merge della PR`,"settings.autoPurgeOnPrMergedHint":`Se abilitato, il worktree viene eliminato dal disco non appena la PR viene mergiata (oltre all'archiviazione automatica). La cronologia delle chat viene conservata.`,"settings.showProgressBars":`Mostra le barre di avanzamento`,"settings.showProgressBarsHint":`Attivo per impostazione predefinita. Nascondere le barre non chiude le attività né interrompe il monitoraggio. Le modifiche si applicano al salvataggio.`,"tours.settings.progressBars.title":`Barre di avanzamento`,"tours.settings.progressBars.description":`Mostra o nascondi le barre sopra il campo del messaggio. Il monitoraggio continua mentre sono nascoste.`,"settings.agentWatchdogEnabled":`Attiva i watchdog di inattività degli agenti`,"settings.agentWatchdogHint":`Disattivati per impostazione predefinita. Se attivi, Kōbō può fermare Claude o Codex dopo un silenzio prolungato, inclusi strumenti, sottoagenti e compattazione. Si applica al prossimo avvio o ripresa dell’agente.`,"tours.settings.agentWatchdog.title":`Watchdog di inattività`,"tours.settings.agentWatchdog.description":`Lascia questa opzione disattivata per consentire attese lunghe senza attività visibile. Attivala per chiudere automaticamente le sessioni bloccate. Si applica al prossimo avvio o ripresa dell’agente.`,"settings.autoLoopMaxRetries":`Numero massimo di tentativi automatici`,"settings.awaitingUserReminder":`Promemoria di domanda senza risposta`,"settings.awaitingUserReminderHint":`Minuti in cui un workspace può attendere la tua risposta prima che Kōbō te lo ricordi, poi a ogni intervallo successivo. 0 disattiva.`,"settings.localeLoadFailed":`Impossibile caricare questa lingua; resta attiva quella corrente.`,"settings.autoLoopMaxRetriesHint":`Mette in pausa la missione dopo questo numero di errori temporanei del motore o del server. Le quote attendono il ripristino senza consumare questo limite.`,"settings.retentionTitle":`Conservazione della cronologia delle conversazioni (disattivata di default)`,"settings.retentionWarning":`Attivare questa opzione elimina definitivamente dal database la cronologia delle conversazioni degli agenti, a partire da tutto ciò che è già più vecchio della finestra. Gli eventi eliminati non sono recuperabili.`,"settings.retentionHint":`Viene eseguita una volta all'avvio del server. Workspace, attività, sessioni, branch e worktree non vengono mai toccati — solo l'output registrato degli agenti.`,"settings.retentionDaysLabel":`Elimina gli eventi più vecchi di (giorni)`,"settings.retentionDaysHint":`0 — il valore predefinito — conserva tutti gli eventi per sempre. Indica un valore per attivare la conservazione.`,"settings.retentionKeepLabel":`Eventi sempre conservati per workspace`,"settings.retentionKeepHint":`Gli eventi più recenti di ogni workspace sopravvivono a prescindere dalla loro età, così un workspace vecchio ma ancora aperto mantiene una cronologia leggibile. Consigliato: 5000.`,"settings.retentionDisabledHint":`Conservazione disattivata: non verrà mai eliminato nulla.`,"settings.retentionConfirmTitle":`Eliminare definitivamente la cronologia delle conversazioni?`,"settings.retentionConfirmMessage":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, {count} dei {total} eventi degli agenti registrati — compreso tutto ciò che è già più vecchio. L'operazione è irreversibile. Continuare?`,"settings.retentionConfirmMessageUnknown":`Conservare solo {days} giorno/i di cronologia eliminerà definitivamente, al prossimo avvio del server, tutti gli eventi degli agenti più vecchi — compreso tutto ciò che è già accumulato. Non è stato possibile calcolare il volume esatto. L'operazione è irreversibile. Continuare?`,"settings.purgeDocsTitle":`Come funziona la pulizia — ripristino e permessi`,"settings.purgeDocsRestoreTitle":`Ripristinare un worktree eliminato (rilevamento automatico)`,"settings.purgeDocsRestoreIntro":`Un workspace eliminato conserva la cronologia chat e i metadati della PR, ma la cartella worktree non c'è più. Ricreala manualmente con uno di questi comandi — Kōbō rileva la riapparizione della cartella entro 30 secondi e riattiva automaticamente il workspace (rimuove dall'archivio + cancella il flag di eliminazione):`,"settings.purgeDocsRestoreCommands":`# GitHub (con CLI gh):
|
|
12
12
|
gh pr checkout [numero-pr] --recurse-submodules
|
|
13
13
|
|
|
14
14
|
# Oppure direttamente con git (funziona su GitHub anche dopo eliminazione del branch):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{conf as e,language as t}from"./typescript-
|
|
1
|
+
import{conf as e,language as t}from"./typescript-D3ibItMf.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./editor.api-
|
|
1
|
+
import{n as e}from"./editor.api-D2PTZoSF.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[`<!--`,`-->`],[`<`,`>`],[`{{`,`}}`],[`{%`,`%}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`%`,close:`%`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,builtinTags:`if.else.elseif.endif.render.assign.capture.endcapture.case.endcase.comment.endcomment.cycle.decrement.for.endfor.include.increment.layout.raw.endraw.render.tablerow.endtablerow.unless.endunless`.split(`.`),builtinFilters:`abs.append.at_least.at_most.capitalize.ceil.compact.date.default.divided_by.downcase.escape.escape_once.first.floor.join.json.last.lstrip.map.minus.modulo.newline_to_br.plus.prepend.remove.remove_first.replace.replace_first.reverse.round.rstrip.size.slice.sort.sort_natural.split.strip.strip_html.strip_newlines.times.truncate.truncatewords.uniq.upcase.url_decode.url_encode.where`.split(`.`),constants:[`true`,`false`],operators:[`==`,`!=`,`>`,`<`,`>=`,`<=`],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\w]*/,tokenizer:{root:[[/\{\%\s*comment\s*\%\}/,`comment.start.liquid`,`@comment`],[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.root`}],[/(<)([\w\-]+)(\/>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/</,`delimiter.html`],[/\{/,`delimiter.html`],[/[^<{]+/]],comment:[[/\{\%\s*endcomment\s*\%\}/,`comment.end.liquid`,`@pop`],[/./,`comment.content.liquid`]],otherTag:[[/\{\{/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\{\%/,{token:`@rematch`,switchTo:`@liquidState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,`delimiter.output.liquid`],[/\}\}/,{token:`delimiter.output.liquid`,switchTo:`@$S2.$S3`}],[/\{\%/,`delimiter.tag.liquid`],[/raw\s*\%\}/,`delimiter.tag.liquid`,`@liquidRaw`],[/\%\}/,{token:`delimiter.tag.liquid`,switchTo:`@$S2.$S3`}],{include:`liquidRoot`}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,`delimiter.tag.liquid`],[/@identifier/],[/\%\}/,{token:`delimiter.tag.liquid`,next:`@root`}]],liquidRoot:[[/\d+(\.\d+)?/,`number.liquid`],[/"[^"]*"/,`string.liquid`],[/'[^']*'/,`string.liquid`],[/\s+/],[/@symbol/,{cases:{"@operators":`operator.liquid`,"@default":``}}],[/\./],[/@identifier/,{cases:{"@constants":`keyword.liquid`,"@builtinFilters":`predefined.liquid`,"@builtinTags":`predefined.liquid`,"@default":`variable.liquid`}}],[/[^}|%]/,`variable.liquid`]]}};export{n as conf,r as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./editor.api-
|
|
1
|
+
import{n as e}from"./editor.api-D2PTZoSF.js";var t={comments:{blockComment:[`{/*`,`*/}`]},brackets:[[`{`,`}`]],autoClosingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`“`,close:`”`},{open:`‘`,close:`’`},{open:"`",close:"`"},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`_`,close:`_`},{open:`**`,close:`**`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:`- `}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:`+ `}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:`> `}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(t,n)=>({beforeText:RegExp(`^${n}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${n+1}. `}}))]},n={defaultToken:``,tokenPostfix:`.mdx`,control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:`meta.content`,next:`@frontmatter`,nextEmbedded:`yaml`}],[/^\s*import/,{token:`keyword`,next:`@import`,nextEmbedded:`js`}],[/^\s*export/,{token:`keyword`,next:`@export`,nextEmbedded:`js`}],[/<\w+/,{token:`type.identifier`,next:`@jsx`}],[/<\/?\w+>/,`type.identifier`],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:`white`},{token:`comment`},{token:`keyword`,next:`@header`}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,[`white`,`comment`,`keyword`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,[`white`,`comment`,`keyword`]],[/`{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_backtick`}],[/~{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_tilde`}],[/`{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_backtick`,nextEmbedded:`$1`}],[/~{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_tilde`,nextEmbedded:`$1`}],[/^(\s*)(-{4,})$/,[`white`,`comment`]],[/^(\s*)(>+)/,[`white`,`comment`]],{include:`content`}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,[``,`string.link`,``,`type.identifier`,`string.link`,``]],[/(\[)(.+)(]\()(.+)(\))/,[``,`type.identifier`,``,`string.link`,``]],[/(\[)(.+)(]\[)(.+)(])/,[``,`type.identifier`,``,`type.identifier`,``]],[/(\[)(.+)(]:\s+)(\S*)/,[``,`type.identifier`,``,`string.link`]],[/(\[)(.+)(])/,[``,`type.identifier`,``]],[/`.*`/,`variable.source`],[/_/,{token:`emphasis`,next:`@emphasis_underscore`}],[/\*(?!\*)/,{token:`emphasis`,next:`@emphasis_asterisk`}],[/\*\*/,{token:`strong`,next:`@strong`}],[/{/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}]],import:[[/'\s*(;|$)/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}]],expression:[[/{/,{token:`delimiter.bracket`,next:`@expression`}],[/}/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],export:[[/^\s*$/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],jsx:[[/\s+/,``],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,[`attribute.name`,`operator`,`string`]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,[`attribute.name`,`operator`,`string`]],[/(\w+(?=\s|>|={|$))/,[`attribute.name`]],[/={/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}],[/>/,{token:`type.identifier`,next:`@pop`}]],header:[[/.$/,{token:`keyword`,next:`@pop`}],{include:`content`},[/./,{token:`keyword`}]],strong:[[/\*\*/,{token:`strong`,next:`@pop`}],{include:`content`},[/./,{token:`strong`}]],emphasis_underscore:[[/_/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],emphasis_asterisk:[[/\*(?!\*)/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],frontmatter:[[/^---$/,{token:`meta.content`,nextEmbedded:`@pop`,next:`@pop`}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]]}};export{t as conf,n as language};
|