Spoova 2.6 Liveserver
The spoova live server script has been improved for more debugging and device resource management. These improvements are included with more safe practices to help maintain the project application on a live state for longer time ranges. These changes are discussed below.
Runtime Limit
The live server tool makes it easier to develop applications on a live state. This activity requires re-rendering of components at specified intervals to detect errors and changes. This means that leaving the live state running for a longer range of time can lead can overload the processes being run by browsers, leading to high consumption of resources. Running live server on an idle state for longer periods is not advisable as this may lead to unresponsive applications or browser crashes. The new improvement made now sets a default limit of 10 minutes maximum idle time on the live server. A countdown notification is forwarded on the browser console and webpage before the live server is silently terminated. This silent termination can be resumed based on mouse movement on browser, webpage visibility or any recognizable changes made within the project application code. This new feature is designed to help save resources and to prevent unnecessary use of the development device's memory. It is also designed to help keep the web project development on an active state for longer periods of time.

Runtime Limit Management
The default maximum lifetime limit (i.e 10 minutes) set on live server has been made customizable based on user preference. The minimum life time that can be configured is one(1) minute while there is no maximum time range limit constraint. This default configuration can be modified by running a simple command on the terminal. Assuming we need to set the maximum lifetime to 5 minutes, the value of this in seconds is 300 seconds. We can run the command below to set the maximum lifetime:
  php mi live RUNTIME 300
                                        
Once this is defined, the page will need to refresh to update the changes made. After the changes have been updated, the live server will silently pause at the specified time after which it will resume once the mouse is detected on the browser. This update was made in recognition of user preferences in terms of live server usage.

Runtime Activity Control
The live server has been embedded with a new control button to pause and resume the live server. This tool has been introduced to further enhance the control developers have over the live server activity. While the live server can be disabled entirely, in certain situation where there is need to pause the live server for a certain period before resuming, rather than entirely disabling the script, the control button will provide a much easier temporary way to shut it down without having to refresh the page. The live server has its own management configuration file within the icore/ directory named live. This file contains management configuration keys for the live server. In order to enable the control button, we need to set up the icore/live controller file. We can easily do this by running the command below:
  php mi live controls poll
                                        
The poll option is the default option for the control key and may not be necessarily defined or specified when executing the command. Once this command is successfully executed, the page will need to refresh to add the live server controller button. We can also remove this button by running the command below:
  php mi live control --
                                        
The double dash sign specifies that the control button should not be added to the web browser.

Manual Activity Control
The new live server new control feature also allows a new manual control functionality that totally avoids the polling of requests. In this situation, rather than leaving the live server to handle live debugging through polls, developers will control when the debugging is needed. The control button will be provided but the entire debugging request will only be sent when it is manually required. The advantage of this is that too many resources are never used and it helps to avoid the termination of script when there is a fatal error. In this case, the webpage is still available for view unless it is refreshed. In order to enable this feature, we can run the command below:
  php mi live controls seek
                                        
Once this command is successfully executed, the page will need to refresh to add or update live server controller button. We can also remove this button through the cli by using the double dash option.

Internal Updates
As an added feature, other internal changes have been made to the live server script to increase the longetivity of the live server state in situations where request polls are relied upon. This new update will further help to reduce unneccessary use of development device memory and will help the browser to run on live state mode for a longer period of time. However, for most devices, the new control option seek is the best approach to entirely avoid any request polls.

Cutomizing Control Icons
Developers may wish to customize the colors of the control buttons depending on the type of design icons employed. By default, the bootstrap icons are used. However, the control icons may be customized easily. The following are the list of control icons that can be configured from the terminal.
Review Button
 php mi live review bi-arrow-clockwise
                                    
Pause Button
 php mi live pauser bi-pause-circle
                                    
Resume Button
 php mi live player bi-play-circle
                                    

Positioning Control Button
Spoova takes note of user preferences during web development especially when the live server control button is enabled. The default positioning of the live server's control button can be easily set by default through the terminal by running the command below:
Sample Positioning
 php mi live position "20% 30%"
                                    
In the sample above, the position command will set the position of the control button. The first value 20% is the top margin while the second value 30% is the right margin. It is important that both margins should be defined to avoid positioning errors. Also the default positioning will get ignored if the control button's position has been moved. Spoova keeps track of the last movement position of the control button through session storage making it easier to maintain the buttons position even if the page was refreshed. To move the control button on mobile devices, the control button's header titled "live" should be used to move the controller button instead of the icon below it. This will prevent gesture actions by mobile browsers which refreshes the page when touch is dragged downwards.