Features
Full task recovery on client eviction
In previous versions, when a client was evicted because of too many missed heartbeats, any tasks that had been pulled from the server would be lost. Updates to the task data only arrived upon completion of all the tasks; we are not informed of which client took a particular task until it is finished.
We've implemented a new communication channel that clients use to *immediately* "confirm" with all the task IDs from a bundle pulled from the server. The server can then update the database with which exact client has the tasks. So in the event of an eviction any tasks not returned can be reverted, which allows for them to be re-scheduled and taken by a different client.
This new functionality does impact performance at the most extreme end of task throughput, but under typical scenarios this would not be noticed. A new command-line switch, `--no-confirm` has been added however to completely disable this behavior when not using a database.
Update tasks after submission
For long-running persistent-style deployments it might be desirable to modify a task *after* it has already been submitted. We've added a new subcommand for this. See `hyper-shell task update --help`.
Rich formatting of usage and help statements
If the current shell is interactive (TTY mode), usage and help statements have rich formatting (colors, bold/italics, etc) for easier reading. Just as how logs will automatically disable colors/formatting if being redirected, formatting of usage and help statements is disabled if not TTY-mode.
<br>
Fixes
Issue [12](https://github.com/glentner/hyper-shell/issues/12)
The `--ssh` mode for the *cluster* workflow allows for you to specify a hostname list inline with the command. In the initial implementation it allowed for range expansion with a conventional square-bracket notation; e.g., `some-[00-04,08].local`. However, the comma-seperated syntax did not apply to groups outside the square-brackets.
Now we support arbitrarily many name groups with commas outside the brackets. For example, `some-[00-04,08].local,other-[02,05].local` will expand correctly.
Issue [15](https://github.com/glentner/hyper-shell/issues/15)
A breaking [change](https://github.com/sqlalchemy/sqlalchemy/commit/1a24813bab99376ccd1c726dd7b69db3635a2d2b) in our *SQLAlchemy* dependency affected the use of UUIDs in the project.