Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Selecting a job whose log does not exist starts a detached polling thread. If the user switches to another job before the old log appears, that thread later sends
WatchPath(old_path)and replaces the selected job's output. The same pending watch can restart a cleared/hidden pane.Keep the pending path in the observer event loop instead. A new selection or clear revokes it, and the existing polling interval still discovers the currently selected file when it appears. Removing the observer's sender to its own inbox also lets dropping
LiveFileMonitordisconnect and stop the observer.This covers the missing-file edge case left after #58. It changes only the file monitor and changelog; it does not include the separate fake-Slurm harness work in #42.
Reproduction and validation
Four regression tests cover switching jobs, clearing a pane, dropping a monitor, and normal creation of the currently selected file. Applied to original
8d2ca3b, the first three fail and the fourth passes; with the fix, all four pass.Verified locally on macOS arm64 with Rust 1.94.1:
cargo test --locked --offline: 67 library, 3 CLI and 8 parsing tests pass.cargo fmt --all --checkcargo clippy --locked --offline --all-targets -- -D warningscargo +1.90.0 check --locked --offline --all-targets: declared MSRV passes.Tests use temporary files and require no Slurm installation or controller. Linux verification is left to upstream CI.
AI assistance disclosure: prepared with OpenAI Codex. Source review, regression tests and the local validation above were performed by the coding agent; this submission was authorized by the account owner.