Forward-merge release/0.7 into main - #681
Conversation
#### Overview Backport the narrowed Chrono feature set for shared serializable types to the 0.7 release line. - [x] I confirm this contribution is my own work, or I have the right to submit it under this project's license. - [x] I searched existing issues and open pull requests, and this does not duplicate existing work. #### Details - Disable Chrono default features in `nemo-relay-types` while retaining `std`, `serde`, and `now`. - Regenerate the checked-in worker-plugin fixture lockfile from the `release/0.7` dependency graph. - Keep the workspace `Cargo.lock` unchanged. #### Where should the reviewer start? Review `crates/types/Cargo.toml` for the feature declaration and `crates/core/tests/fixtures/worker_plugin/Cargo.lock` for the generated release fixture resolution. #### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to) - Relates to: #674 ## Summary by CodeRabbit * **Chores** * Updated date and time handling configuration to use only the required capabilities. * No visible changes to the user experience. Authors: - Bryan Bednarski (https://github.com/bbednarski9) Approvers: - Will Killian (https://github.com/willkill07) URL: #678
|
FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the |
#### Overview Stabilize the macOS PTY job-control regression test by making its background-resume transition deterministic. - [x] I confirm this contribution is my own work, or I have the right to submit it under this project's license. - [x] I searched existing issues and open pull requests, and this does not duplicate existing work. #### Details The test previously issued the interactive shell `bg` command and waited for its prompt. On macOS CI, shell job bookkeeping could re-stop the job before the fake agent's `SIGCONT` handler ran, causing a timeout. The PTY driver now sends `SIGCONT` directly to Relay's stopped shell process group, which is the transition Relay must handle, while retaining the terminal ownership and foreground-handoff assertions. #### Where should the reviewer start? `crates/cli/tests/cli_tests.rs`, in `cli_transparent_run_preserves_interactive_terminal_job_control`. #### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to) - Relates to: none ## Summary by CodeRabbit * **Bug Fixes** * Improved Unix terminal tests for resuming stopped Relay processes, providing more reliable validation of process continuation behavior. Authors: - Will Killian (https://github.com/willkill07) Approvers: - Bryan Bednarski (https://github.com/bbednarski9) - Maryam Najafian (https://github.com/mnajafian-nv) URL: #680
#### Overview Add an offline mode to `nemo-relay doctor` so observability diagnostics can validate configured exporters without requiring live network reachability. Live probe output now also makes it explicit when a check is only confirming HTTP reachability or gRPC TCP reachability. - [x] I confirm this contribution is my own work, or I have the right to submit it under this repository license. - [x] I searched existing issues and open pull requests, and this does not duplicate existing work. #### Details - add `--offline` to `nemo-relay doctor` and thread an explicit probe mode through the doctor collection path - skip live OpenTelemetry, ATOF stream, and non-in-memory response-cache probes in offline mode while preserving config and endpoint validation - clarify live probe messaging so HTTP checks are described as reachability probes and gRPC checks explicitly say the TCP port connected but the OTLP handshake was not verified - add regression coverage for offline flag parsing, skipped probe behavior, malformed endpoint handling, and unchanged live probe behavior **Validation:** - `just test-rust` - `cargo fmt --all` - `cargo clippy --workspace --all-targets -- -D warnings` - `uv run pre-commit run --files crates/cli/src/commands/diagnostics.rs crates/cli/src/commands/mod.rs crates/cli/src/commands/root.rs crates/cli/src/diagnostics/mod.rs crates/cli/src/diagnostics/probes.rs crates/cli/tests/coverage/commands/main_tests.rs crates/cli/tests/coverage/shared/doctor_tests.rs crates/cli/tests/coverage/shared/probes_tests.rs` - `cargo test -p nemo-relay-cli doctor_accepts_offline_flag -- --nocapture` - `cargo test -p nemo-relay-cli diagnostics::tests -- --nocapture` - `cargo test -p nemo-relay-cli diagnostics::probes::tcp_tests -- --nocapture` #### Where should the reviewer start? Start in `crates/cli/src/diagnostics/mod.rs`, especially `observability_http_exporter_checks()` and `probe_atof_stream_sink()`. The most relevant regression coverage is in `crates/cli/tests/coverage/shared/doctor_tests.rs`. #### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to) - Relates to: none ## Summary by CodeRabbit * **New Features** * Added an `--offline` option to the `doctor` command. * Offline diagnostics skip live network checks while still validating endpoint formats and configuration. * Improved diagnostics for reachability, connection failures, timeouts, and invalid endpoints. * **Bug Fixes** * Improved health-check behavior and messaging for HTTP, gRPC, Redis, OpenTelemetry, and stream endpoints. * **Tests** * Added coverage for offline mode, command parsing, endpoint validation, and diagnostic results. Authors: - Maryam Najafian (https://github.com/mnajafian-nv) Approvers: - Will Killian (https://github.com/willkill07) URL: #670
#### Overview Preserve `future_into_py` panic settlement for the closed-loop-safe tool execution bridge. - [x] I confirm this contribution is my own work, or I have the right to submit it under this project's license. - [x] I searched existing issues and open pull requests, and this does not duplicate existing work. #### Details - Use the closed-loop-safe completion bridge for `tool_call_execute`. - Convert panicking Rust tasks into `pyo3_async_runtimes.RustPanic`, matching `future_into_py`. - Add regression coverage for Python future settlement after a Rust panic. #### Where should the reviewer start? Start with `safe_future_into_py` in `crates/python/src/py_api/mod.rs` and `safe_future_into_py_settles_rust_panics` in the adjacent coverage test. #### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to) - Relates to #676 ## Summary by CodeRabbit * **Bug Fixes** * Improved reliability when running asynchronous operations from Python. * Rust panics and task failures are now converted into Python exceptions with readable error messages. * Preserved successful results and cancellation behavior during asynchronous execution. * Prevented completion callbacks from being scheduled after the Python event loop closes. * **Tests** * Added coverage for panic handling, cancellation of pending operations, and closed event-loop behavior. Authors: - Will Killian (https://github.com/willkill07) Approvers: - Maryam Najafian (https://github.com/mnajafian-nv) URL: #682
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #681 +/- ##
==========================================
+ Coverage 94.30% 94.40% +0.10%
==========================================
Files 303 330 +27
Lines 90869 96829 +5960
Branches 0 113 +113
==========================================
+ Hits 85691 91404 +5713
- Misses 5178 5425 +247
... and 52 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Forward-merge triggered by push to release/0.7 that creates a PR to keep main up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.