feat(sessions): prompt user when shell process exits - #731
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (10)
🚧 Files skipped from review as they are similar to previous changes (9)
📝 WalkthroughWalkthroughAdds the ChangesAsync dialog crate
Minimald session teardown
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Binding
participant Select
participant SessionControl
participant Manager
Binding->>Select: display shell-exit options
Select-->>Binding: return detach or delete selection
Binding->>SessionControl: destroy session
SessionControl->>Manager: request session destruction
Manager-->>Binding: complete teardown
Possibly related issues
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/async-dialog/src/error.rs`:
- Around line 9-19: Update the #[error] format on DialogError::Io to interpolate
its wrapped std::io::Error source, preserving the existing variant and
conversion while ensuring Display and tracing logs include the underlying OS
error message.
In `@crates/async-dialog/src/key.rs`:
- Around line 86-95: Bound incomplete CSI sequences in decode_csi and the
surrounding buffer-draining logic near the caller at lines 138-151. When an ESC
[ sequence contains more than the permitted number of bytes without a final
byte, consume the bounded sequence as Key::Unknown and advance pos so the buffer
can drain; preserve None for incomplete sequences within the limit and normal
final-byte decoding.
- Around line 67-77: Update KeyStream::next so a buffered lone ESC is emitted as
Key::Escape after a short timeout instead of remaining incomplete indefinitely.
Also return Key::Escape when EOF occurs with the ESC byte still pending, while
preserving longer escape-sequence decoding when additional bytes arrive.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6a2d5d12-e9c2-4b12-92cc-7880f16e993c
⛔ Files ignored due to path filters (1)
Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (10)
Cargo.tomlcrates/async-dialog/Cargo.tomlcrates/async-dialog/src/error.rscrates/async-dialog/src/key.rscrates/async-dialog/src/lib.rscrates/async-dialog/src/select.rscrates/minimald/Cargo.tomlcrates/minimald/src/session.rscrates/minimald/src/session_host.rscrates/minimald/src/sessions.rs
7bb2d5e to
c04f8cf
Compare
c04f8cf to
077974d
Compare
async-dialogto implement ANSI terminal prompt, such as down an SSH connection.WeakManagerHandlecounterpart toManagerHandle, used to avoid circular referencesSummary by CodeRabbit