Repository navigation
Restore four reviewed commits lost in earlier merges - #58
Merged
Merged
Conversation
A working receive family previously hid transient bind and multicast join failures elsewhere, so stable network snapshots could leave discovery partly deaf indefinitely. Track pending family binds and interface memberships, retry them at scan boundaries with capped exponential backoff, and preserve working sockets and memberships. Cover both families' bind, single-membership, and all-membership failures with deterministic clock-driven recovery tests, including backoff, packet delivery, reuse, and shutdown. All six regression cases fail against the setup-once behavior. Document retry timing; existing unreleased component patch bumps already cover this fix relative to v0.8.0. Signed-off-by: Jared Ping <13906915+JaredP94@users.noreply.github.com> (cherry picked from commit d64888a)
Synchronize on an active lifecycle operation while the passive readiness reply is still blocked. Hold final intent persistence so even a fast start remains observable, then release the probe and await real startup under its own deadline. Always unblock persistence and clean up the executor on failure. The revised status group passes -race -count=100. Reintroducing the probe's lifecycle lock fails at the entry assertion rather than at process startup. Existing unreleased versions are unchanged because this modifies tests only. Signed-off-by: Jared Ping <13906915+JaredP94@users.noreply.github.com> (cherry picked from commit 2f78b8c)
Register terminal executor cleanup immediately after construction so failed fixture setup cannot orphan the blocked control CLI. Poll readiness within the existing bounded helper instead of relying on one short TCP attempt. Both detached-daemon cases pass -race -count=20. Disabling executed-CLI cleanup still fails the before-exit regression, and an injected fatal before explicit StopAll leaves no fixture process. This test-only change needs no service version bump. Signed-off-by: Jared Ping <13906915+JaredP94@users.noreply.github.com> (cherry picked from commit b5cee58)
LM Studio stops its HTTP server without exiting its persistent host, so requiring process exit for every command-mode stop times out and blocks restart. Add the manifest stop.wait_for_exit capability and enable it only for bundled oMLX, which requires full app teardown before starting again. Keep listener-only confirmation as the default and preserve existing CLI and confirmation deadlines without holding the state mutex across waits. Validate capability prerequisites, document its semantics, and cover persistent-host stop/restart alongside the existing exit-wait and timeout regressions. Retain the PR's unreleased engine-manager 1.4.1 fix version. Signed-off-by: Jared Ping <13906915+JaredP94@users.noreply.github.com> (cherry picked from commit 8674a10)
Owner
Author
|
CI note before merge: on run 42231052487, five of six jobs passed, including both cross-process jobs (Linux: 123 passed, 0 skipped). The "Go modules (macos-15)" job was cancelled twice without acquiring a runner (GitHub macOS arm64 capacity). It never started. That job's exact steps were run instead on macOS arm64 at 11d26ee with the CI toolchain (Go 1.26.7): |
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.
Description
Restores four reviewed commits that were approved in earlier PRs but never reached
main.The maintainer's merge script rebased a stale local copy of each PR branch (one that predated the last fix pushes) and force-pushed it with a lease that compared only against the remote. The lease passed and the newer commits were overwritten. Found while checking #56's merged content; every PR the script pushed was then audited by comparing each force-push's before and after commits. These four are the only changes missing; all other rewritten commits differ only by conflict resolutions.
fix(discovery): retry partial mDNS receive setup(from Reuse mDNS sockets across scans and refresh discovery on network changes #40,d64888a, a requested review fix): a receive socket that fails to open on some interface is retried with a bounded backoff instead of never.test(engine-manager): observe lifecycle entry before awaiting startup(from Engine management stays responsive and shuts down reliably #41,2f78b8c): removes a flaky wait in a status test.test(engine-manager): clean up detached fixtures on every exit(from Engine management stays responsive and shuts down reliably #41,b5cee58).fix(engine-manager): opt in to process-exit confirmation(from Fix engine detection, shutdown and test process hygiene #56,8674a10): only engines whose manifest setsruntime.stop.wait_for_exit(oMLX) wait for their process to exit on stop. Without it, stopping LM Studio, whose host process legitimately stays alive afterlms server stop, timed out and left the engine reported as running. This regression is onmainonly; it was never released (0.9.0 predates it).Each is cherry-picked unchanged (
-xrecords the original). They applied without conflicts. Thewait_for_exitcode reads the runtime passed in under the per-engine operation lock, consistent with the snapshot rule from #56.Scope
Shared discovery; nvpair-engine-manager. Every affected binary already has an unreleased bump since v0.9.0, so no version changes.
Validation
go test -race ./...in services/shared, nvpair-engine-manager and nvpair-node-scanner: pass.-race -count=20: the stop, persistent-host, passive-status, settings-rollback and wait_for_exit validation tests, and the discovery receiver retry tests: pass.go vetfor darwin/linux/windows (and freebsd for engine-manager); builds and vet for every binary importing shared/discovery; gofmt; SPDX: pass. No fake-engine processes left behind.Risk
Low: each change was reviewed and approved in its original PR. The merge script now refuses to push a local branch missing any commit from GitHub's branch.
Checklist
git commit -s), certifying the Developer Certificate of Origin.