| @@ -1329,7 +1329,7 @@ string.</p> | |||||
| <div class="sect2"> | <div class="sect2"> | ||||
| <h3 id="_client_to_server_control">2.6. Client to Server Control</h3> | <h3 id="_client_to_server_control">2.6. Client to Server Control</h3> | ||||
| <div class="paragraph"> | <div class="paragraph"> | ||||
| <p>If the server publishes the <code>:server_control:</code> capability, then clients can also initiate action by | |||||
| <p>If the server publishes the <code>:server-control:</code> capability, then clients can also initiate action by | |||||
| the server. For example, a client might implement a 'Save All' option which sends a | the server. For example, a client might implement a 'Save All' option which sends a | ||||
| <code>/nsm/server/save</code> message to the server, rather than requiring the user to switch to the session | <code>/nsm/server/save</code> message to the server, rather than requiring the user to switch to the session | ||||
| management interface to effect the save.</p> | management interface to effect the save.</p> | ||||
| @@ -1614,10 +1614,10 @@ inrecement to <code>API_VERSION_MAJOR</code>, which we want to avoid.</p> | |||||
| with <code>ERR_INCOMPATIBLE_API</code>.</p> | with <code>ERR_INCOMPATIBLE_API</code>.</p> | ||||
| </div> | </div> | ||||
| <div class="paragraph"> | <div class="paragraph"> | ||||
| <p>All changes (that concern client/server behaviour) that increment <code>API_VERSION_MINOR</code> will be gated | |||||
| by new capabilities (e.g. <code>:optional-gui:</code>). <code>nsmd</code> will not send any messages if a capability was | |||||
| not sent by the client in <a href="#_announce"><code>announce</code></a>. This includes mostly optional features about | |||||
| requesting extra information.</p> | |||||
| <p>All changes (that concern client/server behaviour) that increment <code>API_VERSION_MINOR</code> will be | |||||
| request-only or gated by new capabilities (e.g. <code>:optional-gui:</code>). <code>nsmd</code> will not send any | |||||
| messages if a capability was not sent by the client in <a href="#_announce"><code>announce</code></a>. This includes | |||||
| mostly optional features about requesting extra information.</p> | |||||
| </div> | </div> | ||||
| <div class="paragraph"> | <div class="paragraph"> | ||||
| <p>New actions for server-control, for example a hypothetical <code>/nsm/server/save_as</code>, which would be | <p>New actions for server-control, for example a hypothetical <code>/nsm/server/save_as</code>, which would be | ||||
| @@ -1686,36 +1686,30 @@ It was never an arbitrary value.</p> | |||||
| </ul> | </ul> | ||||
| </div> | </div> | ||||
| <div class="paragraph"> | <div class="paragraph"> | ||||
| <p>Code changes:</p> | |||||
| <p>Code changes: | |||||
| * <a href="#_server_control_api">Server Control API</a>: <code>/nsm/server/list</code> chain of single OSC messages, one for each session, | |||||
| is now finalized with sending and empty string "" as session name. Previously this was just | |||||
| a symbolically irrelevant console message <code>"Done."</code> | |||||
| * Replies to <code>/nsm/server/save</code> etc. will now be sent back to the sender and not falsely to the last | |||||
| client who replied to <code>/nsm/client/save</code>. This alone would only require API_VERSION_PATCH | |||||
| increment, but we are already incrementing minor. | |||||
| * <a href="#_server_control_api">Server Control API</a>: <code>/nsm/server/add</code> was replying with an undocumented error code on success. | |||||
| Instead, as this document always specificed, it now sends <code>"/reply", path, "Launched."</code>. | |||||
| Again, this would have been just API_VERSION_PATCH on its own.</p> | |||||
| </div> | </div> | ||||
| <div class="ulist"> | |||||
| <ul> | |||||
| <li> | |||||
| <p><a href="#_server_control_api">Server Control API</a>: <code>/nsm/server/list</code> chain of single OSC messages, one for each session, | |||||
| is now finalized with sending and empty string "" as session name. Previously this was just | |||||
| a symbolically irrelevant console message <code>"Done."</code></p> | |||||
| </li> | |||||
| <li> | |||||
| <p>unstable <code>/nsm/gui</code> protocol: Send client status after a GUI attaches to running server. This | |||||
| was not happening before, but it was the intention. It was just broken in nsmd.cpp. This alone | |||||
| would only require API_VERSION_PATCH increment, but we are already incrementing minor.</p> | |||||
| </li> | |||||
| <li> | |||||
| <p>unstable <code>/nsm/gui</code> protocol: Send label "launch error!" when a program is added (or loaded) that | |||||
| does not exist in $PATH. This requires no adaptation of any client, server or GUI because labels | |||||
| are arbitrary already and this is not meant for automatic parsing, but as user information.</p> | |||||
| </li> | |||||
| <li> | |||||
| <p>Replies to <code>/nsm/server/save</code> etc. will now be sent back to the sender and not falsely to the last | |||||
| client who replied to <code>/nsm/client/save</code>. This alone would only require API_VERSION_PATCH | |||||
| increment, but we are already incrementing minor.</p> | |||||
| </li> | |||||
| <li> | |||||
| <p><a href="#_server_control_api">Server Control API</a>: <code>/nsm/server/add</code> was replying with an undocumented error code on success. | |||||
| Instead, as this document always specificed, it now sends <code>"/reply", path, "Launched."</code>. | |||||
| Again, this would have been just API_VERSION_PATCH on its own.</p> | |||||
| </li> | |||||
| </ul> | |||||
| <div class="paragraph"> | |||||
| <p>Unstable <code>/nsm/gui</code> protocol | |||||
| * Send client status after a GUI attaches to running server. This | |||||
| was not happening before, but it was the intention. It was just broken in nsmd.cpp. This alone | |||||
| would only require API_VERSION_PATCH increment, but we are already incrementing minor. | |||||
| * Send label "launch error!" when a program is added (or loaded) that | |||||
| does not exist in $PATH. This requires no adaptation of any client, server or GUI because labels | |||||
| are arbitrary already and this is not meant for automatic parsing, but as user information. | |||||
| * <code>/nsm/gui/session/name</code> will now always send the same parameter format, regardless of how the session was opened: | |||||
| simple-session-name, relative session path with subdirs below session-root. | |||||
| * When a GUI announces itself to nsmd it will receive the absolute path to the session directory | |||||
| through the message <code>/nsm/gui/session/root</code>. This is not a new addition but was already in | |||||
| non-session-manager git.</p> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -1724,7 +1718,7 @@ Again, this would have been just API_VERSION_PATCH on its own.</p> | |||||
| <div id="footer"> | <div id="footer"> | ||||
| <div id="footer-text"> | <div id="footer-text"> | ||||
| Version API 1.1.0<br> | Version API 1.1.0<br> | ||||
| Last updated 2020-07-08 20:25:19 +0200 | |||||
| Last updated 2020-07-12 00:55:08 +0200 | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </body> | </body> | ||||