User guide / The screen

Notifications

Development reference · View source

:notifications (alias :not) opens [notifications]: one searchable, read-only buffer with the retained history, newest first.

Each entry has:

  • a local YYYY-MM-DD HH:MM:SS timestamp,
  • an ERROR, WARNING, or INFO severity assigned by Runyte,
  • a source, a title, and retained multiline details.

Reading and unread counts:

  • Opening the buffer acknowledges the entries retained at that moment.
  • New notifications arrive without moving focus and are unread.
  • Consecutive identical notifications merge: their timestamp and occurrence count update and they become unread again.

Severity describes the underlying condition, not whether the action completed:

SeverityExamples
INFOExpected context refusals, unavailable actions, empty search results
WARNINGRefusals that protect data or consistency, such as saving a read-only buffer or a file that changed on disk
ERRORA failure in Runyte or an external dependency: a failed Git command, host operation, file write, or language-server exchange

So the interaction line can say an action failed while its notification is INFO.

Bounds:

  • The configured entry count (notifications.history_limit), plus at most 1 MiB per notification and 8 MiB per workspace.
  • Git failures keep labelled stdout and stderr within the 1 MiB budget, enough for thousands of ordinary lines, and add a visible truncation marker when a hostile hook exceeds it. The rest of an overlong stream is still drained while the subprocess runs, so keeping less text never breaks an otherwise successful hook or helper.
  • Successful asynchronous Git output updates the action echo while it is still current. Multiline output, or output whose echo has been superseded, is kept as INFO. The :lsp-status report updates its echo the same way, and is always kept as INFO as well.