rename the TIC system agent to event triage
Nightly Build / build (push) Successful in 7m16s

TIC said nothing about what the agent does, and named the wrong thing: the
tick belongs to the scheduler, which is generic and lives outside it. The
agent's only decision is whether an incoming event deserves an interruption
— it sorts, it never acts — so it is now event-triage, matching the
functional naming of the two memory lints.

- agents/tic/ -> agents/event-triage/, module tic/ -> event_triage/,
  TicManager -> EventTriageManager, TicConfig -> EventTriageConfig
- agent id and chat source: "tic" -> "event-triage"
- config keys: tic.* -> event_triage.*, and the config.yml section tic: ->
  event_triage: (greenfield: previously set values fall back to defaults)
- i18n en/it/fr: Event triage / Triage eventi / Tri des evenements; dropped
  the stale "TIC sessions" mention from the debug-pages description
- docs/system-agents.md, docs/index.md, docs/settings.md, CLAUDE.md, SKALD.md
This commit is contained in:
2026-07-28 21:59:37 +01:00
parent 0b793d56ae
commit 046f060fcd
50 changed files with 251 additions and 240 deletions
+10 -10
View File
@@ -125,7 +125,7 @@ export default {
'llmr.filter.agent_id': 'Agent ID',
'llmr.filter.agent_ph': 'e.g. assistant',
'llmr.filter.source': 'Source',
'llmr.filter.source_ph': 'e.g. web, tic, cron',
'llmr.filter.source_ph': 'e.g. web, event-triage, cron',
'llmr.filter.from': 'From',
'llmr.filter.to': 'To',
'llmr.filter.apply': 'Apply',
@@ -184,12 +184,12 @@ export default {
'config.prop.ui_locale.name': 'Language',
'config.prop.ui_locale.desc': 'Default interface language for the whole instance. Each user can override it on their profile.',
'config.prop.tic__enabled.name': 'Enabled',
'config.prop.tic__enabled.desc': 'Enable or disable the TIC agent for the whole instance. When disabled, no events are processed for anyone.',
'config.prop.tic__security_group.name': 'Security group',
'config.prop.tic__security_group.desc': 'Tool permission group applied to each TIC run. It is re-checked against each user\'s own role: a user whose role does not allow this group runs under their role\'s default group instead. Leave empty to always use the role default.',
'config.prop.tic__interval_minutes.name': 'Check interval (minutes)',
'config.prop.tic__interval_minutes.desc': 'How long between passes for each user, in minutes. Counted per person from their own last pass. Leave empty to use the value from config.yml (tic.interval_secs).',
'config.prop.event_triage__enabled.name': 'Enabled',
'config.prop.event_triage__enabled.desc': 'Enable or disable event triage for the whole instance. When disabled, no events are processed for anyone.',
'config.prop.event_triage__security_group.name': 'Security group',
'config.prop.event_triage__security_group.desc': 'Tool permission group applied to each event-triage run. It is re-checked against each user\'s own role: a user whose role does not allow this group runs under their role\'s default group instead. Leave empty to always use the role default.',
'config.prop.event_triage__interval_minutes.name': 'Check interval (minutes)',
'config.prop.event_triage__interval_minutes.desc': 'How long between passes for each user, in minutes. Counted per person from their own last pass. Leave empty to use the value from config.yml (event_triage.interval_secs).',
'config.prop.memory_lint_private__enabled.name': 'Enabled',
'config.prop.memory_lint_private__enabled.desc': 'Enable the private memory lint for the whole instance. When disabled, nobody\'s private store is checked.',
@@ -336,7 +336,7 @@ export default {
// ── Settings (config page extras) ──────────────────────────────────────────
'config.debug': 'Debug mode',
'config.debug.desc': 'Show developer pages (LLM requests, TIC sessions) in the sidebar.',
'config.debug.desc': 'Show developer pages (LLM requests) in the sidebar.',
// ── First-run setup ────────────────────────────────────────────────────────
'setup.title': 'Welcome to Skald',
@@ -971,8 +971,8 @@ export default {
'system_agents.tab.all': 'All',
'system_agents.settings': 'Settings',
'system_agents.agent.tic.name': 'TIC',
'system_agents.agent.tic.desc': 'Reads the events your connectors receive — new mail, calendar changes, incoming messages — decides which of them are worth your attention, and notifies you about those. It runs for one person at a time and reads only that person\'s events.',
'system_agents.agent.event-triage.name': 'Event triage',
'system_agents.agent.event-triage.desc': 'Reads the events your connectors receive — new mail, calendar changes, incoming messages — decides which of them are worth your attention, and notifies you about those. It runs for one person at a time and reads only that person\'s events.',
'system_agents.agent.memory-lint-private.name': 'Private memory lint',
'system_agents.agent.memory-lint-private.desc': 'A periodic check-up of your own memory. It looks for facts whose date has gone by, questions you were asked and never answered, notes the index has lost track of, and duplicates worth merging — then tells you what it found. It never edits your notes.',
'system_agents.agent.memory-lint-shared.name': 'Shared memory lint',
+10 -10
View File
@@ -125,7 +125,7 @@ export default {
'llmr.filter.agent_id': 'ID de l\'agent',
'llmr.filter.agent_ph': 'ex. assistant',
'llmr.filter.source': 'Source',
'llmr.filter.source_ph': 'ex. web, tic, cron',
'llmr.filter.source_ph': 'ex. web, event-triage, cron',
'llmr.filter.from': 'De',
'llmr.filter.to': 'À',
'llmr.filter.apply': 'Appliquer',
@@ -184,12 +184,12 @@ export default {
'config.prop.ui_locale.name': 'Langue',
'config.prop.ui_locale.desc': 'Langue d\'interface par défaut pour l\'ensemble de l\'instance. Chaque utilisateur peut la modifier dans son profil.',
'config.prop.tic__enabled.name': 'Activé',
'config.prop.tic__enabled.desc': 'Activer ou désactiver l\'agent TIC pour toute l\'instance. Lorsqu\'il est désactivé, aucun événement n\'est traité pour personne.',
'config.prop.tic__security_group.name': 'Groupe de sécurité',
'config.prop.tic__security_group.desc': 'Groupe de permissions d\'outils appliqué à chaque exécution de TIC. Il est revérifié selon le rôle de chaque utilisateur : si son rôle n\'autorise pas ce groupe, l\'exécution utilise le groupe par défaut de son rôle. Laissez vide pour toujours utiliser celui du rôle.',
'config.prop.tic__interval_minutes.name': 'Intervalle de vérification (minutes)',
'config.prop.tic__interval_minutes.desc': 'Temps écoulé entre deux passages pour chaque utilisateur, en minutes. Compté par personne depuis son propre dernier passage. Laissez vide pour utiliser la valeur de config.yml (tic.interval_secs).',
'config.prop.event_triage__enabled.name': 'Activé',
'config.prop.event_triage__enabled.desc': 'Activer ou désactiver le tri des événements pour toute l\'instance. Lorsqu\'il est désactivé, aucun événement n\'est traité pour personne.',
'config.prop.event_triage__security_group.name': 'Groupe de sécurité',
'config.prop.event_triage__security_group.desc': 'Groupe de permissions d\'outils appliqué à chaque exécution du tri des événements. Il est revérifié selon le rôle de chaque utilisateur : si son rôle n\'autorise pas ce groupe, l\'exécution utilise le groupe par défaut de son rôle. Laissez vide pour toujours utiliser celui du rôle.',
'config.prop.event_triage__interval_minutes.name': 'Intervalle de vérification (minutes)',
'config.prop.event_triage__interval_minutes.desc': 'Temps écoulé entre deux passages pour chaque utilisateur, en minutes. Compté par personne depuis son propre dernier passage. Laissez vide pour utiliser la valeur de config.yml (event_triage.interval_secs).',
'config.prop.memory_lint_private__enabled.name': 'Activé',
'config.prop.memory_lint_private__enabled.desc': 'Activer l\'entretien de la mémoire privée pour toute l\'instance. Lorsqu\'il est désactivé, la mémoire privée de personne n\'est vérifiée.',
@@ -336,7 +336,7 @@ export default {
// ── Settings (config page extras) ──────────────────────────────────────────
'config.debug': 'Mode débogage',
'config.debug.desc': 'Afficher les pages développeur (requêtes LLM, sessions TIC) dans la barre latérale.',
'config.debug.desc': 'Afficher les pages développeur (requêtes LLM) dans la barre latérale.',
// ── First-run setup ────────────────────────────────────────────────────────
'setup.title': 'Bienvenue sur Skald',
@@ -961,8 +961,8 @@ export default {
'system_agents.tab.all': 'Tous',
'system_agents.settings': 'Paramètres',
'system_agents.agent.tic.name': 'TIC',
'system_agents.agent.tic.desc': 'Lit les événements reçus par vos connecteurs — nouveaux e-mails, changements d\'agenda, messages entrants — décide lesquels méritent votre attention et ne vous signale que ceux-là. Il s\'exécute pour une personne à la fois et ne lit que les événements de cette personne.',
'system_agents.agent.event-triage.name': 'Tri des événements',
'system_agents.agent.event-triage.desc': 'Lit les événements reçus par vos connecteurs — nouveaux e-mails, changements d\'agenda, messages entrants — décide lesquels méritent votre attention et ne vous signale que ceux-là. Il s\'exécute pour une personne à la fois et ne lit que les événements de cette personne.',
'system_agents.agent.memory-lint-private.name': 'Entretien de la mémoire privée',
'system_agents.agent.memory-lint-private.desc': 'Une vérification périodique de votre mémoire. Elle recherche les faits dont la date est passée, les questions qui vous ont été posées et restées sans réponse, les notes que l\'index a perdues de vue et les doublons à fusionner — puis vous dit ce qu\'elle a trouvé. Elle ne modifie jamais vos notes.',
'system_agents.agent.memory-lint-shared.name': 'Entretien de la mémoire partagée',
+10 -10
View File
@@ -125,7 +125,7 @@ export default {
'llmr.filter.agent_id': 'ID Agente',
'llmr.filter.agent_ph': 'es. assistant',
'llmr.filter.source': 'Sorgente',
'llmr.filter.source_ph': 'es. web, tic, cron',
'llmr.filter.source_ph': 'es. web, event-triage, cron',
'llmr.filter.from': 'Da',
'llmr.filter.to': 'A',
'llmr.filter.apply': 'Applica',
@@ -208,12 +208,12 @@ export default {
'config.prop.ui_locale.name': 'Lingua',
'config.prop.ui_locale.desc': 'Lingua predefinita per l\'intera istanza. Ogni utente può modificarla nel proprio profilo.',
'config.prop.tic__enabled.name': 'Attivo',
'config.prop.tic__enabled.desc': 'Attiva o disattiva l\'agente TIC per l\'intera istanza. Quando è disattivato, non viene elaborato alcun evento per nessuno.',
'config.prop.tic__security_group.name': 'Gruppo di sicurezza',
'config.prop.tic__security_group.desc': 'Gruppo di permessi strumenti applicato a ogni esecuzione di TIC. Viene riverificato sul ruolo di ciascun utente: se il ruolo non consente questo gruppo, l\'esecuzione usa il gruppo predefinito del ruolo. Lascia vuoto per usare sempre il predefinito del ruolo.',
'config.prop.tic__interval_minutes.name': 'Intervallo di controllo (minuti)',
'config.prop.tic__interval_minutes.desc': 'Quanto tempo passa tra un giro e l\'altro per ciascun utente, in minuti. Conteggiato per persona a partire dal suo ultimo giro. Lascia vuoto per usare il valore da config.yml (tic.interval_secs).',
'config.prop.event_triage__enabled.name': 'Attivo',
'config.prop.event_triage__enabled.desc': 'Attiva o disattiva il triage eventi per l\'intera istanza. Quando è disattivato, non viene elaborato alcun evento per nessuno.',
'config.prop.event_triage__security_group.name': 'Gruppo di sicurezza',
'config.prop.event_triage__security_group.desc': 'Gruppo di permessi strumenti applicato a ogni esecuzione del triage eventi. Viene riverificato sul ruolo di ciascun utente: se il ruolo non consente questo gruppo, l\'esecuzione usa il gruppo predefinito del ruolo. Lascia vuoto per usare sempre il predefinito del ruolo.',
'config.prop.event_triage__interval_minutes.name': 'Intervallo di controllo (minuti)',
'config.prop.event_triage__interval_minutes.desc': 'Quanto tempo passa tra un giro e l\'altro per ciascun utente, in minuti. Conteggiato per persona a partire dal suo ultimo giro. Lascia vuoto per usare il valore da config.yml (event_triage.interval_secs).',
'config.prop.memory_lint_private__enabled.name': 'Attivo',
'config.prop.memory_lint_private__enabled.desc': 'Attiva la manutenzione della memoria privata per l\'intera istanza. Quando è disattivata, la memoria privata di nessuno viene controllata.',
@@ -336,7 +336,7 @@ export default {
// ── Impostazioni (extra pagina config) ─────────────────────────────────────
'config.debug': 'Modalità debug',
'config.debug.desc': 'Mostra le pagine per sviluppatori (richieste LLM, sessioni TIC) nella barra laterale.',
'config.debug.desc': 'Mostra le pagine per sviluppatori (richieste LLM) nella barra laterale.',
// ── Configurazione iniziale ────────────────────────────────────────────────
'setup.title': 'Benvenuto in Skald',
@@ -961,8 +961,8 @@ export default {
'system_agents.tab.all': 'Tutti',
'system_agents.settings': 'Impostazioni',
'system_agents.agent.tic.name': 'TIC',
'system_agents.agent.tic.desc': 'Legge gli eventi che arrivano dai tuoi connettori — nuove email, modifiche al calendario, messaggi in arrivo — decide quali meritano la tua attenzione e ti avvisa solo di quelli. Viene eseguito per una persona alla volta e legge solo gli eventi di quella persona.',
'system_agents.agent.event-triage.name': 'Triage eventi',
'system_agents.agent.event-triage.desc': 'Legge gli eventi che arrivano dai tuoi connettori — nuove email, modifiche al calendario, messaggi in arrivo — decide quali meritano la tua attenzione e ti avvisa solo di quelli. Viene eseguito per una persona alla volta e legge solo gli eventi di quella persona.',
'system_agents.agent.memory-lint-private.name': 'Manutenzione memoria privata',
'system_agents.agent.memory-lint-private.desc': 'Un controllo periodico della tua memoria. Cerca fatti la cui data è ormai passata, domande che ti sono state poste e a cui non hai mai risposto, note di cui l\'indice ha perso traccia e duplicati da unire — poi ti dice cosa ha trovato. Non modifica mai le tue note.',
'system_agents.agent.memory-lint-shared.name': 'Manutenzione memoria condivisa',