ahlstromcj / seq66

Seq66: Seq24-based live MIDI looper/editor. v. 0.99.14 2024-08-24. NSM support; Linux/Windows/FreeBSD; PDF manual & tutorial with Help access.
https://ahlstromcj.github.io/
GNU Free Documentation License v1.3
151 stars 13 forks source link

NSM: hide seq66 on closing window, don't exit? #41

Closed mxmilkiib closed 1 year ago

mxmilkiib commented 3 years ago

If closing the window, rather than quitting the app, could change the its visibility state to hidden.

diovudau commented 3 years ago

I just added seq66 to the Agordejo internal database. I noticed that seq66 does not have the hide/show NSM toggle yet. That is a very useful feature to have. For qt mainWindow.hide() is often enough for this.

Once implemented this bug report becomes actionable. If you intercept Qts closeEvent and just hide the window instead it is done. The real quit is then only when nsm sends the quit osc message.

see also:

https://new-session-manager.jackaudio.org/api/index.html#_close_as_distinguished_from_quit_or_exit

Quit or Exit [...] When the client supports :optional-gui: this option SHOULD be replaced with hiding the client’s GUI so a quit by window manager hides.

ahlstromcj commented 3 years ago

Why not just use the window manager to hide/show?

On Thu, Jul 8, 2021, 17:04 diovudau @.***> wrote:

I just added seq66 to the Agordejo internal database. I noticed that seq66 does not have the hide/show NSM toggle yet. That is a very useful feature to have. For qt mainWindow.hide() is often enough for this.

Once implemented this bug report becomes actionable. If you intercept Qts closeEvent and just hide the window instead it is done. The real quit is then only when nsm sends the quit osc message.

β€” You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-876744650, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKDEUGW2Q7UQRFWHAALTWYHGDANCNFSM4XH7QWTA .

diovudau commented 3 years ago

Using the NSM protocol the user has functions like "hide all session clients".

And more important: The session becomes robust. Accidental closing of the software will not happen anymore, the program will just be hidden. This mimics the same as plugins in a DAW. If you close their GUI window they still run.

diovudau commented 3 years ago

For an example of a usecase have a look at my program Patroneo:

This is a very solid and robust user experience and also the NSM API recommendation. Again, it mimcs the workflow of a DAW plugin.

One of the worst experiences the user can have is to open a session it sudden 5 or more windows open (with slight delay each) and you have to manage them all manually afterwards. Or even worse: with a tiling window manager and everything consists just of small rectangles :)

ahlstromcj commented 3 years ago

Thanks, I'll check it out. Nice to get a good description of the use case!

On Thu, Jul 8, 2021, 18:52 diovudau @.***> wrote:

For an example of a usecase have a look at my program Patroneo:

  • When added newly to a session it starts hidden, so it does not get in the way.
  • It can be shown/hidden through NSM
  • It saves its own visibility status in its session save dir and restores it on startup
  • When you close the window via the window manager (Alt+F4, [X] Button etc.) it NSM-hides instead.

This is a very solid and robust user experience and also the NSM API recommendation. Again, it mimcs the workflow of a DAW plugin.

One of the worst experiences the user can have is to open a session it sudden 5 or more windows open (with slight delay each) and you have to manage them all manually afterwards. Or even worse: with a tiling window manager and everything consists just of small rectangles :)

β€” You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-876793896, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKHWGXXUXNCTD7EBABDTWYT3LANCNFSM4XH7QWTA .

ahlstromcj commented 3 years ago

I've got the basics done: tell NSM about "optional-gui", respond to its command to hide, and tell it when the user has toggled visibility [I added a MIDI control and annunciation for toggling visibility, which works fine outside of NSM]. So I start the session, Seq66 pops up for an instant, then disappears. However, when the user toggles it back on, it disappears again.

Also, in the NSM UI, I don't see a way to hide, just close and resume And I don't see a way to have NSM keep the GUI open via the UI.

If Close means only to hide, then is the only way to exit Seq66 to stop the session? The NSM documentation may have a couple of holes in it, at least as far as this humble programmer can tell.

Any clarifications you can make would be most welcome! Thanks!

-------- diovudau 15:52 Thu 08 Jul --------

For an example of a usecase have a look at my program Patroneo:

  • When added newly to a session it starts hidden, so it does not get in the way.
  • It can be shown/hidden through NSM
  • It saves its own visibility status in its session save dir and restores it on startup
  • When you close the window via the window manager (Alt+F4, [X] Button etc.) it NSM-hides instead.

This is a very solid and robust user experience and also the NSM API recommendation. Again, it mimcs the workflow of a DAW plugin.

One of the worst experiences the user can have is to open a session it sudden 5 or more windows open (with slight delay each) and you have to manage them all manually afterwards. Or even worse: with a tiling window manager and everything consists just of small rectangles :)

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/ahlstromcj/seq66/issues/41#issuecomment-876793896

-- Truth can wait; he's used to it.

diovudau commented 3 years ago

Sorry for the late reply.

I've got the basics done: tell NSM about "optional-gui", respond to its command to hide, and tell it when the user has toggled visibility [I added a MIDI control and annunciation for toggling visibility, which works fine outside of NSM]. So I start the session,

Very nice :)

Seq66 pops up for an instant, then disappears.

I assume this is coming from the cirucmstances that you had to integrate hiding after the program existed for years. I think this is a very acceptable outcome.

However, when the user toggles it back on, it disappears again.

This sounds like a bug. I am currently compiling to have a look myself. But maybe it is connected to the next issue:

Also, in the NSM UI, I don't see a way to hide, just close and resume And I don't see a way to have NSM keep the GUI open via the UI.

Are you reporting :optional-gui: in your client capabilities when doing the NSM announce handshake? See the table at https://new-session-manager.jackaudio.org/api/index.html#_announce

If Close means only to hide, then is the only way to exit Seq66 to stop the session? The NSM documentation may have a couple of holes in it, at least as far as this humble programmer can tell. Any clarifications you can make would be most welcome! Thanks!

You can stop any NSM client from the NSM-GUI individually. You said it yourself above: "close". You can offer as many internal options to close seq66 as you want. All my programs have a main menu point Quit, but without a shortcut (if run in NSM mode). The point of rerouting the usual ways to "Quit" to "Hide" is to prevent accidental closing. The main cause it the window manager, hence overriding Qts mainWindow CloseEvent. You don't have to go overboard. If someone sends a SIGNAL they know what they are doing.

ahlstromcj commented 2 years ago

I have a fix for Seq66 not showing or hiding upon command pending in the 0.97.3 in the "optimizing" branch. However, the main reason that feature was broken was because agordejo and its non-session-manager reimplementation do no send a Hide command, as I believe the original NSM author documented. They send only a Show command. So my work-around is to use the Show command as a toggle. I will probably check the code in later tonight.

diovudau commented 2 years ago

Please tell me the steps to replicate, because I believe you are mistaken. The show/hide code in New-SM was not touched, compared to Non-SM, and it is dead simple to use. Every other program hides properly.

ahlstromcj commented 2 years ago

In the code base, non/session-manager/doc/API.html (or API.mu), it says:

:::: Show Optional Gui

If the client has specified the optional-gui capability, then it may receive this message from the server when the user wishes to change the visibility state of the GUI. . . .

/nsm/client/show_optional_gui /nsm/client/hide_optional_gui

No response is message is required.

So I, not looking at the NSM source code, wrote code to handle those messages. And looking at the NSM source code now, I see two functions to emit those two messages.

Now, I understand that source code rules, so I will go with your statement. But I'm curious as to why I was led astray, where others were not. I had to add some code to show what was happening.

Anyway, whatever you can say to clear things up would be great. Thanks, man!

-------- diovudau 09:37 Wed 17 Nov --------

Please tell me the steps to replicate, because I believe you are mistaken. The show/hide code in New-SM was not touched, compared to Non-SM, and it is dead simple to use. Every other program hides properly.

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/ahlstromcj/seq66/issues/41#issuecomment-971805483

-- Laugh at your problems; everybody else does.

falkTX commented 2 years ago

What is the confusion here? "optional-gui" is a capability string the nsm client reports to the nsm server. When that is present the nsm server will call the show/hide optional gui things as expected.

Is the question about the initial state that the GUI should have? If yes, this was simply undefined before.

ahlstromcj commented 2 years ago

The NSM documentation and the NSM code specify hide_optional_gui and show_optional_gui, with callbacks for both.

On Wed, Nov 17, 2021 at 18:50 Filipe Coelho @.***> wrote:

What is the confusion here? "optional-gui" is a capability string the nsm client reports to the nsm server. When that is present the nsm server will call the show/hide optional gui things as expected.

Is the question about the initial state that the GUI should have? If yes, this was simply undefined before.

β€” You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972325746, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKFKSWSNBNBMNOWB6S3UMQ5UPANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Chris Ahlstrom

falkTX commented 2 years ago

The NSM documentation and the NSM code specify hide_optional_gui and show_optional_gui, with callbacks for both.

How does that contradict "No response to the message is required." ?

Still not seeing the issue here, please be more clear.

ahlstromcj commented 2 years ago

The response message isn't the issue. The issue is new non-session-manager re-implementations providing only the "show" message. I'm fine with that, but it contradicts Liles documentation, was surprising to me, and led to a bug in Seq66. It'll work itself out on my end. I'm a flexible fellow. πŸ™‚

On Wed, Nov 17, 2021 at 18:56 Filipe Coelho @.***> wrote:

The NSM documentation and the NSM code specify hide_optional_gui and show_optional_gui, with callbacks for both.

How does that contradict "No response is message is required." ?

Still not seeing the issue here, please be more clear.

β€” You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972335341, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKFBJ5FJIAZS47GAM5DUMQ6MFANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Chris Ahlstrom

falkTX commented 2 years ago

The issue is new non-session-manager re-implementations providing only the "show" message

Please clarify where you saw this, thanks.

ahlstromcj commented 2 years ago

I already stated that... In the documentation in the NSM project. And existing functions in its code. Please move on.

On Wed, Nov 17, 2021 at 19:18 Filipe Coelho @.***> wrote:

The issue is new non-session-manager re-implementations providing only the "show" message

Please clarify where you saw this, thanks.

β€” You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972364401, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKGSRLID54W2Z4XDJ6TUMRA6FANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Chris Ahlstrom

falkTX commented 2 years ago

I already stated that... In the documentation in the NSM project. And existing functions in its code. Please move on.

With all due respect, no. I take this as critical issue, if something got broken like this it is critical that it gets resolved. So I want to get to the bottom of the situation here.

Documentation at https://new-session-manager.jackaudio.org/api/index.html still says the same as before. Both show_optional_gui and hide_optional_gui are mentioned.

nsmd still provides both https://github.com/jackaudio/new-session-manager/blob/e90fa99a5b94f9a93cf209003aad486a37bea07c/src/nsmd.cpp#L2641

the fltk/original gui still has code for both https://github.com/jackaudio/new-session-manager/blob/e90fa99a5b94f9a93cf209003aad486a37bea07c/src/nsm-legacy-gui.cpp#L293

I really, really would like some collaboration and clarification here please. You do not have to reply now, but do please clarify the issue you noticed when possible. Thank you. I mean with actual references to the code, since you stated:

new non-session-manager re-implementations providing only the "show" message

These new reimplementations still need to be fixed. But I do not know/understand which one(s) you are referring to in particular.

ahlstromcj commented 2 years ago

What happened was that, with agordejo's non-session-manager implementation, my debug code showed that clicking the "GUI" button caused Seq66 to be sent only the show-gui message no matter how many times it was clicked. I believe that was contrary to my original tests with the original non-session-manager, which I cannot replicate on my main computer since Liles buggered out due to pique.

Anyway, let us know if you get to the bottom of this. πŸ™‚

On Wed, Nov 17, 2021 at 19:34 Filipe Coelho @.***> wrote:

I already stated that... In the documentation in the NSM project. And existing functions in its code. Please move on.

With all due respect, no. I take this as critical issue, if something got broken like this it is critical that it gets resolved. So I want to get to the bottom of the situation here.

Documentation at https://new-session-manager.jackaudio.org/api/index.html still says the same as before. Both show_optional_gui and hide_optional_gui are mentioned.

nsmd still provides both https://github.com/jackaudio/new-session-manager/blob/e90fa99a5b94f9a93cf209003aad486a37bea07c/src/nsmd.cpp#L2641

the fltk/original gui still has code for both https://github.com/jackaudio/new-session-manager/blob/e90fa99a5b94f9a93cf209003aad486a37bea07c/src/nsm-legacy-gui.cpp#L293

I really, really would like some collaboration and clarification here please. You do not have to reply now, but do please clarify the issue you noticed when possible. Thank you.

β€” You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972374081, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKEVIHVYMMC2EOND7KLUMRCZPANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Chris Ahlstrom

falkTX commented 2 years ago

You should have mentioned agordejo from the start haha, thanks for clarifying.

I dont see here anything being inherently broken. from what I understand the gui-button on agordejo is a really a "show gui" trigger, not a show/hide toggle. but @diovudau can clarify could be 100% intentional, why not

Different applications can work in different ways, nothing wrong with that. The old fltk-based NSM GUI is still possible to build and run and use, that is not going away.

ahlstromcj commented 2 years ago

The original is buildable if you already have it. The original repository is gone. ☹️ As far as I can tell. Imma going to bed now.

On Wed, Nov 17, 2021 at 19:52 Filipe Coelho @.***> wrote:

You should have mentioned agordejo from the start haha, thanks for clarifying.

I dont see here anything being inherently broken. from what I understand the gui-button on agordejo is a really a "show gui" trigger, not a show/hide toggle. but @diovudau https://github.com/diovudau can clarify could be 100% intentional, why not

Different applications can work in different ways, nothing wrong with that. The old fltk-based NSM GUI is still possible to build and run and use, that is not going away.

β€” You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972384197, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKBJLKAMOGT77P3C6JTUMRE45ANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

-- Chris Ahlstrom

falkTX commented 2 years ago

there are mirrors out there like https://git.kx.studio/non/non or https://github.com/linuxaudio/non in case the https://github.com/jackaudio/new-session-manager/ repo is not good for some reason. very sad that we cannot use the original repo anymore. that said, good night!

diovudau commented 2 years ago

To summarize and finally clarify. Nothing in either New-Session-Manager or Agordejo is broken or different:

diovudau commented 2 years ago

here In arch it is easy to build the optimizing branch. If you remove the "use show as toggle" hack I can have a look at the actual behaviour. I just tried it myself but there is also a crash on save so I can't comment on all your other github issues regarding NSM. If you come to irc libera #lad we can talk there in realtime (CET Timezone), that would make things easier.

ahlstromcj commented 2 years ago

Okay, in libsessions/src/nsm/nsmclient.cpp I disabled the hack:

void nsmclient::show (const std::string & path) {

if defined USE_SHOW_TOGGLE_HACK

 bool hide = ! hidden();
 hidden(hide);

else

 hidden(false);

endif

 nsm_debug("show");
 send_from_client(nsm::tag::reply, path, "Show OK");

}

And here is the output when clicking "GUI" button multiple times in the agordejo version of NSM:

[non-session-manager] ../src/nsm-legacy-gui.cpp:290 cb_button(): Sending hide/show GUI. [nsmd] ../src/nsmd.cpp:2223 osc_reply(): Client "seq66.nBNWQ" replied with: Show OK in 7311.309000ms [non-session-manager] ../src/nsm-legacy-gui.cpp:290 cb_button(): Sending hide/show GUI. [nsmd] ../src/nsmd.cpp:2223 osc_reply(): Client "seq66.nBNWQ" replied with: Show OK in 3927.943000ms [non-session-manager] ../src/nsm-legacy-gui.cpp:290 cb_button(): Sending hide/show GUI. [nsmd] ../src/nsmd.cpp:2223 osc_reply(): Client "seq66.nBNWQ" replied with: Show OK in 1976.233000ms [non-session-manager] ../src/nsm-legacy-gui.cpp:290 cb_button(): Sending hide/show GUI. [nsmd] ../src/nsmd.cpp:2223 osc_reply(): Client "seq66.nBNWQ" replied with: Show OK in 4896.213000ms

Also tell me about the crash if it happens again! Sometimes the internal Seq66 API changes enough that it is best to reinstall if you're running it from /usr/local/bin.

Thanks! -- Chris

ahlstromcj commented 2 years ago

Also, if you have weird issues after pulling and rebuilding, do this to remove kruft and start again:

./bootstrap --full-clean ./bootstrap -ed # --enable-debug make ....

Or you can create a shadow directory and use qmake via the qbuild script in contrib/scripts:

qbuild debug rtmidi

(I had to create that process because for a long time the debug autoconf build was broken at link time and it took me a long time to figure it out.)

ahlstromcj commented 2 years ago

Did you ever get to look into the apparent lack of a "hide" command from NSM or agordejo.

Or, like me, have you been busy with other issues? :-)

-------- diovudau 00:20 Thu 18 Nov --------

here In arch it is easy to build the optimizing branch. If you remove the "use show as toggle" hack I can have a look at the actual behaviour. I just tried it myself but there is also a crash on save so I can't comment on all your other github issues regarding NSM. If you come to irc libera #lad we can talk there in realtime (CET Timezone), that would make things easier.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ahlstromcj/seq66/issues/41#issuecomment-972636337

-- Q: What is purple and commutes? A: An Abelian grape.

diovudau commented 2 years ago

1) Agordejo has nothing to do with anything in this feature request or the seq66 problems. It is just a GUI for the nsm-daemon nsmd. Let's leave that out to make things easier

2) What you are using is the FLTK gui which binary is named "nsm-legacy-gui" and symlinked to e.g. "/usr/bin/non-session-manager"

3) The FLTK GUI provides a toggle button with a color changing "LED" for each client that has :optional-gui: in it's capability string. seq66 has that button available. As comparison so has e.g. carla-rack or patroneo. You will see that for the last two programs the LED is either on or off, depending if the client is shown or not.

If you click on this toggle button, depending on the current GUI state of the client, nsmd will either send show or hide. The console log message, defined by old NSM is "Sending hide/show GUI.". This is specified in https://new-session-manager.jackaudio.org/api/index.html#_show_optional_gui The message that the server will send to seq66 is either /nsm/client/show_optional_gui or /nsm/client/hide_optional_gui. The legacy GUI has no epxlicit show/hide but just a toggle button that send show/hide depending on the last reported client state (see below)

The client (seq66 etc.) then has to send an answer about it's current GUI state. The message is given here: https://new-session-manager.jackaudio.org/api/index.html#_client_to_server_informational_messages

It is either /nsm/client/gui_is_hidden or /nsm/client/gui_is_shown

The client state is always known because, as the API dictates, [the client] also MUST send this message after its announce message to indicate the initial visibility state of the optional GUI.. Therefore each clients starts with a known state and each change is announced through the client->server messages gui_is_hidden and gui_is_shown.

Seq66 is not sending any of these. Therefore the server does not know what state your gui is in. The "LED" will always be off and the button will always send "show" because you never reported that you were visible. Instead seq66 replies to the server messages with "Show OK" which is not in the API and means nothing. In fact the API says that the server instruction to show/hide the GUI: This message does not require a response.

Your next steps should be to remove the "Show OK" reply and send the required messages. You also have to send this message once after the announce message and you have to send it every time the GUI visibility changes from within your client. e.g. if you intercept the Windowmanager or Qt CloseEvent to replace quit with "hide gui", as reccommended by https://new-session-manager.jackaudio.org/api/index.html#_quit_or_exit

ahlstromcj commented 2 years ago

Thanks! That clears it up. Sorry about causing you to do all that work! But thank you! I've got the code needed in place for notifying nsm about visibiltiy, but it's not getting called. Dang.

-------- diovudau 07:21 Mon 29 Nov --------

ahlstromcj commented 2 years ago

I do have one quick question. IIRC, you noted that the first visibility status of an "optional-gui" client should be "hidden". Is that correct? Thanks!

-------- diovudau 07:21 Mon 29 Nov --------

You also have to send this message once after the announce message ...

diovudau commented 2 years ago

This is when a client is first added to the session. It is not a MUST but SHOULD. It is nice to have because then the very typical session-creation with adding multiple programs in quick sucession does not become that painful because so many windows get opened automatically. Especially for tiling window people.

moonshaadow commented 2 years ago

Hi there @ahlstromcj, First, thanks for the good work to implement nsm features. According to my user experience, I think that it could be better to hide on closing window, rather than to quit. Just like plugins behavior in a DAW.

ahlstromcj commented 2 years ago

Man, I fixed a raft of bugs and boners along the way! It should work now; so many things to test! Let me know of any remaining issues. Thanks again!

ahlstromcj commented 1 year ago

Hmmm, thought I implemented that. Will revisit that very soon. Thanks!

On Sat, Mar 19, 2022 at 09:32 moonshaadow @.***> wrote:

Hi there @ahlstromcj https://github.com/ahlstromcj, First, thanks for the good work to implement nsm features. According to my user experience, I think that it could be better to hide on closing window, rather than to quit. Just like plugins behavior in a DAW.

  • Seq66 gui could be on top of session manager gui, so the show/hide button is not immediately visible ,
  • as said before, it prevents for an accidental quit .
  • It it close to most of nsm clients behavior, I think it's a good idea to harmonize it

β€” Reply to this email directly, view it on GitHub https://github.com/ahlstromcj/seq66/issues/41#issuecomment-1073010838, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB45LKHLOL2F2OBAVNAU3VTVAXJNLANCNFSM4XH7QWTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- Chris Ahlstrom

ahlstromcj commented 1 year ago

Just re-verified that hide/show still works, so closing it now.