Skip to content

Release v0.2.0 - #8

Merged
fedonman merged 20 commits into
mainfrom
v0.2.0
Aug 28, 2026
Merged

Release v0.2.0#8
fedonman merged 20 commits into
mainfrom
v0.2.0

Conversation

@fedonman

@fedonman fedonman commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Cuts the v0.2.0 release. Covers the full milestone: 16 roadmap items plus a dependency upgrade and CI fixes.

Reliability

  • Restore the terminal on panic with an RAII guard and a chained panic hook.
  • Stop the file watcher from panicking on inotify limits or channel errors; failures now show in the widget.
  • Report background worker failures (input thread, job fetcher) instead of freezing the UI.

Backend correctness

  • Show squeue and list-command failures in the flash bar instead of rendering an empty table.
  • Decode the %R (Reason) column, which was always blank.
  • Switch the squeue field separator from | to an ASCII control character so job names containing | no longer corrupt columns.
  • Remove the hardcoded normal/huge QoS fallback so the filter reflects the real cluster.

UX

  • Follow/tail mode for stdout, stderr, and custom widgets (f, End, Home).
  • Configurable refresh interval (+/-, 1 to 60s, default 3s).
  • In-app help overlay listing all keybindings (?).
  • Consolidated regex filter pipeline; patterns validated once on load; Shift+Tab accepted regardless of reported modifier.
  • Clipboard copies report real success or failure; fixed a debug-build width underflow in the sidebar; job-detail cache now evicts least-recently-used entries.

Testing and CI

  • Added a library target and an initial test suite: squeue argument building, job-state parsing, regex filtering, and fixture-based output decoding, with a round-trip guard that every displayable column is decoded.
  • Hardened the CI and release pipeline and corrected the MSRV in the changelog.

Dependencies and CI fixes

  • Refreshed the lockfile to the latest compatible versions (ratatui 0.30.2, tokio 1.53, regex 1.13) and upgraded base64 to 0.23. notify stays on 8.x because 9.0 is only a pre-release.
  • Bumped crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204.
  • Fixed the changelog CI gate so it passes on release PRs, which correctly leave [Unreleased] empty.

Refresh the lockfile to the latest compatible versions and bump base64 from 0.22 to 0.23 (Engine/STANDARD API unchanged). notify stays on 8.x since 9.0 is only a pre-release.
The 0.9.18 in the lockfile is flagged by cargo-deny (invalid pointer dereference in the fmt::Pointer impl). 0.9.20 is the patched release.
Cutting a release promotes [Unreleased] into a dated version section, which correctly leaves [Unreleased] empty. The gate now also accepts a PR that adds a new '## [x.y.z]' section instead of demanding an [Unreleased] bullet.
@fedonman
fedonman merged commit 64abb7b into main Aug 28, 2026
6 checks passed
@fedonman
fedonman deleted the v0.2.0 branch August 28, 2026 18:42
@fedonman fedonman changed the title Release v0.2.0 — crash-proof & honest Release v0.2.0 Aug 28, 2026
fedonman added a commit that referenced this pull request Aug 28, 2026
Cuts the v0.2.0 release. Covers the full milestone: 16 roadmap items
plus a dependency upgrade and CI fixes.

## Reliability
- Restore the terminal on panic with an RAII guard and a chained panic
hook.
- Stop the file watcher from panicking on inotify limits or channel
errors; failures now show in the widget.
- Report background worker failures (input thread, job fetcher) instead
of freezing the UI.

## Backend correctness
- Show squeue and list-command failures in the flash bar instead of
rendering an empty table.
- Decode the %R (Reason) column, which was always blank.
- Switch the squeue field separator from `|` to an ASCII control
character so job names containing `|` no longer corrupt columns.
- Remove the hardcoded normal/huge QoS fallback so the filter reflects
the real cluster.

## UX
- Follow/tail mode for stdout, stderr, and custom widgets (`f`, `End`,
`Home`).
- Configurable refresh interval (`+`/`-`, 1 to 60s, default 3s).
- In-app help overlay listing all keybindings (`?`).
- Consolidated regex filter pipeline; patterns validated once on load;
`Shift+Tab` accepted regardless of reported modifier.
- Clipboard copies report real success or failure; fixed a debug-build
width underflow in the sidebar; job-detail cache now evicts
least-recently-used entries.

## Testing and CI
- Added a library target and an initial test suite: squeue argument
building, job-state parsing, regex filtering, and fixture-based output
decoding, with a round-trip guard that every displayable column is
decoded.
- Hardened the CI and release pipeline and corrected the MSRV in the
changelog.

## Dependencies and CI fixes
- Refreshed the lockfile to the latest compatible versions (ratatui
0.30.2, tokio 1.53, regex 1.13) and upgraded base64 to 0.23. notify
stays on 8.x because 9.0 is only a pre-release.
- Bumped crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204.
- Fixed the changelog CI gate so it passes on release PRs, which
correctly leave [Unreleased] empty.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant