User guide / Diagnostics and logging

Who owns the log

Development reference · View source

Log ownership follows editor-state ownership:

ModeOwnerFile
idethe TUI process.runyte/standalone-<pid>.log
muxthe host process.runyte/host.log
editorthe TUI process, only with --log PATHthat path
  • An ide-mode name includes the process ID because several ide-mode editors may open one workspace; two can never write or rotate the same file.
  • A host has one name because exactly one host serves a workspace, and it keeps logging while no TUI is attached.
  • A client never appends to a host’s log or forwards records over the local protocol: transport diagnostics must not depend on the transport working. The host records what it sees of clients — attachment, detachment, refusal, disconnection, and rejected frames.
  • Failures confined to a client’s own input, rendering, or terminal setup are printed to stderr after the terminal is restored, and are not in the host log.
  • Logs live under the runtime state boundary, normally .runyte/, and never under a Git-tracked directory.

File safety:

  • Linux and macOS create logs owner-only (0600). Windows uses a protected ACL granting access to the owning user.
  • Private storage needs local NTFS on Windows; network volumes, reparse points, and hardlinked files are refused. Other filesystem types are unsupported.
  • Writes reject symlinked parent directories, symlinked targets, hard-linked files, and special files such as FIFOs.
  • Rotation uses the opened file and directory even if their names change.
  • A refused default log is reported without blocking editing. An unusable explicit --log fails startup.