🧪 killBottleneck is in public beta — cloud and self-host.🧪 killBottleneck is in beta.Beta on GitHub →
Skip to content

Notifications

The bell in the header shows the last 20 events; the full list, with filters and paging, lives at /notifications. That is also where the settings are — each user chooses for themselves what they want to hear about, type by type.

Every event type has its own toggle for the app and for e-mail.

What gets announced

The bell — the latest events, with a Show all link to the full list.

A task or a goal assigned to you (including in a map that already exists), a comment on your task or goal, a new project and a project shared with you, a waiting goal being unblocked ("the goal is up"), an approaching or missed deadline, an AI agent request and its fulfilment, an automation finishing or failing, and a timer stopped automatically.

The full list at /notifications is paged ("Page X of Y") and filterable: All / Unread and by type; Mark all read clears the bell in one click.

Deadline notices arrive as one morning digest per group — overdue / due today / due tomorrow — not one message per item. The hour is KB_DEADLINE_HOUR (default 7, the container's local time). Read notifications are cleaned up after 30 days.

The bell does not flood

Two guards keep a busy morning from burying you, and neither of them ever silently drops anything — events are merged and the counts are admitted openly:

  • Merging: repeated events of the same type on the same item within a short window (10 minutes by default) raise a counter on the existing unread notification — "… (×3)" — instead of adding rows.
  • Daily cap: above a daily limit (50 by default), further events collapse into a single overflow summary with a growing count, rather than an endless list.

E-mail

The e-mail channel switches on once SMTP is configured; until then it is greyed out in the settings, with the explanation that e-mail is not set up on this server yet (in the cloud, sending is on from day one). Everyone then picks one rule above the per-type toggles — what may reach them by e-mail:

ModeBehaviour
InstantlyEvery checked event is e-mailed right away.
Daily digestNo individual e-mails; one summary arrives once a day (in the morning, from 8:00 by default).
NothingNothing is e-mailed. Notifications stay in the app.

E-mails arrive in the recipient's language, in one consistent look. E-mail also has its own daily cap per recipient (10 by default) — an app that spams its users into a mail filter has no e-mail channel at all. On an instance where notification e-mails were already arriving before per-user preferences existed, KB_NOTIFY_EMAIL_DEFAULT=1 keeps them on until each user says otherwise.

Next

fair-code — self-hosting and internal use are free, reselling as a hosted service is not.