Skip to content

Restore four reviewed commits lost in earlier merges - #58

Merged
JaredP94 merged 4 commits into
mainfrom
fix/restore-dropped-commits
Nov 6, 2026
Merged

JaredP94 merged 4 commits into
mainfrom
fix/restore-dropped-commits

Conversation

@JaredP94

@JaredP94 JaredP94 commented Nov 6, 2026

Copy link
Copy Markdown
Owner

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.

Each is cherry-picked unchanged (-x records the original). They applied without conflicts. The wait_for_exit code 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 vet for 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

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)
@JaredP94

JaredP94 commented Nov 6, 2026

Copy link
Copy Markdown
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): gofmt -l services was clean; go vet ./... plus go test -count=1 -timeout=5m ./... passed in all 16 modules (services/tests excluded, as in CI); and both engine-manager race steps passed (go test -race ./... and the downloader lifecycle tests with -count=10).

@JaredP94
JaredP94 merged commit 37bd3a7 into main Nov 6, 2026
10 of 12 checks passed
@JaredP94
JaredP94 deleted the fix/restore-dropped-commits branch November 6, 2026 14:38
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