Subject: bug#76772: 29.4; Emacsclient doesn't display warnings emitted during daemon startup

From: Stefan Kangas <[email-masked]>
Date: Fri, 7 Mar 2025 01:28:34 +0000

Eli Zaretskii <[email-masked]> writes:

>> From: Stefan Kangas <[email-masked]>
>> Date: Thu, 6 Mar 2025 01:25:37 -0800
>> Cc: [email-masked]
>>
>> Eli Zaretskii <[email-masked]> writes:
>>
>> > tags 76772 notabug
>> > thanks
>> >
>> >> From: Artiom Balan <[email-masked]>
>> >> Date: Wed, 5 Mar 2025 23:47:26 +0200
>> >>
>> >> Steps to reproduce:
>> >> 1. Run emacs: emacs -Q --eval "(display-warning 'type \"message\"))"
>> >> 2. Notice the warning is displayed
>> >> 3. Start emacs server: emacs -Q --fg-daemon --eval "(display-warning 'type \"message\"))"
>> >> 4. Open a client: emacsclient -c
>> >> 5. Notice the warning is not displayed
>> >>
>> >> I expected that the warnings buffer would be displayed in the exact
>> >> same way in the emacsclient as in the first scenario.
>> >
>> > Thanks.
>> >
>> > The *Warnings* buffer is there, it's just that the client frame
>> > doesn't show it.  Why should it? how should it know you want that
>> > particular buffer displayed without any indication from you?
>>
>> We show it unconditionally in regular Emacs sessions, so it is at the
>> very least surprising that it is not displayed in the scenario described
>> above.
>
> When emacsclient connects, the new frame that it starts shows what
> emacsclient tells the server to display, and if it doesn't, then the
> default is the current buffer.  The server never displays anything
> without being told, and emacsclient cannot know what were the
> command-line arguments with which the daemon was invoked.
>
> In general, the client frame shows what emacsclient tells it to show,
> not something from the time the daemon started.
>
> So I think the analogy cannot work, at least due to technical reasons
> if not in principle.

AFAIU, some people start emacs-server from, for example, systemd, and
only ever pop up an Emacs frame with emacsclient.  They might never see
the warnings.

If we expect people to manually check the *Warnings* buffer, this sounds
to me as the same as saying either
1. warnings are not important to display, or
2. warnings are not important to display to users that use
   emacs-server+emacsclient

If our reply is (2), which sounds more plausible, then I think that must
be justified somehow.