Changelog
This page provides an overview of notable changes to the s9s project. For a complete and detailed changelog, please see the full changelog.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Recent Changes
Version 0.7.0 (2026-03-16)
Configurable job submission templates and full SLURM field support:
- Configurable Templates: Define custom job templates in config YAML with pre-filled defaults, hidden fields, and restricted dropdown options
- 3-Tier Template Merge: Built-in, config YAML, and user-saved JSON templates merge with name-based override
- 84 sbatch Fields: Job submission wizard supports 84 of 117 SLURM fields (was 12) -- fields like QoS, GPUs, array, constraints, dependencies now actually reach slurmrestd
- Smart Field Visibility: Advanced fields hidden by default, shown automatically when a template sets them
- CLI Template Management:
s9s templates listands9s templates exportcommands for viewing and exporting templates - SubmitRaw Integration: Bypasses lossy intermediate struct, maps directly to SLURM OpenAPI
JobCreate - QoS Dropdown: QoS field now fetches from cluster API like partitions and accounts
- User Defaults: Account and QoS default to the current SLURM user's defaults
- Preview Copy: Ctrl+Y in job script preview copies clean sbatch script to clipboard (OSC 52)
- Full
--beginParsing: ISO dates, relative times (now+1hour), SLURM named times (midnight,fika,teatime) - Bug Fixes: Viper key case normalization, preview directive accuracy, optional dropdown defaults, duplicate shebang/SBATCH removal
- Removed: Deprecated
OLDShowJobTemplateSelectorand helpers
Version 0.6.3 (2026-03-14)
Performance and responsiveness release:
- Eliminate N+1 API calls: Partitions view now fetches all jobs in a single API call instead of 2N+1 calls per refresh — fixes multi-second freezes on clusters with 20k+ jobs
- Lazy view init & background fetch: Views only initialize when first focused; DAO-level caching reduces redundant API calls; only the active view auto-refreshes
- Async UI-thread API calls: 11 blocking API calls (cancel, hold, release, details modals, etc.) moved off the tview draw thread — UI stays responsive during all operations
- Header improvements: Remove clock, add navigation key hints (Tab, Enter, ?)
- Per-user temp paths: Fix multi-user conflicts with shared
/tmpfiles - Install script fix: Serve install script directly at
get.s9s.devroot
Version 0.6.2 (2026-03-10)
Setup wizard improvements and bug fixes:
- Setup Wizard Config Fix: Generated config now uses valid camelCase YAML keys — previously
yaml.Marshalproduced lowercase keys that s9s couldn't load - Streamlined Wizard: Removed questions that didn't affect config; wizard now asks only endpoint, cluster name, and optional JWT token
- Token Discovery Fix: Generated config no longer disables token auto-discovery, so
scontrol tokenandSLURM_JWTfallback works without a configured token - Connection Test: Setup wizard now tests the slurmrestd connection before completing
- Docs Update: Lead with zero-configuration auto-discovery (DNS SRV,
scontrol ping) — s9s works on any SLURM node without running setup
Version 0.6.1 (2026-03-09)
Bug fix release focusing on metric accuracy:
- Node Resource Metrics: Use real SLURM API fields (
AllocCPUs,AllocMemory,FreeMem,CPULoad) instead of hardcoded 50% estimates - Cluster Metrics: Dashboard, Performance, and Health views now show real memory and CPU usage from node data
- Job Times: Fix negative elapsed times for PENDING jobs (SLURM sets StartTime to future estimate)
- Remove fake hardcoded "Job Throughput (24h)" chart from Dashboard
Version 0.6.0 (2026-03-08)
Key features:
- Cluster Switcher: Show active cluster name in header, press Ctrl+K to switch clusters at runtime
--clusterFlag: Select cluster context from the command line; fix--configflag being ignored- Table Export: Press e in any view to export data (CSV, JSON, Text, Markdown, HTML)
- VHS Integration Tests: Regression testing against real Slurm clusters (24.05, 24.11, 25.05, 25.11)
- Breaking: Config keys renamed
contexts→clusters,currentContext→defaultCluster
Version 0.5.0 (2026-02-18)
Key features:
- Zero-Configuration Auto-Discovery: Works out-of-the-box on SLURM systems without config files
- API Version Auto-Detection: Removed hardcoded API version default
- Static Binary Builds:
CGO_ENABLED=0for cross-distribution compatibility - Integration Tests CI: PR testing with ephemeral k3d cluster and mock SLURM API
Version 0.4.0 (2026-02-08)
Key features:
- Performance View: Real-time cluster-wide metrics (jobs, nodes, CPU%, memory%)
- Sorting Modal: Press S in any table view for interactive column sorting
- Command Mode with Arguments: Vim-style
:cancel,:drain,:requeuewith Tab completion - Reservation Filters: a for active-only, f for future-only
- Job Output File Reading: Local filesystem and SSH-based remote file access
Version 0.3.0 (2026-01-30)
Key features:
- Vim-style view navigation: h and l keys for switching between views
- Global search cross-view navigation: Search results navigate to the correct view
- Partition filter syntax: Use
p:partition_nameto filter by partition - Username resolution: Jobs display actual usernames instead of numeric UIDs
- Centralized version management and automated release processes
Version 0.1.0 (2026-01-21)
Initial stable release with core features:
- Core TUI Application for SLURM cluster management
- Vim-like navigation and keybindings
- Interactive job and node management
- Multi-cluster support with context switching
- Configuration management and wizard
- CSV, JSON, and Markdown export capabilities
- Observability plugin with Prometheus integration
- Comprehensive test suite and CI/CD
Viewing the Full Changelog
For a complete list of all changes, features, and fixes across all versions, refer to the full CHANGELOG.md.
Version History
- v0.7.0 - Latest release
- v0.6.3 - Performance and responsiveness
- v0.6.2 - Setup wizard fixes
- v0.6.1 - Node metrics, job times, dashboard fixes
- v0.6.0 - Cluster switcher, export, config rename
- v0.5.0 - Auto-discovery, static builds
- v0.4.0 - Performance view, sorting, command mode
- v0.3.0 - Vim navigation, search, filters
- v0.1.0 - Initial release
- Unreleased - Upcoming changes
Semantic Versioning
This project follows Semantic Versioning (MAJOR.MINOR.PATCH):
- MAJOR: Incompatible API changes
- MINOR: Added functionality in a backwards-compatible manner
- PATCH: Backwards-compatible bug fixes
Contributing
If you've found a bug or have a feature request, please check the changelog to see if it's already been addressed or planned. For more information about contributing, refer to the project's contributing guidelines.