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
+1 -1
View File
@@ -53,7 +53,7 @@ pub fn router() -> Router<Arc<Skald>> {
// Custom slash commands (file-based, read-only listing for autocomplete + /help)
.route("/commands", get(commands::list))
.route("/sessions", get(sessions::list_sessions).post(sessions::create))
// System agents (TIC, memory lints) — the caller's own run history, plus
// System agents (event triage, memory lints) — the caller's own run history, plus
// the agent list (settings included only for an admin).
.route("/system-agents", get(system_agents::list_agents))
.route("/system-agents/runs", get(system_agents::list_runs))
+1 -1
View File
@@ -593,7 +593,7 @@ fn build_items<'a>(
let failed = msg.status == "failed";
match msg.role {
chat_history::Role::User => {
// Skip synthetic messages (TIC notifications, etc.) — they are
// Skip synthetic messages (event triage notifications, etc.) — they are
// injected as user turns for the LLM but must not appear in the UI.
if msg.is_synthetic {
continue;
+2 -2
View File
@@ -1,5 +1,5 @@
//! System agents — the background agents the instance runs on a user's behalf
//! (blueprint §13): TIC and the two memory lints.
//! (blueprint §13): event triage and the two memory lints.
//!
//! **This page has two audiences, and the split is the whole design.**
//!
@@ -88,7 +88,7 @@ pub async fn list_agents(
#[derive(Deserialize)]
pub struct ListRunsQuery {
/// Narrow to one agent (`tic`). Omitted = every system agent.
/// Narrow to one agent (`event-triage`). Omitted = every system agent.
pub agent_id: Option<String>,
#[serde(default = "default_page")]
pub page: i64,