| Age | Commit message (Collapse) | Author |
|
Replace || fallback with Hash#fetch block in list_flavors and list_images.
The old code incorrectly swapped falsy-but-present values (empty string,
false, 0) via ||. fetch only falls through when the key is absent,
preserving legitimate falsy values from the API.
|
|
Net::ReadTimeout inherits from Timeout::Error and was already caught
indirectly, but listing it explicitly matches the pattern used in
Config and InferenceTester and guards against future Ruby changes.
Also makes the retry intent obvious for anyone auditing the rescue clause.
|
|
Extracts all classes from hyperstack.rb into focused library files:
- lib/hyperstack/config.rb — ConfigLoader + Config (TOML loading, validation)
- lib/hyperstack/state.rb — StateStore + PrefixedOutput (JSON state, threaded output)
- lib/hyperstack/client.rb — HyperstackClient (REST API + retry logic)
- lib/hyperstack/wireguard.rb — LocalWireGuard (wg1.conf peer management, /etc/hosts)
- lib/hyperstack/provisioning.rb — ProvisioningScripts + RemoteProvisioner (SSH bootstrap)
- lib/hyperstack/manager.rb — Manager (VM lifecycle orchestration)
- lib/hyperstack/watcher.rb — VllmWatcher (Prometheus + GPU dashboard)
- lib/hyperstack/cli.rb — CLI (OptionParser command dispatch)
hyperstack.rb becomes a 46-line entry point with require_relative calls.
All files pass `ruby -c` syntax check and `--help` runs correctly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|